@ui5/webcomponents 2.25.0-rc.0 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/CarouselTemplate.js +1 -1
  4. package/dist/CarouselTemplate.js.map +1 -1
  5. package/dist/ComboBox.d.ts +1 -0
  6. package/dist/ComboBox.js +8 -1
  7. package/dist/ComboBox.js.map +1 -1
  8. package/dist/DayPicker.d.ts +4 -2
  9. package/dist/DayPicker.js +15 -11
  10. package/dist/DayPicker.js.map +1 -1
  11. package/dist/DynamicDateRange.d.ts +11 -0
  12. package/dist/DynamicDateRange.js +12 -0
  13. package/dist/DynamicDateRange.js.map +1 -1
  14. package/dist/DynamicDateRangeInputTemplate.js +1 -1
  15. package/dist/DynamicDateRangeInputTemplate.js.map +1 -1
  16. package/dist/FileUploader.js +1 -2
  17. package/dist/FileUploader.js.map +1 -1
  18. package/dist/FileUploaderTemplate.js +1 -1
  19. package/dist/FileUploaderTemplate.js.map +1 -1
  20. package/dist/IToolbarArrowNavProvider.d.ts +32 -0
  21. package/dist/IToolbarArrowNavProvider.js +4 -0
  22. package/dist/IToolbarArrowNavProvider.js.map +1 -0
  23. package/dist/Input.d.ts +3 -1
  24. package/dist/Input.js +18 -0
  25. package/dist/Input.js.map +1 -1
  26. package/dist/InputIcon.d.ts +64 -0
  27. package/dist/InputIcon.js +118 -0
  28. package/dist/InputIcon.js.map +1 -0
  29. package/dist/InputIconTemplate.d.ts +2 -0
  30. package/dist/InputIconTemplate.js +11 -0
  31. package/dist/InputIconTemplate.js.map +1 -0
  32. package/dist/ListItemCustom.js.map +1 -1
  33. package/dist/MenuItem.js +1 -1
  34. package/dist/MenuItem.js.map +1 -1
  35. package/dist/MenuSeparator.d.ts +7 -14
  36. package/dist/MenuSeparator.js +5 -24
  37. package/dist/MenuSeparator.js.map +1 -1
  38. package/dist/MenuSeparatorTemplate.js +1 -2
  39. package/dist/MenuSeparatorTemplate.js.map +1 -1
  40. package/dist/MultiComboBox.js +8 -3
  41. package/dist/MultiComboBox.js.map +1 -1
  42. package/dist/MultiComboBoxItem.d.ts +1 -0
  43. package/dist/MultiComboBoxItem.js +7 -1
  44. package/dist/MultiComboBoxItem.js.map +1 -1
  45. package/dist/MultiComboBoxItemTemplate.js +4 -2
  46. package/dist/MultiComboBoxItemTemplate.js.map +1 -1
  47. package/dist/MultiInput.js +1 -0
  48. package/dist/MultiInput.js.map +1 -1
  49. package/dist/RangeSlider.js +1 -1
  50. package/dist/RangeSlider.js.map +1 -1
  51. package/dist/RatingIndicator.d.ts +2 -0
  52. package/dist/RatingIndicator.js +2 -0
  53. package/dist/RatingIndicator.js.map +1 -1
  54. package/dist/Slider.js +3 -0
  55. package/dist/Slider.js.map +1 -1
  56. package/dist/SliderBase.d.ts +6 -0
  57. package/dist/SliderBase.js +8 -0
  58. package/dist/SliderBase.js.map +1 -1
  59. package/dist/SliderTemplate.js +1 -1
  60. package/dist/SliderTemplate.js.map +1 -1
  61. package/dist/Table.js +4 -2
  62. package/dist/Table.js.map +1 -1
  63. package/dist/Toolbar.d.ts +40 -3
  64. package/dist/Toolbar.js +225 -6
  65. package/dist/Toolbar.js.map +1 -1
  66. package/dist/ToolbarItem.d.ts +30 -0
  67. package/dist/ToolbarItem.js +202 -0
  68. package/dist/ToolbarItem.js.map +1 -1
  69. package/dist/ToolbarItemBase.d.ts +10 -0
  70. package/dist/ToolbarItemBase.js +19 -0
  71. package/dist/ToolbarItemBase.js.map +1 -1
  72. package/dist/ToolbarSelect.d.ts +4 -2
  73. package/dist/ToolbarSelect.js +7 -4
  74. package/dist/ToolbarSelect.js.map +1 -1
  75. package/dist/ToolbarSelectOption.d.ts +7 -0
  76. package/dist/ToolbarSelectOption.js +4 -1
  77. package/dist/ToolbarSelectOption.js.map +1 -1
  78. package/dist/ToolbarSelectTemplate.js +1 -1
  79. package/dist/ToolbarSelectTemplate.js.map +1 -1
  80. package/dist/TreeItemBase.js.map +1 -1
  81. package/dist/bundle.esm.js +1 -0
  82. package/dist/bundle.esm.js.map +1 -1
  83. package/dist/css/themes/ColorPalette.css +1 -1
  84. package/dist/css/themes/ComboBox.css +1 -1
  85. package/dist/css/themes/DatePicker.css +1 -1
  86. package/dist/css/themes/DynamicDateRange.css +1 -1
  87. package/dist/css/themes/FileUploader.css +1 -1
  88. package/dist/css/themes/Input.css +1 -1
  89. package/dist/css/themes/InputIcon.css +1 -1
  90. package/dist/css/themes/MultiComboBox.css +1 -1
  91. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  92. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  93. package/dist/css/themes/MultiInput.css +1 -1
  94. package/dist/css/themes/Select.css +1 -1
  95. package/dist/css/themes/StepInput.css +1 -1
  96. package/dist/css/themes/TimePicker.css +1 -1
  97. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  98. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +1 -1
  99. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  100. package/dist/custom-elements-internal.json +157 -40
  101. package/dist/custom-elements.json +140 -25
  102. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  153. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  156. package/dist/generated/i18n/i18n-defaults.js +1 -1
  157. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  158. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  159. package/dist/generated/themes/ColorPalette.css.js +1 -1
  160. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  161. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  162. package/dist/generated/themes/ComboBox.css.js +1 -1
  163. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  164. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  165. package/dist/generated/themes/DatePicker.css.js +1 -1
  166. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  167. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  168. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  169. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  170. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  171. package/dist/generated/themes/FileUploader.css.js +1 -1
  172. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  173. package/dist/generated/themes/Input.css.d.ts +1 -1
  174. package/dist/generated/themes/Input.css.js +1 -1
  175. package/dist/generated/themes/Input.css.js.map +1 -1
  176. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  177. package/dist/generated/themes/InputIcon.css.js +1 -1
  178. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  179. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  180. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  181. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  182. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  183. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  184. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  185. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  186. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  187. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  188. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  189. package/dist/generated/themes/MultiInput.css.js +1 -1
  190. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  191. package/dist/generated/themes/Select.css.d.ts +1 -1
  192. package/dist/generated/themes/Select.css.js +1 -1
  193. package/dist/generated/themes/Select.css.js.map +1 -1
  194. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  195. package/dist/generated/themes/StepInput.css.js +1 -1
  196. package/dist/generated/themes/StepInput.css.js.map +1 -1
  197. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  198. package/dist/generated/themes/TimePicker.css.js +1 -1
  199. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  200. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  201. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  202. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  203. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  204. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +1 -1
  205. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  206. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  207. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  208. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  209. package/dist/vscode.html-custom-data.json +31 -4
  210. package/dist/web-types.json +72 -22
  211. package/package.json +11 -11
  212. package/src/CarouselTemplate.tsx +0 -1
  213. package/src/DynamicDateRangeInputTemplate.tsx +1 -0
  214. package/src/FileUploaderTemplate.tsx +1 -1
  215. package/src/InputIconTemplate.tsx +36 -0
  216. package/src/MenuSeparatorTemplate.tsx +2 -4
  217. package/src/MultiComboBoxItemTemplate.tsx +4 -1
  218. package/src/SliderTemplate.tsx +1 -0
  219. package/src/ToolbarSelectTemplate.tsx +1 -0
  220. package/src/i18n/messagebundle.properties +1 -1
  221. package/src/i18n/messagebundle_ar.properties +6 -1
  222. package/src/i18n/messagebundle_bg.properties +6 -1
  223. package/src/i18n/messagebundle_ca.properties +6 -1
  224. package/src/i18n/messagebundle_cnr.properties +6 -1
  225. package/src/i18n/messagebundle_cs.properties +6 -1
  226. package/src/i18n/messagebundle_cy.properties +6 -1
  227. package/src/i18n/messagebundle_da.properties +6 -1
  228. package/src/i18n/messagebundle_de.properties +6 -1
  229. package/src/i18n/messagebundle_el.properties +6 -1
  230. package/src/i18n/messagebundle_en.properties +6 -1
  231. package/src/i18n/messagebundle_en_GB.properties +6 -1
  232. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -1
  233. package/src/i18n/messagebundle_en_US_saprigi.properties +6 -1
  234. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -1
  235. package/src/i18n/messagebundle_es.properties +6 -1
  236. package/src/i18n/messagebundle_es_MX.properties +6 -1
  237. package/src/i18n/messagebundle_et.properties +6 -1
  238. package/src/i18n/messagebundle_fi.properties +6 -1
  239. package/src/i18n/messagebundle_fr.properties +15 -10
  240. package/src/i18n/messagebundle_fr_CA.properties +6 -1
  241. package/src/i18n/messagebundle_hi.properties +6 -1
  242. package/src/i18n/messagebundle_hr.properties +6 -1
  243. package/src/i18n/messagebundle_hu.properties +6 -1
  244. package/src/i18n/messagebundle_id.properties +6 -1
  245. package/src/i18n/messagebundle_it.properties +6 -1
  246. package/src/i18n/messagebundle_iw.properties +6 -1
  247. package/src/i18n/messagebundle_ja.properties +6 -1
  248. package/src/i18n/messagebundle_kk.properties +6 -1
  249. package/src/i18n/messagebundle_ko.properties +6 -1
  250. package/src/i18n/messagebundle_lt.properties +6 -1
  251. package/src/i18n/messagebundle_lv.properties +6 -1
  252. package/src/i18n/messagebundle_mk.properties +6 -1
  253. package/src/i18n/messagebundle_ms.properties +6 -1
  254. package/src/i18n/messagebundle_nl.properties +6 -1
  255. package/src/i18n/messagebundle_no.properties +6 -1
  256. package/src/i18n/messagebundle_pl.properties +6 -1
  257. package/src/i18n/messagebundle_pt.properties +6 -1
  258. package/src/i18n/messagebundle_pt_PT.properties +6 -1
  259. package/src/i18n/messagebundle_ro.properties +6 -1
  260. package/src/i18n/messagebundle_ru.properties +6 -1
  261. package/src/i18n/messagebundle_sh.properties +6 -1
  262. package/src/i18n/messagebundle_sk.properties +6 -1
  263. package/src/i18n/messagebundle_sl.properties +6 -1
  264. package/src/i18n/messagebundle_sr.properties +6 -1
  265. package/src/i18n/messagebundle_sv.properties +6 -1
  266. package/src/i18n/messagebundle_th.properties +6 -1
  267. package/src/i18n/messagebundle_tr.properties +6 -1
  268. package/src/i18n/messagebundle_uk.properties +6 -1
  269. package/src/i18n/messagebundle_vi.properties +6 -1
  270. package/src/i18n/messagebundle_zh_CN.properties +6 -1
  271. package/src/i18n/messagebundle_zh_TW.properties +6 -1
  272. package/src/themes/ColorPalette.css +1 -0
  273. package/src/themes/DatePicker.css +1 -2
  274. package/src/themes/Input.css +64 -0
  275. package/src/themes/InputIcon.css +44 -8
  276. package/src/themes/MultiComboBoxItem.css +2 -0
  277. package/src/themes/MultiComboBoxPopover.css +16 -6
  278. package/src/themes/sap_horizon/Card-parameters.css +1 -1
  279. package/src/themes/sap_horizon_dark/Card-parameters.css +1 -1
@@ -0,0 +1,118 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
11
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
12
+ import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
13
+ import InputIconTemplate from "./InputIconTemplate.js";
14
+ import inputIconCss from "./generated/themes/InputIcon.css.js";
15
+ import "./Icon.js";
16
+ /**
17
+ * @class
18
+ * ### Overview
19
+ * The `ui5-input-icon` component represents an interactive icon that can be placed inside an `ui5-input` component.
20
+ * Unlike the standard `ui5-icon`, this component provides button-like behavior with hover, focus, and active states,
21
+ * matching the visual style of the input's built-in clear icon.
22
+ *
23
+ * ### Usage
24
+ * Use `ui5-input-icon` for interactive icons that users can click (e.g., search, voice input, camera).
25
+ * For decorative icons, use the standard `ui5-icon` component instead.
26
+ *
27
+ * ### ES6 Module Import
28
+ * `import "@ui5/webcomponents/dist/InputIcon.js";`
29
+ *
30
+ * @constructor
31
+ * @extends UI5Element
32
+ * @public
33
+ * @since 2.25.0
34
+ */
35
+ let InputIcon = class InputIcon extends UI5Element {
36
+ constructor() {
37
+ super(...arguments);
38
+ /**
39
+ * @private
40
+ */
41
+ this._pressed = false;
42
+ /**
43
+ * @private
44
+ */
45
+ this._focused = false;
46
+ }
47
+ _onclick(e) {
48
+ e.stopImmediatePropagation();
49
+ this.fireDecoratorEvent("click");
50
+ }
51
+ _onmousedown() {
52
+ this._pressed = true;
53
+ }
54
+ _onmouseup() {
55
+ this._pressed = false;
56
+ }
57
+ _onmouseleave() {
58
+ this._pressed = false;
59
+ }
60
+ _onfocus() {
61
+ this._focused = true;
62
+ }
63
+ _onblur() {
64
+ this._focused = false;
65
+ this._pressed = false;
66
+ }
67
+ _onkeydown(e) {
68
+ if (isEnter(e) || isSpace(e)) {
69
+ this._pressed = true;
70
+ e.preventDefault(); // Prevent scrolling on Space
71
+ }
72
+ }
73
+ _onkeyup(e) {
74
+ if (isEnter(e) || isSpace(e)) {
75
+ this._pressed = false;
76
+ this.fireDecoratorEvent("click");
77
+ }
78
+ }
79
+ get effectiveAriaLabel() {
80
+ return this.accessibleName || undefined;
81
+ }
82
+ get effectiveTitle() {
83
+ return this.accessibleName || undefined;
84
+ }
85
+ };
86
+ __decorate([
87
+ property()
88
+ ], InputIcon.prototype, "name", void 0);
89
+ __decorate([
90
+ property()
91
+ ], InputIcon.prototype, "accessibleName", void 0);
92
+ __decorate([
93
+ property({ type: Boolean, noAttribute: true })
94
+ ], InputIcon.prototype, "_pressed", void 0);
95
+ __decorate([
96
+ property({ type: Boolean, noAttribute: true })
97
+ ], InputIcon.prototype, "_focused", void 0);
98
+ InputIcon = __decorate([
99
+ customElement({
100
+ tag: "ui5-input-icon",
101
+ renderer: jsxRenderer,
102
+ template: InputIconTemplate,
103
+ styles: inputIconCss,
104
+ languageAware: false,
105
+ themeAware: true,
106
+ })
107
+ /**
108
+ * Fired when the `ui5-input-icon` is activated either with a click/tap or by using the Enter or Space key.
109
+ * @public
110
+ */
111
+ ,
112
+ event("click", {
113
+ bubbles: true,
114
+ })
115
+ ], InputIcon);
116
+ InputIcon.define();
117
+ export default InputIcon;
118
+ //# sourceMappingURL=InputIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputIcon.js","sourceRoot":"","sources":["../src/InputIcon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,qCAAqC,CAAC;AAC/D,OAAO,WAAW,CAAC;AAEnB;;;;;;;;;;;;;;;;;;GAkBG;AAgBH,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QA4BC;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAiDlB,CAAC;IA/CA,QAAQ,CAAC,CAAa;QACrB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,YAAY;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,6BAA6B;QAClD,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;IACzC,CAAC;CACD,CAAA;AAzEA;IADC,QAAQ,EAAE;uCACG;AAYd;IADC,QAAQ,EAAE;iDACa;AAMxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2CAC9B;AAMjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2CAC9B;AAtCZ,SAAS;IAfd,aAAa,CAAC;QACd,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,YAAY;QACpB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,IAAI;KAChB,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;KACb,CAAC;GACI,SAAS,CAuFd;AAED,SAAS,CAAC,MAAM,EAAE,CAAC;AAEnB,eAAe,SAAS,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport InputIconTemplate from \"./InputIconTemplate.js\";\nimport inputIconCss from \"./generated/themes/InputIcon.css.js\";\nimport \"./Icon.js\";\n\n/**\n * @class\n * ### Overview\n * The `ui5-input-icon` component represents an interactive icon that can be placed inside an `ui5-input` component.\n * Unlike the standard `ui5-icon`, this component provides button-like behavior with hover, focus, and active states,\n * matching the visual style of the input's built-in clear icon.\n *\n * ### Usage\n * Use `ui5-input-icon` for interactive icons that users can click (e.g., search, voice input, camera).\n * For decorative icons, use the standard `ui5-icon` component instead.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/InputIcon.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.25.0\n */\n@customElement({\n\ttag: \"ui5-input-icon\",\n\trenderer: jsxRenderer,\n\ttemplate: InputIconTemplate,\n\tstyles: inputIconCss,\n\tlanguageAware: false,\n\tthemeAware: true,\n})\n/**\n * Fired when the `ui5-input-icon` is activated either with a click/tap or by using the Enter or Space key.\n * @public\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass InputIcon extends UI5Element {\n\teventDetails!: {\n\t\tclick: void;\n\t}\n\n\t/**\n\t * Defines the icon name to be displayed.\n\t *\n\t * **Note:** Make sure you import the desired icon before using it.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the accessible name of the icon.\n\t *\n\t * **Note:** This property is used for accessibility purposes and will be announced by screen readers.\n\t * When set, it is also rendered as a native `title` tooltip.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_pressed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_focused = false;\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_onmousedown() {\n\t\tthis._pressed = true;\n\t}\n\n\t_onmouseup() {\n\t\tthis._pressed = false;\n\t}\n\n\t_onmouseleave() {\n\t\tthis._pressed = false;\n\t}\n\n\t_onfocus() {\n\t\tthis._focused = true;\n\t}\n\n\t_onblur() {\n\t\tthis._focused = false;\n\t\tthis._pressed = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\tthis._pressed = true;\n\t\t\te.preventDefault(); // Prevent scrolling on Space\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\tthis._pressed = false;\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\t}\n\n\tget effectiveAriaLabel() {\n\t\treturn this.accessibleName || undefined;\n\t}\n\n\tget effectiveTitle() {\n\t\treturn this.accessibleName || undefined;\n\t}\n}\n\nInputIcon.define();\n\nexport default InputIcon;\n"]}
@@ -0,0 +1,2 @@
1
+ import type InputIcon from "./InputIcon.js";
2
+ export default function InputIconTemplate(this: InputIcon): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import Icon from "./Icon.js";
3
+ export default function InputIconTemplate() {
4
+ return (_jsx("div", { class: {
5
+ "ui5-input-icon-root": true,
6
+ "inputIcon": true,
7
+ "inputIcon--pressed": this._pressed,
8
+ "inputIcon--focused": this._focused,
9
+ }, role: "button", tabindex: -1, "aria-label": this.effectiveAriaLabel, title: this.effectiveTitle, onClick: this._onclick, onMouseDown: this._onmousedown, onMouseUp: this._onmouseup, onMouseLeave: this._onmouseleave, onFocus: this._onfocus, onBlur: this._onblur, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, part: "root", children: this.name && (_jsx(Icon, { name: this.name, class: "ui5-input-icon-inner", "aria-hidden": "true" })) }));
10
+ }
11
+ //# sourceMappingURL=InputIconTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputIconTemplate.js","sourceRoot":"","sources":["../src/InputIconTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACxC,OAAO,CACN,cACC,KAAK,EAAE;YACN,qBAAqB,EAAE,IAAI;YAC3B,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,IAAI,CAAC,QAAQ;YACnC,oBAAoB,EAAE,IAAI,CAAC,QAAQ;SACnC,EACD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,gBACA,IAAI,CAAC,kBAAkB,EACnC,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,IAAI,EAAC,MAAM,YAEV,IAAI,CAAC,IAAI,IAAI,CACb,KAAC,IAAI,IACJ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAC,sBAAsB,iBAChB,MAAM,GACjB,CACF,GACI,CACN,CAAC;AACH,CAAC","sourcesContent":["import type InputIcon from \"./InputIcon.js\";\nimport Icon from \"./Icon.js\";\n\nexport default function InputIconTemplate(this: InputIcon) {\n\treturn (\n\t\t<div\n\t\t\tclass={{\n\t\t\t\t\"ui5-input-icon-root\": true,\n\t\t\t\t\"inputIcon\": true,\n\t\t\t\t\"inputIcon--pressed\": this._pressed,\n\t\t\t\t\"inputIcon--focused\": this._focused,\n\t\t\t}}\n\t\t\trole=\"button\"\n\t\t\ttabindex={-1}\n\t\t\taria-label={this.effectiveAriaLabel}\n\t\t\ttitle={this.effectiveTitle}\n\t\t\tonClick={this._onclick}\n\t\t\tonMouseDown={this._onmousedown}\n\t\t\tonMouseUp={this._onmouseup}\n\t\t\tonMouseLeave={this._onmouseleave}\n\t\t\tonFocus={this._onfocus}\n\t\t\tonBlur={this._onblur}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tpart=\"root\"\n\t\t>\n\t\t\t{this.name && (\n\t\t\t\t<Icon\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tclass=\"ui5-input-icon-inner\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
@@ -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\tdeclare accessibleName?: 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 * @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"]}
package/dist/MenuItem.js CHANGED
@@ -221,7 +221,7 @@ let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
221
221
  ariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,
222
222
  ariaExpanded: this.hasSubmenu ? this.isSubMenuOpen : undefined,
223
223
  ariaHidden: !!this.additionalText && !!this.accessibilityAttributes.ariaKeyShortcuts ? true : undefined,
224
- ariaChecked: this._markChecked ? true : undefined,
224
+ ariaChecked: this._isCheckable ? this._markChecked : undefined,
225
225
  };
226
226
  return { ...super._accInfo, ...accInfoSettings };
227
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { AccessibilityAttributes, AriaHasPopup, AriaRole } from \"@ui5/webcomponents-base\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisSpace,\n\tisEnterShift,\n\tisSpaceShift,\n\tisShift,\n\tisTabNext,\n\tisTabPrevious,\n\tisDown,\n\tisUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop, isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ItemNavigationBehavior from \"@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js\";\nimport MenuItemGroupCheckMode from \"./types/MenuItemGroupCheckMode.js\";\nimport type { ListItemAccessibilityAttributes } from \"./ListItem.js\";\nimport type List from \"./List.js\";\nimport ListItem from \"./ListItem.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport { isInstanceOfMenuSeparator } from \"./MenuSeparator.js\";\nimport { isInstanceOfMenuItemGroup } from \"./MenuItemGroup.js\";\nimport MenuItemTemplate from \"./MenuItemTemplate.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CANCEL_BUTTON_TEXT,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n\tMENU_ITEM_END_CONTENT_ACCESSIBLE_NAME,\n\tMENU_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type { IMenuItem } from \"./Menu.js\";\n\n// Styles\nimport menuItemCss from \"./generated/themes/MenuItem.css.js\";\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\ntype MenuNavigateOutOfEndContentEventDetail = { shouldNavigateToNextItem: boolean };\n\ntype MenuItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"ariaKeyShortcuts\" | \"role\"> & ListItemAccessibilityAttributes;\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu-item` is the item to use inside a `ui5-menu`.\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Usage\n *\n * `ui5-menu-item` represents a node in a `ui5-menu`. The menu itself is rendered as a list,\n * and each `ui5-menu-item` is represented by a list item in that list. Therefore, you should only use\n * `ui5-menu-item` directly in your apps. The `ui5-li` list item is internal for the list, and not intended for public use.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/MenuItem.js\";`\n * @constructor\n * @extends ListItem\n * @implements {IMenuItem}\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu-item\",\n\trenderer: jsxRenderer,\n\ttemplate: MenuItemTemplate,\n\tstyles: [ListItem.styles, menuItemCss],\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The menu item that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when navigating out of end-content.\n * @private\n */\n@event(\"exit-end-content\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\n/**\n * Fired when an item is checked or unchecked.\n * @public\n * @since 2.12.0\n */\n@event(\"check\", {\n\tbubbles: true,\n})\nclass MenuItem extends ListItem implements IMenuItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\n\t\t\"before-open\": MenuBeforeOpenEventDetail\n\t\t\"open\": void\n\t\t\"before-close\": MenuBeforeCloseEventDetail\n\t\t\"close\": void\n\t\t\"close-menu\": void\n\t\t\"check\": void\n\t\t\"exit-end-content\": MenuNavigateOutOfEndContentEventDetail\n\t}\n\n\t/**\n\t * Defines the text of the tree item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the menu item.\n\t *\n\t * **Note:** The additional text will not be displayed if there are items added in `items` slot or there are\n\t * components added to `endContent` slot.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Example:**\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether menu item is in disabled state.\n\t *\n\t * **Note:** A disabled menu item is noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.\n\t *\n\t * **Note:** If set to `true` a busy indicator component will be displayed into the related one to the current menu item sub-menu popover.\n\t * @default false\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.\n\t * @default 1000\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.7.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the text of the tooltip for the menu item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines whether menu item is in checked state.\n\t *\n\t * **Note:** checked state is only taken into account when menu item is added to menu item group\n\t * with `checkMode` other than `None`.\n\t *\n\t * **Note:** A checked menu item has a checkmark displayed at its end.\n\t * @default false\n\t * @public\n\t * @since 2.12.0\n\t */\n\t@property({ type: Boolean })\n\tchecked = false;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **ariaKeyShortcuts**: Indicated the availability of a keyboard shortcuts defined for the menu item.\n\t *\n\t * - **role**: Defines the role of the menu item. If not set, menu item will have default role=\"menuitem\".\n\t * @public\n\t * @since 2.1.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\tdeclare accessibilityAttributes: MenuItemAccessibilityAttributes;\n\n\t/**\n\t * Indicates whether any of the element siblings have icon.\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_siblingsWithIcon = false;\n\n\t/**\n\t * Defines the component's check mode.\n\t * @default \"None\"\n\t * @private\n\t */\n\t@property()\n\t_checkMode: `${MenuItemGroupCheckMode}` = \"None\";\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** The slot can hold menu item and menu separator items.\n\t *\n\t * If there are items added to this slot, an arrow will be displayed at the end\n\t * of the item in order to indicate that there are items added. In that case components added\n\t * to `endContent` slot or `additionalText` content will not be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: DefaultSlot<IMenuItem>;\n\n\t/**\n\t * Defines the components that should be displayed at the end of the menu item.\n\t *\n\t * **Note:** It is highly recommended to slot only components of type `ui5-button`,`ui5-link`\n\t * or `ui5-icon` in order to preserve the intended design. If there are components added to this slot,\n\t * and there is text set in `additionalText`, it will not be displayed. If there are items added to `items` slot,\n\t * nether `additionalText` nor components added to this slot would be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t *\n\t * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot\n\t * have the correct accessibility behaviour, including their enabled or disabled states.\n\t * The menu does not manage these aspects when the menu item state changes.\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@slot()\n\tendContent!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\t_shiftPressed: boolean = false;\n\t_openedByMouse = false;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Horizontal,\n\t\t\tbehavior: ItemNavigationBehavior.Static,\n\t\t\tgetItemsCallback: () => this._navigableItems,\n\t\t});\n\t}\n\n\tget _list() {\n\t\treturn this.shadowRoot && this.shadowRoot.querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\tget _navigableItems(): Array<HTMLElement> {\n\t\treturn [...this.endContent].filter(item => {\n\t\t\treturn item.hasAttribute(\"ui5-button\")\n\t\t\t|| item.hasAttribute(\"ui5-link\")\n\t\t\t|| (item.hasAttribute(\"ui5-icon\") && item.getAttribute(\"mode\") === \"Interactive\");\n\t\t});\n\t}\n\n\tget _isCheckable() {\n\t\treturn this._checkMode !== MenuItemGroupCheckMode.None;\n\t}\n\n\t_navigateToEndContent(shouldNavigateToPreviousItem: boolean) {\n\t\tconst navigatableItems = this._navigableItems;\n\t\tconst item = shouldNavigateToPreviousItem\n\t\t\t? navigatableItems[navigatableItems.length - 1]\n\t\t\t: navigatableItems[0];\n\n\t\tif (item) {\n\t\t\tthis._itemNavigation.setCurrentItem(item);\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget hasSubmenu() {\n\t\treturn !!(this.items.length || this.loading) && !this.disabled;\n\t}\n\n\tget hasEndContent() {\n\t\treturn !!(this.endContent.length);\n\t}\n\n\tget hasIcon() {\n\t\treturn !!this.icon;\n\t}\n\n\tget isSubMenuOpen() {\n\t\treturn this._popover?.open;\n\t}\n\n\tget menuHeaderTextPhone() {\n\t\treturn this.text;\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget labelBack() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);\n\t}\n\n\tget labelCancel() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_CANCEL_BUTTON_TEXT);\n\t}\n\n\tget accessibleNameText() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tget endContentAccessibleName() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_ITEM_END_CONTENT_ACCESSIBLE_NAME);\n\t}\n\n\tget loadingText() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_ITEM_LOADING);\n\t}\n\n\t/**\n\t * Returns the text for aria-describedby, including loading state for iOS VoiceOver support.\n\t * When a menu item with a submenu is focused and is in loading state, the loading text\n\t * will be announced by screen readers.\n\t */\n\tget ariaSelectedText() {\n\t\tconst texts: Array<string> = [];\n\t\tconst parentAriaSelectedText = super.ariaSelectedText;\n\n\t\tif (parentAriaSelectedText) {\n\t\t\ttexts.push(parentAriaSelectedText);\n\t\t}\n\n\t\t// Add loading text when the menu item has a submenu and is loading\n\t\tif (this.hasSubmenu && this.loading) {\n\t\t\ttexts.push(this.loadingText);\n\t\t}\n\n\t\treturn texts.length ? texts.join(\" \") : undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\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\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\n\t\tif (this.hasSubmenu && this.isSubMenuOpen) {\n\t\t\tconst menuItems = this._allMenuItems;\n\t\t\treturn menuItems[0] && menuItems[0].focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\tget _focusable() {\n\t\treturn true;\n\t}\n\n\tget _role() {\n\t\tswitch (this._checkMode) {\n\t\tcase MenuItemGroupCheckMode.Single:\n\t\t\treturn \"menuitemradio\";\n\t\tcase MenuItemGroupCheckMode.Multiple:\n\t\t\treturn \"menuitemcheckbox\";\n\t\tdefault:\n\t\t\treturn \"menuitem\";\n\t\t}\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings: {\n\t\t\trole: AriaRole;\n\t\t\tariaHaspopup?: `${AriaHasPopup}`;\n\t\t\tariaKeyShortcuts?: string;\n\t\t\tariaExpanded?: boolean;\n\t\t\tariaHidden?: boolean;\n\t\t\tariaChecked?: boolean;\n\t\t} = {\n\t\t\trole: this.accessibilityAttributes.role || this._role,\n\t\t\tariaHaspopup: this.hasSubmenu ? \"menu\" : undefined,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaExpanded: this.hasSubmenu ? this.isSubMenuOpen : undefined,\n\t\t\tariaHidden: !!this.additionalText && !!this.accessibilityAttributes.ariaKeyShortcuts ? true : undefined,\n\t\t\tariaChecked: this._markChecked ? true : undefined,\n\t\t};\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot && this.shadowRoot.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget _markChecked() {\n\t\treturn !this.hasSubmenu && this.checked && this._checkMode !== MenuItemGroupCheckMode.None;\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\t_setupItemNavigation() {\n\t\tif (this._list) {\n\t\t\tthis._list._itemNavigation._getItems = () => this._navigatableMenuItems;\n\t\t}\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_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.getFocusDomRef()?.focus();\n\n\t\tthis._closeOtherSubMenus(item);\n\t}\n\n\t_isSpace(e: KeyboardEvent) {\n\t\tthis._shiftPressed = this._isCheckable && isSpaceShift(e);\n\t\treturn isSpace(e) || isSpaceShift(e);\n\t}\n\n\t_isEnter(e: KeyboardEvent) {\n\t\tthis._shiftPressed = this._isCheckable && isEnterShift(e);\n\t\treturn isEnter(e) || isEnterShift(e);\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\t// Clicks on the endContent slot must not activate the item (which would close the menu).\n\t\tif (this._isEndContentClicked(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shiftPressed = this._isCheckable && e.shiftKey;\n\t\tsuper._onclick(e);\n\t}\n\n\t_isEndContentClicked(e: MouseEvent): boolean {\n\t\treturn this.endContent.some(element => e.composedPath().includes(element));\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst itemInMenuItems = this._allMenuItems.includes(item);\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);\n\n\t\tif (itemInMenuItems && (isTabNextPrevious || shouldCloseMenu)) {\n\t\t\tthis._close();\n\t\t\tthis.focus();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_itemKeyUp(e: KeyboardEvent) {\n\t\tif (isShift(e)) {\n\t\t\tthis._shiftPressed = false;\n\t\t}\n\t}\n\n\t_endContentKeyDown(e: KeyboardEvent) {\n\t\tconst shouldNavigateOutOfEndContent = isUp(e) || isDown(e);\n\n\t\tif (shouldNavigateOutOfEndContent) {\n\t\t\tthis.fireDecoratorEvent(\"exit-end-content\", { shouldNavigateToNextItem: isDown(e) });\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(e: CustomEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;\n\t\tconst menuItems = this._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_closeAll() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t}\n\t\tthis.selected = false;\n\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t}\n\n\t_close() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t\tthis._allMenuItems.forEach(item => item._close());\n\t\t}\n\t\tthis.selected = false;\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tif (!this._openedByMouse) {\n\t\t\tthis._allMenuItems[0]?.focus();\n\t\t}\n\t\tif (this.loading) {\n\t\t\tannounce(MenuItem.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\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selected = false;\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis._openedByMouse = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget isMenuItem(): boolean {\n\t\treturn true;\n\t}\n\n\t_updateCheckedState() {\n\t\tif (this._checkMode === MenuItemGroupCheckMode.None) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newState = !this.checked;\n\n\t\tthis.checked = newState;\n\t\tthis.fireDecoratorEvent(\"check\");\n\t}\n}\n\nMenuItem.define();\n\nexport default MenuItem;\n\nexport type {\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tMenuItemAccessibilityAttributes,\n};\n\nexport const isInstanceOfMenuItem = createInstanceChecker<MenuItem>(\"isMenuItem\");\n"]}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { AccessibilityAttributes, AriaHasPopup, AriaRole } from \"@ui5/webcomponents-base\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisSpace,\n\tisEnterShift,\n\tisSpaceShift,\n\tisShift,\n\tisTabNext,\n\tisTabPrevious,\n\tisDown,\n\tisUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop, isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ItemNavigationBehavior from \"@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js\";\nimport MenuItemGroupCheckMode from \"./types/MenuItemGroupCheckMode.js\";\nimport type { ListItemAccessibilityAttributes } from \"./ListItem.js\";\nimport type List from \"./List.js\";\nimport ListItem from \"./ListItem.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport { isInstanceOfMenuSeparator } from \"./MenuSeparator.js\";\nimport { isInstanceOfMenuItemGroup } from \"./MenuItemGroup.js\";\nimport MenuItemTemplate from \"./MenuItemTemplate.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CANCEL_BUTTON_TEXT,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n\tMENU_ITEM_END_CONTENT_ACCESSIBLE_NAME,\n\tMENU_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type { IMenuItem } from \"./Menu.js\";\n\n// Styles\nimport menuItemCss from \"./generated/themes/MenuItem.css.js\";\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\ntype MenuNavigateOutOfEndContentEventDetail = { shouldNavigateToNextItem: boolean };\n\ntype MenuItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"ariaKeyShortcuts\" | \"role\"> & ListItemAccessibilityAttributes;\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu-item` is the item to use inside a `ui5-menu`.\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Usage\n *\n * `ui5-menu-item` represents a node in a `ui5-menu`. The menu itself is rendered as a list,\n * and each `ui5-menu-item` is represented by a list item in that list. Therefore, you should only use\n * `ui5-menu-item` directly in your apps. The `ui5-li` list item is internal for the list, and not intended for public use.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/MenuItem.js\";`\n * @constructor\n * @extends ListItem\n * @implements {IMenuItem}\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu-item\",\n\trenderer: jsxRenderer,\n\ttemplate: MenuItemTemplate,\n\tstyles: [ListItem.styles, menuItemCss],\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The menu item that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when navigating out of end-content.\n * @private\n */\n@event(\"exit-end-content\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\n/**\n * Fired when an item is checked or unchecked.\n * @public\n * @since 2.12.0\n */\n@event(\"check\", {\n\tbubbles: true,\n})\nclass MenuItem extends ListItem implements IMenuItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\n\t\t\"before-open\": MenuBeforeOpenEventDetail\n\t\t\"open\": void\n\t\t\"before-close\": MenuBeforeCloseEventDetail\n\t\t\"close\": void\n\t\t\"close-menu\": void\n\t\t\"check\": void\n\t\t\"exit-end-content\": MenuNavigateOutOfEndContentEventDetail\n\t}\n\n\t/**\n\t * Defines the text of the tree item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the menu item.\n\t *\n\t * **Note:** The additional text will not be displayed if there are items added in `items` slot or there are\n\t * components added to `endContent` slot.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Example:**\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether menu item is in disabled state.\n\t *\n\t * **Note:** A disabled menu item is noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.\n\t *\n\t * **Note:** If set to `true` a busy indicator component will be displayed into the related one to the current menu item sub-menu popover.\n\t * @default false\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.\n\t * @default 1000\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.7.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the text of the tooltip for the menu item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines whether menu item is in checked state.\n\t *\n\t * **Note:** checked state is only taken into account when menu item is added to menu item group\n\t * with `checkMode` other than `None`.\n\t *\n\t * **Note:** A checked menu item has a checkmark displayed at its end.\n\t * @default false\n\t * @public\n\t * @since 2.12.0\n\t */\n\t@property({ type: Boolean })\n\tchecked = false;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **ariaKeyShortcuts**: Indicated the availability of a keyboard shortcuts defined for the menu item.\n\t *\n\t * - **role**: Defines the role of the menu item. If not set, menu item will have default role=\"menuitem\".\n\t * @public\n\t * @since 2.1.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\tdeclare accessibilityAttributes: MenuItemAccessibilityAttributes;\n\n\t/**\n\t * Indicates whether any of the element siblings have icon.\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_siblingsWithIcon = false;\n\n\t/**\n\t * Defines the component's check mode.\n\t * @default \"None\"\n\t * @private\n\t */\n\t@property()\n\t_checkMode: `${MenuItemGroupCheckMode}` = \"None\";\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** The slot can hold menu item and menu separator items.\n\t *\n\t * If there are items added to this slot, an arrow will be displayed at the end\n\t * of the item in order to indicate that there are items added. In that case components added\n\t * to `endContent` slot or `additionalText` content will not be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: DefaultSlot<IMenuItem>;\n\n\t/**\n\t * Defines the components that should be displayed at the end of the menu item.\n\t *\n\t * **Note:** It is highly recommended to slot only components of type `ui5-button`,`ui5-link`\n\t * or `ui5-icon` in order to preserve the intended design. If there are components added to this slot,\n\t * and there is text set in `additionalText`, it will not be displayed. If there are items added to `items` slot,\n\t * nether `additionalText` nor components added to this slot would be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t *\n\t * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot\n\t * have the correct accessibility behaviour, including their enabled or disabled states.\n\t * The menu does not manage these aspects when the menu item state changes.\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@slot()\n\tendContent!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\t_shiftPressed: boolean = false;\n\t_openedByMouse = false;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Horizontal,\n\t\t\tbehavior: ItemNavigationBehavior.Static,\n\t\t\tgetItemsCallback: () => this._navigableItems,\n\t\t});\n\t}\n\n\tget _list() {\n\t\treturn this.shadowRoot && this.shadowRoot.querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\tget _navigableItems(): Array<HTMLElement> {\n\t\treturn [...this.endContent].filter(item => {\n\t\t\treturn item.hasAttribute(\"ui5-button\")\n\t\t\t|| item.hasAttribute(\"ui5-link\")\n\t\t\t|| (item.hasAttribute(\"ui5-icon\") && item.getAttribute(\"mode\") === \"Interactive\");\n\t\t});\n\t}\n\n\tget _isCheckable() {\n\t\treturn this._checkMode !== MenuItemGroupCheckMode.None;\n\t}\n\n\t_navigateToEndContent(shouldNavigateToPreviousItem: boolean) {\n\t\tconst navigatableItems = this._navigableItems;\n\t\tconst item = shouldNavigateToPreviousItem\n\t\t\t? navigatableItems[navigatableItems.length - 1]\n\t\t\t: navigatableItems[0];\n\n\t\tif (item) {\n\t\t\tthis._itemNavigation.setCurrentItem(item);\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget hasSubmenu() {\n\t\treturn !!(this.items.length || this.loading) && !this.disabled;\n\t}\n\n\tget hasEndContent() {\n\t\treturn !!(this.endContent.length);\n\t}\n\n\tget hasIcon() {\n\t\treturn !!this.icon;\n\t}\n\n\tget isSubMenuOpen() {\n\t\treturn this._popover?.open;\n\t}\n\n\tget menuHeaderTextPhone() {\n\t\treturn this.text;\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget labelBack() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);\n\t}\n\n\tget labelCancel() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_CANCEL_BUTTON_TEXT);\n\t}\n\n\tget accessibleNameText() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tget endContentAccessibleName() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_ITEM_END_CONTENT_ACCESSIBLE_NAME);\n\t}\n\n\tget loadingText() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_ITEM_LOADING);\n\t}\n\n\t/**\n\t * Returns the text for aria-describedby, including loading state for iOS VoiceOver support.\n\t * When a menu item with a submenu is focused and is in loading state, the loading text\n\t * will be announced by screen readers.\n\t */\n\tget ariaSelectedText() {\n\t\tconst texts: Array<string> = [];\n\t\tconst parentAriaSelectedText = super.ariaSelectedText;\n\n\t\tif (parentAriaSelectedText) {\n\t\t\ttexts.push(parentAriaSelectedText);\n\t\t}\n\n\t\t// Add loading text when the menu item has a submenu and is loading\n\t\tif (this.hasSubmenu && this.loading) {\n\t\t\ttexts.push(this.loadingText);\n\t\t}\n\n\t\treturn texts.length ? texts.join(\" \") : undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\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\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\n\t\tif (this.hasSubmenu && this.isSubMenuOpen) {\n\t\t\tconst menuItems = this._allMenuItems;\n\t\t\treturn menuItems[0] && menuItems[0].focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\tget _focusable() {\n\t\treturn true;\n\t}\n\n\tget _role() {\n\t\tswitch (this._checkMode) {\n\t\tcase MenuItemGroupCheckMode.Single:\n\t\t\treturn \"menuitemradio\";\n\t\tcase MenuItemGroupCheckMode.Multiple:\n\t\t\treturn \"menuitemcheckbox\";\n\t\tdefault:\n\t\t\treturn \"menuitem\";\n\t\t}\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings: {\n\t\t\trole: AriaRole;\n\t\t\tariaHaspopup?: `${AriaHasPopup}`;\n\t\t\tariaKeyShortcuts?: string;\n\t\t\tariaExpanded?: boolean;\n\t\t\tariaHidden?: boolean;\n\t\t\tariaChecked?: boolean;\n\t\t} = {\n\t\t\trole: this.accessibilityAttributes.role || this._role,\n\t\t\tariaHaspopup: this.hasSubmenu ? \"menu\" : undefined,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaExpanded: this.hasSubmenu ? this.isSubMenuOpen : undefined,\n\t\t\tariaHidden: !!this.additionalText && !!this.accessibilityAttributes.ariaKeyShortcuts ? true : undefined,\n\t\t\tariaChecked: this._isCheckable ? this._markChecked : undefined,\n\t\t};\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot && this.shadowRoot.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget _markChecked() {\n\t\treturn !this.hasSubmenu && this.checked && this._checkMode !== MenuItemGroupCheckMode.None;\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\t_setupItemNavigation() {\n\t\tif (this._list) {\n\t\t\tthis._list._itemNavigation._getItems = () => this._navigatableMenuItems;\n\t\t}\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_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.getFocusDomRef()?.focus();\n\n\t\tthis._closeOtherSubMenus(item);\n\t}\n\n\t_isSpace(e: KeyboardEvent) {\n\t\tthis._shiftPressed = this._isCheckable && isSpaceShift(e);\n\t\treturn isSpace(e) || isSpaceShift(e);\n\t}\n\n\t_isEnter(e: KeyboardEvent) {\n\t\tthis._shiftPressed = this._isCheckable && isEnterShift(e);\n\t\treturn isEnter(e) || isEnterShift(e);\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\t// Clicks on the endContent slot must not activate the item (which would close the menu).\n\t\tif (this._isEndContentClicked(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shiftPressed = this._isCheckable && e.shiftKey;\n\t\tsuper._onclick(e);\n\t}\n\n\t_isEndContentClicked(e: MouseEvent): boolean {\n\t\treturn this.endContent.some(element => e.composedPath().includes(element));\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst itemInMenuItems = this._allMenuItems.includes(item);\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);\n\n\t\tif (itemInMenuItems && (isTabNextPrevious || shouldCloseMenu)) {\n\t\t\tthis._close();\n\t\t\tthis.focus();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_itemKeyUp(e: KeyboardEvent) {\n\t\tif (isShift(e)) {\n\t\t\tthis._shiftPressed = false;\n\t\t}\n\t}\n\n\t_endContentKeyDown(e: KeyboardEvent) {\n\t\tconst shouldNavigateOutOfEndContent = isUp(e) || isDown(e);\n\n\t\tif (shouldNavigateOutOfEndContent) {\n\t\t\tthis.fireDecoratorEvent(\"exit-end-content\", { shouldNavigateToNextItem: isDown(e) });\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(e: CustomEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;\n\t\tconst menuItems = this._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_closeAll() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t}\n\t\tthis.selected = false;\n\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t}\n\n\t_close() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t\tthis._allMenuItems.forEach(item => item._close());\n\t\t}\n\t\tthis.selected = false;\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tif (!this._openedByMouse) {\n\t\t\tthis._allMenuItems[0]?.focus();\n\t\t}\n\t\tif (this.loading) {\n\t\t\tannounce(MenuItem.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\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selected = false;\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis._openedByMouse = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget isMenuItem(): boolean {\n\t\treturn true;\n\t}\n\n\t_updateCheckedState() {\n\t\tif (this._checkMode === MenuItemGroupCheckMode.None) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newState = !this.checked;\n\n\t\tthis.checked = newState;\n\t\tthis.fireDecoratorEvent(\"check\");\n\t}\n}\n\nMenuItem.define();\n\nexport default MenuItem;\n\nexport type {\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tMenuItemAccessibilityAttributes,\n};\n\nexport const isInstanceOfMenuItem = createInstanceChecker<MenuItem>(\"isMenuItem\");\n"]}
@@ -1,27 +1,20 @@
1
- import type { ClassMap } from "@ui5/webcomponents-base/dist/types.js";
2
- import ListItemBase from "./ListItemBase.js";
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
3
2
  import type { IMenuItem } from "./Menu.js";
3
+ import type { ListItemBaseClickEventDetail } from "./ListItemBase.js";
4
4
  /**
5
5
  * @class
6
6
  * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.
7
7
  * @constructor
8
- * @extends ListItemBase
8
+ * @extends UI5Element
9
9
  * @implements {IMenuItem}
10
10
  * @public
11
11
  * @since 2.0.0
12
12
  */
13
- declare class MenuSeparator extends ListItemBase implements IMenuItem {
14
- eventDetails: ListItemBase["eventDetails"];
13
+ declare class MenuSeparator extends UI5Element implements IMenuItem {
14
+ eventDetails: {
15
+ click?: ListItemBaseClickEventDetail;
16
+ };
15
17
  get isSeparator(): boolean;
16
- get classes(): ClassMap;
17
- /**
18
- * @override
19
- */
20
- get _focusable(): boolean;
21
- /**
22
- * @override
23
- */
24
- get _pressable(): boolean;
25
18
  }
26
19
  export default MenuSeparator;
27
20
  export declare const isInstanceOfMenuSeparator: (object: any) => object is MenuSeparator;
@@ -5,48 +5,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
- import jsxRendererer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
8
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
9
9
  import menuSeparatorTemplate from "./MenuSeparatorTemplate.js";
10
10
  import menuSeparatorCss from "./generated/themes/MenuSeparator.css.js";
11
- import ListItemBase from "./ListItemBase.js";
11
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
12
12
  import createInstanceChecker from "@ui5/webcomponents-base/dist/util/createInstanceChecker.js";
13
13
  /**
14
14
  * @class
15
15
  * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.
16
16
  * @constructor
17
- * @extends ListItemBase
17
+ * @extends UI5Element
18
18
  * @implements {IMenuItem}
19
19
  * @public
20
20
  * @since 2.0.0
21
21
  */
22
- let MenuSeparator = class MenuSeparator extends ListItemBase {
22
+ let MenuSeparator = class MenuSeparator extends UI5Element {
23
23
  get isSeparator() {
24
24
  return true;
25
25
  }
26
- get classes() {
27
- return {
28
- main: {
29
- "ui5-menu-separator": true,
30
- },
31
- };
32
- }
33
- /**
34
- * @override
35
- */
36
- get _focusable() {
37
- return false;
38
- }
39
- /**
40
- * @override
41
- */
42
- get _pressable() {
43
- return false;
44
- }
45
26
  };
46
27
  MenuSeparator = __decorate([
47
28
  customElement({
48
29
  tag: "ui5-menu-separator",
49
- renderer: jsxRendererer,
30
+ renderer: jsxRenderer,
50
31
  styles: [menuSeparatorCss],
51
32
  template: menuSeparatorTemplate,
52
33
  })
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSeparator.js","sourceRoot":"","sources":["../src/MenuSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,aAAa,MAAM,sDAAsD,CAAC;AAEjF,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,OAAO,qBAAqB,MAAM,4DAA4D,CAAC;AAC/F;;;;;;;;GAQG;AAQH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IAGvC,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,IAAI,EAAE;gBACL,oBAAoB,EAAE,IAAI;aAC1B;SACD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AA5BK,aAAa;IAPlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,QAAQ,EAAE,qBAAqB;KAC/B,CAAC;GAEI,aAAa,CA4BlB;AAED,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC;AAE7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAgB,aAAa,CAAC,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRendererer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport menuSeparatorTemplate from \"./MenuSeparatorTemplate.js\";\nimport menuSeparatorCss from \"./generated/themes/MenuSeparator.css.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport type { IMenuItem } from \"./Menu.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n/**\n * @class\n * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.\n * @constructor\n * @extends ListItemBase\n * @implements {IMenuItem}\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-menu-separator\",\n\trenderer: jsxRendererer,\n\tstyles: [menuSeparatorCss],\n\ttemplate: menuSeparatorTemplate,\n})\n\nclass MenuSeparator extends ListItemBase implements IMenuItem {\n\teventDetails!: ListItemBase[\"eventDetails\"];\n\n\tget isSeparator() {\n\t\treturn true;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-menu-separator\": true,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _focusable() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _pressable() {\n\t\treturn false;\n\t}\n}\n\nMenuSeparator.define();\n\nexport default MenuSeparator;\n\nexport const isInstanceOfMenuSeparator = createInstanceChecker<MenuSeparator>(\"isSeparator\");\n"]}
1
+ {"version":3,"file":"MenuSeparator.js","sourceRoot":"","sources":["../src/MenuSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,qBAAqB,MAAM,4DAA4D,CAAC;AAG/F;;;;;;;;GAQG;AAQH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAGrC,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AANK,aAAa;IAPlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,QAAQ,EAAE,qBAAqB;KAC/B,CAAC;GAEI,aAAa,CAMlB;AAED,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC;AAE7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAgB,aAAa,CAAC,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport menuSeparatorTemplate from \"./MenuSeparatorTemplate.js\";\nimport menuSeparatorCss from \"./generated/themes/MenuSeparator.css.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { IMenuItem } from \"./Menu.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport type { ListItemBaseClickEventDetail } from \"./ListItemBase.js\";\n\n/**\n * @class\n * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.\n * @constructor\n * @extends UI5Element\n * @implements {IMenuItem}\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-menu-separator\",\n\trenderer: jsxRenderer,\n\tstyles: [menuSeparatorCss],\n\ttemplate: menuSeparatorTemplate,\n})\n\nclass MenuSeparator extends UI5Element implements IMenuItem {\n\teventDetails!: { click?: ListItemBaseClickEventDetail };\n\n\tget isSeparator() {\n\t\treturn true;\n\t}\n}\n\nMenuSeparator.define();\n\nexport default MenuSeparator;\n\nexport const isInstanceOfMenuSeparator = createInstanceChecker<MenuSeparator>(\"isSeparator\");\n"]}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
2
- import ListItemCustom from "./ListItemCustom.js";
3
2
  export default function MenuSeparatorTemplate() {
4
- return (_jsx(ListItemCustom, { class: "ui5-menu-separator", _forcedAccessibleRole: "separator", disabled: true }));
3
+ return (_jsx("li", { role: "separator", class: "ui5-menu-separator" }));
5
4
  }
6
5
  //# sourceMappingURL=MenuSeparatorTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSeparatorTemplate.js","sourceRoot":"","sources":["../src/MenuSeparatorTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC5C,OAAO,CACN,KAAC,cAAc,IACd,KAAK,EAAC,oBAAoB,EAC1B,qBAAqB,EAAC,WAAW,EACjC,QAAQ,EAAE,IAAI,GACb,CACF,CAAC;AACH,CAAC","sourcesContent":["import type MenuSeparator from \"./MenuSeparator.js\";\nimport ListItemCustom from \"./ListItemCustom.js\";\n\nexport default function MenuSeparatorTemplate(this: MenuSeparator) {\n\treturn (\n\t\t<ListItemCustom\n\t\t\tclass=\"ui5-menu-separator\"\n\t\t\t_forcedAccessibleRole=\"separator\"\n\t\t\tdisabled={true}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"file":"MenuSeparatorTemplate.js","sourceRoot":"","sources":["../src/MenuSeparatorTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC5C,OAAO,CACN,aACC,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,oBAAoB,GACzB,CACF,CAAC;AACH,CAAC","sourcesContent":["import type MenuSeparator from \"./MenuSeparator.js\";\n\nexport default function MenuSeparatorTemplate(this: MenuSeparator) {\n\treturn (\n\t\t<li\n\t\t\trole=\"separator\"\n\t\t\tclass=\"ui5-menu-separator\"\n\t\t/>\n\t);\n}\n"]}
@@ -724,7 +724,9 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
724
724
  }
725
725
  else {
726
726
  this._previouslySelectedItems = this._getSelectedItems();
727
- this.selectedItems?.filter(item => !item.isGroupItem).forEach(item => {
727
+ // Operate on all selectable items, not the stale selectedItems snapshot
728
+ const allSelectableItems = this._getItems().filter(item => !item.isGroupItem);
729
+ allSelectableItems.forEach(item => {
728
730
  item.selected = e.target.checked;
729
731
  });
730
732
  if (!e.target.checked) {
@@ -1261,8 +1263,11 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
1261
1263
  const value = input && input.value;
1262
1264
  if (this.open) {
1263
1265
  const list = this._getList();
1264
- const selectedListItemsCount = this.items.filter(item => item.selected).length;
1265
- this._allSelected = selectedListItemsCount > 0 && ((selectedListItemsCount === this.items.length) || (list?.getSlottedNodes("items").length === selectedListItemsCount));
1266
+ const selectableItems = this._getItems().filter(item => !item.isGroupItem);
1267
+ const selectedListItemsCount = selectableItems.filter(item => item.selected).length;
1268
+ const listItemsCount = list?.getSlottedNodes("items").length || 0;
1269
+ // When filterSelected is true, only check against total items count since the list shows only selected items
1270
+ this._allSelected = selectedListItemsCount > 0 && (selectedListItemsCount === selectableItems.length || (!this.filterSelected && listItemsCount === selectedListItemsCount));
1266
1271
  }
1267
1272
  this._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
1268
1273
  if (input && !input.value) {