@ui5/webcomponents 1.24.0-rc.4 → 1.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Carousel.d.ts +15 -0
  4. package/dist/Carousel.js +10 -0
  5. package/dist/Carousel.js.map +1 -1
  6. package/dist/FileUploader.d.ts +2 -0
  7. package/dist/FileUploader.js +16 -0
  8. package/dist/FileUploader.js.map +1 -1
  9. package/dist/Input.d.ts +2 -0
  10. package/dist/Input.js.map +1 -1
  11. package/dist/MonthPicker.d.ts +1 -0
  12. package/dist/MonthPicker.js +10 -6
  13. package/dist/MonthPicker.js.map +1 -1
  14. package/dist/MultiComboBox.js +1 -0
  15. package/dist/MultiComboBox.js.map +1 -1
  16. package/dist/MultiInput.d.ts +1 -0
  17. package/dist/MultiInput.js +5 -1
  18. package/dist/MultiInput.js.map +1 -1
  19. package/dist/SelectMenu.js +3 -3
  20. package/dist/SelectMenu.js.map +1 -1
  21. package/dist/StepInput.d.ts +6 -1
  22. package/dist/StepInput.js +55 -14
  23. package/dist/StepInput.js.map +1 -1
  24. package/dist/ToggleSpinButton.d.ts +4 -0
  25. package/dist/ToggleSpinButton.js +6 -0
  26. package/dist/ToggleSpinButton.js.map +1 -1
  27. package/dist/Tokenizer.d.ts +1 -0
  28. package/dist/Tokenizer.js +3 -0
  29. package/dist/Tokenizer.js.map +1 -1
  30. package/dist/Toolbar.js +4 -3
  31. package/dist/Toolbar.js.map +1 -1
  32. package/dist/TreeItemCustom.d.ts +2 -0
  33. package/dist/TreeItemCustom.js +15 -0
  34. package/dist/TreeItemCustom.js.map +1 -1
  35. package/dist/css/themes/Avatar.css +1 -1
  36. package/dist/css/themes/AvatarGroup.css +1 -1
  37. package/dist/css/themes/Badge.css +1 -1
  38. package/dist/css/themes/Breadcrumbs.css +1 -1
  39. package/dist/css/themes/BusyIndicator.css +1 -1
  40. package/dist/css/themes/Button.css +1 -1
  41. package/dist/css/themes/Calendar.css +1 -1
  42. package/dist/css/themes/CalendarHeader.css +1 -1
  43. package/dist/css/themes/CalendarLegend.css +1 -1
  44. package/dist/css/themes/CalendarLegendItem.css +1 -1
  45. package/dist/css/themes/Card.css +1 -1
  46. package/dist/css/themes/CardHeader.css +1 -1
  47. package/dist/css/themes/Carousel.css +1 -1
  48. package/dist/css/themes/CheckBox.css +1 -1
  49. package/dist/css/themes/ColorPalette.css +1 -1
  50. package/dist/css/themes/ColorPaletteItem.css +1 -1
  51. package/dist/css/themes/ColorPalettePopover.css +1 -1
  52. package/dist/css/themes/ColorPicker.css +1 -1
  53. package/dist/css/themes/ComboBox.css +1 -1
  54. package/dist/css/themes/CustomListItem.css +1 -1
  55. package/dist/css/themes/DatePicker.css +1 -1
  56. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  57. package/dist/css/themes/DayPicker.css +1 -1
  58. package/dist/css/themes/Dialog.css +1 -1
  59. package/dist/css/themes/FileUploader.css +1 -1
  60. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  61. package/dist/css/themes/GrowingButton.css +1 -1
  62. package/dist/css/themes/Icon.css +1 -1
  63. package/dist/css/themes/Input.css +1 -1
  64. package/dist/css/themes/InputIcon.css +1 -1
  65. package/dist/css/themes/InputSharedStyles.css +1 -1
  66. package/dist/css/themes/Link.css +1 -1
  67. package/dist/css/themes/List.css +1 -1
  68. package/dist/css/themes/ListItem.css +1 -1
  69. package/dist/css/themes/ListItemBase.css +1 -1
  70. package/dist/css/themes/Menu.css +1 -1
  71. package/dist/css/themes/MenuListItem.css +1 -1
  72. package/dist/css/themes/MessageStrip.css +1 -1
  73. package/dist/css/themes/MonthPicker.css +1 -1
  74. package/dist/css/themes/MultiComboBox.css +1 -1
  75. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  76. package/dist/css/themes/MultiInput.css +1 -1
  77. package/dist/css/themes/NavigationMenu.css +1 -1
  78. package/dist/css/themes/Panel.css +1 -1
  79. package/dist/css/themes/Popover.css +1 -1
  80. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  81. package/dist/css/themes/PopupsCommon.css +1 -1
  82. package/dist/css/themes/ProgressIndicator.css +1 -1
  83. package/dist/css/themes/RadioButton.css +1 -1
  84. package/dist/css/themes/RangeSlider.css +1 -1
  85. package/dist/css/themes/RatingIndicator.css +1 -1
  86. package/dist/css/themes/ResponsivePopover.css +1 -1
  87. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  88. package/dist/css/themes/SegmentedButton.css +1 -1
  89. package/dist/css/themes/Select.css +1 -1
  90. package/dist/css/themes/SelectMenu.css +1 -1
  91. package/dist/css/themes/SelectPopover.css +1 -1
  92. package/dist/css/themes/SliderBase.css +1 -1
  93. package/dist/css/themes/SplitButton.css +1 -1
  94. package/dist/css/themes/StepInput.css +1 -1
  95. package/dist/css/themes/Switch.css +1 -1
  96. package/dist/css/themes/TabContainer.css +1 -1
  97. package/dist/css/themes/TabInOverflow.css +1 -1
  98. package/dist/css/themes/TabInStrip.css +1 -1
  99. package/dist/css/themes/TabSemanticIcon.css +1 -1
  100. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  101. package/dist/css/themes/Table.css +1 -1
  102. package/dist/css/themes/TableCell.css +1 -1
  103. package/dist/css/themes/TableColumn.css +1 -1
  104. package/dist/css/themes/TableGroupRow.css +1 -1
  105. package/dist/css/themes/TableRow.css +1 -1
  106. package/dist/css/themes/TextArea.css +1 -1
  107. package/dist/css/themes/TimePicker.css +1 -1
  108. package/dist/css/themes/Toast.css +1 -1
  109. package/dist/css/themes/ToggleButton.css +1 -1
  110. package/dist/css/themes/Token.css +1 -1
  111. package/dist/css/themes/Tokenizer.css +1 -1
  112. package/dist/css/themes/TokenizerPopover.css +1 -1
  113. package/dist/css/themes/Toolbar.css +1 -1
  114. package/dist/css/themes/ToolbarPopover.css +1 -1
  115. package/dist/css/themes/TreeItem.css +1 -1
  116. package/dist/css/themes/ValueStateMessage.css +1 -1
  117. package/dist/css/themes/WheelSlider.css +1 -1
  118. package/dist/css/themes/YearPicker.css +1 -1
  119. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  121. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  122. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  123. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  124. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  125. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  126. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  127. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  128. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  129. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  130. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  131. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  132. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  133. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  134. package/dist/custom-elements-internal.json +46 -4
  135. package/dist/custom-elements.json +42 -4
  136. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  146. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  147. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  148. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  151. package/dist/generated/templates/CarouselTemplate.lit.js +1 -1
  152. package/dist/generated/templates/CarouselTemplate.lit.js.map +1 -1
  153. package/dist/generated/templates/FileUploaderTemplate.lit.js +1 -1
  154. package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
  155. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
  156. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
  157. package/dist/generated/templates/SelectPopoverTemplate.lit.js +1 -1
  158. package/dist/generated/templates/SelectPopoverTemplate.lit.js.map +1 -1
  159. package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
  160. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  161. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +1 -1
  162. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
  163. package/dist/generated/themes/Avatar.css.js +1 -1
  164. package/dist/generated/themes/Avatar.css.js.map +1 -1
  165. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  166. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  167. package/dist/generated/themes/Badge.css.js +1 -1
  168. package/dist/generated/themes/Badge.css.js.map +1 -1
  169. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  170. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  171. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  172. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  173. package/dist/generated/themes/Button.css.js +1 -1
  174. package/dist/generated/themes/Button.css.js.map +1 -1
  175. package/dist/generated/themes/Calendar.css.js +1 -1
  176. package/dist/generated/themes/Calendar.css.js.map +1 -1
  177. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  178. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  179. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  180. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  181. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  182. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  183. package/dist/generated/themes/Card.css.js +1 -1
  184. package/dist/generated/themes/Card.css.js.map +1 -1
  185. package/dist/generated/themes/CardHeader.css.js +1 -1
  186. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  187. package/dist/generated/themes/Carousel.css.js +1 -1
  188. package/dist/generated/themes/Carousel.css.js.map +1 -1
  189. package/dist/generated/themes/CheckBox.css.js +1 -1
  190. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  191. package/dist/generated/themes/ColorPalette.css.js +1 -1
  192. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  193. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  194. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  195. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  196. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  197. package/dist/generated/themes/ColorPicker.css.js +1 -1
  198. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  199. package/dist/generated/themes/ComboBox.css.js +1 -1
  200. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  201. package/dist/generated/themes/CustomListItem.css.js +1 -1
  202. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  203. package/dist/generated/themes/DatePicker.css.js +1 -1
  204. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  205. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  206. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  207. package/dist/generated/themes/DayPicker.css.js +1 -1
  208. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  209. package/dist/generated/themes/Dialog.css.js +1 -1
  210. package/dist/generated/themes/Dialog.css.js.map +1 -1
  211. package/dist/generated/themes/FileUploader.css.js +1 -1
  212. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  213. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  214. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  215. package/dist/generated/themes/GrowingButton.css.js +1 -1
  216. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  217. package/dist/generated/themes/Icon.css.js +1 -1
  218. package/dist/generated/themes/Icon.css.js.map +1 -1
  219. package/dist/generated/themes/Input.css.js +1 -1
  220. package/dist/generated/themes/Input.css.js.map +1 -1
  221. package/dist/generated/themes/InputIcon.css.js +1 -1
  222. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  223. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  224. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  225. package/dist/generated/themes/Link.css.js +1 -1
  226. package/dist/generated/themes/Link.css.js.map +1 -1
  227. package/dist/generated/themes/List.css.js +1 -1
  228. package/dist/generated/themes/List.css.js.map +1 -1
  229. package/dist/generated/themes/ListItem.css.js +1 -1
  230. package/dist/generated/themes/ListItem.css.js.map +1 -1
  231. package/dist/generated/themes/ListItemBase.css.js +1 -1
  232. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  233. package/dist/generated/themes/Menu.css.js +1 -1
  234. package/dist/generated/themes/Menu.css.js.map +1 -1
  235. package/dist/generated/themes/MenuListItem.css.js +1 -1
  236. package/dist/generated/themes/MenuListItem.css.js.map +1 -1
  237. package/dist/generated/themes/MessageStrip.css.js +1 -1
  238. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  239. package/dist/generated/themes/MonthPicker.css.js +1 -1
  240. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  241. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  242. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  243. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  244. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  245. package/dist/generated/themes/MultiInput.css.js +1 -1
  246. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  247. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  248. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  249. package/dist/generated/themes/Panel.css.js +1 -1
  250. package/dist/generated/themes/Panel.css.js.map +1 -1
  251. package/dist/generated/themes/Popover.css.js +1 -1
  252. package/dist/generated/themes/Popover.css.js.map +1 -1
  253. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  254. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  255. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  256. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  257. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  258. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  259. package/dist/generated/themes/RadioButton.css.js +1 -1
  260. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  261. package/dist/generated/themes/RangeSlider.css.js +1 -1
  262. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  263. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  264. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  265. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  266. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  267. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  268. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  269. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  270. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  271. package/dist/generated/themes/Select.css.js +1 -1
  272. package/dist/generated/themes/Select.css.js.map +1 -1
  273. package/dist/generated/themes/SelectMenu.css.js +1 -1
  274. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  275. package/dist/generated/themes/SelectPopover.css.js +1 -1
  276. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  277. package/dist/generated/themes/SliderBase.css.js +1 -1
  278. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  279. package/dist/generated/themes/SplitButton.css.js +1 -1
  280. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  281. package/dist/generated/themes/StepInput.css.js +1 -1
  282. package/dist/generated/themes/StepInput.css.js.map +1 -1
  283. package/dist/generated/themes/Switch.css.js +1 -1
  284. package/dist/generated/themes/Switch.css.js.map +1 -1
  285. package/dist/generated/themes/TabContainer.css.js +1 -1
  286. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  287. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  288. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  289. package/dist/generated/themes/TabInStrip.css.js +1 -1
  290. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  291. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  292. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  293. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  294. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  295. package/dist/generated/themes/Table.css.js +1 -1
  296. package/dist/generated/themes/Table.css.js.map +1 -1
  297. package/dist/generated/themes/TableCell.css.js +1 -1
  298. package/dist/generated/themes/TableCell.css.js.map +1 -1
  299. package/dist/generated/themes/TableColumn.css.js +1 -1
  300. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  301. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  302. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  303. package/dist/generated/themes/TableRow.css.js +1 -1
  304. package/dist/generated/themes/TableRow.css.js.map +1 -1
  305. package/dist/generated/themes/TextArea.css.js +1 -1
  306. package/dist/generated/themes/TextArea.css.js.map +1 -1
  307. package/dist/generated/themes/TimePicker.css.js +1 -1
  308. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  309. package/dist/generated/themes/Toast.css.js +1 -1
  310. package/dist/generated/themes/Toast.css.js.map +1 -1
  311. package/dist/generated/themes/ToggleButton.css.js +1 -1
  312. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  313. package/dist/generated/themes/Token.css.js +1 -1
  314. package/dist/generated/themes/Token.css.js.map +1 -1
  315. package/dist/generated/themes/Tokenizer.css.js +1 -1
  316. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  317. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  318. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  319. package/dist/generated/themes/Toolbar.css.js +1 -1
  320. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  321. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  322. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  323. package/dist/generated/themes/TreeItem.css.js +1 -1
  324. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  325. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  326. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  327. package/dist/generated/themes/WheelSlider.css.js +1 -1
  328. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  329. package/dist/generated/themes/YearPicker.css.js +1 -1
  330. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  331. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  333. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  334. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  335. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  336. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  337. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  339. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  341. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  344. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  345. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  346. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  347. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  348. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  349. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  350. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  351. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  352. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  353. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  354. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  355. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  356. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  357. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  358. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  359. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  360. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  361. package/dist/vscode.html-custom-data.json +12 -2
  362. package/dist/web-types.json +25 -5
  363. package/package.json +10 -10
  364. package/src/Carousel.hbs +1 -0
  365. package/src/FileUploader.hbs +2 -0
  366. package/src/MonthPicker.hbs +1 -1
  367. package/src/ResponsivePopover.hbs +2 -1
  368. package/src/SelectPopover.hbs +1 -1
  369. package/src/StepInput.hbs +1 -1
  370. package/src/ToggleSpinButton.hbs +0 -1
  371. package/src/themes/Calendar.css +1 -0
  372. package/src/themes/DayPicker.css +3 -6
  373. package/src/themes/Dialog.css +1 -0
  374. package/src/themes/Link.css +2 -2
  375. package/src/themes/MenuListItem.css +5 -0
  376. package/src/themes/MonthPicker.css +23 -0
  377. package/src/themes/ProgressIndicator.css +0 -1
  378. package/src/themes/SplitButton.css +1 -0
  379. package/src/themes/StepInput.css +1 -0
  380. package/src/themes/base/DayPicker-parameters.css +3 -3
  381. package/src/themes/base/Link-parameters.css +1 -2
  382. package/src/themes/sap_belize_hcb/Link-parameters.css +1 -2
  383. package/src/themes/sap_belize_hcw/Link-parameters.css +1 -2
  384. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +1 -2
  385. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +1 -2
  386. package/src/themes/sap_horizon/DayPicker-parameters.css +0 -1
  387. package/src/themes/sap_horizon/Link-parameters.css +1 -2
  388. package/src/themes/sap_horizon_dark/DayPicker-parameters.css +0 -1
  389. package/src/themes/sap_horizon_dark/Link-parameters.css +1 -2
  390. package/src/themes/sap_horizon_dark_exp/DayPicker-parameters.css +0 -1
  391. package/src/themes/sap_horizon_dark_exp/Link-parameters.css +1 -2
  392. package/src/themes/sap_horizon_exp/DayPicker-parameters.css +0 -1
  393. package/src/themes/sap_horizon_exp/Link-parameters.css +1 -2
  394. package/src/themes/sap_horizon_hcb/DayPicker-parameters.css +0 -1
  395. package/src/themes/sap_horizon_hcb/Link-parameters.css +1 -2
  396. package/src/themes/sap_horizon_hcb_exp/DayPicker-parameters.css +0 -1
  397. package/src/themes/sap_horizon_hcb_exp/Link-parameters.css +1 -2
  398. package/src/themes/sap_horizon_hcw/DayPicker-parameters.css +0 -1
  399. package/src/themes/sap_horizon_hcw/Link-parameters.css +1 -2
  400. package/src/themes/sap_horizon_hcw_exp/DayPicker-parameters.css +0 -1
  401. package/src/themes/sap_horizon_hcw_exp/Link-parameters.css +1 -2
@@ -61,6 +61,20 @@ type CarouselNavigateEventDetail = {
61
61
  * @csspart content - Used to style the content of the component
62
62
  */
63
63
  declare class Carousel extends UI5Element {
64
+ /**
65
+ * Defines the accessible name of the component.
66
+ * @default ""
67
+ * @public
68
+ * @since 1.24
69
+ */
70
+ accessibleName: string;
71
+ /**
72
+ * Defines the IDs of the elements that label the input.
73
+ * @default ""
74
+ * @public
75
+ * @since 1.24
76
+ */
77
+ accessibleNameRef: string;
64
78
  /**
65
79
  * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.
66
80
  * @default false
@@ -274,6 +288,7 @@ declare class Carousel extends UI5Element {
274
288
  get selectedIndexToShow(): number;
275
289
  get ofText(): string;
276
290
  get ariaActiveDescendant(): string | undefined;
291
+ get ariaLabelTxt(): string | undefined;
277
292
  get nextPageText(): string;
278
293
  get previousPageText(): string;
279
294
  /**
package/dist/Carousel.js CHANGED
@@ -20,6 +20,7 @@ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
20
20
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
21
21
  import AnimationMode from "@ui5/webcomponents-base/dist/types/AnimationMode.js";
22
22
  import { getAnimationMode } from "@ui5/webcomponents-base/dist/config/AnimationMode.js";
23
+ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
23
24
  import { CAROUSEL_OF_TEXT, CAROUSEL_DOT_TEXT, CAROUSEL_PREVIOUS_ARROW_TEXT, CAROUSEL_NEXT_ARROW_TEXT, } from "./generated/i18n/i18n-defaults.js";
24
25
  import CarouselArrowsPlacement from "./types/CarouselArrowsPlacement.js";
25
26
  import CarouselPageIndicatorStyle from "./types/CarouselPageIndicatorStyle.js";
@@ -411,6 +412,9 @@ let Carousel = Carousel_1 = class Carousel extends UI5Element {
411
412
  get ariaActiveDescendant() {
412
413
  return this.content.length ? `${this._id}-carousel-item-${this._selectedIndex + 1}` : undefined;
413
414
  }
415
+ get ariaLabelTxt() {
416
+ return getEffectiveAriaLabelText(this);
417
+ }
414
418
  get nextPageText() {
415
419
  return Carousel_1.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);
416
420
  }
@@ -436,6 +440,12 @@ let Carousel = Carousel_1 = class Carousel extends UI5Element {
436
440
  Carousel_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
437
441
  }
438
442
  };
443
+ __decorate([
444
+ property()
445
+ ], Carousel.prototype, "accessibleName", void 0);
446
+ __decorate([
447
+ property({ defaultValue: "" })
448
+ ], Carousel.prototype, "accessibleNameRef", void 0);
439
449
  __decorate([
440
450
  property({ type: Boolean })
441
451
  ], Carousel.prototype, "cyclic", void 0);
@@ -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 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.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.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 { renderFinished } from \"@ui5/webcomponents-base/dist/Render.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 {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorStyle from \"./types/CarouselPageIndicatorStyle.js\";\nimport BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./generated/templates/CarouselTemplate.lit.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nimport Button from \"./Button.js\";\nimport Label from \"./Label.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\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 shorcuts.\n * - on mobile - the user 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 * ### 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: litRender,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n\tdependencies: [\n\t\tButton,\n\t\tLabel,\n\t],\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-l`, `items-per-page-m` and `items-per-page-s` properties.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event<CarouselNavigateEventDetail>(\"navigate\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedIndex: { type: Integer },\n\t},\n})\n\nclass Carousel extends UI5Element {\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!: boolean;\n\n\t/**\n\t * Defines the number of items per page on small size (up to 640px). One item per page shown by default.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\titemsPerPageS!: number;\n\n\t/**\n\t * Defines the number of items per page on medium size (from 640px to 1024px). One item per page shown by default.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\titemsPerPageM!: number;\n\n\t/**\n\t * Defines the number of items per page on large size (more than 1024px). One item per page shown by default.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\titemsPerPageL!: number;\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 * **Note:** The navigation arrows are never displayed on touch devices.\n\t * In this case, the user can swipe to navigate through the items.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows!: boolean;\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!: boolean;\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({ type: CarouselPageIndicatorStyle, defaultValue: CarouselPageIndicatorStyle.Default })\n\tpageIndicatorStyle!: `${CarouselPageIndicatorStyle}`;\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({ type: BackgroundDesign, defaultValue: BackgroundDesign.Translucent })\n\tbackgroundDesign!: BackgroundDesign;\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({ type: BackgroundDesign, defaultValue: BackgroundDesign.Solid })\n\tpageIndicatorBackgroundDesign!: BackgroundDesign;\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({ type: BorderDesign, defaultValue: BorderDesign.Solid })\n\tpageIndicatorBorderDesign!: BorderDesign;\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({ validator: Integer, defaultValue: 0 })\n\t_selectedIndex!: number;\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({ type: CarouselArrowsPlacement, defaultValue: CarouselArrowsPlacement.Content })\n\tarrowsPlacement!: `${CarouselArrowsPlacement}`;\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ validator: Integer })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ validator: Integer })\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!: boolean;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedPages: Array<number>;\n\n\t/**\n\t * Defines the content of the component.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: Array<HTMLElement>;\n\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._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}\n\n\tonBeforeRendering() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation) {\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}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateSelectedIndex() {\n\t\tif (!this.isIndexInRange(this._selectedIndex)) {\n\t\t\tthis._selectedIndex = 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\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\tif (this._selectedIndex > this.pagesCount - 1) {\n\t\t\tthis._selectedIndex = this.pagesCount - 1;\n\t\t\tthis.fireEvent<CarouselNavigateEventDetail>(\"navigate\", { selectedIndex: this._selectedIndex });\n\t\t}\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\tasync _onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.target !== this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isLeft(e) || isDown(e)) {\n\t\t\tthis.navigateLeft();\n\t\t\tawait renderFinished();\n\t\t\tthis.getDomRef()!.focus();\n\t\t} else if (isRight(e) || isUp(e)) {\n\t\t\tthis.navigateRight();\n\t\t\tawait renderFinished();\n\t\t\tthis.getDomRef()!.focus();\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.content.length; i++) {\n\t\t\tif (this.content[i].contains(target)) {\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\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_handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedActivePageIndex];\n\n\t\tif (e.target === this.getDomRef() && lastFocusedElement) {\n\t\t\tlastFocusedElement.focus();\n\t\t} else {\n\t\t\tthis.getDomRef()!.focus();\n\t\t}\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._selectedIndex;\n\t}\n\n\tnavigateLeft() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._selectedIndex;\n\n\t\tif (this._selectedIndex - 1 < 0) {\n\t\t\tif (this.cyclic) {\n\t\t\t\tthis._selectedIndex = this.pagesCount - 1;\n\t\t\t}\n\t\t} else {\n\t\t\t--this._selectedIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._selectedIndex) {\n\t\t\tthis.fireEvent<CarouselNavigateEventDetail>(\"navigate\", { selectedIndex: this._selectedIndex });\n\t\t}\n\t}\n\n\tnavigateRight() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._selectedIndex;\n\n\t\tif (this._selectedIndex + 1 > this.pagesCount - 1) {\n\t\t\tif (this.cyclic) {\n\t\t\t\tthis._selectedIndex = 0;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\t++this._selectedIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._selectedIndex) {\n\t\t\tthis.fireEvent<CarouselNavigateEventDetail>(\"navigate\", { selectedIndex: this._selectedIndex });\n\t\t}\n\t}\n\n\t_navButtonClick(e: MouseEvent) {\n\t\tconst button = e.target as Button;\n\t\tif (button.hasAttribute(\"arrow-forward\")) {\n\t\t\tthis.navigateRight();\n\t\t} else {\n\t\t\tthis.navigateLeft();\n\t\t}\n\n\t\tthis.focus();\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target page\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number) : void {\n\t\tthis._resizing = false;\n\t\tthis._selectedIndex = itemIndex;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items() {\n\t\treturn this.content.map((item, idx) => {\n\t\t\tconst visible = this.isItemInViewport(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: visible ? \"0\" : \"-1\",\n\t\t\t\tposinset: `${idx + 1}`,\n\t\t\t\tsetsize: `${this.content.length}`,\n\t\t\t\tstyles: {\n\t\t\t\t\twidth: `${this._itemWidth || 0}px`,\n\t\t\t\t},\n\t\t\t\tclasses: visible ? \"\" : \"ui5-carousel-item--hidden\",\n\t\t\t};\n\t\t});\n\t}\n\n\tget effectiveItemsPerPage(): number {\n\t\tif (!this._width) {\n\t\t\treturn this.itemsPerPageL;\n\t\t}\n\n\t\tif (this._width <= 640) {\n\t\t\treturn this.itemsPerPageS;\n\t\t}\n\n\t\tif (this._width <= 1024) {\n\t\t\treturn this.itemsPerPageM;\n\t\t}\n\n\t\treturn this.itemsPerPageL;\n\t}\n\n\tisItemInViewport(index: number): boolean {\n\t\treturn index >= this._selectedIndex && index <= this._selectedIndex + this.effectiveItemsPerPage - 1;\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.pagesCount - 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 styles() {\n\t\tconst items = this._itemWidth || 0;\n\t\treturn {\n\t\t\tcontent: {\n\t\t\t\ttransform: `translateX(${this._isRTL ? \"\" : \"-\"}${this._selectedIndex * items}px`,\n\t\t\t},\n\t\t};\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\tnavPrevButton: {\n\t\t\t\t\"ui5-carousel-navigation-button--hidden\": !this.hasPrev,\n\t\t\t},\n\t\t\tnavNextButton: {\n\t\t\t\t\"ui5-carousel-navigation-button--hidden\": !this.hasNext,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this.content.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorStyle === CarouselPageIndicatorStyle.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._selectedIndex,\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 && isDesktop();\n\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._selectedIndex - 1 >= 0;\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || this._selectedIndex + 1 <= 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.pagesCount - (this.pagesCount - this._selectedIndex) + 1 : this._selectedIndex + 1;\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaActiveDescendant() {\n\t\treturn this.content.length ? `${this._id}-carousel-item-${this._selectedIndex + 1}` : undefined;\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\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\tconst visibleItemsIndices: Array<number> = [];\n\n\t\tthis.items.forEach((item, index) => {\n\t\t\tif (this.isItemInViewport(index)) {\n\t\t\t\tvisibleItemsIndices.push(index);\n\t\t\t}\n\t\t});\n\n\t\treturn visibleItemsIndices;\n\t}\n\n\tstatic async onDefine() {\n\t\tCarousel.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\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 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.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.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 { renderFinished } from \"@ui5/webcomponents-base/dist/Render.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/AriaLabelHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorStyle from \"./types/CarouselPageIndicatorStyle.js\";\nimport BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./generated/templates/CarouselTemplate.lit.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nimport Button from \"./Button.js\";\nimport Label from \"./Label.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\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 shorcuts.\n * - on mobile - the user 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 * ### 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: litRender,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n\tdependencies: [\n\t\tButton,\n\t\tLabel,\n\t],\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-l`, `items-per-page-m` and `items-per-page-s` properties.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event<CarouselNavigateEventDetail>(\"navigate\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedIndex: { type: Integer },\n\t},\n})\n\nclass Carousel extends UI5Element {\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default \"\"\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 \"\"\n\t * @public\n\t * @since 1.24\n\t */\n\t@property({ defaultValue: \"\" })\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!: boolean;\n\n\t/**\n\t * Defines the number of items per page on small size (up to 640px). One item per page shown by default.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\titemsPerPageS!: number;\n\n\t/**\n\t * Defines the number of items per page on medium size (from 640px to 1024px). One item per page shown by default.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\titemsPerPageM!: number;\n\n\t/**\n\t * Defines the number of items per page on large size (more than 1024px). One item per page shown by default.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\titemsPerPageL!: number;\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 * **Note:** The navigation arrows are never displayed on touch devices.\n\t * In this case, the user can swipe to navigate through the items.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows!: boolean;\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!: boolean;\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({ type: CarouselPageIndicatorStyle, defaultValue: CarouselPageIndicatorStyle.Default })\n\tpageIndicatorStyle!: `${CarouselPageIndicatorStyle}`;\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({ type: BackgroundDesign, defaultValue: BackgroundDesign.Translucent })\n\tbackgroundDesign!: BackgroundDesign;\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({ type: BackgroundDesign, defaultValue: BackgroundDesign.Solid })\n\tpageIndicatorBackgroundDesign!: BackgroundDesign;\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({ type: BorderDesign, defaultValue: BorderDesign.Solid })\n\tpageIndicatorBorderDesign!: BorderDesign;\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({ validator: Integer, defaultValue: 0 })\n\t_selectedIndex!: number;\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({ type: CarouselArrowsPlacement, defaultValue: CarouselArrowsPlacement.Content })\n\tarrowsPlacement!: `${CarouselArrowsPlacement}`;\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ validator: Integer })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ validator: Integer })\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!: boolean;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedPages: Array<number>;\n\n\t/**\n\t * Defines the content of the component.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: Array<HTMLElement>;\n\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._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}\n\n\tonBeforeRendering() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation) {\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}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateSelectedIndex() {\n\t\tif (!this.isIndexInRange(this._selectedIndex)) {\n\t\t\tthis._selectedIndex = 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\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\tif (this._selectedIndex > this.pagesCount - 1) {\n\t\t\tthis._selectedIndex = this.pagesCount - 1;\n\t\t\tthis.fireEvent<CarouselNavigateEventDetail>(\"navigate\", { selectedIndex: this._selectedIndex });\n\t\t}\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\tasync _onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.target !== this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isLeft(e) || isDown(e)) {\n\t\t\tthis.navigateLeft();\n\t\t\tawait renderFinished();\n\t\t\tthis.getDomRef()!.focus();\n\t\t} else if (isRight(e) || isUp(e)) {\n\t\t\tthis.navigateRight();\n\t\t\tawait renderFinished();\n\t\t\tthis.getDomRef()!.focus();\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.content.length; i++) {\n\t\t\tif (this.content[i].contains(target)) {\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\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_handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedActivePageIndex];\n\n\t\tif (e.target === this.getDomRef() && lastFocusedElement) {\n\t\t\tlastFocusedElement.focus();\n\t\t} else {\n\t\t\tthis.getDomRef()!.focus();\n\t\t}\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._selectedIndex;\n\t}\n\n\tnavigateLeft() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._selectedIndex;\n\n\t\tif (this._selectedIndex - 1 < 0) {\n\t\t\tif (this.cyclic) {\n\t\t\t\tthis._selectedIndex = this.pagesCount - 1;\n\t\t\t}\n\t\t} else {\n\t\t\t--this._selectedIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._selectedIndex) {\n\t\t\tthis.fireEvent<CarouselNavigateEventDetail>(\"navigate\", { selectedIndex: this._selectedIndex });\n\t\t}\n\t}\n\n\tnavigateRight() {\n\t\tthis._resizing = false;\n\n\t\tconst previousSelectedIndex = this._selectedIndex;\n\n\t\tif (this._selectedIndex + 1 > this.pagesCount - 1) {\n\t\t\tif (this.cyclic) {\n\t\t\t\tthis._selectedIndex = 0;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\t++this._selectedIndex;\n\t\t}\n\n\t\tif (previousSelectedIndex !== this._selectedIndex) {\n\t\t\tthis.fireEvent<CarouselNavigateEventDetail>(\"navigate\", { selectedIndex: this._selectedIndex });\n\t\t}\n\t}\n\n\t_navButtonClick(e: MouseEvent) {\n\t\tconst button = e.target as Button;\n\t\tif (button.hasAttribute(\"arrow-forward\")) {\n\t\t\tthis.navigateRight();\n\t\t} else {\n\t\t\tthis.navigateLeft();\n\t\t}\n\n\t\tthis.focus();\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target page\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number) : void {\n\t\tthis._resizing = false;\n\t\tthis._selectedIndex = itemIndex;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items() {\n\t\treturn this.content.map((item, idx) => {\n\t\t\tconst visible = this.isItemInViewport(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: visible ? \"0\" : \"-1\",\n\t\t\t\tposinset: `${idx + 1}`,\n\t\t\t\tsetsize: `${this.content.length}`,\n\t\t\t\tstyles: {\n\t\t\t\t\twidth: `${this._itemWidth || 0}px`,\n\t\t\t\t},\n\t\t\t\tclasses: visible ? \"\" : \"ui5-carousel-item--hidden\",\n\t\t\t};\n\t\t});\n\t}\n\n\tget effectiveItemsPerPage(): number {\n\t\tif (!this._width) {\n\t\t\treturn this.itemsPerPageL;\n\t\t}\n\n\t\tif (this._width <= 640) {\n\t\t\treturn this.itemsPerPageS;\n\t\t}\n\n\t\tif (this._width <= 1024) {\n\t\t\treturn this.itemsPerPageM;\n\t\t}\n\n\t\treturn this.itemsPerPageL;\n\t}\n\n\tisItemInViewport(index: number): boolean {\n\t\treturn index >= this._selectedIndex && index <= this._selectedIndex + this.effectiveItemsPerPage - 1;\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.pagesCount - 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 styles() {\n\t\tconst items = this._itemWidth || 0;\n\t\treturn {\n\t\t\tcontent: {\n\t\t\t\ttransform: `translateX(${this._isRTL ? \"\" : \"-\"}${this._selectedIndex * items}px`,\n\t\t\t},\n\t\t};\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\tnavPrevButton: {\n\t\t\t\t\"ui5-carousel-navigation-button--hidden\": !this.hasPrev,\n\t\t\t},\n\t\t\tnavNextButton: {\n\t\t\t\t\"ui5-carousel-navigation-button--hidden\": !this.hasNext,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this.content.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorStyle === CarouselPageIndicatorStyle.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._selectedIndex,\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 && isDesktop();\n\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._selectedIndex - 1 >= 0;\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || this._selectedIndex + 1 <= 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.pagesCount - (this.pagesCount - this._selectedIndex) + 1 : this._selectedIndex + 1;\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaActiveDescendant() {\n\t\treturn this.content.length ? `${this._id}-carousel-item-${this._selectedIndex + 1}` : undefined;\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\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\tconst visibleItemsIndices: Array<number> = [];\n\n\t\tthis.items.forEach((item, index) => {\n\t\t\tif (this.isItemInViewport(index)) {\n\t\t\t\tvisibleItemsIndices.push(index);\n\t\t\t}\n\t\t});\n\n\t\treturn visibleItemsIndices;\n\t}\n\n\tstatic async onDefine() {\n\t\tCarousel.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
@@ -132,6 +132,8 @@ declare class FileUploader extends UI5Element implements IFormElement {
132
132
  _onclick(e: MouseEvent): void;
133
133
  _onkeydown(e: KeyboardEvent): void;
134
134
  _onkeyup(e: KeyboardEvent): void;
135
+ _ondrag(e: DragEvent): void;
136
+ _ondrop(e: DragEvent): void;
135
137
  _onfocusin(): void;
136
138
  _onfocusout(): void;
137
139
  /**
@@ -86,6 +86,22 @@ let FileUploader = FileUploader_1 = class FileUploader extends UI5Element {
86
86
  e.preventDefault();
87
87
  }
88
88
  }
89
+ _ondrag(e) {
90
+ e.preventDefault();
91
+ e.stopPropagation();
92
+ }
93
+ _ondrop(e) {
94
+ e.preventDefault();
95
+ e.stopPropagation();
96
+ const files = e.dataTransfer?.files;
97
+ if (files) {
98
+ this._input.files = files;
99
+ this._updateValue(files);
100
+ this.fireEvent("change", {
101
+ files,
102
+ });
103
+ }
104
+ }
89
105
  _onfocusin() {
90
106
  this.focused = true;
91
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../src/FileUploader.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tFILEUPLOAD_BROWSE,\n\tFILEUPLOADER_TITLE,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport Input from \"./Input.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\n\n// Template\nimport FileUploaderTemplate from \"./generated/templates/FileUploaderTemplate.lit.js\";\nimport FileUploaderPopoverTemplate from \"./generated/templates/FileUploaderPopoverTemplate.lit.js\";\n\n// Styles\nimport FileUploaderCss from \"./generated/themes/FileUploader.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\nimport type { IFormElement, NativeFormElement } from \"./features/InputElementsFormSupport.js\";\n\ntype FileUploaderChangeEventDetail = {\n\tfiles: FileList | null,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-file-uploader` opens a file explorer dialog and enables users to upload files.\n * The component consists of input field, but you can provide an HTML element by your choice\n * to trigger the file upload, by using the default slot.\n * Furthermore, you can set the property \"hideInput\" to \"true\" to hide the input field.\n *\n * To get all selected files, you can simply use the read-only \"files\" property.\n * To restrict the types of files the user can select, you can use the \"accept\" property.\n *\n * And, similar to all input based components, the FileUploader supports \"valueState\", \"placeholder\", \"name\", and \"disabled\" properties.\n *\n * For the `ui5-file-uploader`\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/FileUploader.js\";`\n * @constructor\n * @since 1.0.0-rc.6\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-file-uploader\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\tstyles: FileUploaderCss,\n\ttemplate: FileUploaderTemplate,\n\tstaticAreaTemplate: FileUploaderPopoverTemplate,\n\tstaticAreaStyles: [ResponsivePopoverCommonCss, ValueStateMessageCss],\n\tdependencies: [\n\t\tInput,\n\t\tPopover,\n\t\tIcon,\n\t],\n})\n/**\n * Event is fired when the value of the file path has been changed.\n *\n * **Note:** Keep in mind that because of the HTML input element of type file, the event is also fired in Chrome browser when the Cancel button of the uploads window is pressed.\n * @param {FileList | null} files The current files.\n * @public\n */\n@event<FileUploaderChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tfiles: { type: FileList },\n\t},\n})\nclass FileUploader extends UI5Element implements IFormElement {\n\t/**\n\t * Comma-separated list of file types that the component should accept.\n\t *\n\t * **Note:** Please make sure you are adding the `.` in front on the file type, e.g. `.png` in case you want to accept png's only.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccept!: string;\n\n\t/**\n\t * If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideInput!: boolean;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Allows multiple files to be chosen.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiple!: boolean;\n\n\t/**\n\t * Determines the name with which the component will be submitted in an HTML form.\n\t *\n\t * **Important:** For the `name` property to have effect, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t *\n\t * **Note:** When set, a native `input` HTML element\n\t * will be created inside the component so that it can be submitted as\n\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the component has no value.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tplaceholder!: string;\n\n\t/**\n\t * Defines the name/names of the file/files to upload.\n\t * @default \"\"\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * By default the component contains a single input field. With this slot you can pass any content that you wish to add. See the samples for more information.\n\t *\n\t * **Note:** If no content is provided in this slot, the component will only consist of an input field and will not be interactable using the keyboard.\n\t * Also it is not recommended to use any non-interactable components, as it may lead to poor accessibility experience.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Warning` or `Error` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * The slot is used to render native `input` HTML element within Light DOM to enable form submit,\n\t * when `name` property is set.\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t_internals: ElementInternals;\n\n\tstatic emptyInput: HTMLInputElement;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get formAssociated() {\n\t\treturn true;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._internals = this.attachInternals && this.attachInternals();\n\t}\n\n\t_onmouseover() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.add(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onmouseout() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.remove(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (getEventMark(e) === \"button\") {\n\t\t\tthis._input.click();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t/**\n\t * FileList of all selected files.\n\t * @public\n\t * @default null\n\t */\n\tget files(): FileList | null {\n\t\tif (this._input) {\n\t\t\treturn this._input.files;\n\t\t}\n\n\t\treturn FileUploader._emptyFilesList;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._enableFormSupport();\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.value) {\n\t\t\tthis._input.value = \"\";\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\n\t\tif (formSupport) {\n\t\t\tif (this._canUseNativeFormSupport) {\n\t\t\t\tthis._setFormValue();\n\t\t\t} else {\n\t\t\t\tformSupport.syncNativeFileInput(this,\n\t\t\t\t\t(element: IFormElement, nativeInput: NativeFormElement) => {\n\t\t\t\t\t\tnativeInput.disabled = !!element.disabled;\n\t\t\t\t\t},\n\t\t\t\t\tthis._onChange.bind(this));\n\t\t\t}\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onChange(e: Event) {\n\t\tconst changedFiles = (e.target as HTMLInputElement).files;\n\n\t\tthis._updateValue(changedFiles);\n\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\tfiles: changedFiles,\n\t\t});\n\t}\n\n\t_updateValue(files: FileList | null) {\n\t\tthis.value = Array.from(files || []).reduce((acc, currFile) => {\n\t\t\treturn `${acc}\"${currFile.name}\" `;\n\t\t}, \"\");\n\t}\n\n\t_setFormValue() {\n\t\tconst formData = new FormData();\n\n\t\tif (this.files) {\n\t\t\tfor (let i = 0; i < this.files.length; i++) {\n\t\t\t\tformData.append(this.name, this.files[i]);\n\t\t\t}\n\t\t}\n\n\t\tthis._internals.setFormValue(formData);\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tasync openValueStatePopover() {\n\t\tconst popover = await this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.showAt(this);\n\t\t}\n\t}\n\n\tasync closeValueStatePopover() {\n\t\tconst popover = await this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.close();\n\t\t}\n\t}\n\n\tasync _getPopover(): Promise<Popover> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t/**\n\t * in case when the component is not placed in the DOM, return empty FileList, like native input would do\n\t * @private\n\t */\n\tstatic get _emptyFilesList() {\n\t\tif (!this.emptyInput) {\n\t\t\tthis.emptyInput = document.createElement(\"input\");\n\t\t\tthis.emptyInput.type = \"file\";\n\t\t}\n\t\treturn this.emptyInput.files;\n\t}\n\n\tget browseText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOAD_BROWSE);\n\t}\n\n\tget titleText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_TITLE);\n\t}\n\n\tget _canUseNativeFormSupport(): boolean {\n\t\treturn !!(this._internals && this._internals.setFormValue);\n\t}\n\n\tget _keepInputInShadowDOM(): boolean {\n\t\t// only put input in the light dom when ui5-file-uploader is placed inside form and there is no support for form elements\n\t\treturn this._canUseNativeFormSupport || !this.name;\n\t}\n\n\tget _input(): HTMLInputElement {\n\t\treturn (this.shadowRoot!.querySelector<HTMLInputElement>(\"input[type=file]\") || this.querySelector<HTMLInputElement>(\"input[type=file][data-ui5-form-support]\"))!;\n\t}\n\n\tget valueStateTextMappings(): Record<string, string> {\n\t\treturn {\n\t\t\t\"Success\": FileUploader.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": FileUploader.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Error\": FileUploader.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": FileUploader.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText(): string {\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && this.hasValueStateText && !this.hideInput;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon(): string {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.ui5Input ? this.ui5Input.offsetWidth : 0}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ui5Input() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\".ui5-file-uploader-input\");\n\t}\n\n\tstatic async onDefine() {\n\t\tFileUploader.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nFileUploader.define();\n\nexport default FileUploader;\nexport type {\n\tFileUploaderChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../src/FileUploader.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tFILEUPLOAD_BROWSE,\n\tFILEUPLOADER_TITLE,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport Input from \"./Input.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\n\n// Template\nimport FileUploaderTemplate from \"./generated/templates/FileUploaderTemplate.lit.js\";\nimport FileUploaderPopoverTemplate from \"./generated/templates/FileUploaderPopoverTemplate.lit.js\";\n\n// Styles\nimport FileUploaderCss from \"./generated/themes/FileUploader.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\nimport type { IFormElement, NativeFormElement } from \"./features/InputElementsFormSupport.js\";\n\ntype FileUploaderChangeEventDetail = {\n\tfiles: FileList | null,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-file-uploader` opens a file explorer dialog and enables users to upload files.\n * The component consists of input field, but you can provide an HTML element by your choice\n * to trigger the file upload, by using the default slot.\n * Furthermore, you can set the property \"hideInput\" to \"true\" to hide the input field.\n *\n * To get all selected files, you can simply use the read-only \"files\" property.\n * To restrict the types of files the user can select, you can use the \"accept\" property.\n *\n * And, similar to all input based components, the FileUploader supports \"valueState\", \"placeholder\", \"name\", and \"disabled\" properties.\n *\n * For the `ui5-file-uploader`\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/FileUploader.js\";`\n * @constructor\n * @since 1.0.0-rc.6\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-file-uploader\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\tstyles: FileUploaderCss,\n\ttemplate: FileUploaderTemplate,\n\tstaticAreaTemplate: FileUploaderPopoverTemplate,\n\tstaticAreaStyles: [ResponsivePopoverCommonCss, ValueStateMessageCss],\n\tdependencies: [\n\t\tInput,\n\t\tPopover,\n\t\tIcon,\n\t],\n})\n/**\n * Event is fired when the value of the file path has been changed.\n *\n * **Note:** Keep in mind that because of the HTML input element of type file, the event is also fired in Chrome browser when the Cancel button of the uploads window is pressed.\n * @param {FileList | null} files The current files.\n * @public\n */\n@event<FileUploaderChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tfiles: { type: FileList },\n\t},\n})\nclass FileUploader extends UI5Element implements IFormElement {\n\t/**\n\t * Comma-separated list of file types that the component should accept.\n\t *\n\t * **Note:** Please make sure you are adding the `.` in front on the file type, e.g. `.png` in case you want to accept png's only.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccept!: string;\n\n\t/**\n\t * If set to \"true\", the input field of component will not be rendered. Only the default slot that is passed will be rendered.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideInput!: boolean;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Allows multiple files to be chosen.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiple!: boolean;\n\n\t/**\n\t * Determines the name with which the component will be submitted in an HTML form.\n\t *\n\t * **Important:** For the `name` property to have effect, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t *\n\t * **Note:** When set, a native `input` HTML element\n\t * will be created inside the component so that it can be submitted as\n\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the component has no value.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tplaceholder!: string;\n\n\t/**\n\t * Defines the name/names of the file/files to upload.\n\t * @default \"\"\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * By default the component contains a single input field. With this slot you can pass any content that you wish to add. See the samples for more information.\n\t *\n\t * **Note:** If no content is provided in this slot, the component will only consist of an input field and will not be interactable using the keyboard.\n\t * Also it is not recommended to use any non-interactable components, as it may lead to poor accessibility experience.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Warning` or `Error` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * The slot is used to render native `input` HTML element within Light DOM to enable form submit,\n\t * when `name` property is set.\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t_internals: ElementInternals;\n\n\tstatic emptyInput: HTMLInputElement;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get formAssociated() {\n\t\treturn true;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._internals = this.attachInternals && this.attachInternals();\n\t}\n\n\t_onmouseover() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.add(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onmouseout() {\n\t\tthis.content.forEach(item => {\n\t\t\titem.classList.remove(\"ui5_hovered\");\n\t\t});\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (getEventMark(e) === \"button\") {\n\t\t\tthis._input.click();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._input.click();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_ondrag(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tconst files = e.dataTransfer?.files;\n\n\t\tif (files) {\n\t\t\tthis._input.files = files;\n\t\t\tthis._updateValue(files);\n\t\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\t\tfiles,\n\t\t\t});\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t/**\n\t * FileList of all selected files.\n\t * @public\n\t * @default null\n\t */\n\tget files(): FileList | null {\n\t\tif (this._input) {\n\t\t\treturn this._input.files;\n\t\t}\n\n\t\treturn FileUploader._emptyFilesList;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._enableFormSupport();\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.value) {\n\t\t\tthis._input.value = \"\";\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\n\t\tif (formSupport) {\n\t\t\tif (this._canUseNativeFormSupport) {\n\t\t\t\tthis._setFormValue();\n\t\t\t} else {\n\t\t\t\tformSupport.syncNativeFileInput(this,\n\t\t\t\t\t(element: IFormElement, nativeInput: NativeFormElement) => {\n\t\t\t\t\t\tnativeInput.disabled = !!element.disabled;\n\t\t\t\t\t},\n\t\t\t\t\tthis._onChange.bind(this));\n\t\t\t}\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onChange(e: Event) {\n\t\tconst changedFiles = (e.target as HTMLInputElement).files;\n\n\t\tthis._updateValue(changedFiles);\n\t\tthis.fireEvent<FileUploaderChangeEventDetail>(\"change\", {\n\t\t\tfiles: changedFiles,\n\t\t});\n\t}\n\n\t_updateValue(files: FileList | null) {\n\t\tthis.value = Array.from(files || []).reduce((acc, currFile) => {\n\t\t\treturn `${acc}\"${currFile.name}\" `;\n\t\t}, \"\");\n\t}\n\n\t_setFormValue() {\n\t\tconst formData = new FormData();\n\n\t\tif (this.files) {\n\t\t\tfor (let i = 0; i < this.files.length; i++) {\n\t\t\t\tformData.append(this.name, this.files[i]);\n\t\t\t}\n\t\t}\n\n\t\tthis._internals.setFormValue(formData);\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tasync openValueStatePopover() {\n\t\tconst popover = await this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.showAt(this);\n\t\t}\n\t}\n\n\tasync closeValueStatePopover() {\n\t\tconst popover = await this._getPopover();\n\n\t\tif (popover) {\n\t\t\tpopover.close();\n\t\t}\n\t}\n\n\tasync _getPopover(): Promise<Popover> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t/**\n\t * in case when the component is not placed in the DOM, return empty FileList, like native input would do\n\t * @private\n\t */\n\tstatic get _emptyFilesList() {\n\t\tif (!this.emptyInput) {\n\t\t\tthis.emptyInput = document.createElement(\"input\");\n\t\t\tthis.emptyInput.type = \"file\";\n\t\t}\n\t\treturn this.emptyInput.files;\n\t}\n\n\tget browseText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOAD_BROWSE);\n\t}\n\n\tget titleText(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_TITLE);\n\t}\n\n\tget _canUseNativeFormSupport(): boolean {\n\t\treturn !!(this._internals && this._internals.setFormValue);\n\t}\n\n\tget _keepInputInShadowDOM(): boolean {\n\t\t// only put input in the light dom when ui5-file-uploader is placed inside form and there is no support for form elements\n\t\treturn this._canUseNativeFormSupport || !this.name;\n\t}\n\n\tget _input(): HTMLInputElement {\n\t\treturn (this.shadowRoot!.querySelector<HTMLInputElement>(\"input[type=file]\") || this.querySelector<HTMLInputElement>(\"input[type=file][data-ui5-form-support]\"))!;\n\t}\n\n\tget valueStateTextMappings(): Record<string, string> {\n\t\treturn {\n\t\t\t\"Success\": FileUploader.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": FileUploader.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Error\": FileUploader.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": FileUploader.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText(): string {\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && this.hasValueStateText && !this.hideInput;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon(): string {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.ui5Input ? this.ui5Input.offsetWidth : 0}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ui5Input() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\".ui5-file-uploader-input\");\n\t}\n\n\tstatic async onDefine() {\n\t\tFileUploader.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nFileUploader.define();\n\nexport default FileUploader;\nexport type {\n\tFileUploaderChangeEventDetail,\n};\n"]}
package/dist/Input.d.ts CHANGED
@@ -165,6 +165,8 @@ declare class Input extends UI5Element implements SuggestionComponent, IFormElem
165
165
  *
166
166
  * - The particular effect of this property differs depending on the browser
167
167
  * and the current language settings, especially for type `Number`.
168
+ * - Due to browser constraints, certain keyboard interactions may not be available
169
+ * for the 'Number' and 'Email' types.
168
170
  * - The property is mostly intended to be used with touch devices
169
171
  * that use different soft keyboard layouts depending on the given input type.
170
172
  * @default "Text"