@ui5/webcomponents 2.25.1-rc.0 → 2.26.0-rc.1

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 (280) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ComboBox.js +0 -6
  4. package/dist/ComboBox.js.map +1 -1
  5. package/dist/InputPopoverTemplate.js +1 -1
  6. package/dist/InputPopoverTemplate.js.map +1 -1
  7. package/dist/List.d.ts +31 -3
  8. package/dist/List.js +40 -4
  9. package/dist/List.js.map +1 -1
  10. package/dist/ListItemBaseTemplate.js +1 -1
  11. package/dist/ListItemBaseTemplate.js.map +1 -1
  12. package/dist/ListItemCustom.d.ts +22 -0
  13. package/dist/ListItemCustom.js +22 -0
  14. package/dist/ListItemCustom.js.map +1 -1
  15. package/dist/ListTemplate.js +1 -1
  16. package/dist/ListTemplate.js.map +1 -1
  17. package/dist/Menu.d.ts +1 -0
  18. package/dist/Menu.js +18 -0
  19. package/dist/Menu.js.map +1 -1
  20. package/dist/MultiComboBox.d.ts +3 -0
  21. package/dist/MultiComboBox.js +3 -0
  22. package/dist/MultiComboBox.js.map +1 -1
  23. package/dist/Popup.d.ts +17 -0
  24. package/dist/Popup.js +29 -0
  25. package/dist/Popup.js.map +1 -1
  26. package/dist/RangeSlider.d.ts +1 -0
  27. package/dist/RangeSlider.js +3 -0
  28. package/dist/RangeSlider.js.map +1 -1
  29. package/dist/RangeSliderTemplate.js +1 -1
  30. package/dist/RangeSliderTemplate.js.map +1 -1
  31. package/dist/RatingIndicator.d.ts +10 -0
  32. package/dist/RatingIndicator.js +21 -5
  33. package/dist/RatingIndicator.js.map +1 -1
  34. package/dist/RatingIndicatorTemplate.js +1 -1
  35. package/dist/RatingIndicatorTemplate.js.map +1 -1
  36. package/dist/Select.d.ts +2 -0
  37. package/dist/Select.js +13 -2
  38. package/dist/Select.js.map +1 -1
  39. package/dist/SelectPopoverTemplate.js +2 -2
  40. package/dist/SelectPopoverTemplate.js.map +1 -1
  41. package/dist/SelectTemplate.js +1 -1
  42. package/dist/SelectTemplate.js.map +1 -1
  43. package/dist/SliderScale.d.ts +2 -1
  44. package/dist/SliderScale.js.map +1 -1
  45. package/dist/SliderScaleTemplate.js +1 -1
  46. package/dist/SliderScaleTemplate.js.map +1 -1
  47. package/dist/Table.d.ts +1 -1
  48. package/dist/Table.js +16 -8
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TableRow.d.ts +1 -1
  51. package/dist/TableRow.js +4 -4
  52. package/dist/TableRow.js.map +1 -1
  53. package/dist/TableRowBase.d.ts +2 -1
  54. package/dist/TableRowBase.js +4 -1
  55. package/dist/TableRowBase.js.map +1 -1
  56. package/dist/TableRowTemplate.js +1 -1
  57. package/dist/TableRowTemplate.js.map +1 -1
  58. package/dist/TableUtils.d.ts +4 -3
  59. package/dist/TableUtils.js +40 -31
  60. package/dist/TableUtils.js.map +1 -1
  61. package/dist/Tokenizer.js +24 -9
  62. package/dist/Tokenizer.js.map +1 -1
  63. package/dist/Toolbar.d.ts +1 -1
  64. package/dist/Toolbar.js.map +1 -1
  65. package/dist/ToolbarSelect.d.ts +6 -2
  66. package/dist/ToolbarSelect.js +46 -6
  67. package/dist/ToolbarSelect.js.map +1 -1
  68. package/dist/ToolbarSelectOption.d.ts +1 -3
  69. package/dist/ToolbarSelectOption.js +9 -30
  70. package/dist/ToolbarSelectOption.js.map +1 -1
  71. package/dist/ToolbarSelectTemplate.js +2 -2
  72. package/dist/ToolbarSelectTemplate.js.map +1 -1
  73. package/dist/bundle.common.bootstrap.d.ts +2 -0
  74. package/dist/bundle.common.bootstrap.js +3 -1
  75. package/dist/bundle.common.bootstrap.js.map +1 -1
  76. package/dist/bundle.esm.d.ts +2 -0
  77. package/dist/css/themes/CheckBox.css +1 -1
  78. package/dist/css/themes/DatePicker.css +1 -1
  79. package/dist/css/themes/Link.css +1 -1
  80. package/dist/css/themes/RatingIndicator.css +1 -1
  81. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  82. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  83. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  84. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  85. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  86. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +5 -5
  87. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  88. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +5 -5
  89. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  90. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  91. package/dist/custom-elements-internal.json +31 -11
  92. package/dist/custom-elements.json +30 -11
  93. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  144. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  146. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  147. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  148. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  154. package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
  155. package/dist/generated/i18n/i18n-defaults.js +4 -1
  156. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  157. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  158. package/dist/generated/themes/CheckBox.css.js +1 -1
  159. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  160. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  161. package/dist/generated/themes/DatePicker.css.js +1 -1
  162. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  163. package/dist/generated/themes/Link.css.d.ts +1 -1
  164. package/dist/generated/themes/Link.css.js +1 -1
  165. package/dist/generated/themes/Link.css.js.map +1 -1
  166. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  167. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  168. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  169. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  170. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  171. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  172. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  173. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  174. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  175. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  176. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  177. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  178. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  179. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  180. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  181. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  182. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  183. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  184. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  185. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +5 -5
  186. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  187. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  188. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  189. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  190. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  191. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +5 -5
  192. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  193. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  194. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  195. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  196. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  197. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  198. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  199. package/dist/vscode.html-custom-data.json +10 -5
  200. package/dist/web-types.json +19 -9
  201. package/package.json +9 -9
  202. package/src/InputPopoverTemplate.tsx +1 -0
  203. package/src/ListItemBaseTemplate.tsx +1 -0
  204. package/src/ListTemplate.tsx +1 -1
  205. package/src/RangeSliderTemplate.tsx +1 -0
  206. package/src/RatingIndicatorTemplate.tsx +1 -1
  207. package/src/SelectPopoverTemplate.tsx +2 -1
  208. package/src/SelectTemplate.tsx +1 -0
  209. package/src/SliderScaleTemplate.tsx +8 -8
  210. package/src/TableRowTemplate.tsx +1 -0
  211. package/src/ToolbarSelectTemplate.tsx +2 -2
  212. package/src/i18n/messagebundle.properties +8 -0
  213. package/src/i18n/messagebundle_ar.properties +5 -0
  214. package/src/i18n/messagebundle_bg.properties +5 -0
  215. package/src/i18n/messagebundle_ca.properties +5 -0
  216. package/src/i18n/messagebundle_cnr.properties +5 -0
  217. package/src/i18n/messagebundle_cs.properties +5 -0
  218. package/src/i18n/messagebundle_cy.properties +5 -0
  219. package/src/i18n/messagebundle_da.properties +5 -0
  220. package/src/i18n/messagebundle_de.properties +5 -0
  221. package/src/i18n/messagebundle_el.properties +5 -0
  222. package/src/i18n/messagebundle_en.properties +5 -0
  223. package/src/i18n/messagebundle_en_GB.properties +5 -0
  224. package/src/i18n/messagebundle_en_US_sappsd.properties +5 -0
  225. package/src/i18n/messagebundle_en_US_saprigi.properties +5 -0
  226. package/src/i18n/messagebundle_en_US_saptrc.properties +5 -0
  227. package/src/i18n/messagebundle_es.properties +5 -0
  228. package/src/i18n/messagebundle_es_MX.properties +5 -0
  229. package/src/i18n/messagebundle_et.properties +5 -0
  230. package/src/i18n/messagebundle_fi.properties +5 -0
  231. package/src/i18n/messagebundle_fr.properties +5 -0
  232. package/src/i18n/messagebundle_fr_CA.properties +5 -0
  233. package/src/i18n/messagebundle_hi.properties +5 -0
  234. package/src/i18n/messagebundle_hr.properties +5 -0
  235. package/src/i18n/messagebundle_hu.properties +5 -0
  236. package/src/i18n/messagebundle_id.properties +5 -0
  237. package/src/i18n/messagebundle_it.properties +5 -0
  238. package/src/i18n/messagebundle_iw.properties +5 -0
  239. package/src/i18n/messagebundle_ja.properties +5 -0
  240. package/src/i18n/messagebundle_kk.properties +5 -0
  241. package/src/i18n/messagebundle_ko.properties +5 -0
  242. package/src/i18n/messagebundle_lt.properties +5 -0
  243. package/src/i18n/messagebundle_lv.properties +5 -0
  244. package/src/i18n/messagebundle_mk.properties +5 -0
  245. package/src/i18n/messagebundle_ms.properties +5 -0
  246. package/src/i18n/messagebundle_nl.properties +5 -0
  247. package/src/i18n/messagebundle_no.properties +5 -0
  248. package/src/i18n/messagebundle_pl.properties +5 -0
  249. package/src/i18n/messagebundle_pt.properties +5 -0
  250. package/src/i18n/messagebundle_pt_PT.properties +5 -0
  251. package/src/i18n/messagebundle_ro.properties +5 -0
  252. package/src/i18n/messagebundle_ru.properties +5 -0
  253. package/src/i18n/messagebundle_sh.properties +5 -0
  254. package/src/i18n/messagebundle_sk.properties +5 -0
  255. package/src/i18n/messagebundle_sl.properties +5 -0
  256. package/src/i18n/messagebundle_sr.properties +5 -0
  257. package/src/i18n/messagebundle_sv.properties +5 -0
  258. package/src/i18n/messagebundle_th.properties +5 -0
  259. package/src/i18n/messagebundle_tr.properties +5 -0
  260. package/src/i18n/messagebundle_uk.properties +5 -0
  261. package/src/i18n/messagebundle_vi.properties +5 -0
  262. package/src/i18n/messagebundle_zh_CN.properties +5 -0
  263. package/src/i18n/messagebundle_zh_TW.properties +5 -0
  264. package/src/themes/CheckBox.css +10 -10
  265. package/src/themes/DatePicker.css +5 -0
  266. package/src/themes/Link.css +1 -1
  267. package/src/themes/RatingIndicator.css +5 -3
  268. package/src/themes/base/CheckBox-parameters.css +2 -3
  269. package/src/themes/base/Link-parameters.css +1 -0
  270. package/src/themes/base/sizes-parameters.css +4 -5
  271. package/src/themes/sap_fiori_3/CheckBox-parameters.css +0 -1
  272. package/src/themes/sap_fiori_3_dark/CheckBox-parameters.css +0 -1
  273. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +1 -0
  274. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +1 -0
  275. package/src/themes/sap_horizon/CheckBox-parameters.css +1 -2
  276. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +1 -2
  277. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +1 -2
  278. package/src/themes/sap_horizon_hcb/Link-parameters.css +1 -0
  279. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +1 -2
  280. package/src/themes/sap_horizon_hcw/Link-parameters.css +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemCustom.js","sourceRoot":"","sources":["../src/ListItemCustom.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisTabNext, isTabPrevious, isF2, isF7, isUp, isDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ClassMap, AccessibilityInfo } from \"@ui5/webcomponents-base/dist/types.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport ListItem from \"./ListItem.js\";\nimport ListItemCustomTemplate from \"./ListItemCustomTemplate.js\";\nimport { getCustomAnnouncement, applyCustomAnnouncement } from \"./CustomAnnouncement.js\";\nimport {\n\tLISTITEMCUSTOM_TYPE_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ListItemCustomCss from \"./generated/themes/ListItemCustom.css.js\";\n\n/**\n * @class\n *\n * A component to be used as custom list item within the `ui5-list`\n * the same way as the standard `ui5-li`.\n *\n * The component accepts arbitrary HTML content to allow full customization.\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 content of the component.\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\ttag: \"ui5-li-custom\",\n\ttemplate: ListItemCustomTemplate,\n\trenderer: jsxRenderer,\n\tstyles: [ListItem.styles, ListItemCustomCss],\n})\nclass ListItemCustom extends ListItem {\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget isCustomListItem() {\n\t\treturn true;\n\t}\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 *\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\taccessibleName?: string;\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isFocused = this.matches(\":focus\");\n\t\tconst shouldHandle = isFocused\n\t\t\t|| isTabNext(e) || isTabPrevious(e)\n\t\t\t|| isF2(e) || isF7(e)\n\t\t\t|| isUp(e) || isDown(e);\n\n\t\tif (shouldHandle) {\n\t\t\tsuper._onkeydown(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst isFocused = this.matches(\":focus\");\n\t\tconst shouldHandle = isFocused\n\t\t\t|| isTabNext(e) || isTabPrevious(e)\n\t\t\t|| isF2(e) || isF7(e)\n\t\t\t|| isUp(e) || isDown(e);\n\n\t\tif (shouldHandle) {\n\t\t\tsuper._onkeyup(e);\n\t\t}\n\t}\n\n\tget _accessibleNameRef(): string {\n\t\treturn `${this._id}-invisibleText`;\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t\t// Skip updating invisible text during drag operations\n\t\tif (!this._isDragging() && !this.accessibleName) {\n\t\t\tthis._updateInvisibleTextContent();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tsuper._onfocusout(e);\n\t\t// Skip clearing invisible text during drag operations\n\t\tif (!this._isDragging() && !this.accessibleName) {\n\t\t\tthis._clearInvisibleTextContent();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if this element is currently being dragged\n\t * @returns True if this element is being dragged\n\t * @private\n\t */\n\t_isDragging(): boolean {\n\t\t// Check if this specific element has the data-moving attribute\n\t\treturn this.hasAttribute(\"data-moving\");\n\t}\n\n\tprivate _updateInvisibleTextContent() {\n\t\tconst listItem = this._listItem;\n\t\tif (!listItem) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Get accessibility announcements\n\t\tconst accessibilityText = getCustomAnnouncement(this);\n\n\t\t// Apply the announcement using the shared invisible text element from CustomAnnouncement\n\t\tapplyCustomAnnouncement(listItem, accessibilityText);\n\t}\n\n\tprivate _clearInvisibleTextContent() {\n\t\tconst listItem = this._listItem;\n\t\tif (!listItem) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clear the announcement by passing empty text\n\t\tapplyCustomAnnouncement(listItem, \"\");\n\t}\n\n\t/**\n\t * Gets delete button nodes to process for accessibility\n\t * @returns Array of nodes to process\n\t * @private\n\t */\n\tprivate _getDeleteButtonNodes(): Node[] {\n\t\tif (!this.modeDelete) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (this.hasDeleteButtonSlot) {\n\t\t\t// Return custom delete buttons from slot\n\t\t\treturn this.deleteButton;\n\t\t}\n\n\t\t// Return the built-in delete button from the shadow DOM if it exists\n\t\tconst deleteButton = this.shadowRoot?.querySelector(`#${this._id}-deleteSelectionElement`);\n\t\treturn deleteButton ? [deleteButton] : [];\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst result = super.classes;\n\n\t\tresult.main[\"ui5-custom-li-root\"] = true;\n\n\t\treturn result;\n\t}\n\n\tget accessibilityInfo(): AccessibilityInfo {\n\t\tconst children: Array<Node> = [];\n\n\t\t// Get slotted content elements (default slot)\n\t\tconst defaultSlot = this.shadowRoot?.querySelector(\"slot:not([name])\");\n\t\tif (defaultSlot) {\n\t\t\tconst assignedNodes = (defaultSlot as HTMLSlotElement).assignedNodes({ flatten: true });\n\t\t\tchildren.push(...assignedNodes);\n\t\t}\n\n\t\t// Get delete button nodes\n\t\tconst deleteButtonNodes = this._getDeleteButtonNodes();\n\t\tchildren.push(...deleteButtonNodes);\n\n\t\treturn {\n\t\t\ttype: ListItemCustom.i18nBundle.getText(LISTITEMCUSTOM_TYPE_TEXT),\n\t\t\tchildren,\n\t\t};\n\t}\n}\n\nListItemCustom.define();\n\nexport default ListItemCustom;\n\nexport const isInstanceOfListItemCustom = createInstanceChecker<ListItemCustom>(\"isCustomListItem\");\n"]}
1
+ {"version":3,"file":"ListItemCustom.js","sourceRoot":"","sources":["../src/ListItemCustom.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisTabNext, isTabPrevious, isF2, isF7, isUp, isDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ClassMap, AccessibilityInfo } from \"@ui5/webcomponents-base/dist/types.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport ListItem from \"./ListItem.js\";\nimport ListItemCustomTemplate from \"./ListItemCustomTemplate.js\";\nimport { getCustomAnnouncement, applyCustomAnnouncement } from \"./CustomAnnouncement.js\";\nimport {\n\tLISTITEMCUSTOM_TYPE_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ListItemCustomCss from \"./generated/themes/ListItemCustom.css.js\";\n\n/**\n * @class\n *\n * A component to be used as custom list item within the `ui5-list`\n * the same way as the standard `ui5-li`.\n *\n * The component accepts arbitrary HTML content to allow full customization.\n *\n * ### Keyboard Handling\n *\n * Interactive elements placed in the default slot (buttons, links, inputs, etc.)\n * are **not** reached by [Tab] from outside the list. This follows the SAP Fiori\n * \"Intentional Edit Pattern\" and preserves fast keyboard navigation between items.\n *\n * To activate an interactive element inside a `ui5-li-custom`:\n *\n * - [F2] on the focused item - moves focus to the first interactive element inside the item.\n * Pressing [F2] again returns focus to the item level.\n * - [F7] on the focused item - moves focus to the last remembered interactive element\n * inside the item (or to the first interactive element if none is remembered).\n * Pressing [F7] again saves the current position and returns focus to the item level.\n * - [Tab] or [Shift] + [Tab] then walks through the interactive elements within the item\n * and continues into the next/previous item.\n * - [Up] or [Down] while focused on an interactive element moves focus to the element\n * at the same index in the previous/next item; items with no interactive elements\n * are skipped and `ui5-li-group` boundaries are crossed.\n *\n * See the `ui5-list` \"Keyboard Handling\" section for the full behavior.\n *\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 content of the component.\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\ttag: \"ui5-li-custom\",\n\ttemplate: ListItemCustomTemplate,\n\trenderer: jsxRenderer,\n\tstyles: [ListItem.styles, ListItemCustomCss],\n})\nclass ListItemCustom extends ListItem {\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget isCustomListItem() {\n\t\treturn true;\n\t}\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 *\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\taccessibleName?: string;\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isFocused = this.matches(\":focus\");\n\t\tconst shouldHandle = isFocused\n\t\t\t|| isTabNext(e) || isTabPrevious(e)\n\t\t\t|| isF2(e) || isF7(e)\n\t\t\t|| isUp(e) || isDown(e);\n\n\t\tif (shouldHandle) {\n\t\t\tsuper._onkeydown(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst isFocused = this.matches(\":focus\");\n\t\tconst shouldHandle = isFocused\n\t\t\t|| isTabNext(e) || isTabPrevious(e)\n\t\t\t|| isF2(e) || isF7(e)\n\t\t\t|| isUp(e) || isDown(e);\n\n\t\tif (shouldHandle) {\n\t\t\tsuper._onkeyup(e);\n\t\t}\n\t}\n\n\tget _accessibleNameRef(): string {\n\t\treturn `${this._id}-invisibleText`;\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t\t// Skip updating invisible text during drag operations\n\t\tif (!this._isDragging() && !this.accessibleName) {\n\t\t\tthis._updateInvisibleTextContent();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tsuper._onfocusout(e);\n\t\t// Skip clearing invisible text during drag operations\n\t\tif (!this._isDragging() && !this.accessibleName) {\n\t\t\tthis._clearInvisibleTextContent();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if this element is currently being dragged\n\t * @returns True if this element is being dragged\n\t * @private\n\t */\n\t_isDragging(): boolean {\n\t\t// Check if this specific element has the data-moving attribute\n\t\treturn this.hasAttribute(\"data-moving\");\n\t}\n\n\tprivate _updateInvisibleTextContent() {\n\t\tconst listItem = this._listItem;\n\t\tif (!listItem) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Get accessibility announcements\n\t\tconst accessibilityText = getCustomAnnouncement(this);\n\n\t\t// Apply the announcement using the shared invisible text element from CustomAnnouncement\n\t\tapplyCustomAnnouncement(listItem, accessibilityText);\n\t}\n\n\tprivate _clearInvisibleTextContent() {\n\t\tconst listItem = this._listItem;\n\t\tif (!listItem) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clear the announcement by passing empty text\n\t\tapplyCustomAnnouncement(listItem, \"\");\n\t}\n\n\t/**\n\t * Gets delete button nodes to process for accessibility\n\t * @returns Array of nodes to process\n\t * @private\n\t */\n\tprivate _getDeleteButtonNodes(): Node[] {\n\t\tif (!this.modeDelete) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (this.hasDeleteButtonSlot) {\n\t\t\t// Return custom delete buttons from slot\n\t\t\treturn this.deleteButton;\n\t\t}\n\n\t\t// Return the built-in delete button from the shadow DOM if it exists\n\t\tconst deleteButton = this.shadowRoot?.querySelector(`#${this._id}-deleteSelectionElement`);\n\t\treturn deleteButton ? [deleteButton] : [];\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst result = super.classes;\n\n\t\tresult.main[\"ui5-custom-li-root\"] = true;\n\n\t\treturn result;\n\t}\n\n\tget accessibilityInfo(): AccessibilityInfo {\n\t\tconst children: Array<Node> = [];\n\n\t\t// Get slotted content elements (default slot)\n\t\tconst defaultSlot = this.shadowRoot?.querySelector(\"slot:not([name])\");\n\t\tif (defaultSlot) {\n\t\t\tconst assignedNodes = (defaultSlot as HTMLSlotElement).assignedNodes({ flatten: true });\n\t\t\tchildren.push(...assignedNodes);\n\t\t}\n\n\t\t// Get delete button nodes\n\t\tconst deleteButtonNodes = this._getDeleteButtonNodes();\n\t\tchildren.push(...deleteButtonNodes);\n\n\t\treturn {\n\t\t\ttype: ListItemCustom.i18nBundle.getText(LISTITEMCUSTOM_TYPE_TEXT),\n\t\t\tchildren,\n\t\t};\n\t}\n}\n\nListItemCustom.define();\n\nexport default ListItemCustom;\n\nexport const isInstanceOfListItemCustom = createInstanceChecker<ListItemCustom>(\"isCustomListItem\");\n"]}
@@ -5,7 +5,7 @@ export default function ListTemplate() {
5
5
  return (_jsx("div", { class: "ui5-list-root", onFocusIn: this._onfocusin, onKeyDown: this._onkeydown, onDragEnter: this._ondragenter, onDragOver: this._ondragover, onDrop: this._ondrop, onDragLeave: this._ondragleave, "onui5-_close": this.onItemClose, "onui5-toggle": this.onItemToggle, "onui5-request-tabindex-change": this.onItemTabIndexChange, "onui5-_focused": this.onItemFocused, "onui5-forward-after": this.onForwardAfter, "onui5-forward-before": this.onForwardBefore, "onui5-selection-requested": this.onSelectionRequested, "onui5-focus-requested": this.onFocusRequested, "onui5-_press": this.onItemPress, children: _jsxs(BusyIndicator, { id: `${this._id}-busyIndicator`, delay: this.loadingDelay, active: this.showBusyIndicatorOverlay, class: "ui5-list-busy-indicator", children: [_jsxs("div", { class: "ui5-list-container", children: [this.header.length > 0 && _jsx("slot", { name: "header" }), this.shouldRenderH1 &&
6
6
  _jsx("header", { id: this.headerID, class: "ui5-list-header", children: this.headerText }), _jsxs("div", { class: "ui5-list-scroll-container", children: [_jsx("span", { tabindex: -1, "aria-hidden": "true", class: "ui5-list-start-marker" }), this.hasData &&
7
7
  _jsx("div", { id: `${this._id}-before`, tabindex: 0, role: "none", class: "ui5-list-focusarea" }), _jsx("span", { id: `${this._id}-modeLabel`, class: "ui5-hidden-text", children: this.ariaLabelModeText }), _jsxs("ul", { id: `${this._id}-listUl`, class: "ui5-list-ul", role: this.listAccessibleRole, "aria-label": this.ariaLabelTxt, "aria-labelledby": this.ariaLabelledBy, "aria-description": this.ariaDescriptionText || undefined, children: [_jsx("slot", {}), this.showNoDataText &&
8
- _jsx("li", { tabindex: 0, id: `${this._id}-nodata`, class: "ui5-list-nodata", role: "listitem", children: _jsx("div", { id: `${this._id}-nodata-text`, class: "ui5-list-nodata-text", children: this.noDataText }) })] }), this.growsWithButton && moreRow.call(this), this.footerText &&
8
+ _jsx("li", { tabindex: 0, id: `${this._id}-nodata`, class: "ui5-list-nodata", role: this.noDataItemRole, children: _jsx("div", { id: `${this._id}-nodata-text`, class: "ui5-list-nodata-text", children: this.noDataText }) })] }), this.growsWithButton && moreRow.call(this), this.footerText &&
9
9
  _jsx("footer", { id: `${this._id}-footer`, class: "ui5-list-footer", children: this.footerText }), this.hasData &&
10
10
  _jsx("div", { id: `${this._id}-after`, tabindex: 0, role: "none", class: "ui5-list-focusarea" }), _jsx("span", { tabindex: -1, "aria-hidden": "true", class: "ui5-list-end-marker" })] })] }), _jsx(DropIndicator, { orientation: "Horizontal", ownerReference: this })] }) }));
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListTemplate.js","sourceRoot":"","sources":["../src/ListTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import BusyIndicator from \"./BusyIndicator.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport type List from \"./List.js\";\n\nexport default function ListTemplate(this: List) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-list-root\"\n\t\t\tonFocusIn={this._onfocusin}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonDragEnter={this._ondragenter}\n\t\t\tonDragOver={this._ondragover}\n\t\t\tonDrop={this._ondrop}\n\t\t\tonDragLeave={this._ondragleave}\n\t\t\t// events bubbling from slotted items\n\t\t\tonui5-_close={this.onItemClose}\n\t\t\tonui5-toggle={this.onItemToggle}\n\t\t\tonui5-request-tabindex-change={this.onItemTabIndexChange}\n\t\t\tonui5-_focused={this.onItemFocused}\n\t\t\tonui5-forward-after={this.onForwardAfter}\n\t\t\tonui5-forward-before={this.onForwardBefore}\n\t\t\tonui5-selection-requested={this.onSelectionRequested}\n\t\t\tonui5-focus-requested={this.onFocusRequested}\n\t\t\tonui5-_press={this.onItemPress}\n\t\t>\n\t\t\t<BusyIndicator\n\t\t\t\tid={`${this._id}-busyIndicator`}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tactive={this.showBusyIndicatorOverlay}\n\t\t\t\tclass=\"ui5-list-busy-indicator\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-list-container\">\n\n\t\t\t\t\t{this.header.length > 0 && <slot name=\"header\" />}\n\n\t\t\t\t\t{this.shouldRenderH1 &&\n\t\t\t\t\t\t<header id={this.headerID} class=\"ui5-list-header\">\n\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t</header>\n\t\t\t\t\t}\n\n\t\t\t\t\t<div class=\"ui5-list-scroll-container\">\n\t\t\t\t\t\t<span tabindex={-1} aria-hidden=\"true\" class=\"ui5-list-start-marker\"></span>\n\n\t\t\t\t\t\t{this.hasData &&\n\t\t\t\t\t\t\t<div id={`${this._id}-before`} tabindex={0} role=\"none\" class=\"ui5-list-focusarea\"></div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t<span id={`${this._id}-modeLabel`} class=\"ui5-hidden-text\">{this.ariaLabelModeText}</span>\n\n\t\t\t\t\t\t<ul id={`${this._id}-listUl`}\n\t\t\t\t\t\t\tclass=\"ui5-list-ul\"\n\t\t\t\t\t\t\trole={this.listAccessibleRole}\n\t\t\t\t\t\t\taria-label={this.ariaLabelTxt}\n\t\t\t\t\t\t\taria-labelledby={this.ariaLabelledBy}\n\t\t\t\t\t\t\taria-description={this.ariaDescriptionText || undefined}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\n\t\t\t\t\t\t\t{this.showNoDataText &&\n\t\t\t\t\t\t\t\t<li tabindex={0} id={`${this._id}-nodata`} class=\"ui5-list-nodata\" role=\"listitem\">\n\t\t\t\t\t\t\t\t\t<div id={`${this._id}-nodata-text`} class=\"ui5-list-nodata-text\">\n\t\t\t\t\t\t\t\t\t\t{this.noDataText}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t{ this.growsWithButton && moreRow.call(this) }\n\n\t\t\t\t\t\t{this.footerText &&\n\t\t\t\t\t\t\t<footer id={`${this._id}-footer`} class=\"ui5-list-footer\">{this.footerText}</footer>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{this.hasData &&\n\t\t\t\t\t\t\t<div id={`${this._id}-after`} tabindex={0} role=\"none\" class=\"ui5-list-focusarea\"></div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<span tabindex={-1} aria-hidden=\"true\" class=\"ui5-list-end-marker\"></span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<DropIndicator orientation=\"Horizontal\" ownerReference={this}/>\n\t\t\t</BusyIndicator>\n\t\t</div>\n\t);\n}\n\nfunction moreRow(this: List) {\n\treturn (\n\t\t<div class=\"ui5-growing-button\" part=\"growing-button\">\n\t\t\t<div\n\t\t\t\tid={`${this._id}-growing-btn`}\n\t\t\t\trole=\"button\"\n\t\t\t\ttabindex={0}\n\t\t\t\tpart=\"growing-button-inner\"\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-growing-button-inner\": true,\n\t\t\t\t\t\"ui5-growing-button-inner-active\": this._loadMoreActive,\n\t\t\t\t}}\n\t\t\t\taria-label={this.growingButtonAriaLabel}\n\t\t\t\taria-labelledby={this.growingButtonAriaLabelledBy}\n\t\t\t\taria-describedby={this.growingButtonAriaDescribedBy}\n\t\t\t\tonClick={this._onLoadMoreClick}\n\t\t\t\tonKeyDown={this._onLoadMoreKeydown}\n\t\t\t\tonKeyUp={this._onLoadMoreKeyup}\n\t\t\t\tonMouseDown={this._onLoadMoreMousedown}\n\t\t\t\tonMouseUp={this._onLoadMoreMouseup}\n\t\t\t>\n\t\t\t\t{this.loading &&\n\t\t\t\t\t<BusyIndicator\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tpart=\"growing-button-busy-indicator\"\n\t\t\t\t\t\tclass=\"ui5-list-growing-button-busy-indicator\"\n\t\t\t\t\t\tactive>\n\t\t\t\t\t</BusyIndicator>\n\t\t\t\t}\n\t\t\t\t<span id={`${this._id}-growingButton-text`} class=\"ui5-growing-button-text\" growing-button-text>\n\t\t\t\t\t{this._growingButtonText}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t{this.accessibilityAttributes.growingButton?.description &&\n\t\t\t\t<span id={`${this._id}-growingButton-description`} class=\"ui5-hidden-text\">\n\t\t\t\t\t{this.accessibilityAttributes.growingButton.description}\n\t\t\t\t</span>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"ListTemplate.js","sourceRoot":"","sources":["../src/ListTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import BusyIndicator from \"./BusyIndicator.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport type List from \"./List.js\";\n\nexport default function ListTemplate(this: List) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-list-root\"\n\t\t\tonFocusIn={this._onfocusin}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonDragEnter={this._ondragenter}\n\t\t\tonDragOver={this._ondragover}\n\t\t\tonDrop={this._ondrop}\n\t\t\tonDragLeave={this._ondragleave}\n\t\t\t// events bubbling from slotted items\n\t\t\tonui5-_close={this.onItemClose}\n\t\t\tonui5-toggle={this.onItemToggle}\n\t\t\tonui5-request-tabindex-change={this.onItemTabIndexChange}\n\t\t\tonui5-_focused={this.onItemFocused}\n\t\t\tonui5-forward-after={this.onForwardAfter}\n\t\t\tonui5-forward-before={this.onForwardBefore}\n\t\t\tonui5-selection-requested={this.onSelectionRequested}\n\t\t\tonui5-focus-requested={this.onFocusRequested}\n\t\t\tonui5-_press={this.onItemPress}\n\t\t>\n\t\t\t<BusyIndicator\n\t\t\t\tid={`${this._id}-busyIndicator`}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tactive={this.showBusyIndicatorOverlay}\n\t\t\t\tclass=\"ui5-list-busy-indicator\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-list-container\">\n\n\t\t\t\t\t{this.header.length > 0 && <slot name=\"header\" />}\n\n\t\t\t\t\t{this.shouldRenderH1 &&\n\t\t\t\t\t\t<header id={this.headerID} class=\"ui5-list-header\">\n\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t</header>\n\t\t\t\t\t}\n\n\t\t\t\t\t<div class=\"ui5-list-scroll-container\">\n\t\t\t\t\t\t<span tabindex={-1} aria-hidden=\"true\" class=\"ui5-list-start-marker\"></span>\n\n\t\t\t\t\t\t{this.hasData &&\n\t\t\t\t\t\t\t<div id={`${this._id}-before`} tabindex={0} role=\"none\" class=\"ui5-list-focusarea\"></div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t<span id={`${this._id}-modeLabel`} class=\"ui5-hidden-text\">{this.ariaLabelModeText}</span>\n\n\t\t\t\t\t\t<ul id={`${this._id}-listUl`}\n\t\t\t\t\t\t\tclass=\"ui5-list-ul\"\n\t\t\t\t\t\t\trole={this.listAccessibleRole}\n\t\t\t\t\t\t\taria-label={this.ariaLabelTxt}\n\t\t\t\t\t\t\taria-labelledby={this.ariaLabelledBy}\n\t\t\t\t\t\t\taria-description={this.ariaDescriptionText || undefined}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\n\t\t\t\t\t\t\t{this.showNoDataText &&\n\t\t\t\t\t\t\t\t<li tabindex={0} id={`${this._id}-nodata`} class=\"ui5-list-nodata\" role={this.noDataItemRole as any}>\n\t\t\t\t\t\t\t\t\t<div id={`${this._id}-nodata-text`} class=\"ui5-list-nodata-text\">\n\t\t\t\t\t\t\t\t\t\t{this.noDataText}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t{ this.growsWithButton && moreRow.call(this) }\n\n\t\t\t\t\t\t{this.footerText &&\n\t\t\t\t\t\t\t<footer id={`${this._id}-footer`} class=\"ui5-list-footer\">{this.footerText}</footer>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{this.hasData &&\n\t\t\t\t\t\t\t<div id={`${this._id}-after`} tabindex={0} role=\"none\" class=\"ui5-list-focusarea\"></div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<span tabindex={-1} aria-hidden=\"true\" class=\"ui5-list-end-marker\"></span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<DropIndicator orientation=\"Horizontal\" ownerReference={this}/>\n\t\t\t</BusyIndicator>\n\t\t</div>\n\t);\n}\n\nfunction moreRow(this: List) {\n\treturn (\n\t\t<div class=\"ui5-growing-button\" part=\"growing-button\">\n\t\t\t<div\n\t\t\t\tid={`${this._id}-growing-btn`}\n\t\t\t\trole=\"button\"\n\t\t\t\ttabindex={0}\n\t\t\t\tpart=\"growing-button-inner\"\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-growing-button-inner\": true,\n\t\t\t\t\t\"ui5-growing-button-inner-active\": this._loadMoreActive,\n\t\t\t\t}}\n\t\t\t\taria-label={this.growingButtonAriaLabel}\n\t\t\t\taria-labelledby={this.growingButtonAriaLabelledBy}\n\t\t\t\taria-describedby={this.growingButtonAriaDescribedBy}\n\t\t\t\tonClick={this._onLoadMoreClick}\n\t\t\t\tonKeyDown={this._onLoadMoreKeydown}\n\t\t\t\tonKeyUp={this._onLoadMoreKeyup}\n\t\t\t\tonMouseDown={this._onLoadMoreMousedown}\n\t\t\t\tonMouseUp={this._onLoadMoreMouseup}\n\t\t\t>\n\t\t\t\t{this.loading &&\n\t\t\t\t\t<BusyIndicator\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tpart=\"growing-button-busy-indicator\"\n\t\t\t\t\t\tclass=\"ui5-list-growing-button-busy-indicator\"\n\t\t\t\t\t\tactive>\n\t\t\t\t\t</BusyIndicator>\n\t\t\t\t}\n\t\t\t\t<span id={`${this._id}-growingButton-text`} class=\"ui5-growing-button-text\" growing-button-text>\n\t\t\t\t\t{this._growingButtonText}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t{this.accessibilityAttributes.growingButton?.description &&\n\t\t\t\t<span id={`${this._id}-growingButton-description`} class=\"ui5-hidden-text\">\n\t\t\t\t\t{this.accessibilityAttributes.growingButton.description}\n\t\t\t\t</span>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
package/dist/Menu.d.ts CHANGED
@@ -163,6 +163,7 @@ declare class Menu extends UI5Element {
163
163
  onBeforeRendering(): void;
164
164
  getFocusDomRef(): HTMLElement | undefined;
165
165
  _setupItemNavigation(): void;
166
+ _updatePageSize(): void;
166
167
  _close(): void;
167
168
  _openItemSubMenu(item: MenuItem, openedByMouse?: boolean): void;
168
169
  _itemMouseOver(e: MouseEvent): void;
package/dist/Menu.js CHANGED
@@ -184,6 +184,23 @@ let Menu = Menu_1 = class Menu extends UI5Element {
184
184
  this._list._itemNavigation._getItems = () => this._navigatableMenuItems;
185
185
  }
186
186
  }
187
+ _updatePageSize() {
188
+ const list = this._list;
189
+ if (!list) {
190
+ return;
191
+ }
192
+ const firstItem = this._navigatableMenuItems[0];
193
+ if (!firstItem) {
194
+ return;
195
+ }
196
+ const itemHeight = firstItem.offsetHeight;
197
+ if (itemHeight === 0) {
198
+ return;
199
+ }
200
+ const popoverHeight = this._popover.getBoundingClientRect().height;
201
+ const visibleCount = Math.round(popoverHeight / itemHeight);
202
+ list._itemNavigation._skipItemsSize = visibleCount > 1 ? visibleCount - 1 : null;
203
+ }
187
204
  _close() {
188
205
  this.open = false;
189
206
  }
@@ -298,6 +315,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
298
315
  }
299
316
  _afterPopoverOpen() {
300
317
  this._allMenuItems[0]?.focus();
318
+ this._updatePageSize();
301
319
  if (this.loading) {
302
320
  announce(Menu_1.i18nBundle.getText(MENU_ITEM_LOADING), InvisibleMessageMode.Polite);
303
321
  }
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 type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ListItemBaseClickEventDetail } from \"./ListItemBase.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-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisTabNext,\n\tisTabPrevious,\n\tisShow,\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 announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type List from \"./List.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type MenuItem from \"./MenuItem.js\";\n// The import below should be kept, as MenuItem is part of the Menu component.\nimport { isInstanceOfMenuItem } from \"./MenuItem.js\";\nimport { isInstanceOfMenuItemGroup } from \"./MenuItemGroup.js\";\nimport { isInstanceOfMenuSeparator } from \"./MenuSeparator.js\";\nimport { isInstanceOfSplitButton } from \"./SplitButton.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./MenuTemplate.js\";\nimport {\n\tMENU_CANCEL_BUTTON_TEXT,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n\tMENU_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport menuCss from \"./generated/themes/Menu.css.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\n/**\n * Interface for components that may be slotted inside a `ui5-menu`.\n *\n * **Note:** Use with `ui5-menu-item` or `ui5-menu-separator`. Implementing the interface does not guarantee that any other classes can work with the `ui5-menu`.\n * @public\n */\ninterface IMenuItem extends UI5Element {\n\tisMenuItem?: boolean;\n\tisSeparator?: boolean;\n\tisGroup?: boolean;\n\teventDetails: { click?: ListItemBaseClickEventDetail };\n}\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Structure\n *\n * The `ui5-menu` can hold two types of entities:\n *\n * - `ui5-menu-item` components\n * - `ui5-menu-separator` - used to separate menu items with a line\n *\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-menu` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the menu items that are currently visible.\n * - `Arrow Right`, `Space` or `Enter` - Opens a sub-menu if there are menu items nested\n * in the currently clicked menu item.\n * - `Arrow Left` or `Escape` - Closes the currently opened sub-menu.\n *\n * when there is `endContent` :\n * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items\n *\n * **Note:** If the text direction is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.\n *\n * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot\n * have the correct accessibility behaviour, including their enabled or disabled states.\n * The menu does not manage these aspects when the menu item state changes.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Menu.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu\",\n\trenderer: jsxRenderer,\n\tstyles: menuCss,\n\ttemplate: menuTemplate,\n})\n\n/**\n * Fired when an item is being clicked.\n *\n * **Note:** Since 1.17.0 the event is preventable, allowing the menu to remain open after an item is pressed.\n * @param { HTMLElement } item The currently clicked menu item.\n * @param { string } text The text of the currently clicked menu item.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The `ui5-menu-item` that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n * @since 1.10.0\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\nclass Menu extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": MenuItemClickEventDetail,\n\t\t\"before-open\": MenuBeforeOpenEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": MenuBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"close-menu\": void,\n\t}\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Indicates if the menu is open.\n\t * @public\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Determines on which side the component is placed at.\n\t * @default \"Bottom\"\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\tplacement: `${PopoverPlacement}` = \"Bottom\";\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 | null;\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!: DefaultSlot<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 labelCancel() {\n\t\treturn Menu.i18nBundle.getText(MENU_CANCEL_BUTTON_TEXT);\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\tget _list() {\n\t\treturn this.shadowRoot!.querySelector<List>(\"[ui5-list]\");\n\t}\n\n\tget _opener() {\n\t\treturn typeof this.opener === \"string\" ? document.getElementById(this.opener) : this.opener;\n\t}\n\n\t/** Returns menu item groups */\n\tget _menuItemGroups() {\n\t\treturn this.items.filter(isInstanceOfMenuItemGroup);\n\t}\n\n\t/** Returns menu items */\n\tget _menuItems() {\n\t\treturn this.items.filter(isInstanceOfMenuItem);\n\t}\n\n\t/** Returns all menu items (including those in groups */\n\tget _allMenuItems() {\n\t\tconst items: MenuItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<IMenuItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMenuItemGroup(item)) {\n\t\t\t\titems.push(...item._menuItems);\n\t\t\t} else if (!isInstanceOfMenuSeparator(item)) {\n\t\t\t\titems.push(item as MenuItem);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t/** Returns menu items included in the ItemNavigation */\n\tget _navigatableMenuItems() {\n\t\tconst items: MenuItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<MenuItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMenuItemGroup(item)) {\n\t\t\t\tconst groupItems = item.getSlottedNodes<MenuItem>(\"items\");\n\t\t\t\titems.push(...groupItems);\n\t\t\t} else if (!isInstanceOfMenuSeparator(item)) {\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\tget accessibleNameText() {\n\t\treturn Menu.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this._allMenuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._setupItemNavigation();\n\n\t\tthis._allMenuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._list?.getFocusDomRef();\n\t}\n\n\t_setupItemNavigation() {\n\t\tif (this._list) {\n\t\t\tthis._list._itemNavigation._getItems = () => this._navigatableMenuItems;\n\t\t}\n\t}\n\n\t_close() {\n\t\tthis.open = false;\n\t}\n\n\t_openItemSubMenu(item: MenuItem, openedByMouse = false) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\", {\n\t\t\titem,\n\t\t});\n\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t\titem._openedByMouse = openedByMouse;\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = e.target as MenuItem;\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.getFocusDomRef()?.focus();\n\n\t\t// Opens submenu with 300ms delay\n\t\tthis._startOpenTimeout(item);\n\t}\n\n\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\t\tconst firstMenuItem = this._allMenuItems[0];\n\n\t\tif (firstMenuItem) {\n\t\t\treturn firstMenuItem.focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\t_closeOtherSubMenus(item: MenuItem) {\n\t\tconst menuItems = this._allMenuItems;\n\t\tif (!menuItems.includes(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tmenuItems.forEach(menuItem => {\n\t\t\tif (menuItem !== item) {\n\t\t\t\tmenuItem._close();\n\t\t\t}\n\t\t});\n\t}\n\n\t_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeOtherSubMenus(item);\n\n\t\t\tthis._openItemSubMenu(item, true);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as MenuItem;\n\n\t\tif (!item._popover) {\n\t\t\tconst prevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t});\n\n\t\t\tif (!prevented) {\n\t\t\t\titem._updateCheckedState();\n\t\t\t\tthis._popover && !item._shiftPressed && item.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst isShowKey = isShow(e);\n\t\tconst isSplitButton = this._opener && isInstanceOfSplitButton(this._opener);\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isEndContentNavigation = isRight(e) || isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\n\t\tif (isEnter(e) || isTabNextPrevious || (isShowKey && isSplitButton)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEndContentNavigation) {\n\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t}\n\n\t\tif (shouldOpenMenu) {\n\t\t\tthis._openItemSubMenu(item, false);\n\t\t} else if (isTabNextPrevious || (isShowKey && isSplitButton)) {\n\t\t\tthis._close();\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(e: CustomEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;\n\t\tconst menuItems = this._allMenuItems;\n\t\tconst itemIndex = menuItems.indexOf(item);\n\n\t\tif (itemIndex > -1) {\n\t\t\tconst nextItem = shouldNavigateToNextItem ? menuItems[itemIndex + 1] : menuItems[itemIndex - 1];\n\t\t\tconst itemToFocus = nextItem || menuItems[itemIndex];\n\t\t\titemToFocus?.focus();\n\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis._allMenuItems[0]?.focus();\n\t\tif (this.loading) {\n\t\t\tannounce(Menu.i18nBundle.getText(MENU_ITEM_LOADING), InvisibleMessageMode.Polite);\n\t\t}\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_beforePopoverClose(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: e.detail.escPressed });\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ListItemBaseClickEventDetail } from \"./ListItemBase.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-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisTabNext,\n\tisTabPrevious,\n\tisShow,\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 announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type List from \"./List.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type MenuItem from \"./MenuItem.js\";\n// The import below should be kept, as MenuItem is part of the Menu component.\nimport { isInstanceOfMenuItem } from \"./MenuItem.js\";\nimport { isInstanceOfMenuItemGroup } from \"./MenuItemGroup.js\";\nimport { isInstanceOfMenuSeparator } from \"./MenuSeparator.js\";\nimport { isInstanceOfSplitButton } from \"./SplitButton.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./MenuTemplate.js\";\nimport {\n\tMENU_CANCEL_BUTTON_TEXT,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n\tMENU_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport menuCss from \"./generated/themes/Menu.css.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\n/**\n * Interface for components that may be slotted inside a `ui5-menu`.\n *\n * **Note:** Use with `ui5-menu-item` or `ui5-menu-separator`. Implementing the interface does not guarantee that any other classes can work with the `ui5-menu`.\n * @public\n */\ninterface IMenuItem extends UI5Element {\n\tisMenuItem?: boolean;\n\tisSeparator?: boolean;\n\tisGroup?: boolean;\n\teventDetails: { click?: ListItemBaseClickEventDetail };\n}\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Structure\n *\n * The `ui5-menu` can hold two types of entities:\n *\n * - `ui5-menu-item` components\n * - `ui5-menu-separator` - used to separate menu items with a line\n *\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-menu` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the menu items that are currently visible.\n * - `Arrow Right`, `Space` or `Enter` - Opens a sub-menu if there are menu items nested\n * in the currently clicked menu item.\n * - `Arrow Left` or `Escape` - Closes the currently opened sub-menu.\n *\n * when there is `endContent` :\n * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items\n *\n * **Note:** If the text direction is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.\n *\n * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot\n * have the correct accessibility behaviour, including their enabled or disabled states.\n * The menu does not manage these aspects when the menu item state changes.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Menu.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu\",\n\trenderer: jsxRenderer,\n\tstyles: menuCss,\n\ttemplate: menuTemplate,\n})\n\n/**\n * Fired when an item is being clicked.\n *\n * **Note:** Since 1.17.0 the event is preventable, allowing the menu to remain open after an item is pressed.\n * @param { HTMLElement } item The currently clicked menu item.\n * @param { string } text The text of the currently clicked menu item.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The `ui5-menu-item` that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n * @since 1.10.0\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\nclass Menu extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": MenuItemClickEventDetail,\n\t\t\"before-open\": MenuBeforeOpenEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": MenuBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"close-menu\": void,\n\t}\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Indicates if the menu is open.\n\t * @public\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Determines on which side the component is placed at.\n\t * @default \"Bottom\"\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\tplacement: `${PopoverPlacement}` = \"Bottom\";\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 | null;\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!: DefaultSlot<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 labelCancel() {\n\t\treturn Menu.i18nBundle.getText(MENU_CANCEL_BUTTON_TEXT);\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\tget _list() {\n\t\treturn this.shadowRoot!.querySelector<List>(\"[ui5-list]\");\n\t}\n\n\tget _opener() {\n\t\treturn typeof this.opener === \"string\" ? document.getElementById(this.opener) : this.opener;\n\t}\n\n\t/** Returns menu item groups */\n\tget _menuItemGroups() {\n\t\treturn this.items.filter(isInstanceOfMenuItemGroup);\n\t}\n\n\t/** Returns menu items */\n\tget _menuItems() {\n\t\treturn this.items.filter(isInstanceOfMenuItem);\n\t}\n\n\t/** Returns all menu items (including those in groups */\n\tget _allMenuItems() {\n\t\tconst items: MenuItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<IMenuItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMenuItemGroup(item)) {\n\t\t\t\titems.push(...item._menuItems);\n\t\t\t} else if (!isInstanceOfMenuSeparator(item)) {\n\t\t\t\titems.push(item as MenuItem);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t/** Returns menu items included in the ItemNavigation */\n\tget _navigatableMenuItems() {\n\t\tconst items: MenuItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<MenuItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMenuItemGroup(item)) {\n\t\t\t\tconst groupItems = item.getSlottedNodes<MenuItem>(\"items\");\n\t\t\t\titems.push(...groupItems);\n\t\t\t} else if (!isInstanceOfMenuSeparator(item)) {\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\tget accessibleNameText() {\n\t\treturn Menu.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this._allMenuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._setupItemNavigation();\n\n\t\tthis._allMenuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._list?.getFocusDomRef();\n\t}\n\n\t_setupItemNavigation() {\n\t\tif (this._list) {\n\t\t\tthis._list._itemNavigation._getItems = () => this._navigatableMenuItems;\n\t\t}\n\t}\n\n\t_updatePageSize() {\n\t\tconst list = this._list;\n\t\tif (!list) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstItem = this._navigatableMenuItems[0];\n\t\tif (!firstItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemHeight = firstItem.offsetHeight;\n\t\tif (itemHeight === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst popoverHeight = this._popover.getBoundingClientRect().height;\n\t\tconst visibleCount = Math.round(popoverHeight / itemHeight);\n\t\tlist._itemNavigation._skipItemsSize = visibleCount > 1 ? visibleCount - 1 : null;\n\t}\n\n\t_close() {\n\t\tthis.open = false;\n\t}\n\n\t_openItemSubMenu(item: MenuItem, openedByMouse = false) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\", {\n\t\t\titem,\n\t\t});\n\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t\titem._openedByMouse = openedByMouse;\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = e.target as MenuItem;\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.getFocusDomRef()?.focus();\n\n\t\t// Opens submenu with 300ms delay\n\t\tthis._startOpenTimeout(item);\n\t}\n\n\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\t\tconst firstMenuItem = this._allMenuItems[0];\n\n\t\tif (firstMenuItem) {\n\t\t\treturn firstMenuItem.focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\t_closeOtherSubMenus(item: MenuItem) {\n\t\tconst menuItems = this._allMenuItems;\n\t\tif (!menuItems.includes(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tmenuItems.forEach(menuItem => {\n\t\t\tif (menuItem !== item) {\n\t\t\t\tmenuItem._close();\n\t\t\t}\n\t\t});\n\t}\n\n\t_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeOtherSubMenus(item);\n\n\t\t\tthis._openItemSubMenu(item, true);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as MenuItem;\n\n\t\tif (!item._popover) {\n\t\t\tconst prevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t});\n\n\t\t\tif (!prevented) {\n\t\t\t\titem._updateCheckedState();\n\t\t\t\tthis._popover && !item._shiftPressed && item.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst isShowKey = isShow(e);\n\t\tconst isSplitButton = this._opener && isInstanceOfSplitButton(this._opener);\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isEndContentNavigation = isRight(e) || isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\n\t\tif (isEnter(e) || isTabNextPrevious || (isShowKey && isSplitButton)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEndContentNavigation) {\n\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t}\n\n\t\tif (shouldOpenMenu) {\n\t\t\tthis._openItemSubMenu(item, false);\n\t\t} else if (isTabNextPrevious || (isShowKey && isSplitButton)) {\n\t\t\tthis._close();\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(e: CustomEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;\n\t\tconst menuItems = this._allMenuItems;\n\t\tconst itemIndex = menuItems.indexOf(item);\n\n\t\tif (itemIndex > -1) {\n\t\t\tconst nextItem = shouldNavigateToNextItem ? menuItems[itemIndex + 1] : menuItems[itemIndex - 1];\n\t\t\tconst itemToFocus = nextItem || menuItems[itemIndex];\n\t\t\titemToFocus?.focus();\n\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis._allMenuItems[0]?.focus();\n\t\tthis._updatePageSize();\n\t\tif (this.loading) {\n\t\t\tannounce(Menu.i18nBundle.getText(MENU_ITEM_LOADING), InvisibleMessageMode.Polite);\n\t\t}\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_beforePopoverClose(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: e.detail.escPressed });\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
@@ -208,6 +208,9 @@ declare class MultiComboBox extends UI5Element implements IFormInputElement {
208
208
  filter: `${ComboBoxFilter}`;
209
209
  /**
210
210
  * Defines whether the clear icon of the multi-combobox will be shown.
211
+ *
212
+ * **Note:** The clear icon is only visible when there is text typed by the user
213
+ * and only clears the typed value, not the selected tokens.
211
214
  * @default false
212
215
  * @public
213
216
  * @since 1.20.1
@@ -204,6 +204,9 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
204
204
  this.filter = "StartsWithPerTerm";
205
205
  /**
206
206
  * Defines whether the clear icon of the multi-combobox will be shown.
207
+ *
208
+ * **Note:** The clear icon is only visible when there is text typed by the user
209
+ * and only clears the typed value, not the selected tokens.
207
210
  * @default false
208
211
  * @public
209
212
  * @since 1.20.1