@ui5/webcomponents 2.17.1 → 2.18.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Avatar.d.ts +7 -1
  4. package/dist/Avatar.js +9 -1
  5. package/dist/Avatar.js.map +1 -1
  6. package/dist/BreadcrumbsTemplate.js +1 -1
  7. package/dist/BreadcrumbsTemplate.js.map +1 -1
  8. package/dist/Button.js +2 -2
  9. package/dist/Button.js.map +1 -1
  10. package/dist/Calendar.d.ts +5 -0
  11. package/dist/Calendar.js +7 -0
  12. package/dist/Calendar.js.map +1 -1
  13. package/dist/DatePickerPopoverTemplate.d.ts +1 -0
  14. package/dist/DatePickerPopoverTemplate.js +2 -1
  15. package/dist/DatePickerPopoverTemplate.js.map +1 -1
  16. package/dist/DateTimePicker.d.ts +5 -0
  17. package/dist/DateTimePicker.js +8 -1
  18. package/dist/DateTimePicker.js.map +1 -1
  19. package/dist/DateTimePickerTemplate.js +1 -1
  20. package/dist/DateTimePickerTemplate.js.map +1 -1
  21. package/dist/DynamicDateRange.d.ts +1 -1
  22. package/dist/DynamicDateRange.js +1 -1
  23. package/dist/DynamicDateRange.js.map +1 -1
  24. package/dist/DynamicDateRangePopoverTemplate.js +1 -1
  25. package/dist/DynamicDateRangePopoverTemplate.js.map +1 -1
  26. package/dist/FileUploader.d.ts +0 -7
  27. package/dist/FileUploader.js +2 -16
  28. package/dist/FileUploader.js.map +1 -1
  29. package/dist/FileUploaderTemplate.js +1 -1
  30. package/dist/FileUploaderTemplate.js.map +1 -1
  31. package/dist/Input.d.ts +1 -1
  32. package/dist/Input.js +7 -3
  33. package/dist/Input.js.map +1 -1
  34. package/dist/InputTemplate.js +1 -1
  35. package/dist/InputTemplate.js.map +1 -1
  36. package/dist/Link.d.ts +7 -0
  37. package/dist/Link.js +4 -0
  38. package/dist/Link.js.map +1 -1
  39. package/dist/List.d.ts +7 -2
  40. package/dist/List.js +68 -11
  41. package/dist/List.js.map +1 -1
  42. package/dist/ListItem.d.ts +7 -2
  43. package/dist/ListItem.js +47 -15
  44. package/dist/ListItem.js.map +1 -1
  45. package/dist/ListItemCustom.d.ts +1 -1
  46. package/dist/ListItemCustom.js +14 -10
  47. package/dist/ListItemCustom.js.map +1 -1
  48. package/dist/MultiInput.d.ts +1 -0
  49. package/dist/MultiInput.js +4 -1
  50. package/dist/MultiInput.js.map +1 -1
  51. package/dist/Panel.d.ts +1 -0
  52. package/dist/Panel.js +18 -4
  53. package/dist/Panel.js.map +1 -1
  54. package/dist/RangeSlider.d.ts +16 -4
  55. package/dist/RangeSlider.js +115 -30
  56. package/dist/RangeSlider.js.map +1 -1
  57. package/dist/RangeSliderTemplate.js +1 -1
  58. package/dist/RangeSliderTemplate.js.map +1 -1
  59. package/dist/Slider.d.ts +12 -4
  60. package/dist/Slider.js +51 -8
  61. package/dist/Slider.js.map +1 -1
  62. package/dist/SliderBase.d.ts +0 -4
  63. package/dist/SliderBase.js +0 -17
  64. package/dist/SliderBase.js.map +1 -1
  65. package/dist/SliderTemplate.js +1 -1
  66. package/dist/SliderTemplate.js.map +1 -1
  67. package/dist/SliderTooltip.d.ts +11 -7
  68. package/dist/SliderTooltip.js +47 -39
  69. package/dist/SliderTooltip.js.map +1 -1
  70. package/dist/SliderTooltipTemplate.js +1 -1
  71. package/dist/SliderTooltipTemplate.js.map +1 -1
  72. package/dist/StepInput.js +6 -0
  73. package/dist/StepInput.js.map +1 -1
  74. package/dist/Table.js.map +1 -1
  75. package/dist/TableCustomAnnouncement.js.map +1 -1
  76. package/dist/TableHeaderRow.d.ts +1 -1
  77. package/dist/TableHeaderRow.js.map +1 -1
  78. package/dist/TableRow.d.ts +1 -1
  79. package/dist/TableRow.js.map +1 -1
  80. package/dist/TableRowBase.d.ts +4 -4
  81. package/dist/TableRowBase.js.map +1 -1
  82. package/dist/TextArea.d.ts +1 -1
  83. package/dist/TextArea.js +11 -3
  84. package/dist/TextArea.js.map +1 -1
  85. package/dist/TimePicker.d.ts +7 -0
  86. package/dist/TimePicker.js +14 -1
  87. package/dist/TimePicker.js.map +1 -1
  88. package/dist/TimePickerPopoverTemplate.js +9 -5
  89. package/dist/TimePickerPopoverTemplate.js.map +1 -1
  90. package/dist/ToolbarSelect.js +1 -6
  91. package/dist/ToolbarSelect.js.map +1 -1
  92. package/dist/ToolbarSelectOption.d.ts +3 -1
  93. package/dist/ToolbarSelectOption.js +30 -9
  94. package/dist/ToolbarSelectOption.js.map +1 -1
  95. package/dist/TreeItemBase.d.ts +1 -1
  96. package/dist/TreeItemBase.js +2 -2
  97. package/dist/TreeItemBase.js.map +1 -1
  98. package/dist/TreeItemCustom.d.ts +1 -1
  99. package/dist/TreeItemCustom.js +2 -2
  100. package/dist/TreeItemCustom.js.map +1 -1
  101. package/dist/css/themes/Avatar.css +1 -1
  102. package/dist/css/themes/AvatarGroup.css +1 -1
  103. package/dist/css/themes/Bar.css +1 -1
  104. package/dist/css/themes/Breadcrumbs.css +1 -1
  105. package/dist/css/themes/BusyIndicator.css +1 -1
  106. package/dist/css/themes/Button.css +1 -1
  107. package/dist/css/themes/ButtonBadge.css +1 -1
  108. package/dist/css/themes/Calendar.css +1 -1
  109. package/dist/css/themes/CalendarHeader.css +1 -1
  110. package/dist/css/themes/CalendarLegend.css +1 -1
  111. package/dist/css/themes/CalendarLegendItem.css +1 -1
  112. package/dist/css/themes/Card.css +1 -1
  113. package/dist/css/themes/CardHeader.css +1 -1
  114. package/dist/css/themes/Carousel.css +1 -1
  115. package/dist/css/themes/CheckBox.css +1 -1
  116. package/dist/css/themes/ColorPalette.css +1 -1
  117. package/dist/css/themes/ColorPaletteItem.css +1 -1
  118. package/dist/css/themes/ColorPalettePopover.css +1 -1
  119. package/dist/css/themes/ColorPicker.css +1 -1
  120. package/dist/css/themes/ComboBox.css +1 -1
  121. package/dist/css/themes/ComboBoxItem.css +1 -1
  122. package/dist/css/themes/DatePicker.css +1 -1
  123. package/dist/css/themes/DatePickerPopover.css +1 -1
  124. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  125. package/dist/css/themes/DayPicker.css +1 -1
  126. package/dist/css/themes/Dialog.css +1 -1
  127. package/dist/css/themes/DynamicDateRange.css +1 -1
  128. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  129. package/dist/css/themes/FileUploader.css +1 -1
  130. package/dist/css/themes/Form.css +1 -1
  131. package/dist/css/themes/FormItem.css +1 -1
  132. package/dist/css/themes/FormItemSpan.css +1 -1
  133. package/dist/css/themes/GrowingButton.css +1 -1
  134. package/dist/css/themes/Icon.css +1 -1
  135. package/dist/css/themes/Input.css +1 -1
  136. package/dist/css/themes/InputIcon.css +1 -1
  137. package/dist/css/themes/InputSharedStyles.css +1 -1
  138. package/dist/css/themes/Link.css +1 -1
  139. package/dist/css/themes/List.css +1 -1
  140. package/dist/css/themes/ListItem.css +1 -1
  141. package/dist/css/themes/ListItemBase.css +1 -1
  142. package/dist/css/themes/ListItemCustom.css +1 -1
  143. package/dist/css/themes/ListItemGroup.css +1 -1
  144. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  145. package/dist/css/themes/ListItemIcon.css +1 -1
  146. package/dist/css/themes/Menu.css +1 -1
  147. package/dist/css/themes/MenuItem.css +1 -1
  148. package/dist/css/themes/MessageStrip.css +1 -1
  149. package/dist/css/themes/MonthPicker.css +1 -1
  150. package/dist/css/themes/MultiComboBox.css +1 -1
  151. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  152. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  153. package/dist/css/themes/MultiInput.css +1 -1
  154. package/dist/css/themes/OptionBase.css +1 -1
  155. package/dist/css/themes/Panel.css +1 -1
  156. package/dist/css/themes/Popover.css +1 -1
  157. package/dist/css/themes/PopupsCommon.css +1 -1
  158. package/dist/css/themes/ProgressIndicator.css +1 -1
  159. package/dist/css/themes/RadioButton.css +1 -1
  160. package/dist/css/themes/RangeSlider.css +1 -1
  161. package/dist/css/themes/RatingIndicator.css +1 -1
  162. package/dist/css/themes/ResponsivePopover.css +1 -1
  163. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  164. package/dist/css/themes/SegmentedButton.css +1 -1
  165. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  166. package/dist/css/themes/Select.css +1 -1
  167. package/dist/css/themes/SliderBase.css +1 -1
  168. package/dist/css/themes/SplitButton.css +1 -1
  169. package/dist/css/themes/StepInput.css +1 -1
  170. package/dist/css/themes/SuggestionItem.css +1 -1
  171. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  172. package/dist/css/themes/Switch.css +1 -1
  173. package/dist/css/themes/TabContainer.css +1 -1
  174. package/dist/css/themes/TabInOverflow.css +1 -1
  175. package/dist/css/themes/TabInStrip.css +1 -1
  176. package/dist/css/themes/TabSemanticIcon.css +1 -1
  177. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  178. package/dist/css/themes/TableCellBase.css +1 -1
  179. package/dist/css/themes/TableGrowing.css +1 -1
  180. package/dist/css/themes/TableHeaderRow.css +1 -1
  181. package/dist/css/themes/TableRow.css +1 -1
  182. package/dist/css/themes/TableRowActionBase.css +1 -1
  183. package/dist/css/themes/TableRowBase.css +1 -1
  184. package/dist/css/themes/Tag.css +1 -1
  185. package/dist/css/themes/Text.css +1 -1
  186. package/dist/css/themes/TextArea.css +1 -1
  187. package/dist/css/themes/TimePicker.css +1 -1
  188. package/dist/css/themes/Toast.css +1 -1
  189. package/dist/css/themes/ToggleButton.css +1 -1
  190. package/dist/css/themes/Token.css +1 -1
  191. package/dist/css/themes/Tokenizer.css +1 -1
  192. package/dist/css/themes/TokenizerPopover.css +1 -1
  193. package/dist/css/themes/Toolbar.css +1 -1
  194. package/dist/css/themes/ToolbarButton.css +1 -1
  195. package/dist/css/themes/ToolbarPopover.css +1 -1
  196. package/dist/css/themes/ToolbarSeparator.css +1 -1
  197. package/dist/css/themes/TreeItem.css +1 -1
  198. package/dist/css/themes/ValueStateMessage.css +1 -1
  199. package/dist/css/themes/ValueStateVariables.css +1 -1
  200. package/dist/css/themes/YearPicker.css +1 -1
  201. package/dist/css/themes/YearRangePicker.css +1 -1
  202. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  203. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  204. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  205. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  206. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  207. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  208. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  209. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  210. package/dist/custom-elements-internal.json +18 -15
  211. package/dist/custom-elements.json +13 -15
  212. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  213. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  214. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  215. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  216. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  217. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  218. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  219. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  220. package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
  221. package/dist/generated/i18n/i18n-defaults.js +4 -1
  222. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  223. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  224. package/dist/generated/themes/Avatar.css.js +1 -1
  225. package/dist/generated/themes/Avatar.css.js.map +1 -1
  226. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  227. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  228. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  229. package/dist/generated/themes/Bar.css.d.ts +1 -1
  230. package/dist/generated/themes/Bar.css.js +1 -1
  231. package/dist/generated/themes/Bar.css.js.map +1 -1
  232. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  233. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  234. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  235. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  236. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  237. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  238. package/dist/generated/themes/Button.css.d.ts +1 -1
  239. package/dist/generated/themes/Button.css.js +1 -1
  240. package/dist/generated/themes/Button.css.js.map +1 -1
  241. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  242. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  243. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  244. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  245. package/dist/generated/themes/Calendar.css.js +1 -1
  246. package/dist/generated/themes/Calendar.css.js.map +1 -1
  247. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  248. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  249. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  250. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  251. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  252. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  253. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  254. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  255. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  256. package/dist/generated/themes/Card.css.d.ts +1 -1
  257. package/dist/generated/themes/Card.css.js +1 -1
  258. package/dist/generated/themes/Card.css.js.map +1 -1
  259. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  260. package/dist/generated/themes/CardHeader.css.js +1 -1
  261. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  262. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  263. package/dist/generated/themes/Carousel.css.js +1 -1
  264. package/dist/generated/themes/Carousel.css.js.map +1 -1
  265. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  266. package/dist/generated/themes/CheckBox.css.js +1 -1
  267. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  268. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  269. package/dist/generated/themes/ColorPalette.css.js +1 -1
  270. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  271. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  272. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  273. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  274. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  275. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  276. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  277. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  278. package/dist/generated/themes/ColorPicker.css.js +1 -1
  279. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  280. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  281. package/dist/generated/themes/ComboBox.css.js +1 -1
  282. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  283. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  284. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  285. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  286. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  287. package/dist/generated/themes/DatePicker.css.js +1 -1
  288. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  289. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  290. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  291. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  292. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  293. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  294. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  295. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  296. package/dist/generated/themes/DayPicker.css.js +1 -1
  297. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  298. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  299. package/dist/generated/themes/Dialog.css.js +1 -1
  300. package/dist/generated/themes/Dialog.css.js.map +1 -1
  301. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  302. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  303. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  304. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  305. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  306. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  307. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  308. package/dist/generated/themes/FileUploader.css.js +1 -1
  309. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  310. package/dist/generated/themes/Form.css.d.ts +1 -1
  311. package/dist/generated/themes/Form.css.js +1 -1
  312. package/dist/generated/themes/Form.css.js.map +1 -1
  313. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  314. package/dist/generated/themes/FormItem.css.js +1 -1
  315. package/dist/generated/themes/FormItem.css.js.map +1 -1
  316. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  317. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  318. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  319. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  320. package/dist/generated/themes/GrowingButton.css.js +1 -1
  321. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  322. package/dist/generated/themes/Icon.css.d.ts +1 -1
  323. package/dist/generated/themes/Icon.css.js +1 -1
  324. package/dist/generated/themes/Icon.css.js.map +1 -1
  325. package/dist/generated/themes/Input.css.d.ts +1 -1
  326. package/dist/generated/themes/Input.css.js +1 -1
  327. package/dist/generated/themes/Input.css.js.map +1 -1
  328. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  329. package/dist/generated/themes/InputIcon.css.js +1 -1
  330. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  331. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  332. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  333. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  334. package/dist/generated/themes/Link.css.d.ts +1 -1
  335. package/dist/generated/themes/Link.css.js +1 -1
  336. package/dist/generated/themes/Link.css.js.map +1 -1
  337. package/dist/generated/themes/List.css.d.ts +1 -1
  338. package/dist/generated/themes/List.css.js +1 -1
  339. package/dist/generated/themes/List.css.js.map +1 -1
  340. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  341. package/dist/generated/themes/ListItem.css.js +1 -1
  342. package/dist/generated/themes/ListItem.css.js.map +1 -1
  343. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  344. package/dist/generated/themes/ListItemBase.css.js +1 -1
  345. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  346. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  347. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  348. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  349. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  350. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  351. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  352. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  353. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  354. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  355. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  356. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  357. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  358. package/dist/generated/themes/Menu.css.d.ts +1 -1
  359. package/dist/generated/themes/Menu.css.js +1 -1
  360. package/dist/generated/themes/Menu.css.js.map +1 -1
  361. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  362. package/dist/generated/themes/MenuItem.css.js +1 -1
  363. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  364. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  365. package/dist/generated/themes/MessageStrip.css.js +1 -1
  366. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  367. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  368. package/dist/generated/themes/MonthPicker.css.js +1 -1
  369. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  370. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  371. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  372. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  373. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  374. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  375. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  376. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  377. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  378. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  379. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  380. package/dist/generated/themes/MultiInput.css.js +1 -1
  381. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  382. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  383. package/dist/generated/themes/OptionBase.css.js +1 -1
  384. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  385. package/dist/generated/themes/Panel.css.d.ts +1 -1
  386. package/dist/generated/themes/Panel.css.js +1 -1
  387. package/dist/generated/themes/Panel.css.js.map +1 -1
  388. package/dist/generated/themes/Popover.css.d.ts +1 -1
  389. package/dist/generated/themes/Popover.css.js +1 -1
  390. package/dist/generated/themes/Popover.css.js.map +1 -1
  391. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  392. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  393. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  394. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  395. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  396. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  397. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  398. package/dist/generated/themes/RadioButton.css.js +1 -1
  399. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  400. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  401. package/dist/generated/themes/RangeSlider.css.js +1 -1
  402. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  403. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  404. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  405. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  406. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  407. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  408. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  409. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  410. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  411. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  412. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  413. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  414. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  415. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  416. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  417. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  418. package/dist/generated/themes/Select.css.d.ts +1 -1
  419. package/dist/generated/themes/Select.css.js +1 -1
  420. package/dist/generated/themes/Select.css.js.map +1 -1
  421. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  422. package/dist/generated/themes/SliderBase.css.js +1 -1
  423. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  424. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  425. package/dist/generated/themes/SplitButton.css.js +1 -1
  426. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  427. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  428. package/dist/generated/themes/StepInput.css.js +1 -1
  429. package/dist/generated/themes/StepInput.css.js.map +1 -1
  430. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  431. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  432. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  433. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  434. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  435. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  436. package/dist/generated/themes/Switch.css.d.ts +1 -1
  437. package/dist/generated/themes/Switch.css.js +1 -1
  438. package/dist/generated/themes/Switch.css.js.map +1 -1
  439. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  440. package/dist/generated/themes/TabContainer.css.js +1 -1
  441. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  442. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  443. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  444. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  445. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  446. package/dist/generated/themes/TabInStrip.css.js +1 -1
  447. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  448. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  449. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  450. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  451. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  452. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  453. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  454. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  455. package/dist/generated/themes/TableCellBase.css.js +1 -1
  456. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  457. package/dist/generated/themes/TableGrowing.css.d.ts +1 -1
  458. package/dist/generated/themes/TableGrowing.css.js +1 -1
  459. package/dist/generated/themes/TableGrowing.css.js.map +1 -1
  460. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  461. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  462. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  463. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  464. package/dist/generated/themes/TableRow.css.js +1 -1
  465. package/dist/generated/themes/TableRow.css.js.map +1 -1
  466. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  467. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  468. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  469. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  470. package/dist/generated/themes/TableRowBase.css.js +1 -1
  471. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  472. package/dist/generated/themes/Tag.css.d.ts +1 -1
  473. package/dist/generated/themes/Tag.css.js +1 -1
  474. package/dist/generated/themes/Tag.css.js.map +1 -1
  475. package/dist/generated/themes/Text.css.d.ts +1 -1
  476. package/dist/generated/themes/Text.css.js +1 -1
  477. package/dist/generated/themes/Text.css.js.map +1 -1
  478. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  479. package/dist/generated/themes/TextArea.css.js +1 -1
  480. package/dist/generated/themes/TextArea.css.js.map +1 -1
  481. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  482. package/dist/generated/themes/TimePicker.css.js +1 -1
  483. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  484. package/dist/generated/themes/Toast.css.d.ts +1 -1
  485. package/dist/generated/themes/Toast.css.js +1 -1
  486. package/dist/generated/themes/Toast.css.js.map +1 -1
  487. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  488. package/dist/generated/themes/ToggleButton.css.js +1 -1
  489. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  490. package/dist/generated/themes/Token.css.d.ts +1 -1
  491. package/dist/generated/themes/Token.css.js +1 -1
  492. package/dist/generated/themes/Token.css.js.map +1 -1
  493. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  494. package/dist/generated/themes/Tokenizer.css.js +1 -1
  495. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  496. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  497. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  498. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  499. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  500. package/dist/generated/themes/Toolbar.css.js +1 -1
  501. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  502. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  503. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  504. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  505. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  506. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  507. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  508. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  509. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  510. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  511. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  512. package/dist/generated/themes/TreeItem.css.js +1 -1
  513. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  514. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  515. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  516. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  517. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  518. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  519. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  520. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  521. package/dist/generated/themes/YearPicker.css.js +1 -1
  522. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  523. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  524. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  525. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  526. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  527. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  528. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  529. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  530. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  531. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  532. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  533. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  534. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  535. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  536. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  537. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  538. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  539. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  540. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  541. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  542. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  543. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  544. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  545. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  546. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  547. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  548. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  549. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  550. package/dist/popup-utils/OpenedPopupsRegistry.js +1 -1
  551. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
  552. package/dist/vscode.html-custom-data.json +4 -4
  553. package/dist/web-types.json +12 -8
  554. package/package.json +9 -9
  555. package/src/BreadcrumbsTemplate.tsx +0 -1
  556. package/src/DatePickerPopoverTemplate.tsx +3 -1
  557. package/src/DateTimePickerTemplate.tsx +1 -1
  558. package/src/DynamicDateRangePopoverTemplate.tsx +1 -1
  559. package/src/FileUploaderTemplate.tsx +2 -2
  560. package/src/InputTemplate.tsx +1 -0
  561. package/src/RangeSliderTemplate.tsx +12 -4
  562. package/src/SliderTemplate.tsx +5 -1
  563. package/src/SliderTooltipTemplate.tsx +2 -1
  564. package/src/TimePickerPopoverTemplate.tsx +24 -5
  565. package/src/i18n/messagebundle.properties +9 -0
  566. package/src/themes/Button.css +2 -2
  567. package/src/themes/CheckBox.css +1 -0
  568. package/src/themes/DatePicker.css +1 -0
  569. package/src/themes/RadioButton.css +1 -0
  570. package/src/themes/RatingIndicator.css +2 -0
  571. package/src/themes/SliderBase.css +1 -1
  572. package/src/themes/StepInput.css +0 -1
  573. package/src/themes/Switch.css +1 -0
  574. package/src/themes/TableGrowing.css +1 -0
  575. package/src/themes/Text.css +1 -1
  576. package/src/themes/sap_horizon/SliderBase-parameters.css +2 -2
  577. package/src/themes/sap_horizon_dark/SliderBase-parameters.css +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicDateRange.js","sourceRoot":"","sources":["../src/DynamicDateRange.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\nimport { isF4, isShow } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport DynamicDateRangeTemplate from \"./DynamicDateRangeTemplate.js\";\nimport IconMode from \"./types/IconMode.js\";\nimport type Input from \"./Input.js\";\nimport type List from \"./List.js\";\nimport type ListItem from \"./ListItem.js\";\nimport {\n\tDYNAMIC_DATE_RANGE_SELECTED_TEXT,\n\tDYNAMIC_DATE_RANGE_EMPTY_SELECTED_TEXT,\n\tDYNAMIC_DATE_RANGE_NAVIGATION_ICON_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Styles\nimport dynamicDateRangeCss from \"./generated/themes/DynamicDateRange.css.js\";\nimport dynamicDateRangePopoverCss from \"./generated/themes/DynamicDateRangePopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\ntype DynamicDateRangeValue = {\n\t/**\n\t * The key of the option.\n\t * @default \"\"\n\t * @public\n\t */\n\toperator: string;\n\n\t/**\n\t * Values of the dynamic date range.\n\t * @default []\n\t * @public\n\t */\n\tvalues?: Array<Date> | Array<number>;\n}\n\n/**\n * Represents a dynamic date range option used by the `ui5-dynamic-date-range` component.\n *\n * Represents a dynamic date range option used for handling dynamic date ranges.\n * This interface defines the structure and behavior required for implementing\n * dynamic date range options, including formatting, parsing, validation, and\n * conversion of date range values.\n *\n * * Properties:\n * - `icon`: The icon associated with the dynamic date range option, typically used for UI representation.\n * - `operator`: A unique operator identifying the dynamic date range option.\n * - `text`: The display text for the dynamic date range option.\n * - `template` (optional): A JSX template for rendering the dynamic date range option.\n *\n * Methods:\n * - `format(value: DynamicDateRangeValue): string`: Formats the given dynamic date range value into a string representation.\n * - `parse(value: string): DynamicDateRangeValue | undefined`: Parses a string into a dynamic date range value.\n * - `toDates(value: DynamicDateRangeValue): Array<Date>`: Converts a dynamic date range value into an array of `Date` objects.\n * - `handleSelectionChange?(event: CustomEvent): DynamicDateRangeValue | undefined`: (Optional) Handles selection changes in the UI of the dynamic date range option.\n * - `isValidString(value: string): boolean`: Validates whether a given string is a valid representation of the dynamic date range value.\n *\n * @public\n * @since 2.11.0\n */\ninterface IDynamicDateRangeOption {\n\ticon: string;\n\toperator: string;\n\ttext: string;\n\tformat: (value: DynamicDateRangeValue) => string;\n\tparse: (value: string) => DynamicDateRangeValue | undefined;\n\ttoDates: (value: DynamicDateRangeValue) => Array<Date>;\n\thandleSelectionChange?: (event: CustomEvent, value: DynamicDateRangeValue | undefined) => DynamicDateRangeValue | undefined;\n\ttemplate?: JsxTemplate;\n\tisValidString: (value: string) => boolean;\n\tresetState?: () => void;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-dynamic-date-range` component provides a flexible interface to define date ranges using a combination of absolute dates, relative intervals, and preset ranges (e.g., \"Today\", \"Yesterday\", etc.).\n * It allows users to select a date range from a predefined set of options or enter custom dates.\n *\n * ### Usage\n *\n * The component is typically used in scenarios where users need to filter data based on date ranges, such as in reports, dashboards, or data analysis tools.\n * It can be used with the predefined options or extended with custom options to suit specific requirements. You can create your own options by extending the `IDynamicDateRangeOption` interface.\n * Every option should be registered using the `DynamicDateRange.register` method.\n *\n * If needed, you can also create a range of dates based on specific option using the `toDates` method.\n *\n * ### Standard Options\n *\n * The component comes with a set of standard options, including:\n * - \"TODAY\" - Represents the current date. An example value is `{ operator: \"TODAY\"}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/Today.js\";`\n * - \"YESTERDAY\" - Represents the previous date. An example value is `{ operator: \"YESTERDAY\"}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/Yesterday.js\";`\n * - \"TOMORROW\" - Represents the next date. An example value is `{ operator: \"TOMORROW\"}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/Tomorrow.js\";`\n * - \"DATE\" - Represents a single date. An example value is `{ operator: \"DATE\", values: [new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/SingleDate.js\";`\n * - \"DATERANGE\" - Represents a range of dates. An example value is `{ operator: \"DATERANGE\", values: [new Date(), new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/DateRange.js\";`\n * - \"DATETIMERANGE\" - Represents a range of dates with times. An example value is `{ operator: \"DATETIMERANGE\", values: [new Date(), new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/DateTimeRange.js\";`\n * - \"FROMDATETIME\" - Represents a range from date and time. An example value is `{ operator: \"FROMDATETIME\", values: [new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/FromDateTime.js\";`\n * - \"TODATETIME\" - Represents a range to date and time. An example value is `{ operator: \"TODATETIME\", values: [new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/ToDateTime.js\";`\n * - \"LASTDAYS\" - Represents Last X Days from today. An example value is `{ operator: \"LASTDAYS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTWEEKS\" - Represents Last X Weeks from today. An example value is `{ operator: \"LASTWEEKS\", values: [3]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTMONTHS\" - Represents Last X Months from today. An example value is `{ operator: \"LASTMONTHS\", values: [6]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTQUARTERS\" - Represents Last X Quarters from today. An example value is `{ operator: \"LASTQUARTERS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTYEARS\" - Represents Last X Years from today. An example value is `{ operator: \"LASTYEARS\", values: [1]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"NEXTDAYS\" - Represents Next X Days from today. An example value is `{ operator: \"NEXTDAYS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTWEEKS\" - Represents Next X Weeks from today. An example value is `{ operator: \"NEXTWEEKS\", values: [3]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTMONTHS\" - Represents Next X Months from today. An example value is `{ operator: \"NEXTMONTHS\", values: [6]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTQUARTERS\" - Represents Next X Quarters from today. An example value is `{ operator: \"NEXTQUARTERS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTYEARS\" - Represents Next X Years from today. An example value is `{ operator: \"NEXTYEARS\", values: [1]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DynamicDateRange.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.11.0\n */\n@customElement({\n\ttag: \"ui5-dynamic-date-range\",\n\tlanguageAware: true,\n\tcldr: true,\n\ttemplate: DynamicDateRangeTemplate,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tdynamicDateRangeCss,\n\t\tResponsivePopoverCommonCss,\n\t\tdynamicDateRangePopoverCss,\n\t],\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout or a value is selected in the popover.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass DynamicDateRange extends UI5Element {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines the value object.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ noAttribute: true })\n\tvalue?: DynamicDateRangeValue;\n\n\t/**\n\t * Defines the options listed as a string, separated by commas and using capital case.\n\t * Example: \"TODAY, YESTERDAY, DATERANGE\"\n\t * @public\n\t * @default \"\"\n\t */\n\t@property({ type: String })\n\toptions = \"\";\n\n\t/**\n\t * Defines the open or closed state of the popover.\n\t * @private\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t@property({ type: Object })\n\t_currentOption?: IDynamicDateRangeOption;\n\n\t_lastSelectedOption?: IDynamicDateRangeOption;\n\n\t@property({ type: Object })\n\tcurrentValue?: DynamicDateRangeValue;\n\n\toptionsObjects: Array<IDynamicDateRangeOption> = [];\n\n\tstatic optionsClasses: Map<string, new (operators?: Array<string>) => IDynamicDateRangeOption> = new Map();\n\n\t@query(\"[ui5-input]\")\n\t_input?: Input;\n\n\t@query(\"[ui5-list]\")\n\t_list?: List;\n\n\tonBeforeRendering() {\n\t\tthis.optionsObjects = this._createNormalizedOptions();\n\t\tthis._focusSelectedItem();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished().then(() => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._focusLastSelectedItem();\n\t\t\t}, 0);\n\t\t});\n\t}\n\n\t/**\n\t * Creates and normalizes options from the options string\n\t */\n\t_createNormalizedOptions(): Array<IDynamicDateRangeOption> {\n\t\tif (!this.optionsObjects.length) { // initialize options on first use\n\t\t\tconst optionKeys = this.splitOptions(this.options).filter(Boolean);\n\t\t\tconst createdOptions: Array<IDynamicDateRangeOption> = [];\n\t\t\tconst classToOperators = new Map<new(operators?: Array<string>) => IDynamicDateRangeOption, Array<string>>();\n\n\t\t\t// Group operators by their class\n\t\t\toptionKeys.forEach(option => {\n\t\t\t\tconst OptionClass = DynamicDateRange.getOptionClass(option);\n\t\t\t\tif (OptionClass) {\n\t\t\t\t\tconst operators = classToOperators.get(OptionClass) || [];\n\t\t\t\t\toperators.push(option);\n\t\t\t\t\tclassToOperators.set(OptionClass, operators);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tclassToOperators.forEach((operators, OptionClass) => {\n\t\t\t\tcreatedOptions.push(new OptionClass(operators));\n\t\t\t});\n\n\t\t\treturn createdOptions;\n\t\t}\n\t\treturn this.optionsObjects;\n\t}\n\n\tsplitOptions(options: string): Array<string> {\n\t\treturn options.split(\",\").map(s => s.trim());\n\t}\n\n\t_focusSelectedItem() {\n\t\tif (!this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst listItem = this._list?.items.find(item => (item as ListItem).selected === true);\n\t\tif (listItem) {\n\t\t\tthis._list?.focusItem(listItem as ListItem);\n\t\t}\n\t}\n\n\t_focusLastSelectedItem() {\n\t\tif (!this._lastSelectedOption) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure the list exists and has items\n\t\tif (!this._list || !this._list.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find the index of the last selected option in the options array\n\t\tconst optionIndex = this.optionsObjects.findIndex(option => option.operator === this._lastSelectedOption?.operator);\n\n\t\tif (optionIndex >= 0 && optionIndex < this._list.items.length) {\n\t\t\tconst listItem = this._list.items[optionIndex];\n\t\t\tthis._list.focusItem(listItem as ListItem);\n\t\t}\n\t}\n\n\t/**\n\t * Defines whether the value help icon is hidden\n\t * @private\n\t */\n\tget _iconMode() {\n\t\treturn isDesktop() ? IconMode.Decorative : IconMode.Interactive;\n\t}\n\n\tget tooltipNavigationIcon() {\n\t\treturn DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_NAVIGATION_ICON_TOOLTIP);\n\t}\n\n\t_togglePicker(): void {\n\t\tif (this.open) {\n\t\t\tthis._close();\n\t\t} else {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_selectOption(e: CustomEvent): void {\n\t\tthis._currentOption = this.optionsObjects.find(option => option.text === e.detail.item.textContent);\n\t\tthis._lastSelectedOption = this._currentOption;\n\n\t\tif (!this._currentOption?.template) {\n\t\t\tthis.currentValue = this._currentOption?.parse(this._currentOption.text);\n\t\t\tthis._submitValue();\n\t\t} else if (!this.currentValue || this.currentValue.operator !== this._currentOption.operator) {\n\t\t\tthis.currentValue = undefined;\n\t\t}\n\n\t\tif (this._currentOption?.operator === this.value?.operator) {\n\t\t\tthis.currentValue = this.value;\n\t\t}\n\t}\n\n\tgetOption(operator?: string) {\n\t\tif (!operator) {\n\t\t\treturn this._currentOption;\n\t\t}\n\n\t\tconst resultOption = this.optionsObjects.find(option => option.operator === operator);\n\n\t\tif (!resultOption) {\n\t\t\tconst OptionClass = DynamicDateRange.getOptionClass(operator);\n\n\t\t\tif (OptionClass) {\n\t\t\t\tconst existingOption = this.optionsObjects.find(option => option.constructor === OptionClass);\n\n\t\t\t\tif (existingOption) {\n\t\t\t\t\texistingOption.operator = operator;\n\t\t\t\t\treturn existingOption;\n\t\t\t\t}\n\n\t\t\t\tconst optionObject = new OptionClass();\n\t\t\t\tthis.optionsObjects.push(optionObject);\n\n\t\t\t\treturn optionObject;\n\t\t\t}\n\t\t}\n\n\t\treturn resultOption;\n\t}\n\n\tonInputChange(e: Event): void {\n\t\tconst value = (e.target as Input)?.value;\n\n\t\tif (!value) {\n\t\t\tthis.value = undefined;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentOption = this.optionsObjects.find(option => option.isValidString(value));\n\n\t\tthis.value = currentOption ? this.getOption(currentOption.operator)?.parse(value) : undefined;\n\n\t\tif (this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\tonButtonBackClick() {\n\t\tthis._currentOption = undefined;\n\t}\n\n\t/**\n\t * Converts a `value` into concrete `startDate` and `endDate` JavaScript `Date` objects.\n\t *\n\t * @public\n\t * @param value The option to convert into an array of date ranges\n\t * @returns An array of two `Date` objects representing the start and end dates.\n\t */\n\ttoDates(value: DynamicDateRangeValue): Array<Date> {\n\t\treturn this.getOption(value.operator)?.toDates(value) as Array<Date>;\n\t}\n\n\tget _hasCurrentOptionTemplate(): boolean {\n\t\treturn !!this._currentOption?.template;\n\t}\n\n\t_submitValue() {\n\t\tconst valueToSubmit = this.currentValue || { operator: this._currentOption?.operator || \"\", values: [] };\n\t\tconst displayString = this._currentOption?.format(valueToSubmit) || \"\";\n\n\t\tif (this._input) {\n\t\t\tthis._input.value = displayString;\n\t\t}\n\n\t\tif (!this._currentOption || !valueToSubmit.operator) {\n\t\t\tthis.value = undefined;\n\t\t} else if (this._currentOption.isValidString(displayString)) {\n\t\t\tthis.value = valueToSubmit;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.value = undefined;\n\t\t}\n\n\t\tthis._currentOption?.resetState?.();\n\n\t\tthis._currentOption = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_close() {\n\t\tthis._currentOption?.resetState?.();\n\n\t\tthis._currentOption = undefined;\n\t\tthis.open = false;\n\t}\n\n\tonPopoverOpen() {\n\t\tif (this.currentValue !== this.value) {\n\t\t\tthis.currentValue = this.value;\n\t\t}\n\t}\n\n\tonPopoverClose() {\n\t\tthis._close();\n\t}\n\n\tget currentValueText() {\n\t\tif (this.currentValue) {\n\t\t\tconst correctOption = this.getOption(this.currentValue.operator);\n\t\t\tif (correctOption) {\n\t\t\t\tconst dates = correctOption.toDates(this.currentValue);\n\t\t\t\tconst displayValue = { ...this.currentValue, values: dates };\n\t\t\t\tconst displayText = correctOption.format(displayValue);\n\t\t\t\treturn `${DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_SELECTED_TEXT)}: ${displayText}`;\n\t\t\t}\n\t\t}\n\n\t\tif (this._currentOption) {\n\t\t\tconst emptyValue = { operator: this._currentOption.operator, values: [] };\n\t\t\tconst displayText = this._currentOption.format(emptyValue);\n\t\t\tif (displayText && displayText.trim()) {\n\t\t\t\treturn `${DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_SELECTED_TEXT)}: ${displayText}`;\n\t\t\t}\n\t\t}\n\n\t\treturn DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_EMPTY_SELECTED_TEXT);\n\t}\n\n\thandleSelectionChange(e: CustomEvent) {\n\t\tconst value = this._currentOption?.handleSelectionChange?.(e, this.currentValue) as DynamicDateRangeValue;\n\n\t\tthis.currentValue = JSON.parse(JSON.stringify(value)); // deep clone\n\t\tif (this.currentValue) {\n\t\t\tthis.currentValue.values = value?.values;\n\t\t}\n\n\t\t// Update _currentOption if the operator changed\n\t\tif (this.currentValue && this.currentValue.operator !== this._currentOption?.operator) {\n\t\t\tthis._currentOption = this.getOption(this.currentValue.operator);\n\t\t}\n\t}\n\n\tonInputKeyDown(e: KeyboardEvent) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault();\n\t\t\tif (this.open) {\n\t\t\t\tif (!isF4(e)) {\n\t\t\t\t\tthis._toggleAndFocusInput();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._toggleAndFocusInput();\n\t\t\t}\n\t\t}\n\t}\n\n\t_toggleAndFocusInput() {\n\t\tthis._togglePicker();\n\t\tif (this.open) {\n\t\t\tthis._input?.focus();\n\t\t}\n\t}\n\n\tonKeyDownPopover(e: KeyboardEvent) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault(); // Prevent scroll on Alt/Option + Arrow Up/Down\n\t\t\tthis._toggleAndFocusInput();\n\t\t}\n\t}\n\n\t/**\n\t * Registers a new dynamic date range option with a unique key.\n\t *\n\t * Example:\n\t * DynamicDateRange.register(\"LASTWEEK\", LastWeek);\n\t */\n\tstatic register(operator: string, option: new () => IDynamicDateRangeOption): void {\n\t\toperator = operator.toUpperCase();\n\n\t\tif (!this.optionsClasses.has(operator)) {\n\t\t\tthis.optionsClasses.set(operator, option);\n\t\t}\n\t}\n\n\tstatic getOptionClass(operator: string): (new () => IDynamicDateRangeOption) | undefined {\n\t\treturn this.optionsClasses.get(operator);\n\t}\n}\n\nDynamicDateRange.define();\n\nexport default DynamicDateRange;\n\nexport type {\n\tDynamicDateRangeValue,\n\tIDynamicDateRangeOption,\n};\n"]}
1
+ {"version":3,"file":"DynamicDateRange.js","sourceRoot":"","sources":["../src/DynamicDateRange.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\nimport { isF4, isShow } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport DynamicDateRangeTemplate from \"./DynamicDateRangeTemplate.js\";\nimport IconMode from \"./types/IconMode.js\";\nimport type Input from \"./Input.js\";\nimport type List from \"./List.js\";\nimport type ListItem from \"./ListItem.js\";\nimport {\n\tDYNAMIC_DATE_RANGE_SELECTED_TEXT,\n\tDYNAMIC_DATE_RANGE_EMPTY_SELECTED_TEXT,\n\tDYNAMIC_DATE_RANGE_NAVIGATION_ICON_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Styles\nimport dynamicDateRangeCss from \"./generated/themes/DynamicDateRange.css.js\";\nimport dynamicDateRangePopoverCss from \"./generated/themes/DynamicDateRangePopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\ntype DynamicDateRangeValue = {\n\t/**\n\t * The key of the option.\n\t * @default \"\"\n\t * @public\n\t */\n\toperator: string;\n\n\t/**\n\t * Values of the dynamic date range.\n\t * @default []\n\t * @public\n\t */\n\tvalues?: Array<Date> | Array<number>;\n}\n\n/**\n * Represents a dynamic date range option used by the `ui5-dynamic-date-range` component.\n *\n * Represents a dynamic date range option used for handling dynamic date ranges.\n * This interface defines the structure and behavior required for implementing\n * dynamic date range options, including formatting, parsing, validation, and\n * conversion of date range values.\n *\n * * Properties:\n * - `icon`: The icon associated with the dynamic date range option, typically used for UI representation.\n * - `operator`: A unique operator identifying the dynamic date range option.\n * - `text`: The display text for the dynamic date range option.\n * - `template` (optional): A JSX template for rendering the dynamic date range option.\n *\n * Methods:\n * - `format(value: DynamicDateRangeValue): string`: Formats the given dynamic date range value into a string representation.\n * - `parse(value: string): DynamicDateRangeValue | undefined`: Parses a string into a dynamic date range value.\n * - `toDates(value: DynamicDateRangeValue): Array<Date>`: Converts a dynamic date range value into an array of `Date` objects.\n * - `handleSelectionChange?(event: CustomEvent): DynamicDateRangeValue | undefined`: (Optional) Handles selection changes in the UI of the dynamic date range option.\n * - `isValidString(value: string): boolean`: Validates whether a given string is a valid representation of the dynamic date range value.\n *\n * @public\n * @since 2.11.0\n */\ninterface IDynamicDateRangeOption {\n\ticon: string;\n\toperator: string;\n\ttext: string;\n\tformat: (value: DynamicDateRangeValue) => string;\n\tparse: (value: string) => DynamicDateRangeValue | undefined;\n\ttoDates: (value: DynamicDateRangeValue) => Array<Date>;\n\thandleSelectionChange?: (event: CustomEvent, value: DynamicDateRangeValue | undefined) => DynamicDateRangeValue | undefined;\n\ttemplate?: JsxTemplate;\n\tisValidString: (value: string) => boolean;\n\tresetState?: () => void;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-dynamic-date-range` component provides a flexible interface to define date ranges using a combination of absolute dates, relative intervals, and preset ranges (e.g., \"Today\", \"Yesterday\", etc.).\n * It allows users to select a date range from a predefined set of options or enter custom dates.\n *\n * ### Usage\n *\n * The component is typically used in scenarios where users need to filter data based on date ranges, such as in reports, dashboards, or data analysis tools.\n * It can be used with the predefined options or extended with custom options to suit specific requirements. You can create your own options by extending the `IDynamicDateRangeOption` interface.\n * Every option should be registered using the `DynamicDateRange.register` method.\n *\n * If needed, you can also create a range of dates based on specific option using the `toDates` method.\n *\n * ### Standard Options\n *\n * The component comes with a set of standard options, including:\n * - \"TODAY\" - Represents the current date. An example value is `{ operator: \"TODAY\"}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/Today.js\";`\n * - \"YESTERDAY\" - Represents the previous date. An example value is `{ operator: \"YESTERDAY\"}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/Yesterday.js\";`\n * - \"TOMORROW\" - Represents the next date. An example value is `{ operator: \"TOMORROW\"}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/Tomorrow.js\";`\n * - \"DATE\" - Represents a single date. An example value is `{ operator: \"DATE\", values: [new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/SingleDate.js\";`\n * - \"DATERANGE\" - Represents a range of dates. An example value is `{ operator: \"DATERANGE\", values: [new Date(), new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/DateRange.js\";`\n * - \"DATETIMERANGE\" - Represents a range of dates with times. An example value is `{ operator: \"DATETIMERANGE\", values: [new Date(), new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/DateTimeRange.js\";`\n * - \"FROMDATETIME\" - Represents a range from date and time. An example value is `{ operator: \"FROMDATETIME\", values: [new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/FromDateTime.js\";`\n * - \"TODATETIME\" - Represents a range to date and time. An example value is `{ operator: \"TODATETIME\", values: [new Date()]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/ToDateTime.js\";`\n * - \"LASTDAYS\" - Represents Last X Days from today. An example value is `{ operator: \"LASTDAYS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTWEEKS\" - Represents Last X Weeks from today. An example value is `{ operator: \"LASTWEEKS\", values: [3]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTMONTHS\" - Represents Last X Months from today. An example value is `{ operator: \"LASTMONTHS\", values: [6]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTQUARTERS\" - Represents Last X Quarters from today. An example value is `{ operator: \"LASTQUARTERS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"LASTYEARS\" - Represents Last X Years from today. An example value is `{ operator: \"LASTYEARS\", values: [1]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js\";`\n * - \"NEXTDAYS\" - Represents Next X Days from today. An example value is `{ operator: \"NEXTDAYS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTWEEKS\" - Represents Next X Weeks from today. An example value is `{ operator: \"NEXTWEEKS\", values: [3]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTMONTHS\" - Represents Next X Months from today. An example value is `{ operator: \"NEXTMONTHS\", values: [6]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTQUARTERS\" - Represents Next X Quarters from today. An example value is `{ operator: \"NEXTQUARTERS\", values: [2]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n * - \"NEXTYEARS\" - Represents Next X Years from today. An example value is `{ operator: \"NEXTYEARS\", values: [1]}`. Import: `import \"@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js\";`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DynamicDateRange.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.11.0\n */\n@customElement({\n\ttag: \"ui5-dynamic-date-range\",\n\tlanguageAware: true,\n\tcldr: true,\n\ttemplate: DynamicDateRangeTemplate,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tdynamicDateRangeCss,\n\t\tResponsivePopoverCommonCss,\n\t\tdynamicDateRangePopoverCss,\n\t],\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout or a value is selected in the popover.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass DynamicDateRange extends UI5Element {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines the value object.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ noAttribute: true })\n\tvalue?: DynamicDateRangeValue;\n\n\t/**\n\t * Defines the options listed as a string, separated by commas and using capital case.\n\t * Example: \"TODAY, YESTERDAY, DATERANGE\"\n\t * @public\n\t * @default \"\"\n\t */\n\t@property({ type: String })\n\toptions = \"\";\n\n\t/**\n\t * Defines the open or closed state of the popover.\n\t * @private\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t@property({ type: Object })\n\t_currentOption?: IDynamicDateRangeOption;\n\n\t_lastSelectedOption?: IDynamicDateRangeOption;\n\n\t@property({ type: Object })\n\tcurrentValue?: DynamicDateRangeValue;\n\n\toptionsObjects: Array<IDynamicDateRangeOption> = [];\n\n\tstatic optionsClasses: Map<string, new (operators?: Array<string>) => IDynamicDateRangeOption> = new Map();\n\n\t@query(\"[ui5-input]\")\n\t_input?: Input;\n\n\t@query(\"[ui5-list]\")\n\t_list?: List;\n\n\tonBeforeRendering() {\n\t\tthis.optionsObjects = this._createNormalizedOptions();\n\t\tthis._focusSelectedItem();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished().then(() => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._focusLastSelectedItem();\n\t\t\t}, 0);\n\t\t});\n\t}\n\n\t/**\n\t * Creates and normalizes options from the options string\n\t */\n\t_createNormalizedOptions(): Array<IDynamicDateRangeOption> {\n\t\tif (!this.optionsObjects.length) { // initialize options on first use\n\t\t\tconst optionKeys = this.splitOptions(this.options).filter(Boolean);\n\t\t\tconst createdOptions: Array<IDynamicDateRangeOption> = [];\n\t\t\tconst classToOperators = new Map<new(operators?: Array<string>) => IDynamicDateRangeOption, Array<string>>();\n\n\t\t\t// Group operators by their class\n\t\t\toptionKeys.forEach(option => {\n\t\t\t\tconst OptionClass = DynamicDateRange.getOptionClass(option);\n\t\t\t\tif (OptionClass) {\n\t\t\t\t\tconst operators = classToOperators.get(OptionClass) || [];\n\t\t\t\t\toperators.push(option);\n\t\t\t\t\tclassToOperators.set(OptionClass, operators);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tclassToOperators.forEach((operators, OptionClass) => {\n\t\t\t\tcreatedOptions.push(new OptionClass(operators));\n\t\t\t});\n\n\t\t\treturn createdOptions;\n\t\t}\n\t\treturn this.optionsObjects;\n\t}\n\n\tsplitOptions(options: string): Array<string> {\n\t\treturn options.split(\",\").map(s => s.trim());\n\t}\n\n\t_focusSelectedItem() {\n\t\tif (!this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst listItem = this._list?.items.find(item => (item as ListItem).selected === true);\n\t\tif (listItem) {\n\t\t\tthis._list?.focusItem(listItem as ListItem);\n\t\t}\n\t}\n\n\t_focusLastSelectedItem() {\n\t\tif (!this._lastSelectedOption) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure the list exists and has items\n\t\tif (!this._list || !this._list.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find the index of the last selected option in the options array\n\t\tconst optionIndex = this.optionsObjects.findIndex(option => option.operator === this._lastSelectedOption?.operator);\n\n\t\tif (optionIndex >= 0 && optionIndex < this._list.items.length) {\n\t\t\tconst listItem = this._list.items[optionIndex];\n\t\t\tthis._list.focusItem(listItem as ListItem);\n\t\t}\n\t}\n\n\t/**\n\t * Defines whether the value help icon is hidden\n\t * @private\n\t */\n\tget _iconMode() {\n\t\treturn isDesktop() ? IconMode.Decorative : IconMode.Interactive;\n\t}\n\n\tget tooltipNavigationIcon() {\n\t\treturn DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_NAVIGATION_ICON_TOOLTIP);\n\t}\n\n\t_togglePicker(): void {\n\t\tif (this.open) {\n\t\t\tthis._close();\n\t\t} else {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_selectOption(e: CustomEvent): void {\n\t\tthis._currentOption = this.optionsObjects.find(option => option.text === e.detail.item.textContent);\n\t\tthis._lastSelectedOption = this._currentOption;\n\n\t\tif (!this._currentOption?.template) {\n\t\t\tthis.currentValue = this._currentOption?.parse(this._currentOption.text);\n\t\t\tthis._submitValue();\n\t\t} else if (!this.currentValue || this.currentValue.operator !== this._currentOption.operator) {\n\t\t\tthis.currentValue = undefined;\n\t\t}\n\n\t\tif (this._currentOption?.operator === this.value?.operator) {\n\t\t\tthis.currentValue = this.value;\n\t\t}\n\t}\n\n\tgetOption(operator?: string) {\n\t\tif (!operator) {\n\t\t\treturn this._currentOption;\n\t\t}\n\n\t\tconst resultOption = this.optionsObjects.find(option => option.operator === operator);\n\n\t\tif (!resultOption) {\n\t\t\tconst OptionClass = DynamicDateRange.getOptionClass(operator);\n\n\t\t\tif (OptionClass) {\n\t\t\t\tconst existingOption = this.optionsObjects.find(option => option.constructor === OptionClass);\n\n\t\t\t\tif (existingOption) {\n\t\t\t\t\texistingOption.operator = operator;\n\t\t\t\t\treturn existingOption;\n\t\t\t\t}\n\n\t\t\t\tconst optionObject = new OptionClass();\n\t\t\t\tthis.optionsObjects.push(optionObject);\n\n\t\t\t\treturn optionObject;\n\t\t\t}\n\t\t}\n\n\t\treturn resultOption;\n\t}\n\n\tonInputChange(e: Event): void {\n\t\tconst value = (e.target as Input)?.value;\n\n\t\tif (!value) {\n\t\t\tthis.value = undefined;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentOption = this.optionsObjects.find(option => option.isValidString(value));\n\n\t\tthis.value = currentOption ? this.getOption(currentOption.operator)?.parse(value) : undefined;\n\n\t\tif (this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\tonButtonBackClick() {\n\t\tthis._currentOption = undefined;\n\t}\n\n\t/**\n\t * Converts a `value` into concrete `startDate` and `endDate` JavaScript `Date` objects.\n\t *\n\t * @public\n\t * @param value The option to convert into an array of date ranges\n\t * @returns An array of two `Date` objects representing the start and end dates.\n\t */\n\ttoDates(value: DynamicDateRangeValue): Array<Date> {\n\t\treturn this.getOption(value.operator)?.toDates(value) as Array<Date>;\n\t}\n\n\tget _hasCurrentOptionTemplate(): boolean {\n\t\treturn !!this._currentOption?.template;\n\t}\n\n\t_submitValue() {\n\t\tconst valueToSubmit = this.currentValue || { operator: this._currentOption?.operator || \"\", values: [] };\n\t\tconst displayString = this._currentOption?.format(valueToSubmit) || \"\";\n\n\t\tif (this._input) {\n\t\t\tthis._input.value = displayString;\n\t\t}\n\n\t\tif (!this._currentOption || !valueToSubmit.operator) {\n\t\t\tthis.value = undefined;\n\t\t} else if (this._currentOption.isValidString(displayString)) {\n\t\t\tthis.value = valueToSubmit;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.value = undefined;\n\t\t}\n\n\t\tthis._currentOption?.resetState?.();\n\n\t\tthis._currentOption = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_close() {\n\t\tthis._currentOption?.resetState?.();\n\n\t\tthis._currentOption = undefined;\n\t\tthis.open = false;\n\t}\n\n\tonPopoverBeforeOpen() {\n\t\tif (this.currentValue !== this.value) {\n\t\t\tthis.currentValue = this.value;\n\t\t}\n\t}\n\n\tonPopoverClose() {\n\t\tthis._close();\n\t}\n\n\tget currentValueText() {\n\t\tif (this.currentValue) {\n\t\t\tconst correctOption = this.getOption(this.currentValue.operator);\n\t\t\tif (correctOption) {\n\t\t\t\tconst dates = correctOption.toDates(this.currentValue);\n\t\t\t\tconst displayValue = { ...this.currentValue, values: dates };\n\t\t\t\tconst displayText = correctOption.format(displayValue);\n\t\t\t\treturn `${DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_SELECTED_TEXT)}: ${displayText}`;\n\t\t\t}\n\t\t}\n\n\t\tif (this._currentOption) {\n\t\t\tconst emptyValue = { operator: this._currentOption.operator, values: [] };\n\t\t\tconst displayText = this._currentOption.format(emptyValue);\n\t\t\tif (displayText && displayText.trim()) {\n\t\t\t\treturn `${DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_SELECTED_TEXT)}: ${displayText}`;\n\t\t\t}\n\t\t}\n\n\t\treturn DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_EMPTY_SELECTED_TEXT);\n\t}\n\n\thandleSelectionChange(e: CustomEvent) {\n\t\tconst value = this._currentOption?.handleSelectionChange?.(e, this.currentValue) as DynamicDateRangeValue;\n\n\t\tthis.currentValue = JSON.parse(JSON.stringify(value)); // deep clone\n\t\tif (this.currentValue) {\n\t\t\tthis.currentValue.values = value?.values;\n\t\t}\n\n\t\t// Update _currentOption if the operator changed\n\t\tif (this.currentValue && this.currentValue.operator !== this._currentOption?.operator) {\n\t\t\tthis._currentOption = this.getOption(this.currentValue.operator);\n\t\t}\n\t}\n\n\tonInputKeyDown(e: KeyboardEvent) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault();\n\t\t\tif (this.open) {\n\t\t\t\tif (!isF4(e)) {\n\t\t\t\t\tthis._toggleAndFocusInput();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._toggleAndFocusInput();\n\t\t\t}\n\t\t}\n\t}\n\n\t_toggleAndFocusInput() {\n\t\tthis._togglePicker();\n\t\tif (this.open) {\n\t\t\tthis._input?.focus();\n\t\t}\n\t}\n\n\tonKeyDownPopover(e: KeyboardEvent) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault(); // Prevent scroll on Alt/Option + Arrow Up/Down\n\t\t\tthis._toggleAndFocusInput();\n\t\t}\n\t}\n\n\t/**\n\t * Registers a new dynamic date range option with a unique key.\n\t *\n\t * Example:\n\t * DynamicDateRange.register(\"LASTWEEK\", LastWeek);\n\t */\n\tstatic register(operator: string, option: new () => IDynamicDateRangeOption): void {\n\t\toperator = operator.toUpperCase();\n\n\t\tif (!this.optionsClasses.has(operator)) {\n\t\t\tthis.optionsClasses.set(operator, option);\n\t\t}\n\t}\n\n\tstatic getOptionClass(operator: string): (new () => IDynamicDateRangeOption) | undefined {\n\t\treturn this.optionsClasses.get(operator);\n\t}\n}\n\nDynamicDateRange.define();\n\nexport default DynamicDateRange;\n\nexport type {\n\tDynamicDateRangeValue,\n\tIDynamicDateRangeOption,\n};\n"]}
@@ -7,7 +7,7 @@ import Title from "./Title.js";
7
7
  import slimArrowLeft from "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
8
8
  import ListItemType from "./types/ListItemType.js";
9
9
  export default function DynamicDateRangePopoverTemplate() {
10
- return (_jsxs(ResponsivePopover, { id: `${this._id}-responsive-popover`, opener: this, open: this.open, allowTargetOverlap: true, placement: "Bottom", horizontalAlign: "Start", hideArrow: true, _hideHeader: true, onClose: this.onPopoverClose, onOpen: this.onPopoverOpen, onKeyDown: this.onKeyDownPopover, children: [this._hasCurrentOptionTemplate &&
10
+ return (_jsxs(ResponsivePopover, { id: `${this._id}-responsive-popover`, opener: this, open: this.open, allowTargetOverlap: true, placement: "Bottom", horizontalAlign: "Start", hideArrow: true, _hideHeader: true, onClose: this.onPopoverClose, onBeforeOpen: this.onPopoverBeforeOpen, onKeyDown: this.onKeyDownPopover, children: [this._hasCurrentOptionTemplate &&
11
11
  _jsxs("div", { slot: "header", class: "ui5-ddr-header", children: [_jsx(Button, { iconOnly: true, icon: slimArrowLeft, design: "Transparent", onClick: this.onButtonBackClick, tooltip: this.tooltipNavigationIcon }), _jsx(Title, { children: this._currentOption?.text })] }), !this._hasCurrentOptionTemplate ? _jsx("div", { class: "ui5-dynamic-date-range-options", children: _jsx(List, { class: "ui5-dynamic-date-range-options-list", separators: "None", selectionMode: "Single", onItemClick: this._selectOption, children: this.optionsObjects.map(option => (_jsx(ListItemStandard, { selected: option.operator === this.value?.operator, iconEnd: true, icon: option.icon, wrappingType: "Normal", type: option.template ? ListItemType.Navigation : ListItemType.Active, children: option.text }))) }) })
12
12
  :
13
13
  _jsxs("div", { class: "ui5-dynamic-date-range-option-container", children: [this._currentOption?.template?.call(this), _jsx("div", { class: "ui5-ddr-current-value", children: this.currentValueText })] }), this._hasCurrentOptionTemplate &&
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicDateRangePopoverTemplate.js","sourceRoot":"","sources":["../src/DynamicDateRangePopoverTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAC7E,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,+BAA+B;IACtD,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EACpC,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,kBAAkB,QAClB,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,OAAO,EACvB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,IAAI,EACjB,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,MAAM,EAAE,IAAI,CAAC,aAAa,EAC1B,SAAS,EAAE,IAAI,CAAC,gBAAgB,aAE/B,IAAI,CAAC,yBAAyB;gBAC9B,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,gBAAgB,aACxC,KAAC,MAAM,IACN,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,aAAa,EACnB,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,OAAO,EAAE,IAAI,CAAC,qBAAqB,GAC3B,EACT,KAAC,KAAK,cAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAS,IACrC,EAEN,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,cAAK,KAAK,EAAC,gCAAgC,YAC7E,KAAC,IAAI,IACJ,KAAK,EAAC,qCAAqC,EAC3C,UAAU,EAAC,MAAM,EACjB,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,aAAa,YAE9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAClC,KAAC,gBAAgB,IAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,EAClD,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,YAAY,EAAC,QAAQ,EACrB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,YAEpE,MAAM,CAAC,IAAI,GACM,CACnB,CAAC,GACI,GACF;gBACL,CAAC;oBACD,eAAK,KAAK,EAAC,yCAAyC,aAClD,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAC1C,cAAK,KAAK,EAAC,uBAAuB,YAAE,IAAI,CAAC,gBAAgB,GAAO,IAC3D,EAEN,IAAI,CAAC,yBAAyB;gBAC9B,eAAK,IAAI,EAAC,QAAQ,aACjB,KAAC,MAAM,IACN,MAAM,EAAC,YAAY,EACnB,OAAO,EAAE,IAAI,CAAC,YAAY,uBACX,EAChB,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,MAAM,sBACN,IACV,IAEY,CACpB,CAAC;AACH,CAAC","sourcesContent":["import type DynamicDateRange from \"./DynamicDateRange.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport Button from \"./Button.js\";\nimport Title from \"./Title.js\";\nimport slimArrowLeft from \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport ListItemType from \"./types/ListItemType.js\";\n\nexport default function DynamicDateRangePopoverTemplate(this: DynamicDateRange) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-responsive-popover`}\n\t\t\topener={this}\n\t\t\topen={this.open}\n\t\t\tallowTargetOverlap\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\thideArrow={true}\n\t\t\t_hideHeader={true}\n\t\t\tonClose={this.onPopoverClose}\n\t\t\tonOpen={this.onPopoverOpen}\n\t\t\tonKeyDown={this.onKeyDownPopover}\n\t\t>\n\t\t\t{this._hasCurrentOptionTemplate &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-ddr-header\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\ticon={slimArrowLeft}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\tonClick={this.onButtonBackClick}\n\t\t\t\t\t\ttooltip={this.tooltipNavigationIcon}>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Title>{this._currentOption?.text}</Title>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{!this._hasCurrentOptionTemplate ? <div class=\"ui5-dynamic-date-range-options\">\n\t\t\t\t<List\n\t\t\t\t\tclass=\"ui5-dynamic-date-range-options-list\"\n\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\tselectionMode=\"Single\"\n\t\t\t\t\tonItemClick={this._selectOption}\n\t\t\t\t>\n\t\t\t\t\t{this.optionsObjects.map(option => (\n\t\t\t\t\t\t<ListItemStandard\n\t\t\t\t\t\t\tselected={option.operator === this.value?.operator}\n\t\t\t\t\t\t\ticonEnd={true}\n\t\t\t\t\t\t\ticon={option.icon}\n\t\t\t\t\t\t\twrappingType=\"Normal\"\n\t\t\t\t\t\t\ttype={option.template ? ListItemType.Navigation : ListItemType.Active}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.text}\n\t\t\t\t\t\t</ListItemStandard>\n\t\t\t\t\t))}\n\t\t\t\t</List>\n\t\t\t</div>\n\t\t\t\t:\n\t\t\t\t<div class=\"ui5-dynamic-date-range-option-container\">\n\t\t\t\t\t{this._currentOption?.template?.call(this)}\n\t\t\t\t\t<div class=\"ui5-ddr-current-value\">{this.currentValueText}</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{this._hasCurrentOptionTemplate &&\n\t\t\t\t<div slot=\"footer\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\t\tonClick={this._submitValue}\n\t\t\t\t\t>Submit</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t>Close</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
1
+ {"version":3,"file":"DynamicDateRangePopoverTemplate.js","sourceRoot":"","sources":["../src/DynamicDateRangePopoverTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAC7E,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,+BAA+B;IACtD,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EACpC,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,kBAAkB,QAClB,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,OAAO,EACvB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,IAAI,EACjB,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,YAAY,EAAE,IAAI,CAAC,mBAAmB,EACtC,SAAS,EAAE,IAAI,CAAC,gBAAgB,aAE/B,IAAI,CAAC,yBAAyB;gBAC9B,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,gBAAgB,aACxC,KAAC,MAAM,IACN,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,aAAa,EACnB,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,OAAO,EAAE,IAAI,CAAC,qBAAqB,GAC3B,EACT,KAAC,KAAK,cAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAS,IACrC,EAEN,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,cAAK,KAAK,EAAC,gCAAgC,YAC7E,KAAC,IAAI,IACJ,KAAK,EAAC,qCAAqC,EAC3C,UAAU,EAAC,MAAM,EACjB,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,aAAa,YAE9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAClC,KAAC,gBAAgB,IAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,EAClD,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,YAAY,EAAC,QAAQ,EACrB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,YAEpE,MAAM,CAAC,IAAI,GACM,CACnB,CAAC,GACI,GACF;gBACL,CAAC;oBACD,eAAK,KAAK,EAAC,yCAAyC,aAClD,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAC1C,cAAK,KAAK,EAAC,uBAAuB,YAAE,IAAI,CAAC,gBAAgB,GAAO,IAC3D,EAEN,IAAI,CAAC,yBAAyB;gBAC9B,eAAK,IAAI,EAAC,QAAQ,aACjB,KAAC,MAAM,IACN,MAAM,EAAC,YAAY,EACnB,OAAO,EAAE,IAAI,CAAC,YAAY,uBACX,EAChB,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,MAAM,sBACN,IACV,IAEY,CACpB,CAAC;AACH,CAAC","sourcesContent":["import type DynamicDateRange from \"./DynamicDateRange.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport Button from \"./Button.js\";\nimport Title from \"./Title.js\";\nimport slimArrowLeft from \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport ListItemType from \"./types/ListItemType.js\";\n\nexport default function DynamicDateRangePopoverTemplate(this: DynamicDateRange) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-responsive-popover`}\n\t\t\topener={this}\n\t\t\topen={this.open}\n\t\t\tallowTargetOverlap\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\thideArrow={true}\n\t\t\t_hideHeader={true}\n\t\t\tonClose={this.onPopoverClose}\n\t\t\tonBeforeOpen={this.onPopoverBeforeOpen}\n\t\t\tonKeyDown={this.onKeyDownPopover}\n\t\t>\n\t\t\t{this._hasCurrentOptionTemplate &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-ddr-header\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\ticon={slimArrowLeft}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\tonClick={this.onButtonBackClick}\n\t\t\t\t\t\ttooltip={this.tooltipNavigationIcon}>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Title>{this._currentOption?.text}</Title>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{!this._hasCurrentOptionTemplate ? <div class=\"ui5-dynamic-date-range-options\">\n\t\t\t\t<List\n\t\t\t\t\tclass=\"ui5-dynamic-date-range-options-list\"\n\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\tselectionMode=\"Single\"\n\t\t\t\t\tonItemClick={this._selectOption}\n\t\t\t\t>\n\t\t\t\t\t{this.optionsObjects.map(option => (\n\t\t\t\t\t\t<ListItemStandard\n\t\t\t\t\t\t\tselected={option.operator === this.value?.operator}\n\t\t\t\t\t\t\ticonEnd={true}\n\t\t\t\t\t\t\ticon={option.icon}\n\t\t\t\t\t\t\twrappingType=\"Normal\"\n\t\t\t\t\t\t\ttype={option.template ? ListItemType.Navigation : ListItemType.Active}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.text}\n\t\t\t\t\t\t</ListItemStandard>\n\t\t\t\t\t))}\n\t\t\t\t</List>\n\t\t\t</div>\n\t\t\t\t:\n\t\t\t\t<div class=\"ui5-dynamic-date-range-option-container\">\n\t\t\t\t\t{this._currentOption?.template?.call(this)}\n\t\t\t\t\t<div class=\"ui5-ddr-current-value\">{this.currentValueText}</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{this._hasCurrentOptionTemplate &&\n\t\t\t\t<div slot=\"footer\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\t\tonClick={this._submitValue}\n\t\t\t\t\t>Submit</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t>Close</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
@@ -175,7 +175,6 @@ declare class FileUploader extends UI5Element implements IFormInputElement {
175
175
  _messagePopover: Popover;
176
176
  _selectedFilesNames: Array<string>;
177
177
  _tokenizerOpen: boolean;
178
- static emptyInput: HTMLInputElement;
179
178
  static i18nBundle: I18nBundle;
180
179
  get formValidityMessage(): string;
181
180
  get formValidity(): ValidityStateFlags;
@@ -200,7 +199,6 @@ declare class FileUploader extends UI5Element implements IFormInputElement {
200
199
  _onTokenizerClick(e: MouseEvent): void;
201
200
  _onTokenizerMouseDown(e: MouseEvent): void;
202
201
  _onClearIconClick(e: CustomEvent): void;
203
- _onFormSubmit(e: SubmitEvent): void;
204
202
  _openFileBrowser(): void;
205
203
  _clearFileSelection(): void;
206
204
  /**
@@ -224,11 +222,6 @@ declare class FileUploader extends UI5Element implements IFormInputElement {
224
222
  toggleValueStatePopover(open: boolean): void;
225
223
  openValueStatePopover(): void;
226
224
  closeValueStatePopover(): void;
227
- /**
228
- * in case when the component is not placed in the DOM, return empty FileList, like native input would do
229
- * @private
230
- */
231
- static get _emptyFilesList(): FileList | null;
232
225
  get accInfo(): InputAccInfo;
233
226
  get inputTitle(): string;
234
227
  get valueHelpTitle(): string;
@@ -243,16 +243,13 @@ let FileUploader = FileUploader_1 = class FileUploader extends UI5Element {
243
243
  e.stopPropagation();
244
244
  this._clearFileSelection();
245
245
  }
246
- _onFormSubmit(e) {
247
- e.preventDefault();
248
- }
249
246
  _openFileBrowser() {
250
247
  this._input.click();
251
248
  }
252
249
  _clearFileSelection() {
253
250
  this._selectedFilesNames = [];
254
251
  this.value = "";
255
- this._form?.reset();
252
+ this._input.files = new DataTransfer().files;
256
253
  this.fireDecoratorEvent("change", {
257
254
  files: this.files,
258
255
  });
@@ -266,7 +263,7 @@ let FileUploader = FileUploader_1 = class FileUploader extends UI5Element {
266
263
  if (this._input) {
267
264
  return this._input.files;
268
265
  }
269
- return FileUploader_1._emptyFilesList;
266
+ return null;
270
267
  }
271
268
  onAfterRendering() {
272
269
  if (!this.value) {
@@ -353,17 +350,6 @@ let FileUploader = FileUploader_1 = class FileUploader extends UI5Element {
353
350
  this._messagePopover.open = false;
354
351
  }
355
352
  }
356
- /**
357
- * in case when the component is not placed in the DOM, return empty FileList, like native input would do
358
- * @private
359
- */
360
- static get _emptyFilesList() {
361
- if (!this.emptyInput) {
362
- this.emptyInput = document.createElement("input");
363
- this.emptyInput.type = "file";
364
- }
365
- return this.emptyInput.files;
366
- }
367
353
  get accInfo() {
368
354
  return {
369
355
  "ariaRoledescription": FileUploader_1.i18nBundle.getText(FILEUPLOADER_ROLE_DESCRIPTION),
@@ -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-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport {\n\tgetEffectiveAriaLabelText,\n\tgetAssociatedLabelForTexts,\n\tgetAllAccessibleNameRefTexts,\n\tgetEffectiveAriaDescriptionText,\n\tgetAllAccessibleDescriptionRefTexts,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisUpAlt,\n\tisDownAlt,\n\tisEnter,\n\tisDelete,\n\tisF4,\n\tisSpace,\n\tisRight,\n\tisLeft,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tFILEUPLOADER_INPUT_TOOLTIP,\n\tFILEUPLOADER_VALUE_HELP_TOOLTIP,\n\tFILEUPLOADER_CLEAR_ICON_TOOLTIP,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tFILEUPLOADER_DEFAULT_PLACEHOLDER,\n\tFILEUPLOADER_DEFAULT_MULTIPLE_PLACEHOLDER,\n\tFILEUPLOADER_ROLE_DESCRIPTION,\n\tFILEUPLOAER_VALUE_MISSING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport type { InputAccInfo } from \"./Input.js\";\nimport type Popover from \"./Popover.js\";\nimport type Tokenizer from \"./Tokenizer.js\";\n\n// Template\nimport FileUploaderTemplate from \"./FileUploaderTemplate.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\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype FileData = {\n\tfileName: string,\n\tfileSize: number,\n}\n\ntype FileUploaderFileSizeExceedEventDetail = {\n\tfilesData: Array<FileData>,\n}\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\tformAssociated: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tFileUploaderCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t],\n\ttemplate: FileUploaderTemplate,\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(\"change\", {\n\tbubbles: true,\n})\n/**\n * Event is fired when the size of a file is above the `maxFileSize` property value.\n * @param {Array<FileData>} filesData An array of `FileData` objects containing the`fileName` and `fileSize` in MB of each file that exceeds the upload limit.\n * @since 2.2.0\n * @public\n */\n@event(\"file-size-exceed\", {\n\tbubbles: true,\n})\nclass FileUploader extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"change\": FileUploaderChangeEventDetail,\n\t\t\"file-size-exceed\": FileUploaderFileSizeExceedEventDetail,\n\t}\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 undefined\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 *\n\t * **Note:** Use this property in combination with the default slot to achieve a button-only file uploader design.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideInput = false;\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 = false;\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 = false;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\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 undefined\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 = \"\";\n\n\t/**\n\t * Defines the maximum file size in megabytes which prevents the upload if at least one file exceeds it.\n\t * @default undefined\n\t * @since 2.2.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmaxFileSize?: number;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that describe the input.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * This slot allows you to add custom content to the component, such as a button or any other interactive element to trigger the file selection dialog.\n\t *\n\t * **Note:** For best accessibility experience, set a `tabindex` of \"-1\" on your interactive element, or it will be set automatically.\n\t * This slot is intended for use cases where you want a button-only file uploader.\n\t * It is recommended to set `hideInput` property to \"true\" when using this slot.\n\t * Not setting `hideInput` may negatively impact the screen reader users.\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`, `Critical` or `Negative` 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@query(\".ui5-file-uploader-form\")\n\t_form!: HTMLFormElement;\n\n\t@query(\"input[type=file]\")\n\t_input!: HTMLInputElement;\n\n\t@query(\"[ui5-tokenizer]\")\n\t_tokenizer!: Tokenizer;\n\n\t@query(\".ui5-valuestatemessage-popover\")\n\t_messagePopover!: Popover;\n\n\t@property({ type: Array, noAttribute: true })\n\t_selectedFilesNames: Array<string> = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_tokenizerOpen = false;\n\n\tstatic emptyInput: HTMLInputElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.valueMissing) {\n\t\t\treturn FileUploader.i18nBundle.getText(FILEUPLOAER_VALUE_MISSING);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tvalueMissing: this.required && (!this.files || this.files.length === 0),\n\t\t};\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._input;\n\t}\n\n\tget formFormattedValue() {\n\t\tif (this.files && this.name) {\n\t\t\tconst formData = new FormData();\n\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\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t_onclick() {\n\t\tif (this.getFocusDomRef()?.matches(\":focus-within\")) {\n\t\t\tthis._openFileBrowser();\n\t\t}\n\t}\n\n\t_onNativeInputClick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t\tthis._input.focus();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst firstToken = this._tokenizer?.tokens.find(token => !token.hasAttribute(\"overflows\"));\n\t\tconst isToken = (<HTMLElement>e.target).hasAttribute(\"ui5-token\");\n\t\tconst isArrowNavigation = this.effectiveDir === \"ltr\" ? isRight(e) : isLeft(e);\n\n\t\tif (this.hideInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._openFileBrowser();\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isArrowNavigation && !isToken) {\n\t\t\te.preventDefault();\n\t\t\tfirstToken?.focus();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.hideInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpace(e) || isF4(e) || isUpAlt(e) || isDownAlt(e)) {\n\t\t\tthis._openFileBrowser();\n\t\t} else if (isDelete(e)) {\n\t\t\tthis._clearFileSelection();\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\treturn;\n\t\t}\n\n\t\tconst validatedFiles = this._validateFiles(files);\n\n\t\tif (!this.value && !validatedFiles.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._input.files = validatedFiles;\n\t\tthis._selectedFilesNames = this._fileNamesList(files);\n\t\tthis.value = this.computedValue;\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\tfiles: validatedFiles,\n\t\t});\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t\tif (this._tokenizer) {\n\t\t\tthis._tokenizer.expanded = true;\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.matches(\":focus-within\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focused = false;\n\t\tif (this._tokenizer) {\n\t\t\tthis._tokenizer.expanded = this._tokenizer.open;\n\t\t}\n\t}\n\n\tget _tokenizerExpanded(): boolean {\n\t\tif (!this._tokenizer) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this._tokenizer.expanded;\n\t}\n\n\t_onTokenizerKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e) || isDelete(e)) {\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_onTokenizerKeyDown(e: KeyboardEvent) {\n\t\tconst firstToken = this._tokenizer?.tokens.find(token => !token.hasAttribute(\"overflows\"));\n\t\tconst isArrowNavigation = this.effectiveDir === \"ltr\" ? isLeft(e) : isRight(e);\n\n\t\tif (isEnter(e)) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (e.target === firstToken && isArrowNavigation) {\n\t\t\tthis._input.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onTokenizerClick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\n\t_onTokenizerMouseDown(e: MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\n\t_onClearIconClick(e: CustomEvent) {\n\t\te.stopPropagation();\n\t\tthis._clearFileSelection();\n\t}\n\n\t_onFormSubmit(e: SubmitEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_openFileBrowser() {\n\t\tthis._input.click();\n\t}\n\n\t_clearFileSelection() {\n\t\tthis._selectedFilesNames = [];\n\t\tthis.value = \"\";\n\t\tthis._form?.reset();\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\tfiles: this.files,\n\t\t});\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\tonAfterRendering() {\n\t\tif (!this.value) {\n\t\t\tthis._input.value = \"\";\n\t\t}\n\n\t\tthis._tokenizerOpen = this._tokenizer ? this._tokenizer.open : false;\n\n\t\tif (this.hideInput && this.content.length > 0) {\n\t\t\tthis.content.forEach(element => {\n\t\t\t\telement.setAttribute(\"tabindex\", \"-1\");\n\t\t\t});\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t}\n\n\tget computedValue(): string {\n\t\treturn this._selectedFilesNames.join(\" \");\n\t}\n\n\tget _formWidth() : number {\n\t\treturn this._form ? this._form.offsetWidth : 0;\n\t}\n\n\t_onChange(e: Event) {\n\t\tlet changedFiles = (e.target as HTMLInputElement).files;\n\n\t\tif (changedFiles) {\n\t\t\tchangedFiles = this._validateFiles(changedFiles);\n\t\t}\n\n\t\tif (!this.value && !changedFiles?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedFilesNames = this._fileNamesList(changedFiles as FileList);\n\t\tthis.value = this.computedValue;\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\tfiles: changedFiles,\n\t\t});\n\t}\n\n\t_fileNamesList(files: FileList) : Array<string> {\n\t\treturn Array.from(files)\n\t\t\t.map(file => file.name)\n\t\t\t.sort((a, b) => a.length - b.length); // workaround for incident #11824\n\t}\n\n\t/**\n\t * Checks whether all files are below `maxFileSize` (if set),\n\t * and fires a `file-size-exceed` event if any file exceeds it.\n\t * @private\n\t */\n\t_validateFiles(changedFiles: FileList): FileList {\n\t\tconst exceededFilesData = this.maxFileSize ? this._getExceededFiles(changedFiles) : [];\n\n\t\tif (exceededFilesData.length) {\n\t\t\tthis.fireDecoratorEvent(\"file-size-exceed\", {\n\t\t\t\tfilesData: exceededFilesData,\n\t\t\t});\n\t\t\tchangedFiles = new DataTransfer().files;\n\t\t}\n\n\t\treturn changedFiles;\n\t}\n\n\t_getExceededFiles(files: FileList): Array<FileData> {\n\t\tconst filesArray = Array.from(files);\n\t\tconst exceededFiles: Array<FileData> = [];\n\n\t\tfor (let i = 0; i < filesArray.length; i++) {\n\t\t\tconst fileSize = convertBytesToMegabytes(filesArray[i].size);\n\t\t\tif (fileSize > this.maxFileSize!) {\n\t\t\t\texceededFiles.push({\n\t\t\t\t\tfileName: filesArray[i].name,\n\t\t\t\t\tfileSize,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn exceededFiles;\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\topenValueStatePopover() {\n\t\tif (this._messagePopover) {\n\t\t\tthis._messagePopover.opener = this;\n\t\t\tthis._messagePopover.open = true;\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tif (this._messagePopover) {\n\t\t\tthis._messagePopover.open = false;\n\t\t}\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 accInfo(): InputAccInfo {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": FileUploader.i18nBundle.getText(FILEUPLOADER_ROLE_DESCRIPTION),\n\t\t\t\"ariaRequired\": this.required || undefined,\n\t\t\t\"ariaInvalid\": this.valueState === ValueState.Negative || undefined,\n\t\t\t\"ariaHasPopup\": \"dialog\",\n\t\t\t\"ariaLabel\": getAllAccessibleNameRefTexts(this) || getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this) || undefined,\n\t\t\t\"ariaDescription\": getAllAccessibleDescriptionRefTexts(this) || getEffectiveAriaDescriptionText(this) || undefined,\n\t\t};\n\t}\n\n\tget inputTitle(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_INPUT_TOOLTIP);\n\t}\n\n\tget valueHelpTitle(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_VALUE_HELP_TOOLTIP);\n\t}\n\n\tget clearIconTitle(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_CLEAR_ICON_TOOLTIP);\n\t}\n\n\tget resolvedPlaceholder(): string {\n\t\tconst singlePlaceholder = FileUploader.i18nBundle.getText(FILEUPLOADER_DEFAULT_PLACEHOLDER);\n\t\tconst multiplePlaceholder = FileUploader.i18nBundle.getText(FILEUPLOADER_DEFAULT_MULTIPLE_PLACEHOLDER);\n\t\treturn this.placeholder ?? (this.multiple ? multiplePlaceholder : singlePlaceholder);\n\t}\n\n\tget valueStateTextMappings(): Record<string, string> {\n\t\treturn {\n\t\t\t\"Positive\": FileUploader.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": FileUploader.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Negative\": FileUploader.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Critical\": 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 shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueState;\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && this.hasValueState && !this.hideInput && !this._tokenizer?.open;\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\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"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\nFileUploader.define();\n\nexport default FileUploader;\nexport type {\n\tFileData,\n\tFileUploaderChangeEventDetail,\n\tFileUploaderFileSizeExceedEventDetail,\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-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport {\n\tgetEffectiveAriaLabelText,\n\tgetAssociatedLabelForTexts,\n\tgetAllAccessibleNameRefTexts,\n\tgetEffectiveAriaDescriptionText,\n\tgetAllAccessibleDescriptionRefTexts,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisUpAlt,\n\tisDownAlt,\n\tisEnter,\n\tisDelete,\n\tisF4,\n\tisSpace,\n\tisRight,\n\tisLeft,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tFILEUPLOADER_INPUT_TOOLTIP,\n\tFILEUPLOADER_VALUE_HELP_TOOLTIP,\n\tFILEUPLOADER_CLEAR_ICON_TOOLTIP,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tFILEUPLOADER_DEFAULT_PLACEHOLDER,\n\tFILEUPLOADER_DEFAULT_MULTIPLE_PLACEHOLDER,\n\tFILEUPLOADER_ROLE_DESCRIPTION,\n\tFILEUPLOAER_VALUE_MISSING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport type { InputAccInfo } from \"./Input.js\";\nimport type Popover from \"./Popover.js\";\nimport type Tokenizer from \"./Tokenizer.js\";\n\n// Template\nimport FileUploaderTemplate from \"./FileUploaderTemplate.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\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype FileData = {\n\tfileName: string,\n\tfileSize: number,\n}\n\ntype FileUploaderFileSizeExceedEventDetail = {\n\tfilesData: Array<FileData>,\n}\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\tformAssociated: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tFileUploaderCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t],\n\ttemplate: FileUploaderTemplate,\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(\"change\", {\n\tbubbles: true,\n})\n/**\n * Event is fired when the size of a file is above the `maxFileSize` property value.\n * @param {Array<FileData>} filesData An array of `FileData` objects containing the`fileName` and `fileSize` in MB of each file that exceeds the upload limit.\n * @since 2.2.0\n * @public\n */\n@event(\"file-size-exceed\", {\n\tbubbles: true,\n})\nclass FileUploader extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"change\": FileUploaderChangeEventDetail,\n\t\t\"file-size-exceed\": FileUploaderFileSizeExceedEventDetail,\n\t}\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 undefined\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 *\n\t * **Note:** Use this property in combination with the default slot to achieve a button-only file uploader design.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideInput = false;\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 = false;\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 = false;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\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 undefined\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 = \"\";\n\n\t/**\n\t * Defines the maximum file size in megabytes which prevents the upload if at least one file exceeds it.\n\t * @default undefined\n\t * @since 2.2.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmaxFileSize?: number;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that describe the input.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * This slot allows you to add custom content to the component, such as a button or any other interactive element to trigger the file selection dialog.\n\t *\n\t * **Note:** For best accessibility experience, set a `tabindex` of \"-1\" on your interactive element, or it will be set automatically.\n\t * This slot is intended for use cases where you want a button-only file uploader.\n\t * It is recommended to set `hideInput` property to \"true\" when using this slot.\n\t * Not setting `hideInput` may negatively impact the screen reader users.\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`, `Critical` or `Negative` 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@query(\".ui5-file-uploader-form\")\n\t_form!: HTMLFormElement;\n\n\t@query(\"input[type=file]\")\n\t_input!: HTMLInputElement;\n\n\t@query(\"[ui5-tokenizer]\")\n\t_tokenizer!: Tokenizer;\n\n\t@query(\".ui5-valuestatemessage-popover\")\n\t_messagePopover!: Popover;\n\n\t@property({ type: Array, noAttribute: true })\n\t_selectedFilesNames: Array<string> = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_tokenizerOpen = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.valueMissing) {\n\t\t\treturn FileUploader.i18nBundle.getText(FILEUPLOAER_VALUE_MISSING);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tvalueMissing: this.required && (!this.files || this.files.length === 0),\n\t\t};\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._input;\n\t}\n\n\tget formFormattedValue() {\n\t\tif (this.files && this.name) {\n\t\t\tconst formData = new FormData();\n\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\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t_onclick() {\n\t\tif (this.getFocusDomRef()?.matches(\":focus-within\")) {\n\t\t\tthis._openFileBrowser();\n\t\t}\n\t}\n\n\t_onNativeInputClick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t\tthis._input.focus();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst firstToken = this._tokenizer?.tokens.find(token => !token.hasAttribute(\"overflows\"));\n\t\tconst isToken = (<HTMLElement>e.target).hasAttribute(\"ui5-token\");\n\t\tconst isArrowNavigation = this.effectiveDir === \"ltr\" ? isRight(e) : isLeft(e);\n\n\t\tif (this.hideInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._openFileBrowser();\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isArrowNavigation && !isToken) {\n\t\t\te.preventDefault();\n\t\t\tfirstToken?.focus();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.hideInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpace(e) || isF4(e) || isUpAlt(e) || isDownAlt(e)) {\n\t\t\tthis._openFileBrowser();\n\t\t} else if (isDelete(e)) {\n\t\t\tthis._clearFileSelection();\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\treturn;\n\t\t}\n\n\t\tconst validatedFiles = this._validateFiles(files);\n\n\t\tif (!this.value && !validatedFiles.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._input.files = validatedFiles;\n\t\tthis._selectedFilesNames = this._fileNamesList(files);\n\t\tthis.value = this.computedValue;\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\tfiles: validatedFiles,\n\t\t});\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t\tif (this._tokenizer) {\n\t\t\tthis._tokenizer.expanded = true;\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.matches(\":focus-within\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focused = false;\n\t\tif (this._tokenizer) {\n\t\t\tthis._tokenizer.expanded = this._tokenizer.open;\n\t\t}\n\t}\n\n\tget _tokenizerExpanded(): boolean {\n\t\tif (!this._tokenizer) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this._tokenizer.expanded;\n\t}\n\n\t_onTokenizerKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e) || isDelete(e)) {\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_onTokenizerKeyDown(e: KeyboardEvent) {\n\t\tconst firstToken = this._tokenizer?.tokens.find(token => !token.hasAttribute(\"overflows\"));\n\t\tconst isArrowNavigation = this.effectiveDir === \"ltr\" ? isLeft(e) : isRight(e);\n\n\t\tif (isEnter(e)) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (e.target === firstToken && isArrowNavigation) {\n\t\t\tthis._input.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onTokenizerClick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\n\t_onTokenizerMouseDown(e: MouseEvent) {\n\t\te.stopPropagation();\n\t}\n\n\t_onClearIconClick(e: CustomEvent) {\n\t\te.stopPropagation();\n\t\tthis._clearFileSelection();\n\t}\n\n\t_openFileBrowser() {\n\t\tthis._input.click();\n\t}\n\n\t_clearFileSelection() {\n\t\tthis._selectedFilesNames = [];\n\t\tthis.value = \"\";\n\t\tthis._input.files = new DataTransfer().files;\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\tfiles: this.files,\n\t\t});\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 null;\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.value) {\n\t\t\tthis._input.value = \"\";\n\t\t}\n\n\t\tthis._tokenizerOpen = this._tokenizer ? this._tokenizer.open : false;\n\n\t\tif (this.hideInput && this.content.length > 0) {\n\t\t\tthis.content.forEach(element => {\n\t\t\t\telement.setAttribute(\"tabindex\", \"-1\");\n\t\t\t});\n\t\t}\n\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\t}\n\n\tget computedValue(): string {\n\t\treturn this._selectedFilesNames.join(\" \");\n\t}\n\n\tget _formWidth() : number {\n\t\treturn this._form ? this._form.offsetWidth : 0;\n\t}\n\n\t_onChange(e: Event) {\n\t\tlet changedFiles = (e.target as HTMLInputElement).files;\n\n\t\tif (changedFiles) {\n\t\t\tchangedFiles = this._validateFiles(changedFiles);\n\t\t}\n\n\t\tif (!this.value && !changedFiles?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectedFilesNames = this._fileNamesList(changedFiles as FileList);\n\t\tthis.value = this.computedValue;\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\tfiles: changedFiles,\n\t\t});\n\t}\n\n\t_fileNamesList(files: FileList) : Array<string> {\n\t\treturn Array.from(files)\n\t\t\t.map(file => file.name)\n\t\t\t.sort((a, b) => a.length - b.length); // workaround for incident #11824\n\t}\n\n\t/**\n\t * Checks whether all files are below `maxFileSize` (if set),\n\t * and fires a `file-size-exceed` event if any file exceeds it.\n\t * @private\n\t */\n\t_validateFiles(changedFiles: FileList): FileList {\n\t\tconst exceededFilesData = this.maxFileSize ? this._getExceededFiles(changedFiles) : [];\n\n\t\tif (exceededFilesData.length) {\n\t\t\tthis.fireDecoratorEvent(\"file-size-exceed\", {\n\t\t\t\tfilesData: exceededFilesData,\n\t\t\t});\n\t\t\tchangedFiles = new DataTransfer().files;\n\t\t}\n\n\t\treturn changedFiles;\n\t}\n\n\t_getExceededFiles(files: FileList): Array<FileData> {\n\t\tconst filesArray = Array.from(files);\n\t\tconst exceededFiles: Array<FileData> = [];\n\n\t\tfor (let i = 0; i < filesArray.length; i++) {\n\t\t\tconst fileSize = convertBytesToMegabytes(filesArray[i].size);\n\t\t\tif (fileSize > this.maxFileSize!) {\n\t\t\t\texceededFiles.push({\n\t\t\t\t\tfileName: filesArray[i].name,\n\t\t\t\t\tfileSize,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn exceededFiles;\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\topenValueStatePopover() {\n\t\tif (this._messagePopover) {\n\t\t\tthis._messagePopover.opener = this;\n\t\t\tthis._messagePopover.open = true;\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tif (this._messagePopover) {\n\t\t\tthis._messagePopover.open = false;\n\t\t}\n\t}\n\n\tget accInfo(): InputAccInfo {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": FileUploader.i18nBundle.getText(FILEUPLOADER_ROLE_DESCRIPTION),\n\t\t\t\"ariaRequired\": this.required || undefined,\n\t\t\t\"ariaInvalid\": this.valueState === ValueState.Negative || undefined,\n\t\t\t\"ariaHasPopup\": \"dialog\",\n\t\t\t\"ariaLabel\": getAllAccessibleNameRefTexts(this) || getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this) || undefined,\n\t\t\t\"ariaDescription\": getAllAccessibleDescriptionRefTexts(this) || getEffectiveAriaDescriptionText(this) || undefined,\n\t\t};\n\t}\n\n\tget inputTitle(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_INPUT_TOOLTIP);\n\t}\n\n\tget valueHelpTitle(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_VALUE_HELP_TOOLTIP);\n\t}\n\n\tget clearIconTitle(): string {\n\t\treturn FileUploader.i18nBundle.getText(FILEUPLOADER_CLEAR_ICON_TOOLTIP);\n\t}\n\n\tget resolvedPlaceholder(): string {\n\t\tconst singlePlaceholder = FileUploader.i18nBundle.getText(FILEUPLOADER_DEFAULT_PLACEHOLDER);\n\t\tconst multiplePlaceholder = FileUploader.i18nBundle.getText(FILEUPLOADER_DEFAULT_MULTIPLE_PLACEHOLDER);\n\t\treturn this.placeholder ?? (this.multiple ? multiplePlaceholder : singlePlaceholder);\n\t}\n\n\tget valueStateTextMappings(): Record<string, string> {\n\t\treturn {\n\t\t\t\"Positive\": FileUploader.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": FileUploader.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Negative\": FileUploader.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Critical\": 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 shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueState;\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && this.hasValueState && !this.hideInput && !this._tokenizer?.open;\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\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"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\nFileUploader.define();\n\nexport default FileUploader;\nexport type {\n\tFileData,\n\tFileUploaderChangeEventDetail,\n\tFileUploaderFileSizeExceedEventDetail,\n};\n"]}
@@ -6,6 +6,6 @@ import Tokenizer from "./Tokenizer.js";
6
6
  import Token from "./Token.js";
7
7
  import FileUploaderPopoverTemplate from "./FileUploaderPopoverTemplate.js";
8
8
  export default function FileUploaderTemplate() {
9
- return (_jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-file-uploader-root", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._onclick, onMouseDown: this._onmousedown, onDragOver: this._ondrag, onDrop: this._ondrop, children: [_jsx("form", { class: "ui5-file-uploader-form", onSubmit: this._onFormSubmit, children: _jsx("input", { type: "file", class: "ui5-file-uploader-native-input", name: this.name, multiple: this.multiple, accept: this.accept, disabled: this.disabled, title: this.inputTitle, "aria-roledescription": this.accInfo.ariaRoledescription, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-label": this.accInfo.ariaLabel, "aria-description": this.accInfo.ariaDescription, "aria-required": this.accInfo.ariaRequired, "aria-invalid": this.accInfo.ariaInvalid, onClick: this._onNativeInputClick, onChange: this._onChange, "data-sap-focus-ref": true }) }), this.hideInput ? (_jsx("slot", {})) : (_jsxs("div", { class: "ui5-file-uploader-display-container", children: [_jsxs("div", { class: "ui5-file-uploader-display-elements", children: [this._selectedFilesNames.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(Tokenizer, { class: "ui5-file-uploader-tokenizer", expanded: this._tokenizerExpanded, open: this._tokenizerOpen, popoverMinWidth: this._formWidth, onClick: this._onTokenizerClick, onMouseDown: this._onTokenizerMouseDown, onKeyDown: this._onTokenizerKeyDown, onKeyUp: this._onTokenizerKeyUp, preventInitialFocus: true, readonly: true, children: this._selectedFilesNames.map(fileName => (_jsx(Token, { text: fileName }))) }), _jsx(Icon, { name: decline, class: "ui5-file-uploader-clear-icon inputIcon", onClick: this._onClearIconClick, title: this.clearIconTitle })] })) : (_jsx("input", { class: "ui5-file-uploader-display-input", tabindex: -1, "aria-hidden": "true", title: this.inputTitle, placeholder: this.resolvedPlaceholder, "inner-input": true, readonly: true })), _jsx(Icon, { name: valueHelp, class: "ui5-file-uploader-value-help-icon inputIcon", title: this.valueHelpTitle })] }), _jsx("slot", {})] }))] }), FileUploaderPopoverTemplate.call(this)] }));
9
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-file-uploader-root", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._onclick, onMouseDown: this._onmousedown, onDragOver: this._ondrag, onDrop: this._ondrop, children: [_jsx("div", { class: "ui5-file-uploader-form", children: _jsx("input", { type: "file", class: "ui5-file-uploader-native-input", name: this.name, multiple: this.multiple, accept: this.accept, disabled: this.disabled, title: this.inputTitle, "aria-roledescription": this.accInfo.ariaRoledescription, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-label": this.accInfo.ariaLabel, "aria-description": this.accInfo.ariaDescription, "aria-required": this.accInfo.ariaRequired, "aria-invalid": this.accInfo.ariaInvalid, onClick: this._onNativeInputClick, onChange: this._onChange, "data-sap-focus-ref": true }) }), this.hideInput ? (_jsx("slot", {})) : (_jsxs("div", { class: "ui5-file-uploader-display-container", children: [_jsxs("div", { class: "ui5-file-uploader-display-elements", children: [this._selectedFilesNames.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(Tokenizer, { class: "ui5-file-uploader-tokenizer", expanded: this._tokenizerExpanded, open: this._tokenizerOpen, popoverMinWidth: this._formWidth, onClick: this._onTokenizerClick, onMouseDown: this._onTokenizerMouseDown, onKeyDown: this._onTokenizerKeyDown, onKeyUp: this._onTokenizerKeyUp, preventInitialFocus: true, readonly: true, children: this._selectedFilesNames.map(fileName => (_jsx(Token, { text: fileName }))) }), _jsx(Icon, { name: decline, class: "ui5-file-uploader-clear-icon inputIcon", onClick: this._onClearIconClick, title: this.clearIconTitle })] })) : (_jsx("input", { class: "ui5-file-uploader-display-input", tabindex: -1, "aria-hidden": "true", title: this.inputTitle, placeholder: this.resolvedPlaceholder, "inner-input": true, readonly: true })), _jsx(Icon, { name: valueHelp, class: "ui5-file-uploader-value-help-icon inputIcon", title: this.valueHelpTitle })] }), _jsx("slot", {})] }))] }), FileUploaderPopoverTemplate.call(this)] }));
10
10
  }
11
11
  //# sourceMappingURL=FileUploaderTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploaderTemplate.js","sourceRoot":"","sources":["../src/FileUploaderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import Icon from \"./Icon.js\";\nimport valueHelp from \"@ui5/webcomponents-icons/dist/value-help.js\";\nimport decline from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport Tokenizer from \"./Tokenizer.js\";\nimport Token from \"./Token.js\";\nimport type FileUploader from \"./FileUploader.js\";\nimport FileUploaderPopoverTemplate from \"./FileUploaderPopoverTemplate.js\";\n\nexport default function FileUploaderTemplate(this: FileUploader) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-file-uploader-root\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t\tonClick={this._onclick}\n\t\t\t\tonMouseDown={this._onmousedown}\n\t\t\t\tonDragOver={this._ondrag}\n\t\t\t\tonDrop={this._ondrop}\n\t\t\t>\n\t\t\t\t<form class=\"ui5-file-uploader-form\" onSubmit={this._onFormSubmit}>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\tclass=\"ui5-file-uploader-native-input\"\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tmultiple={this.multiple}\n\t\t\t\t\t\taccept={this.accept}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\ttitle={this.inputTitle}\n\t\t\t\t\t\taria-roledescription={this.accInfo.ariaRoledescription}\n\t\t\t\t\t\taria-haspopup={this.accInfo.ariaHasPopup}\n\t\t\t\t\t\taria-label={this.accInfo.ariaLabel}\n\t\t\t\t\t\taria-description={this.accInfo.ariaDescription}\n\t\t\t\t\t\taria-required={this.accInfo.ariaRequired}\n\t\t\t\t\t\taria-invalid={this.accInfo.ariaInvalid}\n\t\t\t\t\t\tonClick={this._onNativeInputClick}\n\t\t\t\t\t\tonChange={this._onChange}\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t/>\n\t\t\t\t</form>\n\n\t\t\t\t{this.hideInput ? (\n\t\t\t\t\t<slot></slot>\n\t\t\t\t) : (\n\t\t\t\t\t<div class=\"ui5-file-uploader-display-container\">\n\t\t\t\t\t\t<div class=\"ui5-file-uploader-display-elements\">\n\t\t\t\t\t\t\t{this._selectedFilesNames.length > 0 ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Tokenizer\n\t\t\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-tokenizer\"\n\t\t\t\t\t\t\t\t\t\texpanded={this._tokenizerExpanded}\n\t\t\t\t\t\t\t\t\t\topen={this._tokenizerOpen}\n\t\t\t\t\t\t\t\t\t\tpopoverMinWidth={this._formWidth}\n\t\t\t\t\t\t\t\t\t\tonClick={this._onTokenizerClick}\n\t\t\t\t\t\t\t\t\t\tonMouseDown={this._onTokenizerMouseDown}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={this._onTokenizerKeyDown}\n\t\t\t\t\t\t\t\t\t\tonKeyUp={this._onTokenizerKeyUp}\n\t\t\t\t\t\t\t\t\t\tpreventInitialFocus\n\t\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{this._selectedFilesNames.map(fileName => (\n\t\t\t\t\t\t\t\t\t\t\t<Token\n\t\t\t\t\t\t\t\t\t\t\t\ttext={fileName}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</Tokenizer>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname={decline}\n\t\t\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-clear-icon inputIcon\"\n\t\t\t\t\t\t\t\t\t\tonClick={this._onClearIconClick}\n\t\t\t\t\t\t\t\t\t\ttitle={this.clearIconTitle}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-display-input\"\n\t\t\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\ttitle={this.inputTitle}\n\t\t\t\t\t\t\t\t\tplaceholder={this.resolvedPlaceholder}\n\t\t\t\t\t\t\t\t\tinner-input\n\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname={valueHelp}\n\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-value-help-icon inputIcon\"\n\t\t\t\t\t\t\t\ttitle={this.valueHelpTitle}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{ FileUploaderPopoverTemplate.call(this) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"file":"FileUploaderTemplate.js","sourceRoot":"","sources":["../src/FileUploaderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import Icon from \"./Icon.js\";\nimport valueHelp from \"@ui5/webcomponents-icons/dist/value-help.js\";\nimport decline from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport Tokenizer from \"./Tokenizer.js\";\nimport Token from \"./Token.js\";\nimport type FileUploader from \"./FileUploader.js\";\nimport FileUploaderPopoverTemplate from \"./FileUploaderPopoverTemplate.js\";\n\nexport default function FileUploaderTemplate(this: FileUploader) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-file-uploader-root\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t\tonClick={this._onclick}\n\t\t\t\tonMouseDown={this._onmousedown}\n\t\t\t\tonDragOver={this._ondrag}\n\t\t\t\tonDrop={this._ondrop}\n\t\t\t>\n\t\t\t\t<div class=\"ui5-file-uploader-form\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\tclass=\"ui5-file-uploader-native-input\"\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tmultiple={this.multiple}\n\t\t\t\t\t\taccept={this.accept}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\ttitle={this.inputTitle}\n\t\t\t\t\t\taria-roledescription={this.accInfo.ariaRoledescription}\n\t\t\t\t\t\taria-haspopup={this.accInfo.ariaHasPopup}\n\t\t\t\t\t\taria-label={this.accInfo.ariaLabel}\n\t\t\t\t\t\taria-description={this.accInfo.ariaDescription}\n\t\t\t\t\t\taria-required={this.accInfo.ariaRequired}\n\t\t\t\t\t\taria-invalid={this.accInfo.ariaInvalid}\n\t\t\t\t\t\tonClick={this._onNativeInputClick}\n\t\t\t\t\t\tonChange={this._onChange}\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{this.hideInput ? (\n\t\t\t\t\t<slot></slot>\n\t\t\t\t) : (\n\t\t\t\t\t<div class=\"ui5-file-uploader-display-container\">\n\t\t\t\t\t\t<div class=\"ui5-file-uploader-display-elements\">\n\t\t\t\t\t\t\t{this._selectedFilesNames.length > 0 ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Tokenizer\n\t\t\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-tokenizer\"\n\t\t\t\t\t\t\t\t\t\texpanded={this._tokenizerExpanded}\n\t\t\t\t\t\t\t\t\t\topen={this._tokenizerOpen}\n\t\t\t\t\t\t\t\t\t\tpopoverMinWidth={this._formWidth}\n\t\t\t\t\t\t\t\t\t\tonClick={this._onTokenizerClick}\n\t\t\t\t\t\t\t\t\t\tonMouseDown={this._onTokenizerMouseDown}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={this._onTokenizerKeyDown}\n\t\t\t\t\t\t\t\t\t\tonKeyUp={this._onTokenizerKeyUp}\n\t\t\t\t\t\t\t\t\t\tpreventInitialFocus\n\t\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{this._selectedFilesNames.map(fileName => (\n\t\t\t\t\t\t\t\t\t\t\t<Token\n\t\t\t\t\t\t\t\t\t\t\t\ttext={fileName}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</Tokenizer>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname={decline}\n\t\t\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-clear-icon inputIcon\"\n\t\t\t\t\t\t\t\t\t\tonClick={this._onClearIconClick}\n\t\t\t\t\t\t\t\t\t\ttitle={this.clearIconTitle}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-display-input\"\n\t\t\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\ttitle={this.inputTitle}\n\t\t\t\t\t\t\t\t\tplaceholder={this.resolvedPlaceholder}\n\t\t\t\t\t\t\t\t\tinner-input\n\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname={valueHelp}\n\t\t\t\t\t\t\t\tclass=\"ui5-file-uploader-value-help-icon inputIcon\"\n\t\t\t\t\t\t\t\ttitle={this.valueHelpTitle}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{ FileUploaderPopoverTemplate.call(this) }\n\t\t</>\n\t);\n}\n"]}
package/dist/Input.d.ts CHANGED
@@ -379,7 +379,7 @@ declare class Input extends UI5Element implements SuggestionComponent, IFormInpu
379
379
  * @since 2.11.0
380
380
  */
381
381
  _handleLinkNavigation: boolean;
382
- get formValidityMessage(): string;
382
+ get formValidityMessage(): string | undefined;
383
383
  get _effectiveShowSuggestions(): boolean;
384
384
  get formValidity(): ValidityStateFlags;
385
385
  formElementAnchor(): Promise<HTMLElement | undefined>;
package/dist/Input.js CHANGED
@@ -30,7 +30,7 @@ import InputType from "./types/InputType.js";
30
30
  // Templates
31
31
  import InputTemplate from "./InputTemplate.js";
32
32
  import { StartsWith } from "./Filters.js";
33
- import { VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_INFORMATION, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_WARNING, VALUE_STATE_LINK, VALUE_STATE_LINKS, VALUE_STATE_LINK_MAC, VALUE_STATE_LINKS_MAC, INPUT_SUGGESTIONS, INPUT_SUGGESTIONS_TITLE, INPUT_SUGGESTIONS_ONE_HIT, INPUT_SUGGESTIONS_MORE_HITS, INPUT_SUGGESTIONS_NO_HIT, INPUT_CLEAR_ICON_ACC_NAME, INPUT_AVALIABLE_VALUES, INPUT_SUGGESTIONS_OK_BUTTON, INPUT_SUGGESTIONS_CANCEL_BUTTON, FORM_TEXTFIELD_REQUIRED, } from "./generated/i18n/i18n-defaults.js";
33
+ import { VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_INFORMATION, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_WARNING, VALUE_STATE_LINK, VALUE_STATE_LINKS, VALUE_STATE_LINK_MAC, VALUE_STATE_LINKS_MAC, INPUT_SUGGESTIONS, INPUT_SUGGESTIONS_TITLE, INPUT_SUGGESTIONS_ONE_HIT, INPUT_SUGGESTIONS_MORE_HITS, INPUT_SUGGESTIONS_NO_HIT, INPUT_CLEAR_ICON_ACC_NAME, INPUT_AVALIABLE_VALUES, INPUT_SUGGESTIONS_OK_BUTTON, INPUT_SUGGESTIONS_CANCEL_BUTTON, } from "./generated/i18n/i18n-defaults.js";
34
34
  // Styles
35
35
  import inputStyles from "./generated/themes/Input.css.js";
36
36
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
@@ -90,13 +90,17 @@ var INPUT_ACTIONS;
90
90
  */
91
91
  let Input = Input_1 = class Input extends UI5Element {
92
92
  get formValidityMessage() {
93
- return Input_1.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);
93
+ return this.nativeInput?.validationMessage;
94
94
  }
95
95
  get _effectiveShowSuggestions() {
96
96
  return !!(this.showSuggestions && this.Suggestions);
97
97
  }
98
98
  get formValidity() {
99
- return { valueMissing: this.required && !this.value };
99
+ return {
100
+ valueMissing: this.nativeInput?.validity.valueMissing,
101
+ typeMismatch: this.required && this.nativeInput?.validity.typeMismatch,
102
+ patternMismatch: this.nativeInput?.validity.patternMismatch,
103
+ };
100
104
  }
101
105
  async formElementAnchor() {
102
106
  return this.getFocusDomRefAsync();