@ui5/webcomponents 2.20.0-rc.2 → 2.20.0-rc.3

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 (254) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Avatar.d.ts +4 -0
  4. package/dist/Avatar.js.map +1 -1
  5. package/dist/Carousel.d.ts +2 -2
  6. package/dist/Carousel.js +1 -1
  7. package/dist/Carousel.js.map +1 -1
  8. package/dist/ComboBox.d.ts +37 -8
  9. package/dist/ComboBox.js +39 -10
  10. package/dist/ComboBox.js.map +1 -1
  11. package/dist/ComboBoxItem.d.ts +5 -1
  12. package/dist/ComboBoxItem.js.map +1 -1
  13. package/dist/DatePicker.d.ts +7 -0
  14. package/dist/DatePicker.js +10 -0
  15. package/dist/DatePicker.js.map +1 -1
  16. package/dist/DatePickerInputTemplate.js +1 -1
  17. package/dist/DatePickerInputTemplate.js.map +1 -1
  18. package/dist/DateTimeInput.d.ts +1 -0
  19. package/dist/DateTimeInput.js +1 -0
  20. package/dist/DateTimeInput.js.map +1 -1
  21. package/dist/DayPicker.js +6 -6
  22. package/dist/DayPicker.js.map +1 -1
  23. package/dist/Icon.js +1 -1
  24. package/dist/Icon.js.map +1 -1
  25. package/dist/Input.js +1 -1
  26. package/dist/Input.js.map +1 -1
  27. package/dist/Link.js +1 -1
  28. package/dist/Link.js.map +1 -1
  29. package/dist/List.d.ts +1 -0
  30. package/dist/List.js +17 -2
  31. package/dist/List.js.map +1 -1
  32. package/dist/ListItemCustom.d.ts +2 -2
  33. package/dist/ListItemCustom.js +2 -2
  34. package/dist/ListItemCustom.js.map +1 -1
  35. package/dist/MonthPicker.js +2 -2
  36. package/dist/MonthPicker.js.map +1 -1
  37. package/dist/MultiComboBox.d.ts +19 -1
  38. package/dist/MultiComboBox.js +52 -7
  39. package/dist/MultiComboBox.js.map +1 -1
  40. package/dist/MultiComboBoxItem.d.ts +12 -0
  41. package/dist/MultiComboBoxItem.js +3 -0
  42. package/dist/MultiComboBoxItem.js.map +1 -1
  43. package/dist/Option.d.ts +2 -0
  44. package/dist/Option.js.map +1 -1
  45. package/dist/RatingIndicator.d.ts +2 -4
  46. package/dist/RatingIndicator.js +18 -9
  47. package/dist/RatingIndicator.js.map +1 -1
  48. package/dist/RatingIndicatorTemplate.js +6 -6
  49. package/dist/RatingIndicatorTemplate.js.map +1 -1
  50. package/dist/TabContainer.js +1 -1
  51. package/dist/TabContainer.js.map +1 -1
  52. package/dist/Table.js +2 -2
  53. package/dist/Table.js.map +1 -1
  54. package/dist/TableCell.js +2 -0
  55. package/dist/TableCell.js.map +1 -1
  56. package/dist/TableHeaderCell.js +1 -0
  57. package/dist/TableHeaderCell.js.map +1 -1
  58. package/dist/TableRow.d.ts +2 -2
  59. package/dist/TableRow.js +19 -7
  60. package/dist/TableRow.js.map +1 -1
  61. package/dist/TableRowActionBase.d.ts +2 -2
  62. package/dist/TableRowActionBase.js.map +1 -1
  63. package/dist/TableRowActionNavigation.d.ts +4 -0
  64. package/dist/TableRowActionNavigation.js +4 -0
  65. package/dist/TableRowActionNavigation.js.map +1 -1
  66. package/dist/TableRowTemplate.js +1 -1
  67. package/dist/TableRowTemplate.js.map +1 -1
  68. package/dist/TextArea.js +1 -1
  69. package/dist/TextArea.js.map +1 -1
  70. package/dist/TimePickerClock.js +1 -1
  71. package/dist/TimePickerClock.js.map +1 -1
  72. package/dist/TimePickerInternals.js +2 -2
  73. package/dist/TimePickerInternals.js.map +1 -1
  74. package/dist/ToolbarItem.d.ts +26 -3
  75. package/dist/ToolbarItem.js +46 -28
  76. package/dist/ToolbarItem.js.map +1 -1
  77. package/dist/ToolbarSpacer.js +0 -2
  78. package/dist/ToolbarSpacer.js.map +1 -1
  79. package/dist/ToolbarTemplate.js +2 -1
  80. package/dist/ToolbarTemplate.js.map +1 -1
  81. package/dist/YearPicker.js +2 -2
  82. package/dist/YearPicker.js.map +1 -1
  83. package/dist/YearRangePicker.js +2 -2
  84. package/dist/YearRangePicker.js.map +1 -1
  85. package/dist/css/themes/DatePicker.css +1 -1
  86. package/dist/css/themes/DateTimePicker.css +1 -1
  87. package/dist/css/themes/TableCellBase.css +1 -1
  88. package/dist/css/themes/TableRow.css +1 -1
  89. package/dist/css/themes/Toolbar.css +1 -1
  90. package/dist/custom-elements-internal.json +18638 -18040
  91. package/dist/custom-elements.json +16042 -15764
  92. package/dist/dynamic-date-range-options/DateRange.d.ts +1 -0
  93. package/dist/dynamic-date-range-options/DateRange.js +1 -0
  94. package/dist/dynamic-date-range-options/DateRange.js.map +1 -1
  95. package/dist/dynamic-date-range-options/DateTimeRange.d.ts +1 -0
  96. package/dist/dynamic-date-range-options/DateTimeRange.js +1 -0
  97. package/dist/dynamic-date-range-options/DateTimeRange.js.map +1 -1
  98. package/dist/dynamic-date-range-options/FromDateTime.d.ts +1 -0
  99. package/dist/dynamic-date-range-options/FromDateTime.js +1 -0
  100. package/dist/dynamic-date-range-options/FromDateTime.js.map +1 -1
  101. package/dist/dynamic-date-range-options/LastOptions.d.ts +1 -0
  102. package/dist/dynamic-date-range-options/LastOptions.js +1 -0
  103. package/dist/dynamic-date-range-options/LastOptions.js.map +1 -1
  104. package/dist/dynamic-date-range-options/NextOptions.d.ts +1 -0
  105. package/dist/dynamic-date-range-options/NextOptions.js +1 -0
  106. package/dist/dynamic-date-range-options/NextOptions.js.map +1 -1
  107. package/dist/dynamic-date-range-options/SingleDate.d.ts +1 -0
  108. package/dist/dynamic-date-range-options/SingleDate.js +1 -0
  109. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -1
  110. package/dist/dynamic-date-range-options/ToDateTime.d.ts +1 -0
  111. package/dist/dynamic-date-range-options/ToDateTime.js +1 -0
  112. package/dist/dynamic-date-range-options/ToDateTime.js.map +1 -1
  113. package/dist/dynamic-date-range-options/Today.d.ts +1 -0
  114. package/dist/dynamic-date-range-options/Today.js +1 -0
  115. package/dist/dynamic-date-range-options/Today.js.map +1 -1
  116. package/dist/dynamic-date-range-options/Tomorrow.d.ts +1 -0
  117. package/dist/dynamic-date-range-options/Tomorrow.js +1 -0
  118. package/dist/dynamic-date-range-options/Tomorrow.js.map +1 -1
  119. package/dist/dynamic-date-range-options/Yesterday.d.ts +1 -0
  120. package/dist/dynamic-date-range-options/Yesterday.js +1 -0
  121. package/dist/dynamic-date-range-options/Yesterday.js.map +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  153. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  154. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  170. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  171. package/dist/generated/i18n/i18n-defaults.js +3 -2
  172. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  173. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  174. package/dist/generated/themes/DatePicker.css.js +1 -1
  175. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  176. package/dist/generated/themes/DateTimePicker.css.d.ts +1 -1
  177. package/dist/generated/themes/DateTimePicker.css.js +1 -1
  178. package/dist/generated/themes/DateTimePicker.css.js.map +1 -1
  179. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  180. package/dist/generated/themes/TableCellBase.css.js +1 -1
  181. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  182. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  183. package/dist/generated/themes/TableRow.css.js +1 -1
  184. package/dist/generated/themes/TableRow.css.js.map +1 -1
  185. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  186. package/dist/generated/themes/Toolbar.css.js +1 -1
  187. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  188. package/dist/types/AvatarMode.d.ts +1 -3
  189. package/dist/types/AvatarMode.js +1 -3
  190. package/dist/types/AvatarMode.js.map +1 -1
  191. package/dist/types/TableOverflowMode.d.ts +1 -2
  192. package/dist/types/TableOverflowMode.js +1 -2
  193. package/dist/types/TableOverflowMode.js.map +1 -1
  194. package/dist/vscode.html-custom-data.json +2709 -1982
  195. package/dist/web-types.json +5814 -4362
  196. package/package.json +12 -10
  197. package/src/DatePickerInputTemplate.tsx +1 -0
  198. package/src/RatingIndicatorTemplate.tsx +6 -6
  199. package/src/TableRowTemplate.tsx +0 -1
  200. package/src/ToolbarTemplate.tsx +2 -1
  201. package/src/i18n/messagebundle.properties +3 -0
  202. package/src/i18n/messagebundle_ar.properties +3 -3
  203. package/src/i18n/messagebundle_bg.properties +3 -3
  204. package/src/i18n/messagebundle_ca.properties +3 -3
  205. package/src/i18n/messagebundle_cnr.properties +3 -3
  206. package/src/i18n/messagebundle_cs.properties +3 -3
  207. package/src/i18n/messagebundle_cy.properties +3 -3
  208. package/src/i18n/messagebundle_da.properties +3 -3
  209. package/src/i18n/messagebundle_de.properties +3 -3
  210. package/src/i18n/messagebundle_el.properties +3 -3
  211. package/src/i18n/messagebundle_en.properties +3 -3
  212. package/src/i18n/messagebundle_en_GB.properties +3 -3
  213. package/src/i18n/messagebundle_es.properties +3 -3
  214. package/src/i18n/messagebundle_es_MX.properties +3 -3
  215. package/src/i18n/messagebundle_et.properties +3 -3
  216. package/src/i18n/messagebundle_fi.properties +3 -3
  217. package/src/i18n/messagebundle_fr.properties +3 -3
  218. package/src/i18n/messagebundle_fr_CA.properties +3 -3
  219. package/src/i18n/messagebundle_hi.properties +3 -3
  220. package/src/i18n/messagebundle_hr.properties +3 -3
  221. package/src/i18n/messagebundle_hu.properties +3 -3
  222. package/src/i18n/messagebundle_id.properties +3 -3
  223. package/src/i18n/messagebundle_it.properties +3 -3
  224. package/src/i18n/messagebundle_iw.properties +3 -3
  225. package/src/i18n/messagebundle_ja.properties +3 -3
  226. package/src/i18n/messagebundle_kk.properties +4 -4
  227. package/src/i18n/messagebundle_ko.properties +3 -3
  228. package/src/i18n/messagebundle_lt.properties +3 -3
  229. package/src/i18n/messagebundle_lv.properties +3 -3
  230. package/src/i18n/messagebundle_mk.properties +3 -3
  231. package/src/i18n/messagebundle_ms.properties +3 -3
  232. package/src/i18n/messagebundle_nl.properties +3 -3
  233. package/src/i18n/messagebundle_no.properties +3 -3
  234. package/src/i18n/messagebundle_pl.properties +3 -3
  235. package/src/i18n/messagebundle_pt.properties +3 -3
  236. package/src/i18n/messagebundle_pt_PT.properties +3 -3
  237. package/src/i18n/messagebundle_ro.properties +3 -3
  238. package/src/i18n/messagebundle_ru.properties +3 -3
  239. package/src/i18n/messagebundle_sh.properties +3 -3
  240. package/src/i18n/messagebundle_sk.properties +3 -3
  241. package/src/i18n/messagebundle_sl.properties +3 -3
  242. package/src/i18n/messagebundle_sr.properties +3 -3
  243. package/src/i18n/messagebundle_sv.properties +8 -8
  244. package/src/i18n/messagebundle_th.properties +3 -3
  245. package/src/i18n/messagebundle_tr.properties +3 -3
  246. package/src/i18n/messagebundle_uk.properties +3 -3
  247. package/src/i18n/messagebundle_vi.properties +3 -3
  248. package/src/i18n/messagebundle_zh_CN.properties +3 -3
  249. package/src/i18n/messagebundle_zh_TW.properties +3 -3
  250. package/src/themes/DatePicker.css +2 -2
  251. package/src/themes/DateTimePicker.css +2 -0
  252. package/src/themes/TableCellBase.css +2 -1
  253. package/src/themes/TableRow.css +4 -6
  254. package/src/themes/Toolbar.css +6 -0
package/dist/Avatar.d.ts CHANGED
@@ -188,6 +188,10 @@ declare class Avatar extends UI5Element implements ITabbable, IAvatarGroupItem {
188
188
  /**
189
189
  * Defines the optional badge that will be used for visual affordance.
190
190
  *
191
+ * **Recommendation:** While badges are supported on all avatars, it is recommended
192
+ * to use them with interactive avatars (via `mode="Interactive"` or `interactive` attribute)
193
+ * to provide better user experience and accessibility.
194
+ *
191
195
  * **Note:** While the slot allows for custom badges, to achieve
192
196
  * the Fiori design, use the `ui5-avatar-badge` component.
193
197
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { IAvatarGroupItem } from \"./AvatarGroup.js\";\n// Template\nimport AvatarTemplate from \"./AvatarTemplate.js\";\n\nimport {\n\tAVATAR_TOOLTIP,\n\tAVATAR_TYPE_BUTTON,\n\tAVATAR_TYPE_IMAGE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nimport type Icon from \"./Icon.js\";\nimport AvatarSize from \"./types/AvatarSize.js\";\nimport type AvatarShape from \"./types/AvatarShape.js\";\nimport type AvatarColorScheme from \"./types/AvatarColorScheme.js\";\nimport AvatarMode from \"./types/AvatarMode.js\";\n\n// Icon\nimport \"@ui5/webcomponents-icons/dist/employee.js\";\n\ntype AvatarAccessibilityAttributes = Pick<AccessibilityAttributes, \"hasPopup\">;\n\n/**\n * @class\n * ### Overview\n *\n * An image-like component that has different display options for representing images and icons\n * in different shapes and sizes, depending on the use case.\n *\n * The shape can be circular or square. There are several predefined sizes, as well as an option to\n * set a custom size.\n *\n * ### Keyboard Handling\n *\n * - [Space] / [Enter] or [Return] - Fires the `click` event if the `mode` is set to `Interactive` or the deprecated `interactive` property is set to true.\n * - [Shift] - If [Space] is pressed, pressing [Shift] releases the component without triggering the click event.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/Avatar.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @implements {IAvatarGroupItem}\n * @public\n */\n@customElement({\n\ttag: \"ui5-avatar\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: AvatarCss,\n\ttemplate: AvatarTemplate,\n})\n/**\n * Fired on mouseup, space and enter if avatar is interactive\n *\n * **Note:** The event will not be fired if the `disabled`\n * property is set to `true`.\n * @public\n * @since 2.11.0\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass Avatar extends UI5Element implements ITabbable, IAvatarGroupItem {\n\teventDetails!: {\n\t\tclick: void,\n\t}\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines if the avatar is interactive (focusable and pressable).\n\t *\n\t * **Note:** When set to `true`, this property takes precedence over the `mode` property,\n\t * and the avatar will be rendered as interactive (role=\"button\", focusable) regardless of the `mode` value.\n\t *\n\t * **Note:** This property won't have effect if the `disabled`\n\t * property is set to `true`.\n\t * @default false\n\t * @public\n\t * @deprecated Set `mode=\"Interactive\"` instead for the same functionality with proper accessibility.\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines the mode of the component.\n\t *\n\t * **Note:**\n\t * - `Image` (default) - renders with role=\"img\"\n\t * - `Decorative` - renders with role=\"presentation\" and aria-hidden=\"true\", making it purely decorative\n\t * - `Interactive` - renders with role=\"button\", focusable (tabindex=\"0\"), and supports keyboard interaction\n\t *\n\t * **Note:** This property is ignored when the `interactive` property is set to `true`.\n\t * In that case, the avatar will always be rendered as interactive.\n\t * @default \"Image\"\n\t * @public\n\t * @since 2.20\n\t */\n\t@property()\n\tmode: `${AvatarMode}` = \"Image\";\n\n\t/**\n\t * Defines the name of the UI5 Icon, that will be displayed.\n\t *\n\t * **Note:** If `image` slot is provided, the property will be ignored.\n\t *\n\t * **Note:** You should import the desired icon first, then use its name as \"icon\".\n\t *\n\t * `import \"@ui5/webcomponents-icons/dist/{icon_name}.js\"`\n\t *\n\t * `<ui5-avatar icon=\"employee\">`\n\t *\n\t * **Note:** If no icon or an empty one is provided, by default the \"employee\" icon should be displayed.\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 the name of the fallback icon, which should be displayed in the following cases:\n\t *\n\t * \t- If the initials are not valid (more than 3 letters, unsupported languages or empty initials).\n\t * \t- If there are three initials and they do not fit in the shape (e.g. WWW for some of the sizes).\n\t * \t- If the image src is wrong.\n\t *\n\t * **Note:** If not set, a default fallback icon \"employee\" is displayed.\n\t *\n\t * **Note:** You should import the desired icon first, then use its name as \"fallback-icon\".\n\t *\n\t * `import \"@ui5/webcomponents-icons/dist/{icon_name}.js\"`\n\t *\n\t * `<ui5-avatar fallback-icon=\"alert\">`\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 \"employee\"\n\t * @public\n\t */\n\t@property()\n\tfallbackIcon = \"employee\";\n\n\t/**\n\t * Defines the displayed initials.\n\t *\n\t * Up to three Latin letters can be displayed as initials.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tinitials?: string;\n\n\t/**\n\t * Defines the shape of the component.\n\t * @default \"Circle\"\n\t * @public\n\t */\n\t@property()\n\tshape: `${AvatarShape}` = \"Circle\";\n\n\t/**\n\t * Defines predefined size of the component.\n\t * @default \"S\"\n\t * @public\n\t */\n\t@property()\n\tsize: `${AvatarSize}` = \"S\";\n\n\t/**\n\t * Defines the background color of the desired image.\n\t * If `colorScheme` is set to `Auto`, the avatar will be displayed with the `Accent6` color.\n\t *\n\t * @default \"Auto\"\n\t * @public\n\t */\n\t@property()\n\tcolorScheme: `${AvatarColorScheme}` = \"Auto\";\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\t_colorScheme: `${AvatarColorScheme}` = \"Auto\";\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * 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.7\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following field is supported:\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * @public\n\t * @since 2.0.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: AvatarAccessibilityAttributes = {};\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_hasImage = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_imageLoadError = false;\n\n\t/**\n\t * Receives the desired `<img>` tag\n\t *\n\t * **Note:** If you experience flickering of the provided image, you can hide the component until it is defined with the following CSS:<br/>\n\t * `ui5-avatar:not(:defined) {`<br/>\n\t * &nbsp;&nbsp;&nbsp;&nbsp;`visibility: hidden;`<br/>\n\t * `}`\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\timage!: DefaultSlot<HTMLElement>;\n\n\t/**\n\t * Defines the optional badge that will be used for visual affordance.\n\t *\n\t * **Note:** While the slot allows for custom badges, to achieve\n\t * the Fiori design, use the `ui5-avatar-badge` component.\n\t * @public\n\t * @since 1.7.0\n\t */\n\t@slot()\n\tbadge!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleResizeBound: ResizeObserverCallback;\n\t_onImageLoadBound: (e: Event) => void;\n\t_onImageErrorBound: (e: Event) => void;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t\tthis._onImageLoadBound = this._onImageLoad.bind(this);\n\t\tthis._onImageErrorBound = this._onImageError.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._attachImageEventHandlers();\n\t\tthis._hasImage = this.hasImage;\n\t}\n\n\tget tabindex() {\n\t\tif (this.forcedTabIndex) {\n\t\t\treturn parseInt(this.forcedTabIndex);\n\t\t}\n\t\treturn this._interactive ? 0 : undefined;\n\t}\n\n\t/**\n\t * Returns the effective avatar size.\n\t * @default \"S\"\n\t * @private\n\t */\n\tget effectiveSize(): AvatarSize {\n\t\t// we read the attribute, because the \"size\" property will always have a default value\n\t\treturn this.getAttribute(\"size\") as AvatarSize || AvatarSize.S;\n\t}\n\n\t/**\n\t * Returns the effective background color.\n\t * @default \"Auto\"\n\t * @private\n\t */\n\tget effectiveBackgroundColor(): AvatarColorScheme {\n\t\t// we read the attribute, because the \"background-color\" property will always have a default value\n\t\treturn this.getAttribute(\"color-scheme\") as AvatarColorScheme || this._colorScheme;\n\t}\n\n\tget _role() {\n\t\tif (this._interactive) {\n\t\t\treturn \"button\";\n\t\t}\n\t\tif (this.mode === AvatarMode.Decorative) {\n\t\t\treturn \"presentation\";\n\t\t}\n\t\treturn \"img\";\n\t}\n\n\tget effectiveAriaHidden() {\n\t\t// interactive property takes precedence - never hidden when interactive\n\t\tif (this.interactive) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.mode === AvatarMode.Decorative ? \"true\" : undefined;\n\t}\n\n\tget _ariaHasPopup() {\n\t\treturn this._getAriaHasPopup();\n\t}\n\n\tget _interactive() {\n\t\treturn (this.interactive || this.mode === AvatarMode.Interactive) && !this.disabled;\n\t}\n\n\tget validInitials() {\n\t\t// initials should consist of only 1,2 or 3 latin letters\n\t\tconst validInitials = /^[a-zA-Zà-üÀ-Ü]{1,3}$/,\n\t\t\tareInitialsValid = this.initials && validInitials.test(this.initials);\n\n\t\tif (areInitialsValid) {\n\t\t\treturn this.initials;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tget accessibleNameText() {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\n\t\tconst defaultLabel = Avatar.i18nBundle.getText(AVATAR_TOOLTIP);\n\n\t\treturn this.initials ? `${defaultLabel} ${this.initials}`.trim() : defaultLabel;\n\t}\n\n\tget hasImage() {\n\t\treturn !!this.image.length && !this._imageLoadError;\n\t}\n\n\tget imageEl(): HTMLImageElement | null {\n\t\treturn this.image?.[0] instanceof HTMLImageElement ? this.image[0] : null;\n\t}\n\n\tget initialsContainer(): HTMLObjectElement | null {\n\t\treturn this.getDomRef()!.querySelector(\".ui5-avatar-initials\");\n\t}\n\n\tget fallBackIconDomRef(): Icon | null {\n\t\treturn this.getDomRef()!.querySelector(\".ui5-avatar-icon-fallback\");\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\t\tif (this.initials && !this.icon) {\n\t\t\tthis._checkInitials();\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tthis.initialsContainer && ResizeHandler.register(this.initialsContainer,\n\t\t\tthis._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tthis.initialsContainer && ResizeHandler.deregister(this.initialsContainer,\n\t\t\tthis._handleResizeBound);\n\n\t\tthis._detachImageEventHandlers();\n\t}\n\n\thandleResize() {\n\t\tif (this.initials && !this.icon) {\n\t\t\tthis._checkInitials();\n\t\t}\n\t}\n\n\t_checkInitials() {\n\t\tconst avatar = this.getDomRef()!;\n\t\tconst avatarInitials = avatar.querySelector(\".ui5-avatar-initials\");\n\t\tconst validInitials = this.validInitials && avatarInitials && avatarInitials.scrollWidth <= avatar.scrollWidth;\n\n\t\tif (validInitials) {\n\t\t\tthis.showInitials();\n\t\t\treturn;\n\t\t}\n\t\tthis.showFallbackIcon();\n\t}\n\n\tshowFallbackIcon() {\n\t\tthis.initialsContainer?.classList.add(\"ui5-avatar-initials-hidden\");\n\t\tthis.fallBackIconDomRef?.classList.remove(\"ui5-avatar-fallback-icon-hidden\");\n\t}\n\n\tshowInitials() {\n\t\tthis.initialsContainer?.classList.remove(\"ui5-avatar-initials-hidden\");\n\t\tthis.fallBackIconDomRef?.classList.add(\"ui5-avatar-fallback-icon-hidden\");\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t\tthis._fireClick();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this._interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._fireClick();\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._interactive && !e.shiftKey && isSpace(e)) {\n\t\t\tthis._fireClick();\n\t\t}\n\t}\n\n\t_fireClick() {\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_getAriaHasPopup() {\n\t\tconst ariaHaspopup = this.accessibilityAttributes.hasPopup;\n\n\t\t// aria-haspopup only applies when avatar is interactive\n\t\tif (!this._interactive || !ariaHaspopup) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn ariaHaspopup;\n\t}\n\n\t_attachImageEventHandlers() {\n\t\tconst imgEl = this.imageEl;\n\t\tif (!imgEl) {\n\t\t\tthis._imageLoadError = false;\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove previous handlers to avoid duplicates\n\t\timgEl.removeEventListener(\"load\", this._onImageLoadBound);\n\t\timgEl.removeEventListener(\"error\", this._onImageErrorBound);\n\n\t\t// Attach new handlers\n\t\timgEl.addEventListener(\"load\", this._onImageLoadBound);\n\t\timgEl.addEventListener(\"error\", this._onImageErrorBound);\n\n\t\t// Check existing image state\n\t\tthis._checkExistingImageState();\n\t}\n\n\t_checkExistingImageState() {\n\t\tconst imgEl = this.imageEl;\n\t\tif (!imgEl) {\n\t\t\tthis._imageLoadError = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (imgEl.complete && imgEl.naturalWidth === 0) {\n\t\t\tthis._imageLoadError = true; // Already broken\n\t\t} else if (imgEl.complete && imgEl.naturalWidth > 0) {\n\t\t\tthis._imageLoadError = false; // Already loaded\n\t\t} else {\n\t\t\tthis._imageLoadError = false; // Pending load\n\t\t}\n\t}\n\n\t_detachImageEventHandlers() {\n\t\tconst imgEl = this.imageEl;\n\t\tif (!imgEl) {\n\t\t\treturn;\n\t\t}\n\n\t\timgEl.removeEventListener(\"load\", this._onImageLoadBound);\n\t\timgEl.removeEventListener(\"error\", this._onImageErrorBound);\n\t}\n\n\t_onImageLoad(e: Event) {\n\t\tif (e.target !== this.imageEl) {\n\t\t\t(e.target as HTMLImageElement)?.removeEventListener(\"load\", this._onImageLoadBound);\n\t\t\treturn;\n\t\t}\n\t\tthis._imageLoadError = false;\n\t}\n\n\t_onImageError(e: Event) {\n\t\tif (e.target !== this.imageEl) {\n\t\t\t(e.target as HTMLImageElement)?.removeEventListener(\"error\", this._onImageErrorBound);\n\t\t\treturn;\n\t\t}\n\t\tthis._imageLoadError = true;\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\trole: this._role as AriaRole,\n\t\t\ttype: this._interactive ? Avatar.i18nBundle.getText(AVATAR_TYPE_BUTTON) : Avatar.i18nBundle.getText(AVATAR_TYPE_IMAGE),\n\t\t\tdescription: this.accessibleNameText,\n\t\t\tdisabled: this.disabled,\n\t\t};\n\t}\n}\n\nAvatar.define();\n\nexport default Avatar;\nexport type {\n\tAvatarAccessibilityAttributes,\n};\n"]}
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { IAvatarGroupItem } from \"./AvatarGroup.js\";\n// Template\nimport AvatarTemplate from \"./AvatarTemplate.js\";\n\nimport {\n\tAVATAR_TOOLTIP,\n\tAVATAR_TYPE_BUTTON,\n\tAVATAR_TYPE_IMAGE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nimport type Icon from \"./Icon.js\";\nimport AvatarSize from \"./types/AvatarSize.js\";\nimport type AvatarShape from \"./types/AvatarShape.js\";\nimport type AvatarColorScheme from \"./types/AvatarColorScheme.js\";\nimport AvatarMode from \"./types/AvatarMode.js\";\n\n// Icon\nimport \"@ui5/webcomponents-icons/dist/employee.js\";\n\ntype AvatarAccessibilityAttributes = Pick<AccessibilityAttributes, \"hasPopup\">;\n\n/**\n * @class\n * ### Overview\n *\n * An image-like component that has different display options for representing images and icons\n * in different shapes and sizes, depending on the use case.\n *\n * The shape can be circular or square. There are several predefined sizes, as well as an option to\n * set a custom size.\n *\n * ### Keyboard Handling\n *\n * - [Space] / [Enter] or [Return] - Fires the `click` event if the `mode` is set to `Interactive` or the deprecated `interactive` property is set to true.\n * - [Shift] - If [Space] is pressed, pressing [Shift] releases the component without triggering the click event.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/Avatar.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @implements {IAvatarGroupItem}\n * @public\n */\n@customElement({\n\ttag: \"ui5-avatar\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: AvatarCss,\n\ttemplate: AvatarTemplate,\n})\n/**\n * Fired on mouseup, space and enter if avatar is interactive\n *\n * **Note:** The event will not be fired if the `disabled`\n * property is set to `true`.\n * @public\n * @since 2.11.0\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass Avatar extends UI5Element implements ITabbable, IAvatarGroupItem {\n\teventDetails!: {\n\t\tclick: void,\n\t}\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines if the avatar is interactive (focusable and pressable).\n\t *\n\t * **Note:** When set to `true`, this property takes precedence over the `mode` property,\n\t * and the avatar will be rendered as interactive (role=\"button\", focusable) regardless of the `mode` value.\n\t *\n\t * **Note:** This property won't have effect if the `disabled`\n\t * property is set to `true`.\n\t * @default false\n\t * @public\n\t * @deprecated Set `mode=\"Interactive\"` instead for the same functionality with proper accessibility.\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines the mode of the component.\n\t *\n\t * **Note:**\n\t * - `Image` (default) - renders with role=\"img\"\n\t * - `Decorative` - renders with role=\"presentation\" and aria-hidden=\"true\", making it purely decorative\n\t * - `Interactive` - renders with role=\"button\", focusable (tabindex=\"0\"), and supports keyboard interaction\n\t *\n\t * **Note:** This property is ignored when the `interactive` property is set to `true`.\n\t * In that case, the avatar will always be rendered as interactive.\n\t * @default \"Image\"\n\t * @public\n\t * @since 2.20\n\t */\n\t@property()\n\tmode: `${AvatarMode}` = \"Image\";\n\n\t/**\n\t * Defines the name of the UI5 Icon, that will be displayed.\n\t *\n\t * **Note:** If `image` slot is provided, the property will be ignored.\n\t *\n\t * **Note:** You should import the desired icon first, then use its name as \"icon\".\n\t *\n\t * `import \"@ui5/webcomponents-icons/dist/{icon_name}.js\"`\n\t *\n\t * `<ui5-avatar icon=\"employee\">`\n\t *\n\t * **Note:** If no icon or an empty one is provided, by default the \"employee\" icon should be displayed.\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 the name of the fallback icon, which should be displayed in the following cases:\n\t *\n\t * \t- If the initials are not valid (more than 3 letters, unsupported languages or empty initials).\n\t * \t- If there are three initials and they do not fit in the shape (e.g. WWW for some of the sizes).\n\t * \t- If the image src is wrong.\n\t *\n\t * **Note:** If not set, a default fallback icon \"employee\" is displayed.\n\t *\n\t * **Note:** You should import the desired icon first, then use its name as \"fallback-icon\".\n\t *\n\t * `import \"@ui5/webcomponents-icons/dist/{icon_name}.js\"`\n\t *\n\t * `<ui5-avatar fallback-icon=\"alert\">`\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 \"employee\"\n\t * @public\n\t */\n\t@property()\n\tfallbackIcon = \"employee\";\n\n\t/**\n\t * Defines the displayed initials.\n\t *\n\t * Up to three Latin letters can be displayed as initials.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tinitials?: string;\n\n\t/**\n\t * Defines the shape of the component.\n\t * @default \"Circle\"\n\t * @public\n\t */\n\t@property()\n\tshape: `${AvatarShape}` = \"Circle\";\n\n\t/**\n\t * Defines predefined size of the component.\n\t * @default \"S\"\n\t * @public\n\t */\n\t@property()\n\tsize: `${AvatarSize}` = \"S\";\n\n\t/**\n\t * Defines the background color of the desired image.\n\t * If `colorScheme` is set to `Auto`, the avatar will be displayed with the `Accent6` color.\n\t *\n\t * @default \"Auto\"\n\t * @public\n\t */\n\t@property()\n\tcolorScheme: `${AvatarColorScheme}` = \"Auto\";\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\t_colorScheme: `${AvatarColorScheme}` = \"Auto\";\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * 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.7\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following field is supported:\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * @public\n\t * @since 2.0.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: AvatarAccessibilityAttributes = {};\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_hasImage = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_imageLoadError = false;\n\n\t/**\n\t * Receives the desired `<img>` tag\n\t *\n\t * **Note:** If you experience flickering of the provided image, you can hide the component until it is defined with the following CSS:<br/>\n\t * `ui5-avatar:not(:defined) {`<br/>\n\t * &nbsp;&nbsp;&nbsp;&nbsp;`visibility: hidden;`<br/>\n\t * `}`\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\timage!: DefaultSlot<HTMLElement>;\n\n\t/**\n\t * Defines the optional badge that will be used for visual affordance.\n\t *\n\t * **Recommendation:** While badges are supported on all avatars, it is recommended\n\t * to use them with interactive avatars (via `mode=\"Interactive\"` or `interactive` attribute)\n\t * to provide better user experience and accessibility.\n\t *\n\t * **Note:** While the slot allows for custom badges, to achieve\n\t * the Fiori design, use the `ui5-avatar-badge` component.\n\t * @public\n\t * @since 1.7.0\n\t */\n\t@slot()\n\tbadge!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleResizeBound: ResizeObserverCallback;\n\t_onImageLoadBound: (e: Event) => void;\n\t_onImageErrorBound: (e: Event) => void;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t\tthis._onImageLoadBound = this._onImageLoad.bind(this);\n\t\tthis._onImageErrorBound = this._onImageError.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._attachImageEventHandlers();\n\t\tthis._hasImage = this.hasImage;\n\t}\n\n\tget tabindex() {\n\t\tif (this.forcedTabIndex) {\n\t\t\treturn parseInt(this.forcedTabIndex);\n\t\t}\n\t\treturn this._interactive ? 0 : undefined;\n\t}\n\n\t/**\n\t * Returns the effective avatar size.\n\t * @default \"S\"\n\t * @private\n\t */\n\tget effectiveSize(): AvatarSize {\n\t\t// we read the attribute, because the \"size\" property will always have a default value\n\t\treturn this.getAttribute(\"size\") as AvatarSize || AvatarSize.S;\n\t}\n\n\t/**\n\t * Returns the effective background color.\n\t * @default \"Auto\"\n\t * @private\n\t */\n\tget effectiveBackgroundColor(): AvatarColorScheme {\n\t\t// we read the attribute, because the \"background-color\" property will always have a default value\n\t\treturn this.getAttribute(\"color-scheme\") as AvatarColorScheme || this._colorScheme;\n\t}\n\n\tget _role() {\n\t\tif (this._interactive) {\n\t\t\treturn \"button\";\n\t\t}\n\t\tif (this.mode === AvatarMode.Decorative) {\n\t\t\treturn \"presentation\";\n\t\t}\n\t\treturn \"img\";\n\t}\n\n\tget effectiveAriaHidden() {\n\t\t// interactive property takes precedence - never hidden when interactive\n\t\tif (this.interactive) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.mode === AvatarMode.Decorative ? \"true\" : undefined;\n\t}\n\n\tget _ariaHasPopup() {\n\t\treturn this._getAriaHasPopup();\n\t}\n\n\tget _interactive() {\n\t\treturn (this.interactive || this.mode === AvatarMode.Interactive) && !this.disabled;\n\t}\n\n\tget validInitials() {\n\t\t// initials should consist of only 1,2 or 3 latin letters\n\t\tconst validInitials = /^[a-zA-Zà-üÀ-Ü]{1,3}$/,\n\t\t\tareInitialsValid = this.initials && validInitials.test(this.initials);\n\n\t\tif (areInitialsValid) {\n\t\t\treturn this.initials;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tget accessibleNameText() {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\n\t\tconst defaultLabel = Avatar.i18nBundle.getText(AVATAR_TOOLTIP);\n\n\t\treturn this.initials ? `${defaultLabel} ${this.initials}`.trim() : defaultLabel;\n\t}\n\n\tget hasImage() {\n\t\treturn !!this.image.length && !this._imageLoadError;\n\t}\n\n\tget imageEl(): HTMLImageElement | null {\n\t\treturn this.image?.[0] instanceof HTMLImageElement ? this.image[0] : null;\n\t}\n\n\tget initialsContainer(): HTMLObjectElement | null {\n\t\treturn this.getDomRef()!.querySelector(\".ui5-avatar-initials\");\n\t}\n\n\tget fallBackIconDomRef(): Icon | null {\n\t\treturn this.getDomRef()!.querySelector(\".ui5-avatar-icon-fallback\");\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\t\tif (this.initials && !this.icon) {\n\t\t\tthis._checkInitials();\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tthis.initialsContainer && ResizeHandler.register(this.initialsContainer,\n\t\t\tthis._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tthis.initialsContainer && ResizeHandler.deregister(this.initialsContainer,\n\t\t\tthis._handleResizeBound);\n\n\t\tthis._detachImageEventHandlers();\n\t}\n\n\thandleResize() {\n\t\tif (this.initials && !this.icon) {\n\t\t\tthis._checkInitials();\n\t\t}\n\t}\n\n\t_checkInitials() {\n\t\tconst avatar = this.getDomRef()!;\n\t\tconst avatarInitials = avatar.querySelector(\".ui5-avatar-initials\");\n\t\tconst validInitials = this.validInitials && avatarInitials && avatarInitials.scrollWidth <= avatar.scrollWidth;\n\n\t\tif (validInitials) {\n\t\t\tthis.showInitials();\n\t\t\treturn;\n\t\t}\n\t\tthis.showFallbackIcon();\n\t}\n\n\tshowFallbackIcon() {\n\t\tthis.initialsContainer?.classList.add(\"ui5-avatar-initials-hidden\");\n\t\tthis.fallBackIconDomRef?.classList.remove(\"ui5-avatar-fallback-icon-hidden\");\n\t}\n\n\tshowInitials() {\n\t\tthis.initialsContainer?.classList.remove(\"ui5-avatar-initials-hidden\");\n\t\tthis.fallBackIconDomRef?.classList.add(\"ui5-avatar-fallback-icon-hidden\");\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t\tthis._fireClick();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this._interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._fireClick();\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._interactive && !e.shiftKey && isSpace(e)) {\n\t\t\tthis._fireClick();\n\t\t}\n\t}\n\n\t_fireClick() {\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_getAriaHasPopup() {\n\t\tconst ariaHaspopup = this.accessibilityAttributes.hasPopup;\n\n\t\t// aria-haspopup only applies when avatar is interactive\n\t\tif (!this._interactive || !ariaHaspopup) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn ariaHaspopup;\n\t}\n\n\t_attachImageEventHandlers() {\n\t\tconst imgEl = this.imageEl;\n\t\tif (!imgEl) {\n\t\t\tthis._imageLoadError = false;\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove previous handlers to avoid duplicates\n\t\timgEl.removeEventListener(\"load\", this._onImageLoadBound);\n\t\timgEl.removeEventListener(\"error\", this._onImageErrorBound);\n\n\t\t// Attach new handlers\n\t\timgEl.addEventListener(\"load\", this._onImageLoadBound);\n\t\timgEl.addEventListener(\"error\", this._onImageErrorBound);\n\n\t\t// Check existing image state\n\t\tthis._checkExistingImageState();\n\t}\n\n\t_checkExistingImageState() {\n\t\tconst imgEl = this.imageEl;\n\t\tif (!imgEl) {\n\t\t\tthis._imageLoadError = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (imgEl.complete && imgEl.naturalWidth === 0) {\n\t\t\tthis._imageLoadError = true; // Already broken\n\t\t} else if (imgEl.complete && imgEl.naturalWidth > 0) {\n\t\t\tthis._imageLoadError = false; // Already loaded\n\t\t} else {\n\t\t\tthis._imageLoadError = false; // Pending load\n\t\t}\n\t}\n\n\t_detachImageEventHandlers() {\n\t\tconst imgEl = this.imageEl;\n\t\tif (!imgEl) {\n\t\t\treturn;\n\t\t}\n\n\t\timgEl.removeEventListener(\"load\", this._onImageLoadBound);\n\t\timgEl.removeEventListener(\"error\", this._onImageErrorBound);\n\t}\n\n\t_onImageLoad(e: Event) {\n\t\tif (e.target !== this.imageEl) {\n\t\t\t(e.target as HTMLImageElement)?.removeEventListener(\"load\", this._onImageLoadBound);\n\t\t\treturn;\n\t\t}\n\t\tthis._imageLoadError = false;\n\t}\n\n\t_onImageError(e: Event) {\n\t\tif (e.target !== this.imageEl) {\n\t\t\t(e.target as HTMLImageElement)?.removeEventListener(\"error\", this._onImageErrorBound);\n\t\t\treturn;\n\t\t}\n\t\tthis._imageLoadError = true;\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\trole: this._role as AriaRole,\n\t\t\ttype: this._interactive ? Avatar.i18nBundle.getText(AVATAR_TYPE_BUTTON) : Avatar.i18nBundle.getText(AVATAR_TYPE_IMAGE),\n\t\t\tdescription: this.accessibleNameText,\n\t\t\tdisabled: this.disabled,\n\t\t};\n\t}\n}\n\nAvatar.define();\n\nexport default Avatar;\nexport type {\n\tAvatarAccessibilityAttributes,\n};\n"]}
@@ -331,10 +331,10 @@ declare class Carousel extends UI5Element {
331
331
  /**
332
332
  * Returns only visible (non-hidden) content items.
333
333
  * Items with the 'hidden' attribute are automatically excluded from carousel navigation.
334
+ * @default []
334
335
  * @private
335
- * @returns {Array<HTMLElement>}
336
336
  */
337
- get _visibleItems(): HTMLElement[];
337
+ get _visibleItems(): Array<HTMLElement>;
338
338
  carouselItemDomRef(idx: number): Array<HTMLElement>;
339
339
  }
340
340
  export default Carousel;
package/dist/Carousel.js CHANGED
@@ -764,8 +764,8 @@ let Carousel = Carousel_1 = class Carousel extends UI5Element {
764
764
  /**
765
765
  * Returns only visible (non-hidden) content items.
766
766
  * Items with the 'hidden' attribute are automatically excluded from carousel navigation.
767
+ * @default []
767
768
  * @private
768
- * @returns {Array<HTMLElement>}
769
769
  */
770
770
  get _visibleItems() {
771
771
  return this.content.filter(x => !x.hasAttribute("hidden"));
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport 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 slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { ScrollEnablementEventListenerParam } from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n\tCAROUSEL_ARIA_ROLE_DESCRIPTION,\n\tCAROUSEL_ARIA_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorType from \"./types/CarouselPageIndicatorType.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport type BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./CarouselTemplate.js\";\nimport type Icon from \"./Icon.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\n}\n\ntype ItemsInfo = {\n\tid: string,\n\titem: HTMLElement & { _individualSlot?: string },\n\ttabIndex: number,\n\tposinset: number,\n\tsetsize: number,\n\tvisible: boolean,\n\t_individualSlot?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Carousel allows the user to browse through a set of items.\n * The component is mostly used for showing a gallery of images, but can hold any other HTML element.\n *\n * There are several ways to perform navigation:\n *\n * - on desktop - the user can navigate using the navigation arrows or with keyboard shortcuts.\n * - on touch devices - the user can navigate using the navigation arrows (always visible) or can use swipe gestures.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - The items you want to display are very different from each other.\n * - You want to display the items one after the other.\n *\n * #### When not to use:\n *\n * - The items you want to display need to be visible at the same time.\n * - The items you want to display are uniform and very similar.\n *\n * ### Hidden Items\n *\n * Carousel items can be conditionally hidden by adding the `hidden` attribute to any child element.\n * Hidden items are automatically excluded from carousel navigation and will not be displayed or counted in pagination.\n * This allows for dynamic showing or hiding of carousel items without affecting the overall carousel behavior.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-carousel` is focused the user can navigate between the items\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] - Navigates to previous and next item\n * - [Left] or [Right] - Navigates to previous and next item\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n *\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Carousel.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n * @csspart content - Used to style the content of the component\n */\n@customElement({\n\ttag: \"ui5-carousel\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n})\n/**\n * Fired whenever the page changes due to user interaction,\n * when the user clicks on the navigation arrows or while resizing,\n * based on the `items-per-page` property.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\n\nclass Carousel extends UI5Element {\n\teventDetails!: {\n\t\tnavigate: CarouselNavigateEventDetail;\n\t}\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcyclic = false;\n\n\t/**\n\t * Defines the number of items per page depending on the carousel width.\n\t *\n\t * - 'S' for screens smaller than 600 pixels.\n\t * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - 'XL' for screens greater than or equal to 1440 pixels.\n\t *\n\t * One item per page is shown by default.\n\t * @default \"S1 M1 L1 XL1\"\n\t * @public\n\t */\n\t@property()\n\titemsPerPage = \"S1 M1 L1 XL1\";\n\n\t/**\n\t * Defines the visibility of the navigation arrows.\n\t * If set to true the navigation arrows will be hidden.\n\t *\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows = false;\n\n\t/**\n\t * Defines the visibility of the page indicator.\n\t * If set to true the page indicator will be hidden.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePageIndicator = false;\n\n\t/**\n\t * Defines the style of the page indicator.\n\t * Available options are:\n\t *\n\t * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n\t * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n\t * @since 1.10\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n\t/**\n\t * Defines the carousel's background design.\n\t * @since 1.14\n\t * @default \"Translucent\"\n\t * @public\n\t */\n\t@property()\n\tbackgroundDesign: `${BackgroundDesign}` = \"Translucent\";\n\n\t/**\n\t * Defines the page indicator background design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the page indicator border design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBorderDesign: `${BorderDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the index of the initially selected item.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_focusedItemIndex = 0;\n\n\t/**\n\t * Defines the position of arrows.\n\t *\n\t * Available options are:\n\t *\n\t * - `Content` - the arrows are placed on the sides of the current page.\n\t * - `Navigation` - the arrows are placed on the sides of the page indicator.\n\t * @default \"Content\"\n\t * @public\n\t */\n\t@property()\n\tarrowsPlacement: `${CarouselArrowsPlacement}` = \"Content\";\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_itemWidth?: number;\n\n\t/**\n\t * If set to true navigation arrows are shown.\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_visibleNavigationArrows = false;\n\n\t/**\n\t * Internal trigger flag that forces component re-rendering when content items change.\n\t * @private\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_visibleItemsCount = 0;\n\n\t/**\n\t * Defines the current slide index, which contains the visible item in the viewport.\n\t * @private\n\t * @since 2.16.0-r.c1\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_currentSlideIndex: number = 0;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedPages: Array<number>;\n\t_lastInnerFocusedElement?: HTMLElement;\n\t_pageStep: number = 10;\n\t_visibleItemsIndexes: Array<number>;\n\t_itemIndicator: number = 0;\n\t_contentItemsObserver: MutationObserver;\n\t_observableContent: Array<HTMLElement> = [];\n\n\t/**\n\t * Defines the content of the component.\n\t *\n\t * **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.\n\t * They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: DefaultSlot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get pageTypeLimit() {\n\t\treturn 9;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._contentItemsObserver = new MutationObserver(() => {\n\t\t\tconst visibleItemsCount = this._visibleItems.length;\n\n\t\t\tif (this._visibleItemsCount === visibleItemsCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._visibleItemsCount = visibleItemsCount;\n\n\t\t\tthis._currentSlideIndex = clamp(this._currentSlideIndex, 0, Math.max(0, this.items.length - this.effectiveItemsPerPage));\n\t\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentSlideIndex, this.items.length - 1);\n\t\t\tthis._moveToItem(this._currentSlideIndex);\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._scrollEnablement.attachEvent(\"touchend\", e => {\n\t\t\tthis._updateScrolling(e);\n\t\t});\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._resizing = false; // indicates if the carousel is in process of resizing\n\n\t\tthis._lastFocusedElements = [];\n\t\tthis._orderOfLastFocusedPages = [];\n\t\tthis._visibleItemsIndexes = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._observeContentItems();\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation || !isDesktop()) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\n\t\tthis.validateSelectedIndex();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._scrollEnablement.scrollContainer = this.getDomRef()!;\n\t\tthis._resizing = false; // not invalidating\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._contentItemsObserver.disconnect();\n\t\tthis._observableContent = [];\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateSelectedIndex() {\n\t\tif (!this.isIndexInRange(this._focusedItemIndex)) {\n\t\t\tthis._focusedItemIndex = 0;\n\t\t}\n\t}\n\n\t_onResize() {\n\t\tconst previousItemsPerPage = this.effectiveItemsPerPage;\n\n\t\t// Set the resizing flag to suppress animation while resizing\n\t\tthis._resizing = true;\n\n\t\t// Change transitively effectiveItemsPerPage by modifying _width\n\t\tthis._width = this.offsetWidth;\n\t\tthis._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);\n\t\tthis._updateVisibleItems(this._currentSlideIndex);\n\n\t\t// Items per page did not change or the current,\n\t\t// therefore page index does not need to be re-adjusted\n\t\tif (this.effectiveItemsPerPage === previousItemsPerPage) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentSlideIndex, this.items.length - this.effectiveItemsPerPage);\n\t}\n\n\t_updateScrolling(e: ScrollEnablementEventListenerParam) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.isLeft) {\n\t\t\tthis.navigateLeft();\n\t\t} else if (e.isRight) {\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\t\tif (isPageUp(e)) {\n\t\t\tthis._handlePageUp(e);\n\t\t}\n\t\tif (isPageDown(e)) {\n\t\t\tthis._handlePageDown(e);\n\t\t}\n\n\t\tif (isLeft(e) || isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateLeft();\n\t\t} else if (isRight(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target === this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet pageIndex = -1;\n\t\tfor (let i = 0; i < this._visibleItems.length; i++) {\n\t\t\tif (this._visibleItems[i].isEqualNode(target?.querySelector(\"slot\")?.assignedNodes()[0] as HTMLElement)) {\n\t\t\t\tpageIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (pageIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = pageIndex;\n\t\t// Save reference of the last focused element for each page\n\t\tthis._lastFocusedElements[pageIndex] = target;\n\n\t\tconst sortedPageIndex = this._orderOfLastFocusedPages.indexOf(pageIndex);\n\t\tif (sortedPageIndex === -1) {\n\t\t\tthis._orderOfLastFocusedPages.unshift(pageIndex);\n\t\t} else {\n\t\t\tthis._orderOfLastFocusedPages.splice(0, 0, this._orderOfLastFocusedPages.splice(sortedPageIndex, 1)[0]);\n\t\t}\n\t}\n\n\t_onmouseout() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = false;\n\t\t}\n\t}\n\n\t_onmouseover() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\t}\n\n\t_ontouchstart(e: TouchEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tasync _handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedActivePageIndex];\n\t\tif (!this._lastInnerFocusedElement) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(this.items[this._focusedItemIndex].item);\n\t\t\tfirstFocusable?.focus();\n\t\t\tthis._lastInnerFocusedElement = firstFocusable || undefined;\n\t\t} else if (this.carouselItemDomRef(this._focusedItemIndex)[0] === lastFocusedElement && lastFocusedElement !== e.target) {\n\t\t\tlastFocusedElement.focus();\n\t\t\tthis._lastInnerFocusedElement = e.target as HTMLElement;\n\t\t} else if (this._lastInnerFocusedElement) {\n\t\t\tthis._lastInnerFocusedElement.focus();\n\t\t}\n\t}\n\n\t_observeContentItems() {\n\t\tif (this.hasMatchingContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.content.forEach(item => {\n\t\t\tif (!this._observableContent.includes(item)) {\n\t\t\t\tthis._contentItemsObserver.observe(item, {\n\t\t\t\t\tcharacterData: false,\n\t\t\t\t\tchildList: false,\n\t\t\t\t\tsubtree: false,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeFilter: [\"hidden\"],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis._observableContent = this.content;\n\t}\n\n\tget hasMatchingContent() {\n\t\tif (this._observableContent.length !== this.content.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst observableContentSet = new WeakSet(this._observableContent);\n\t\treturn this.content.every(item => observableContentSet.has(item));\n\t}\n\n\tasync _handleHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(0);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handleEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(this.items.length - 1);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(this._focusedItemIndex\t+ this._pageStep < this.items.length ? this._focusedItemIndex + this._pageStep : this.items.length - 1);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(this._focusedItemIndex\t- this._pageStep > 0 ? this._focusedItemIndex - this._pageStep : 0);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tget _backgroundDesign() {\n\t\treturn this.backgroundDesign.toLowerCase();\n\t}\n\n\tget _getLastFocusedActivePageIndex() {\n\t\tfor (let i = 0; i < this._orderOfLastFocusedPages.length; i++) {\n\t\t\tconst pageIndex = this._orderOfLastFocusedPages[i];\n\n\t\t\tif (this.isItemInViewport(pageIndex)) {\n\t\t\t\treturn pageIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this._focusedItemIndex;\n\t}\n\n\tasync navigateLeft() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._focusedItemIndex;\n\n\t\tif (this._focusedItemIndex - 1 < 0) {\n\t\t\tif (this.cyclic && this._visibleItemsIndexes.length >= 1) {\n\t\t\t\tif (this._focusedItemIndex === 0 && this.effectiveItemsPerPage > 1) {\n\t\t\t\t\tthis._focusedItemIndex = 0;\n\t\t\t\t} else {\n\t\t\t\t\tthis._focusedItemIndex = this.items.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t--this._focusedItemIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._focusedItemIndex) {\n\t\t\tthis.skipToItem(this._focusedItemIndex, -1);\n\t\t\tawait renderFinished();\n\t\t\tthis.focusItem();\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: this._focusedItemIndex });\n\t\t}\n\t}\n\n\tasync navigateRight() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._focusedItemIndex;\n\n\t\tif (this._focusedItemIndex + 1 > this.items.length - 1) {\n\t\t\tif (this.cyclic) {\n\t\t\t\tif (this._focusedItemIndex === this.items.length - 1 && this.effectiveItemsPerPage > 1) {\n\t\t\t\t\tthis._focusedItemIndex = this.items.length - 1;\n\t\t\t\t} else {\n\t\t\t\t\tthis._focusedItemIndex = 0;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\t++this._focusedItemIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._focusedItemIndex) {\n\t\t\tthis.skipToItem(this._focusedItemIndex, 1);\n\t\t\tawait renderFinished();\n\t\t\tthis.focusItem();\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: this._focusedItemIndex });\n\t\t}\n\t}\n\n\tnavigateArrowRight() {\n\t\tif (this._focusedItemIndex === this._visibleItemsIndexes[0]) {\n\t\t\tthis.navigateTo(this._focusedItemIndex + 1);\n\t\t\tthis.focusItem();\n\t\t\tthis._moveToItem(this._currentSlideIndex + 1);\n\t\t} else {\n\t\t\tthis._moveToItem(this._currentSlideIndex + 1);\n\t\t\tthis.navigateTo(this._focusedItemIndex);\n\t\t\tthis.focusItem();\n\t\t}\n\t}\n\n\tnavigateArrowLeft() {\n\t\tif (this._focusedItemIndex > 0 && this._focusedItemIndex === this._visibleItemsIndexes[this._visibleItemsIndexes.length - 1]) {\n\t\t\tthis.navigateTo(this._focusedItemIndex - 1);\n\t\t\tthis.focusItem();\n\t\t\tthis._moveToItem(this._currentSlideIndex - 1);\n\t\t} else {\n\t\t\tthis._moveToItem(this._currentSlideIndex === 0 ? this.pagesCount - 1 : this._currentSlideIndex - 1);\n\t\t\tthis.navigateTo(this._focusedItemIndex === 0 ? this.items.length - 1 : this._focusedItemIndex);\n\t\t\tthis.focusItem();\n\t\t}\n\t}\n\n\t_calculateItemSlideIndex(currentSlideIndex: number, itemStep: number) {\n\t\tif (this.isItemInViewport(this._focusedItemIndex)) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst itemsPerPage = this.effectiveItemsPerPage;\n\n\t\tlet slideIndex;\n\n\t\tif (itemsPerPage > 1) {\n\t\t\tif (currentSlideIndex === 0 && itemStep < 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (currentSlideIndex >= this.pagesCount && itemStep > 0) {\n\t\t\t\treturn this.pagesCount - 1;\n\t\t\t}\n\n\t\t\tslideIndex = currentSlideIndex + itemStep;\n\t\t} else {\n\t\t\tslideIndex = itemStep > 0 ? currentSlideIndex + 1 : currentSlideIndex - 1;\n\t\t\tif (this.cyclic) {\n\t\t\t\tif (currentSlideIndex === 0 && itemStep < 0) {\n\t\t\t\t\treturn this.pagesCount - 1;\n\t\t\t\t}\n\n\t\t\t\tif (currentSlideIndex === this.items.length - 1 && itemStep > 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn slideIndex;\n\t}\n\n\t_moveToItem(slideIndex: number) {\n\t\tif (this.items.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsInViewportToShow = this.effectiveItemsPerPage,\n\t\t\titemsCount = this.items.length,\n\t\t\tcyclic = this.cyclic;\n\n\t\tif (cyclic && itemsInViewportToShow !== 1 && (slideIndex < 0 || slideIndex > itemsCount - 1)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (slideIndex + itemsInViewportToShow > itemsCount - 1) {\n\t\t\tslideIndex = itemsCount - itemsInViewportToShow;\n\t\t}\n\n\t\tthis._updateVisibleItems(slideIndex);\n\t\tthis._currentSlideIndex = slideIndex;\n\t}\n\n\tfocusItem() {\n\t\tthis.carouselItemDomRef(this._focusedItemIndex)[0].focus({ preventScroll: true });\n\t}\n\n\t_navButtonClick(e: UI5CustomEvent<Icon, \"click\">) {\n\t\tconst target = e.target as Icon;\n\t\tif (this._visibleItemsIndexes.length > 1) {\n\t\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\t\tthis.navigateArrowRight();\n\t\t\t} else {\n\t\t\t\tthis.navigateArrowLeft();\n\t\t\t}\n\t\t} else if (this._visibleItemsIndexes.length <= 1) {\n\t\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\t\tthis.navigateRight();\n\t\t\t} else {\n\t\t\t\tthis.navigateLeft();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target item\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number) {\n\t\tif (!this.isIndexInRange(itemIndex)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._focusedItemIndex < itemIndex) {\n\t\t\tthis._itemIndicator = 1;\n\t\t}\n\t\tthis._focusedItemIndex = itemIndex;\n\t\tthis._currentSlideIndex = itemIndex - this._itemIndicator;\n\n\t\tif (this.isItemInViewport(itemIndex)) {\n\t\t\tthis._currentSlideIndex = this._visibleItemsIndexes[0];\n\t\t} else {\n\t\t\tthis.skipToItem(this._focusedItemIndex, 1);\n\t\t}\n\t}\n\n\tskipToItem(focusIndex: number, offset: number) {\n\t\tif (!this.isItemInViewport(focusIndex)) {\n\t\t\tlet slideIndex = this._calculateItemSlideIndex(this._currentSlideIndex, offset);\n\t\t\tif (focusIndex === 0) {\n\t\t\t\tslideIndex = 0;\n\t\t\t}\n\t\t\tthis._moveToItem(slideIndex);\n\t\t}\n\t}\n\n\t/**\n\t * The indices of the currently visible items of the component.\n\t * @public\n\t * @since 1.0.0-rc.15\n\t * @default []\n\t */\n\tget visibleItemsIndices() : Array<number> {\n\t\treturn this._visibleItemsIndexes;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items(): Array<ItemsInfo> {\n\t\treturn this._visibleItems.map((item, idx) => {\n\t\t\treturn {\n\t\t\t\tid: `${this._id}-carousel-item-${idx + 1}`,\n\t\t\t\titem,\n\t\t\t\ttabIndex: this.isItemInViewport(this._focusedItemIndex) ? 0 : -1,\n\t\t\t\tposinset: idx + 1,\n\t\t\t\tsetsize: this._visibleItems.length,\n\t\t\t\tvisible: this.isItemInViewport(idx),\n\t\t\t};\n\t\t});\n\t}\n\tget effectiveItemsPerPage(): number {\n\t\tconst itemsPerPageArray = this.itemsPerPage.split(\" \");\n\t\tlet itemsPerPageSizeS = 1,\n\t\t\titemsPerPageSizeM = 1,\n\t\t\titemsPerPageSizeL = 1,\n\t\t\titemsPerPageSizeXL = 1;\n\n\t\titemsPerPageArray.forEach(element => {\n\t\t\tif (element.startsWith(\"S\")) {\n\t\t\t\titemsPerPageSizeS = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"M\")) {\n\t\t\t\titemsPerPageSizeM = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"L\")) {\n\t\t\t\titemsPerPageSizeL = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"XL\")) {\n\t\t\t\titemsPerPageSizeXL = Number(element.slice(2)) || 1;\n\t\t\t}\n\t\t});\n\n\t\tif (!this._width) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\tif (this._width < 600) {\n\t\t\treturn itemsPerPageSizeS;\n\t\t}\n\n\t\tif (this._width >= 600 && this._width < 1024) {\n\t\t\treturn itemsPerPageSizeM;\n\t\t}\n\n\t\tif (this._width >= 1024 && this._width < 1440) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\treturn itemsPerPageSizeXL;\n\t}\n\n\tisItemInViewport(index: number): boolean {\n\t\treturn this._visibleItemsIndexes.includes(index);\n\t}\n\n\t_updateVisibleItems(index:number) {\n\t\tlet newItemIndex = index;\n\t\tconst effectiveItemsPerPage: number = this.effectiveItemsPerPage;\n\t\tconst items = this.items;\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (newItemIndex > items.length - effectiveItemsPerPage) {\n\t\t\tnewItemIndex = items.length\t - effectiveItemsPerPage;\n\t\t}\n\t\tconst lastItemIndex = newItemIndex + effectiveItemsPerPage;\n\n\t\tthis._visibleItemsIndexes = [];\n\n\t\tfor (let i = newItemIndex; i < lastItemIndex; i++) {\n\t\t\tthis._visibleItemsIndexes.push(i);\n\t\t}\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.items.length - 1;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget renderNavigation() {\n\t\tif (!this.hasManyPages) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hidePageIndicator) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget hasManyPages() {\n\t\treturn this.pagesCount > 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tviewport: {\n\t\t\t\t\"ui5-carousel-viewport\": true,\n\t\t\t\t\"ui5-carousel-viewport--single\": this.pagesCount === 1,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-carousel-content\": true,\n\t\t\t\t\"ui5-carousel-content-no-animation\": this.suppressAnimation,\n\t\t\t\t\"ui5-carousel-content-has-navigation\": this.renderNavigation,\n\t\t\t\t\"ui5-carousel-content-has-navigation-and-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\t\"ui5-carousel-navigation-wrapper\": true,\n\t\t\t\t\"ui5-carousel-navigation-with-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-bg-${this.pageIndicatorBackgroundDesign.toLowerCase()}`]: true,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-border-${this.pageIndicatorBorderDesign.toLowerCase()}`]: true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this._visibleItems.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorType === CarouselPageIndicatorType.Numeric) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagesCount < Carousel.pageTypeLimit;\n\t}\n\n\tget dots() {\n\t\tconst dots = [];\n\t\tconst pages = this.pagesCount;\n\n\t\tfor (let index = 0; index < pages; index++) {\n\t\t\tdots.push({\n\t\t\t\tactive: index === this._currentSlideIndex,\n\t\t\t\tariaLabel: Carousel.i18nBundle.getText(CAROUSEL_DOT_TEXT, index + 1, pages),\n\t\t\t});\n\t\t}\n\n\t\treturn dots;\n\t}\n\n\tget showArrows() {\n\t\tconst displayArrows = this._visibleNavigationArrows && this.hasManyPages;\n\t\treturn {\n\t\t\tcontent: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Content,\n\t\t\tnavigation: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Navigation,\n\t\t};\n\t}\n\n\tget hasPrev() {\n\t\treturn this.cyclic || (this._focusedItemIndex - 1 >= 0 && this._currentSlideIndex !== 0);\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || (this._focusedItemIndex + 1 <= this._visibleItems.length - 1 && this._currentSlideIndex < this.pagesCount - 1);\n\t}\n\n\tget suppressAnimation() {\n\t\treturn this._resizing || getAnimationMode() === AnimationMode.None;\n\t}\n\n\tget _isRTL() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget selectedIndexToShow() {\n\t\treturn this._isRTL ? this.items.length - (this.items.length - this._focusedItemIndex) + 1 : this._focusedItemIndex + 1;\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget nextPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);\n\t}\n\n\tget previousPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_PREVIOUS_ARROW_TEXT);\n\t}\n\n\tget _roleDescription() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_ROLE_DESCRIPTION);\n\t}\n\n\tget _ariaListLabel() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_LIST_LABEL);\n\t}\n\n\t/**\n \t * Returns only visible (non-hidden) content items.\n\t * Items with the 'hidden' attribute are automatically excluded from carousel navigation.\n\t * @private\n\t * @returns {Array<HTMLElement>}\n\t */\n\tget _visibleItems() {\n\t\treturn this.content.filter(x => !x.hasAttribute(\"hidden\"));\n\t}\n\n\tcarouselItemDomRef(idx: number) : Array<HTMLElement> {\n\t\tconst items = this.getDomRef()?.querySelectorAll(\".ui5-carousel-item\") || [];\n\t\treturn Array.from(items).filter((item, index) => {\n\t\t\treturn index === idx;\n\t\t}) as Array<HTMLElement>;\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport 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 slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { ScrollEnablementEventListenerParam } from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n\tCAROUSEL_ARIA_ROLE_DESCRIPTION,\n\tCAROUSEL_ARIA_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorType from \"./types/CarouselPageIndicatorType.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport type BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./CarouselTemplate.js\";\nimport type Icon from \"./Icon.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\n}\n\ntype ItemsInfo = {\n\tid: string,\n\titem: HTMLElement & { _individualSlot?: string },\n\ttabIndex: number,\n\tposinset: number,\n\tsetsize: number,\n\tvisible: boolean,\n\t_individualSlot?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Carousel allows the user to browse through a set of items.\n * The component is mostly used for showing a gallery of images, but can hold any other HTML element.\n *\n * There are several ways to perform navigation:\n *\n * - on desktop - the user can navigate using the navigation arrows or with keyboard shortcuts.\n * - on touch devices - the user can navigate using the navigation arrows (always visible) or can use swipe gestures.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - The items you want to display are very different from each other.\n * - You want to display the items one after the other.\n *\n * #### When not to use:\n *\n * - The items you want to display need to be visible at the same time.\n * - The items you want to display are uniform and very similar.\n *\n * ### Hidden Items\n *\n * Carousel items can be conditionally hidden by adding the `hidden` attribute to any child element.\n * Hidden items are automatically excluded from carousel navigation and will not be displayed or counted in pagination.\n * This allows for dynamic showing or hiding of carousel items without affecting the overall carousel behavior.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-carousel` is focused the user can navigate between the items\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] - Navigates to previous and next item\n * - [Left] or [Right] - Navigates to previous and next item\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n *\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Carousel.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n * @csspart content - Used to style the content of the component\n */\n@customElement({\n\ttag: \"ui5-carousel\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n})\n/**\n * Fired whenever the page changes due to user interaction,\n * when the user clicks on the navigation arrows or while resizing,\n * based on the `items-per-page` property.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\n\nclass Carousel extends UI5Element {\n\teventDetails!: {\n\t\tnavigate: CarouselNavigateEventDetail;\n\t}\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcyclic = false;\n\n\t/**\n\t * Defines the number of items per page depending on the carousel width.\n\t *\n\t * - 'S' for screens smaller than 600 pixels.\n\t * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - 'XL' for screens greater than or equal to 1440 pixels.\n\t *\n\t * One item per page is shown by default.\n\t * @default \"S1 M1 L1 XL1\"\n\t * @public\n\t */\n\t@property()\n\titemsPerPage = \"S1 M1 L1 XL1\";\n\n\t/**\n\t * Defines the visibility of the navigation arrows.\n\t * If set to true the navigation arrows will be hidden.\n\t *\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows = false;\n\n\t/**\n\t * Defines the visibility of the page indicator.\n\t * If set to true the page indicator will be hidden.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePageIndicator = false;\n\n\t/**\n\t * Defines the style of the page indicator.\n\t * Available options are:\n\t *\n\t * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n\t * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n\t * @since 1.10\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n\t/**\n\t * Defines the carousel's background design.\n\t * @since 1.14\n\t * @default \"Translucent\"\n\t * @public\n\t */\n\t@property()\n\tbackgroundDesign: `${BackgroundDesign}` = \"Translucent\";\n\n\t/**\n\t * Defines the page indicator background design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the page indicator border design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBorderDesign: `${BorderDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the index of the initially selected item.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_focusedItemIndex = 0;\n\n\t/**\n\t * Defines the position of arrows.\n\t *\n\t * Available options are:\n\t *\n\t * - `Content` - the arrows are placed on the sides of the current page.\n\t * - `Navigation` - the arrows are placed on the sides of the page indicator.\n\t * @default \"Content\"\n\t * @public\n\t */\n\t@property()\n\tarrowsPlacement: `${CarouselArrowsPlacement}` = \"Content\";\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_itemWidth?: number;\n\n\t/**\n\t * If set to true navigation arrows are shown.\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_visibleNavigationArrows = false;\n\n\t/**\n\t * Internal trigger flag that forces component re-rendering when content items change.\n\t * @private\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_visibleItemsCount = 0;\n\n\t/**\n\t * Defines the current slide index, which contains the visible item in the viewport.\n\t * @private\n\t * @since 2.16.0-r.c1\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_currentSlideIndex: number = 0;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedPages: Array<number>;\n\t_lastInnerFocusedElement?: HTMLElement;\n\t_pageStep: number = 10;\n\t_visibleItemsIndexes: Array<number>;\n\t_itemIndicator: number = 0;\n\t_contentItemsObserver: MutationObserver;\n\t_observableContent: Array<HTMLElement> = [];\n\n\t/**\n\t * Defines the content of the component.\n\t *\n\t * **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.\n\t * They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: DefaultSlot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get pageTypeLimit() {\n\t\treturn 9;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._contentItemsObserver = new MutationObserver(() => {\n\t\t\tconst visibleItemsCount = this._visibleItems.length;\n\n\t\t\tif (this._visibleItemsCount === visibleItemsCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._visibleItemsCount = visibleItemsCount;\n\n\t\t\tthis._currentSlideIndex = clamp(this._currentSlideIndex, 0, Math.max(0, this.items.length - this.effectiveItemsPerPage));\n\t\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentSlideIndex, this.items.length - 1);\n\t\t\tthis._moveToItem(this._currentSlideIndex);\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._scrollEnablement.attachEvent(\"touchend\", e => {\n\t\t\tthis._updateScrolling(e);\n\t\t});\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._resizing = false; // indicates if the carousel is in process of resizing\n\n\t\tthis._lastFocusedElements = [];\n\t\tthis._orderOfLastFocusedPages = [];\n\t\tthis._visibleItemsIndexes = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._observeContentItems();\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation || !isDesktop()) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\n\t\tthis.validateSelectedIndex();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._scrollEnablement.scrollContainer = this.getDomRef()!;\n\t\tthis._resizing = false; // not invalidating\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._contentItemsObserver.disconnect();\n\t\tthis._observableContent = [];\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateSelectedIndex() {\n\t\tif (!this.isIndexInRange(this._focusedItemIndex)) {\n\t\t\tthis._focusedItemIndex = 0;\n\t\t}\n\t}\n\n\t_onResize() {\n\t\tconst previousItemsPerPage = this.effectiveItemsPerPage;\n\n\t\t// Set the resizing flag to suppress animation while resizing\n\t\tthis._resizing = true;\n\n\t\t// Change transitively effectiveItemsPerPage by modifying _width\n\t\tthis._width = this.offsetWidth;\n\t\tthis._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);\n\t\tthis._updateVisibleItems(this._currentSlideIndex);\n\n\t\t// Items per page did not change or the current,\n\t\t// therefore page index does not need to be re-adjusted\n\t\tif (this.effectiveItemsPerPage === previousItemsPerPage) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentSlideIndex, this.items.length - this.effectiveItemsPerPage);\n\t}\n\n\t_updateScrolling(e: ScrollEnablementEventListenerParam) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.isLeft) {\n\t\t\tthis.navigateLeft();\n\t\t} else if (e.isRight) {\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\t\tif (isPageUp(e)) {\n\t\t\tthis._handlePageUp(e);\n\t\t}\n\t\tif (isPageDown(e)) {\n\t\t\tthis._handlePageDown(e);\n\t\t}\n\n\t\tif (isLeft(e) || isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateLeft();\n\t\t} else if (isRight(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target === this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet pageIndex = -1;\n\t\tfor (let i = 0; i < this._visibleItems.length; i++) {\n\t\t\tif (this._visibleItems[i].isEqualNode(target?.querySelector(\"slot\")?.assignedNodes()[0] as HTMLElement)) {\n\t\t\t\tpageIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (pageIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = pageIndex;\n\t\t// Save reference of the last focused element for each page\n\t\tthis._lastFocusedElements[pageIndex] = target;\n\n\t\tconst sortedPageIndex = this._orderOfLastFocusedPages.indexOf(pageIndex);\n\t\tif (sortedPageIndex === -1) {\n\t\t\tthis._orderOfLastFocusedPages.unshift(pageIndex);\n\t\t} else {\n\t\t\tthis._orderOfLastFocusedPages.splice(0, 0, this._orderOfLastFocusedPages.splice(sortedPageIndex, 1)[0]);\n\t\t}\n\t}\n\n\t_onmouseout() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = false;\n\t\t}\n\t}\n\n\t_onmouseover() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\t}\n\n\t_ontouchstart(e: TouchEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tasync _handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedActivePageIndex];\n\t\tif (!this._lastInnerFocusedElement) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(this.items[this._focusedItemIndex].item);\n\t\t\tfirstFocusable?.focus();\n\t\t\tthis._lastInnerFocusedElement = firstFocusable || undefined;\n\t\t} else if (this.carouselItemDomRef(this._focusedItemIndex)[0] === lastFocusedElement && lastFocusedElement !== e.target) {\n\t\t\tlastFocusedElement.focus();\n\t\t\tthis._lastInnerFocusedElement = e.target as HTMLElement;\n\t\t} else if (this._lastInnerFocusedElement) {\n\t\t\tthis._lastInnerFocusedElement.focus();\n\t\t}\n\t}\n\n\t_observeContentItems() {\n\t\tif (this.hasMatchingContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.content.forEach(item => {\n\t\t\tif (!this._observableContent.includes(item)) {\n\t\t\t\tthis._contentItemsObserver.observe(item, {\n\t\t\t\t\tcharacterData: false,\n\t\t\t\t\tchildList: false,\n\t\t\t\t\tsubtree: false,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeFilter: [\"hidden\"],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis._observableContent = this.content;\n\t}\n\n\tget hasMatchingContent() {\n\t\tif (this._observableContent.length !== this.content.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst observableContentSet = new WeakSet(this._observableContent);\n\t\treturn this.content.every(item => observableContentSet.has(item));\n\t}\n\n\tasync _handleHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(0);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handleEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(this.items.length - 1);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(this._focusedItemIndex\t+ this._pageStep < this.items.length ? this._focusedItemIndex + this._pageStep : this.items.length - 1);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis.navigateTo(this._focusedItemIndex\t- this._pageStep > 0 ? this._focusedItemIndex - this._pageStep : 0);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tget _backgroundDesign() {\n\t\treturn this.backgroundDesign.toLowerCase();\n\t}\n\n\tget _getLastFocusedActivePageIndex() {\n\t\tfor (let i = 0; i < this._orderOfLastFocusedPages.length; i++) {\n\t\t\tconst pageIndex = this._orderOfLastFocusedPages[i];\n\n\t\t\tif (this.isItemInViewport(pageIndex)) {\n\t\t\t\treturn pageIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this._focusedItemIndex;\n\t}\n\n\tasync navigateLeft() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._focusedItemIndex;\n\n\t\tif (this._focusedItemIndex - 1 < 0) {\n\t\t\tif (this.cyclic && this._visibleItemsIndexes.length >= 1) {\n\t\t\t\tif (this._focusedItemIndex === 0 && this.effectiveItemsPerPage > 1) {\n\t\t\t\t\tthis._focusedItemIndex = 0;\n\t\t\t\t} else {\n\t\t\t\t\tthis._focusedItemIndex = this.items.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t--this._focusedItemIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._focusedItemIndex) {\n\t\t\tthis.skipToItem(this._focusedItemIndex, -1);\n\t\t\tawait renderFinished();\n\t\t\tthis.focusItem();\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: this._focusedItemIndex });\n\t\t}\n\t}\n\n\tasync navigateRight() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._focusedItemIndex;\n\n\t\tif (this._focusedItemIndex + 1 > this.items.length - 1) {\n\t\t\tif (this.cyclic) {\n\t\t\t\tif (this._focusedItemIndex === this.items.length - 1 && this.effectiveItemsPerPage > 1) {\n\t\t\t\t\tthis._focusedItemIndex = this.items.length - 1;\n\t\t\t\t} else {\n\t\t\t\t\tthis._focusedItemIndex = 0;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\t++this._focusedItemIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._focusedItemIndex) {\n\t\t\tthis.skipToItem(this._focusedItemIndex, 1);\n\t\t\tawait renderFinished();\n\t\t\tthis.focusItem();\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: this._focusedItemIndex });\n\t\t}\n\t}\n\n\tnavigateArrowRight() {\n\t\tif (this._focusedItemIndex === this._visibleItemsIndexes[0]) {\n\t\t\tthis.navigateTo(this._focusedItemIndex + 1);\n\t\t\tthis.focusItem();\n\t\t\tthis._moveToItem(this._currentSlideIndex + 1);\n\t\t} else {\n\t\t\tthis._moveToItem(this._currentSlideIndex + 1);\n\t\t\tthis.navigateTo(this._focusedItemIndex);\n\t\t\tthis.focusItem();\n\t\t}\n\t}\n\n\tnavigateArrowLeft() {\n\t\tif (this._focusedItemIndex > 0 && this._focusedItemIndex === this._visibleItemsIndexes[this._visibleItemsIndexes.length - 1]) {\n\t\t\tthis.navigateTo(this._focusedItemIndex - 1);\n\t\t\tthis.focusItem();\n\t\t\tthis._moveToItem(this._currentSlideIndex - 1);\n\t\t} else {\n\t\t\tthis._moveToItem(this._currentSlideIndex === 0 ? this.pagesCount - 1 : this._currentSlideIndex - 1);\n\t\t\tthis.navigateTo(this._focusedItemIndex === 0 ? this.items.length - 1 : this._focusedItemIndex);\n\t\t\tthis.focusItem();\n\t\t}\n\t}\n\n\t_calculateItemSlideIndex(currentSlideIndex: number, itemStep: number) {\n\t\tif (this.isItemInViewport(this._focusedItemIndex)) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst itemsPerPage = this.effectiveItemsPerPage;\n\n\t\tlet slideIndex;\n\n\t\tif (itemsPerPage > 1) {\n\t\t\tif (currentSlideIndex === 0 && itemStep < 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (currentSlideIndex >= this.pagesCount && itemStep > 0) {\n\t\t\t\treturn this.pagesCount - 1;\n\t\t\t}\n\n\t\t\tslideIndex = currentSlideIndex + itemStep;\n\t\t} else {\n\t\t\tslideIndex = itemStep > 0 ? currentSlideIndex + 1 : currentSlideIndex - 1;\n\t\t\tif (this.cyclic) {\n\t\t\t\tif (currentSlideIndex === 0 && itemStep < 0) {\n\t\t\t\t\treturn this.pagesCount - 1;\n\t\t\t\t}\n\n\t\t\t\tif (currentSlideIndex === this.items.length - 1 && itemStep > 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn slideIndex;\n\t}\n\n\t_moveToItem(slideIndex: number) {\n\t\tif (this.items.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsInViewportToShow = this.effectiveItemsPerPage,\n\t\t\titemsCount = this.items.length,\n\t\t\tcyclic = this.cyclic;\n\n\t\tif (cyclic && itemsInViewportToShow !== 1 && (slideIndex < 0 || slideIndex > itemsCount - 1)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (slideIndex + itemsInViewportToShow > itemsCount - 1) {\n\t\t\tslideIndex = itemsCount - itemsInViewportToShow;\n\t\t}\n\n\t\tthis._updateVisibleItems(slideIndex);\n\t\tthis._currentSlideIndex = slideIndex;\n\t}\n\n\tfocusItem() {\n\t\tthis.carouselItemDomRef(this._focusedItemIndex)[0].focus({ preventScroll: true });\n\t}\n\n\t_navButtonClick(e: UI5CustomEvent<Icon, \"click\">) {\n\t\tconst target = e.target as Icon;\n\t\tif (this._visibleItemsIndexes.length > 1) {\n\t\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\t\tthis.navigateArrowRight();\n\t\t\t} else {\n\t\t\t\tthis.navigateArrowLeft();\n\t\t\t}\n\t\t} else if (this._visibleItemsIndexes.length <= 1) {\n\t\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\t\tthis.navigateRight();\n\t\t\t} else {\n\t\t\t\tthis.navigateLeft();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target item\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number): void {\n\t\tif (!this.isIndexInRange(itemIndex)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._focusedItemIndex < itemIndex) {\n\t\t\tthis._itemIndicator = 1;\n\t\t}\n\t\tthis._focusedItemIndex = itemIndex;\n\t\tthis._currentSlideIndex = itemIndex - this._itemIndicator;\n\n\t\tif (this.isItemInViewport(itemIndex)) {\n\t\t\tthis._currentSlideIndex = this._visibleItemsIndexes[0];\n\t\t} else {\n\t\t\tthis.skipToItem(this._focusedItemIndex, 1);\n\t\t}\n\t}\n\n\tskipToItem(focusIndex: number, offset: number) {\n\t\tif (!this.isItemInViewport(focusIndex)) {\n\t\t\tlet slideIndex = this._calculateItemSlideIndex(this._currentSlideIndex, offset);\n\t\t\tif (focusIndex === 0) {\n\t\t\t\tslideIndex = 0;\n\t\t\t}\n\t\t\tthis._moveToItem(slideIndex);\n\t\t}\n\t}\n\n\t/**\n\t * The indices of the currently visible items of the component.\n\t * @public\n\t * @since 1.0.0-rc.15\n\t * @default []\n\t */\n\tget visibleItemsIndices() : Array<number> {\n\t\treturn this._visibleItemsIndexes;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items(): Array<ItemsInfo> {\n\t\treturn this._visibleItems.map((item, idx) => {\n\t\t\treturn {\n\t\t\t\tid: `${this._id}-carousel-item-${idx + 1}`,\n\t\t\t\titem,\n\t\t\t\ttabIndex: this.isItemInViewport(this._focusedItemIndex) ? 0 : -1,\n\t\t\t\tposinset: idx + 1,\n\t\t\t\tsetsize: this._visibleItems.length,\n\t\t\t\tvisible: this.isItemInViewport(idx),\n\t\t\t};\n\t\t});\n\t}\n\tget effectiveItemsPerPage(): number {\n\t\tconst itemsPerPageArray = this.itemsPerPage.split(\" \");\n\t\tlet itemsPerPageSizeS = 1,\n\t\t\titemsPerPageSizeM = 1,\n\t\t\titemsPerPageSizeL = 1,\n\t\t\titemsPerPageSizeXL = 1;\n\n\t\titemsPerPageArray.forEach(element => {\n\t\t\tif (element.startsWith(\"S\")) {\n\t\t\t\titemsPerPageSizeS = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"M\")) {\n\t\t\t\titemsPerPageSizeM = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"L\")) {\n\t\t\t\titemsPerPageSizeL = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"XL\")) {\n\t\t\t\titemsPerPageSizeXL = Number(element.slice(2)) || 1;\n\t\t\t}\n\t\t});\n\n\t\tif (!this._width) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\tif (this._width < 600) {\n\t\t\treturn itemsPerPageSizeS;\n\t\t}\n\n\t\tif (this._width >= 600 && this._width < 1024) {\n\t\t\treturn itemsPerPageSizeM;\n\t\t}\n\n\t\tif (this._width >= 1024 && this._width < 1440) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\treturn itemsPerPageSizeXL;\n\t}\n\n\tisItemInViewport(index: number): boolean {\n\t\treturn this._visibleItemsIndexes.includes(index);\n\t}\n\n\t_updateVisibleItems(index:number) {\n\t\tlet newItemIndex = index;\n\t\tconst effectiveItemsPerPage: number = this.effectiveItemsPerPage;\n\t\tconst items = this.items;\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (newItemIndex > items.length - effectiveItemsPerPage) {\n\t\t\tnewItemIndex = items.length\t - effectiveItemsPerPage;\n\t\t}\n\t\tconst lastItemIndex = newItemIndex + effectiveItemsPerPage;\n\n\t\tthis._visibleItemsIndexes = [];\n\n\t\tfor (let i = newItemIndex; i < lastItemIndex; i++) {\n\t\t\tthis._visibleItemsIndexes.push(i);\n\t\t}\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.items.length - 1;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget renderNavigation() {\n\t\tif (!this.hasManyPages) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hidePageIndicator) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget hasManyPages() {\n\t\treturn this.pagesCount > 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tviewport: {\n\t\t\t\t\"ui5-carousel-viewport\": true,\n\t\t\t\t\"ui5-carousel-viewport--single\": this.pagesCount === 1,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-carousel-content\": true,\n\t\t\t\t\"ui5-carousel-content-no-animation\": this.suppressAnimation,\n\t\t\t\t\"ui5-carousel-content-has-navigation\": this.renderNavigation,\n\t\t\t\t\"ui5-carousel-content-has-navigation-and-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\t\"ui5-carousel-navigation-wrapper\": true,\n\t\t\t\t\"ui5-carousel-navigation-with-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-bg-${this.pageIndicatorBackgroundDesign.toLowerCase()}`]: true,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-border-${this.pageIndicatorBorderDesign.toLowerCase()}`]: true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this._visibleItems.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorType === CarouselPageIndicatorType.Numeric) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagesCount < Carousel.pageTypeLimit;\n\t}\n\n\tget dots() {\n\t\tconst dots = [];\n\t\tconst pages = this.pagesCount;\n\n\t\tfor (let index = 0; index < pages; index++) {\n\t\t\tdots.push({\n\t\t\t\tactive: index === this._currentSlideIndex,\n\t\t\t\tariaLabel: Carousel.i18nBundle.getText(CAROUSEL_DOT_TEXT, index + 1, pages),\n\t\t\t});\n\t\t}\n\n\t\treturn dots;\n\t}\n\n\tget showArrows() {\n\t\tconst displayArrows = this._visibleNavigationArrows && this.hasManyPages;\n\t\treturn {\n\t\t\tcontent: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Content,\n\t\t\tnavigation: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Navigation,\n\t\t};\n\t}\n\n\tget hasPrev() {\n\t\treturn this.cyclic || (this._focusedItemIndex - 1 >= 0 && this._currentSlideIndex !== 0);\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || (this._focusedItemIndex + 1 <= this._visibleItems.length - 1 && this._currentSlideIndex < this.pagesCount - 1);\n\t}\n\n\tget suppressAnimation() {\n\t\treturn this._resizing || getAnimationMode() === AnimationMode.None;\n\t}\n\n\tget _isRTL() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget selectedIndexToShow() {\n\t\treturn this._isRTL ? this.items.length - (this.items.length - this._focusedItemIndex) + 1 : this._focusedItemIndex + 1;\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget nextPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);\n\t}\n\n\tget previousPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_PREVIOUS_ARROW_TEXT);\n\t}\n\n\tget _roleDescription() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_ROLE_DESCRIPTION);\n\t}\n\n\tget _ariaListLabel() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_LIST_LABEL);\n\t}\n\n\t/**\n \t * Returns only visible (non-hidden) content items.\n\t * Items with the 'hidden' attribute are automatically excluded from carousel navigation.\n\t * @default []\n\t * @private\n\t */\n\tget _visibleItems(): Array<HTMLElement> {\n\t\treturn this.content.filter(x => !x.hasAttribute(\"hidden\"));\n\t}\n\n\tcarouselItemDomRef(idx: number) : Array<HTMLElement> {\n\t\tconst items = this.getDomRef()?.querySelectorAll(\".ui5-carousel-item\") || [];\n\t\treturn Array.from(items).filter((item, index) => {\n\t\t\treturn index === idx;\n\t\t}) as Array<HTMLElement>;\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
@@ -56,6 +56,32 @@ type ComboBoxSelectionChangeEventDetail = {
56
56
  * - Drop-down arrow - expands\collapses the option list.
57
57
  * - Option list - the list of available options.
58
58
  *
59
+ * ### Working with Values
60
+ *
61
+ * The ComboBox offers two ways to work with item selection:
62
+ *
63
+ * **1. Display Text Only (using `value`):**
64
+ * ```html
65
+ * <ui5-combobox value="Germany">
66
+ * <ui5-cb-item text="Germany"></ui5-cb-item>
67
+ * <ui5-cb-item text="France"></ui5-cb-item>
68
+ * </ui5-combobox>
69
+ * ```
70
+ * Use this approach when the displayed text is sufficient for your needs.
71
+ *
72
+ * **2. Unique Identifiers - Recommended (using `selectedValue` and item `value`):**
73
+ * ```html
74
+ * <ui5-combobox value="Germany" selected-value="DE">
75
+ * <ui5-cb-item text="Germany" value="DE"></ui5-cb-item>
76
+ * <ui5-cb-item text="France" value="FR"></ui5-cb-item>
77
+ * </ui5-combobox>
78
+ * ```
79
+ * This is the recommended approach when you need to work with unique identifiers (IDs, codes) separate from display text.
80
+ * The `selectedValue` property references the `value` property of the selected item.
81
+ * In forms, the item's `value` (e.g., "DE") will be submitted instead of the display text.
82
+ *
83
+ * **Important:** Do not mix the `selectedValue` approach with the deprecated `selected` property on items.
84
+ *
59
85
  * ### Keyboard Handling
60
86
  *
61
87
  * The `ui5-combobox` provides advanced keyboard handling.
@@ -96,20 +122,23 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
96
122
  */
97
123
  value: string;
98
124
  /**
99
- * Defines the selected item's value.
125
+ * Defines the value of the selected item (references the `value` property of `ui5-cb-item`).
126
+ *
127
+ * Use this property to work with unique identifiers (IDs, codes) instead of display text.
128
+ * When set, the ComboBox finds and selects the item whose `value` property matches this property.
100
129
  *
101
- * Use this property together with the `value` property on `ui5-cb-item` to:
102
- * - Select an item programmatically by its unique identifier
130
+ * **Benefits:**
131
+ * - Select items programmatically by their unique identifier
103
132
  * - Handle items with identical display text but different underlying values
104
- * - Submit machine-readable values in forms (the `value` property is submitted instead of the display text)
133
+ * - Submit machine-readable values in forms (the item's `value` is submitted instead of the display text)
105
134
  *
106
- * When set, the ComboBox finds and selects the item whose `value` matches this property
107
- * and whose `text` matches the ComboBox's `value` (display text).
135
+ * **When to use `selectedValue` vs `value`:**
136
+ * - **Recommended:** Use `selectedValue` + item `value` when you need unique identifiers separate from display text (e.g., country codes "DE", "FR" with display names "Germany", "France")
137
+ * - Use only the ComboBox `value` property when the display text itself is sufficient for your use case
108
138
  *
109
- * **Note:** This replaces the deprecated `selected` property on `ui5-cb-item`.
110
139
  * @default undefined
111
140
  * @public
112
- * @since 2.19.0
141
+ * @since 2.20.0
113
142
  */
114
143
  selectedValue?: string;
115
144
  /**
package/dist/ComboBox.js CHANGED
@@ -66,6 +66,32 @@ var ValueStateIconMapping;
66
66
  * - Drop-down arrow - expands\collapses the option list.
67
67
  * - Option list - the list of available options.
68
68
  *
69
+ * ### Working with Values
70
+ *
71
+ * The ComboBox offers two ways to work with item selection:
72
+ *
73
+ * **1. Display Text Only (using `value`):**
74
+ * ```html
75
+ * <ui5-combobox value="Germany">
76
+ * <ui5-cb-item text="Germany"></ui5-cb-item>
77
+ * <ui5-cb-item text="France"></ui5-cb-item>
78
+ * </ui5-combobox>
79
+ * ```
80
+ * Use this approach when the displayed text is sufficient for your needs.
81
+ *
82
+ * **2. Unique Identifiers - Recommended (using `selectedValue` and item `value`):**
83
+ * ```html
84
+ * <ui5-combobox value="Germany" selected-value="DE">
85
+ * <ui5-cb-item text="Germany" value="DE"></ui5-cb-item>
86
+ * <ui5-cb-item text="France" value="FR"></ui5-cb-item>
87
+ * </ui5-combobox>
88
+ * ```
89
+ * This is the recommended approach when you need to work with unique identifiers (IDs, codes) separate from display text.
90
+ * The `selectedValue` property references the `value` property of the selected item.
91
+ * In forms, the item's `value` (e.g., "DE") will be submitted instead of the display text.
92
+ *
93
+ * **Important:** Do not mix the `selectedValue` approach with the deprecated `selected` property on items.
94
+ *
69
95
  * ### Keyboard Handling
70
96
  *
71
97
  * The `ui5-combobox` provides advanced keyboard handling.
@@ -778,10 +804,10 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
778
804
  if (matchingItems.length) {
779
805
  let exactMatch;
780
806
  if (this._useSelectedValue) {
781
- exactMatch = matchingItems.find(item => item.value === (currentlyFocusedItem?.value || this.selectedValue) && item.text === current);
807
+ exactMatch = matchingItems.find(item => item.value === (currentlyFocusedItem?.value || this.selectedValue) && item.text?.toLowerCase() === current.toLowerCase());
782
808
  }
783
809
  else {
784
- exactMatch = matchingItems.find(item => item.text === current);
810
+ exactMatch = matchingItems.find(item => item.text?.toLowerCase() === current.toLowerCase());
785
811
  }
786
812
  return exactMatch ?? matchingItems[0];
787
813
  }
@@ -789,7 +815,10 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
789
815
  _applyAtomicValueAndSelection(item, filterValue) {
790
816
  const value = (item && item.text) || "";
791
817
  this.inner.value = value;
792
- this.inner.setSelectionRange(filterValue.length, value.length);
818
+ // select the whole value if it doesn't start with the filterValue, otherwise select only the autocompleted part
819
+ const startsWithFilter = value.toLowerCase().startsWith(filterValue.toLowerCase());
820
+ const selectionStart = startsWithFilter ? filterValue.length : 0;
821
+ this.inner.setSelectionRange(selectionStart, value.length);
793
822
  this.value = value;
794
823
  if (this._useSelectedValue) {
795
824
  this.selectedValue = item.value;
@@ -819,18 +848,18 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
819
848
  if (!shouldSelectionBeCleared && !itemToBeSelected) {
820
849
  if (isInstanceOfComboBoxItemGroup(item)) {
821
850
  if (this._useSelectedValue) {
822
- itemToBeSelected = item.items.find(i => i.value === valueToMatch && (this.value === "" || this.value === i.text));
851
+ itemToBeSelected = item.items.find(i => i.value === valueToMatch && (this.value === "" || i.text?.toLowerCase() === this.value.toLowerCase()));
823
852
  }
824
853
  else {
825
- itemToBeSelected = item.items?.find(i => i.text === this.value);
854
+ itemToBeSelected = item.items?.find(i => i.text?.toLowerCase() === this.value.toLowerCase());
826
855
  }
827
856
  }
828
857
  else {
829
858
  if (this._useSelectedValue) {
830
- itemToBeSelected = this.items.find(i => i.value === valueToMatch && (this.value === "" || this.value === i.text));
859
+ itemToBeSelected = this.items.find(i => i.value === valueToMatch && (this.value === "" || i.text?.toLowerCase() === this.value.toLowerCase()));
831
860
  return;
832
861
  }
833
- itemToBeSelected = item.text === this.value ? item : undefined;
862
+ itemToBeSelected = item.text?.toLowerCase() === this.value.toLowerCase() ? item : undefined;
834
863
  }
835
864
  }
836
865
  });
@@ -931,7 +960,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
931
960
  }
932
961
  _clear() {
933
962
  const selectedItem = this.items.find(item => item.selected);
934
- if (selectedItem?.text === this.value) {
963
+ if (selectedItem?.text?.toLowerCase() === this.value.toLowerCase()) {
935
964
  this.fireDecoratorEvent("change");
936
965
  }
937
966
  this.value = "";
@@ -1226,7 +1255,7 @@ __decorate([
1226
1255
  property({ type: Boolean, noAttribute: true })
1227
1256
  ], ComboBox.prototype, "_iconPressed", void 0);
1228
1257
  __decorate([
1229
- property({ type: Array })
1258
+ property({ type: Array, noAttribute: true })
1230
1259
  ], ComboBox.prototype, "_filteredItems", void 0);
1231
1260
  __decorate([
1232
1261
  property({ type: Number, noAttribute: true })
@@ -1244,7 +1273,7 @@ __decorate([
1244
1273
  property({ type: Boolean })
1245
1274
  ], ComboBox.prototype, "_handleLinkNavigation", void 0);
1246
1275
  __decorate([
1247
- property({ type: Array })
1276
+ property({ type: Array, noAttribute: true })
1248
1277
  ], ComboBox.prototype, "_linksListenersArray", void 0);
1249
1278
  __decorate([
1250
1279
  property({ type: Boolean, noAttribute: true })