@ui5/webcomponents 2.11.0 → 2.12.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 (560) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Avatar.d.ts +12 -0
  4. package/dist/Avatar.js +68 -1
  5. package/dist/Avatar.js.map +1 -1
  6. package/dist/AvatarGroup.d.ts +17 -1
  7. package/dist/AvatarGroup.js +11 -0
  8. package/dist/AvatarGroup.js.map +1 -1
  9. package/dist/AvatarTemplate.js +4 -4
  10. package/dist/AvatarTemplate.js.map +1 -1
  11. package/dist/BusyIndicator.d.ts +1 -0
  12. package/dist/BusyIndicator.js +4 -0
  13. package/dist/BusyIndicator.js.map +1 -1
  14. package/dist/BusyIndicatorTemplate.js +4 -1
  15. package/dist/BusyIndicatorTemplate.js.map +1 -1
  16. package/dist/Button.d.ts +3 -0
  17. package/dist/Button.js +22 -0
  18. package/dist/Button.js.map +1 -1
  19. package/dist/Calendar.d.ts +3 -0
  20. package/dist/Calendar.js +3 -0
  21. package/dist/Calendar.js.map +1 -1
  22. package/dist/CalendarHeaderTemplate.js +3 -3
  23. package/dist/CalendarHeaderTemplate.js.map +1 -1
  24. package/dist/CalendarTemplate.js +1 -1
  25. package/dist/CalendarTemplate.js.map +1 -1
  26. package/dist/DynamicDateRange.d.ts +36 -7
  27. package/dist/DynamicDateRange.js +45 -42
  28. package/dist/DynamicDateRange.js.map +1 -1
  29. package/dist/InputTemplate.js +1 -1
  30. package/dist/InputTemplate.js.map +1 -1
  31. package/dist/MonthPickerTemplate.js +1 -1
  32. package/dist/MonthPickerTemplate.js.map +1 -1
  33. package/dist/Popover.d.ts +2 -2
  34. package/dist/Popover.js +29 -7
  35. package/dist/Popover.js.map +1 -1
  36. package/dist/Popup.d.ts +24 -0
  37. package/dist/Popup.js +29 -1
  38. package/dist/Popup.js.map +1 -1
  39. package/dist/PopupTemplate.js +2 -1
  40. package/dist/PopupTemplate.js.map +1 -1
  41. package/dist/RangeSlider.d.ts +4 -9
  42. package/dist/RangeSlider.js +50 -133
  43. package/dist/RangeSlider.js.map +1 -1
  44. package/dist/RangeSliderTemplate.js +2 -10
  45. package/dist/RangeSliderTemplate.js.map +1 -1
  46. package/dist/ResponsivePopoverTemplate.js +1 -1
  47. package/dist/ResponsivePopoverTemplate.js.map +1 -1
  48. package/dist/SelectTemplate.js +10 -4
  49. package/dist/SelectTemplate.js.map +1 -1
  50. package/dist/Slider.d.ts +2 -6
  51. package/dist/Slider.js +9 -43
  52. package/dist/Slider.js.map +1 -1
  53. package/dist/SliderBase.d.ts +4 -6
  54. package/dist/SliderBase.js +14 -31
  55. package/dist/SliderBase.js.map +1 -1
  56. package/dist/SliderBaseTemplate.js +1 -1
  57. package/dist/SliderBaseTemplate.js.map +1 -1
  58. package/dist/SliderTemplate.js +2 -6
  59. package/dist/SliderTemplate.js.map +1 -1
  60. package/dist/SliderTooltip.d.ts +47 -0
  61. package/dist/SliderTooltip.js +158 -0
  62. package/dist/SliderTooltip.js.map +1 -0
  63. package/dist/SliderTooltipTemplate.d.ts +2 -0
  64. package/dist/SliderTooltipTemplate.js +8 -0
  65. package/dist/SliderTooltipTemplate.js.map +1 -0
  66. package/dist/StepInput.d.ts +1 -1
  67. package/dist/StepInput.js +5 -7
  68. package/dist/StepInput.js.map +1 -1
  69. package/dist/Toast.js +1 -3
  70. package/dist/Toast.js.map +1 -1
  71. package/dist/ToggleButton.d.ts +1 -1
  72. package/dist/ToggleButton.js +21 -2
  73. package/dist/ToggleButton.js.map +1 -1
  74. package/dist/Tokenizer.js +0 -6
  75. package/dist/Tokenizer.js.map +1 -1
  76. package/dist/YearPickerTemplate.js +1 -1
  77. package/dist/YearPickerTemplate.js.map +1 -1
  78. package/dist/css/themes/Avatar.css +1 -1
  79. package/dist/css/themes/AvatarGroup.css +1 -1
  80. package/dist/css/themes/Bar.css +1 -1
  81. package/dist/css/themes/Breadcrumbs.css +1 -1
  82. package/dist/css/themes/BusyIndicator.css +1 -1
  83. package/dist/css/themes/Button.css +1 -1
  84. package/dist/css/themes/ButtonBadge.css +1 -1
  85. package/dist/css/themes/Calendar.css +1 -1
  86. package/dist/css/themes/CalendarHeader.css +1 -1
  87. package/dist/css/themes/CalendarLegend.css +1 -1
  88. package/dist/css/themes/CalendarLegendItem.css +1 -1
  89. package/dist/css/themes/Card.css +1 -1
  90. package/dist/css/themes/CardHeader.css +1 -1
  91. package/dist/css/themes/Carousel.css +1 -1
  92. package/dist/css/themes/CheckBox.css +1 -1
  93. package/dist/css/themes/ColorPalette.css +1 -1
  94. package/dist/css/themes/ColorPaletteItem.css +1 -1
  95. package/dist/css/themes/ColorPalettePopover.css +1 -1
  96. package/dist/css/themes/ColorPicker.css +1 -1
  97. package/dist/css/themes/ComboBox.css +1 -1
  98. package/dist/css/themes/ComboBoxItem.css +1 -1
  99. package/dist/css/themes/DatePicker.css +1 -1
  100. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  101. package/dist/css/themes/DayPicker.css +1 -1
  102. package/dist/css/themes/Dialog.css +1 -1
  103. package/dist/css/themes/DynamicDateRange.css +1 -1
  104. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  105. package/dist/css/themes/FileUploader.css +1 -1
  106. package/dist/css/themes/Form.css +1 -1
  107. package/dist/css/themes/FormItem.css +1 -1
  108. package/dist/css/themes/FormItemSpan.css +1 -1
  109. package/dist/css/themes/GrowingButton.css +1 -1
  110. package/dist/css/themes/Icon.css +1 -1
  111. package/dist/css/themes/Input.css +1 -1
  112. package/dist/css/themes/InputIcon.css +1 -1
  113. package/dist/css/themes/InputSharedStyles.css +1 -1
  114. package/dist/css/themes/Link.css +1 -1
  115. package/dist/css/themes/List.css +1 -1
  116. package/dist/css/themes/ListItem.css +1 -1
  117. package/dist/css/themes/ListItemBase.css +1 -1
  118. package/dist/css/themes/ListItemCustom.css +1 -1
  119. package/dist/css/themes/ListItemGroup.css +1 -1
  120. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  121. package/dist/css/themes/ListItemIcon.css +1 -1
  122. package/dist/css/themes/Menu.css +1 -1
  123. package/dist/css/themes/MenuItem.css +1 -1
  124. package/dist/css/themes/MessageStrip.css +1 -1
  125. package/dist/css/themes/MonthPicker.css +1 -1
  126. package/dist/css/themes/MultiComboBox.css +1 -1
  127. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  128. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  129. package/dist/css/themes/MultiInput.css +1 -1
  130. package/dist/css/themes/OptionBase.css +1 -1
  131. package/dist/css/themes/Panel.css +1 -1
  132. package/dist/css/themes/Popover.css +1 -1
  133. package/dist/css/themes/PopupsCommon.css +1 -1
  134. package/dist/css/themes/ProgressIndicator.css +1 -1
  135. package/dist/css/themes/RadioButton.css +1 -1
  136. package/dist/css/themes/RangeSlider.css +1 -1
  137. package/dist/css/themes/RatingIndicator.css +1 -1
  138. package/dist/css/themes/ResponsivePopover.css +1 -1
  139. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  140. package/dist/css/themes/SegmentedButton.css +1 -1
  141. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  142. package/dist/css/themes/Select.css +1 -1
  143. package/dist/css/themes/SliderBase.css +1 -1
  144. package/dist/css/themes/SliderTooltip.css +1 -0
  145. package/dist/css/themes/SplitButton.css +1 -1
  146. package/dist/css/themes/StepInput.css +1 -1
  147. package/dist/css/themes/SuggestionItem.css +1 -1
  148. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  149. package/dist/css/themes/Switch.css +1 -1
  150. package/dist/css/themes/TabContainer.css +1 -1
  151. package/dist/css/themes/TabInOverflow.css +1 -1
  152. package/dist/css/themes/TabInStrip.css +1 -1
  153. package/dist/css/themes/TabSemanticIcon.css +1 -1
  154. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  155. package/dist/css/themes/TableCellBase.css +1 -1
  156. package/dist/css/themes/TableHeaderRow.css +1 -1
  157. package/dist/css/themes/TableRow.css +1 -1
  158. package/dist/css/themes/TableRowActionBase.css +1 -1
  159. package/dist/css/themes/TableRowBase.css +1 -1
  160. package/dist/css/themes/Tag.css +1 -1
  161. package/dist/css/themes/Text.css +1 -1
  162. package/dist/css/themes/TextArea.css +1 -1
  163. package/dist/css/themes/TimePicker.css +1 -1
  164. package/dist/css/themes/Toast.css +1 -1
  165. package/dist/css/themes/ToggleButton.css +1 -1
  166. package/dist/css/themes/Token.css +1 -1
  167. package/dist/css/themes/Tokenizer.css +1 -1
  168. package/dist/css/themes/TokenizerPopover.css +1 -1
  169. package/dist/css/themes/Toolbar.css +1 -1
  170. package/dist/css/themes/ToolbarPopover.css +1 -1
  171. package/dist/css/themes/ToolbarSeparator.css +1 -1
  172. package/dist/css/themes/TreeItem.css +1 -1
  173. package/dist/css/themes/ValueStateMessage.css +1 -1
  174. package/dist/css/themes/YearPicker.css +1 -1
  175. package/dist/css/themes/YearRangePicker.css +1 -1
  176. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  177. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  178. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  179. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  180. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  181. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  182. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  183. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  184. package/dist/custom-elements-internal.json +312 -7
  185. package/dist/custom-elements.json +293 -0
  186. package/dist/dynamic-date-range-options/DateRange.d.ts +1 -1
  187. package/dist/dynamic-date-range-options/DateRange.js +1 -1
  188. package/dist/dynamic-date-range-options/DateRange.js.map +1 -1
  189. package/dist/dynamic-date-range-options/SingleDate.d.ts +1 -1
  190. package/dist/dynamic-date-range-options/SingleDate.js +1 -1
  191. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -1
  192. package/dist/dynamic-date-range-options/Today.d.ts +1 -1
  193. package/dist/dynamic-date-range-options/Today.js +1 -1
  194. package/dist/dynamic-date-range-options/Today.js.map +1 -1
  195. package/dist/dynamic-date-range-options/Tomorrow.d.ts +1 -1
  196. package/dist/dynamic-date-range-options/Tomorrow.js +1 -1
  197. package/dist/dynamic-date-range-options/Tomorrow.js.map +1 -1
  198. package/dist/dynamic-date-range-options/Yesterday.d.ts +1 -1
  199. package/dist/dynamic-date-range-options/Yesterday.js +1 -1
  200. package/dist/dynamic-date-range-options/Yesterday.js.map +1 -1
  201. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  202. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  203. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  204. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  205. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  206. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  207. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  208. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  209. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  210. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  211. package/dist/generated/i18n/i18n-defaults.js +1 -1
  212. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  213. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  214. package/dist/generated/themes/Avatar.css.js +1 -1
  215. package/dist/generated/themes/Avatar.css.js.map +1 -1
  216. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  217. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  218. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  219. package/dist/generated/themes/Bar.css.d.ts +1 -1
  220. package/dist/generated/themes/Bar.css.js +1 -1
  221. package/dist/generated/themes/Bar.css.js.map +1 -1
  222. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  223. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  224. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  225. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  226. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  227. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  228. package/dist/generated/themes/Button.css.d.ts +1 -1
  229. package/dist/generated/themes/Button.css.js +1 -1
  230. package/dist/generated/themes/Button.css.js.map +1 -1
  231. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  232. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  233. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  234. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  235. package/dist/generated/themes/Calendar.css.js +1 -1
  236. package/dist/generated/themes/Calendar.css.js.map +1 -1
  237. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  238. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  239. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  240. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  241. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  242. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  243. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  244. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  245. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  246. package/dist/generated/themes/Card.css.d.ts +1 -1
  247. package/dist/generated/themes/Card.css.js +1 -1
  248. package/dist/generated/themes/Card.css.js.map +1 -1
  249. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  250. package/dist/generated/themes/CardHeader.css.js +1 -1
  251. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  252. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  253. package/dist/generated/themes/Carousel.css.js +1 -1
  254. package/dist/generated/themes/Carousel.css.js.map +1 -1
  255. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  256. package/dist/generated/themes/CheckBox.css.js +1 -1
  257. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  258. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  259. package/dist/generated/themes/ColorPalette.css.js +1 -1
  260. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  261. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  262. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  263. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  264. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  265. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  266. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  267. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  268. package/dist/generated/themes/ColorPicker.css.js +1 -1
  269. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  270. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  271. package/dist/generated/themes/ComboBox.css.js +1 -1
  272. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  273. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  274. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  275. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  276. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  277. package/dist/generated/themes/DatePicker.css.js +1 -1
  278. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  279. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  280. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  281. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  282. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  283. package/dist/generated/themes/DayPicker.css.js +1 -1
  284. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  285. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  286. package/dist/generated/themes/Dialog.css.js +1 -1
  287. package/dist/generated/themes/Dialog.css.js.map +1 -1
  288. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  289. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  290. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  291. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  292. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  293. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  294. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  295. package/dist/generated/themes/FileUploader.css.js +1 -1
  296. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  297. package/dist/generated/themes/Form.css.d.ts +1 -1
  298. package/dist/generated/themes/Form.css.js +1 -1
  299. package/dist/generated/themes/Form.css.js.map +1 -1
  300. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  301. package/dist/generated/themes/FormItem.css.js +1 -1
  302. package/dist/generated/themes/FormItem.css.js.map +1 -1
  303. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  304. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  305. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  306. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  307. package/dist/generated/themes/GrowingButton.css.js +1 -1
  308. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  309. package/dist/generated/themes/Icon.css.d.ts +1 -1
  310. package/dist/generated/themes/Icon.css.js +1 -1
  311. package/dist/generated/themes/Icon.css.js.map +1 -1
  312. package/dist/generated/themes/Input.css.d.ts +1 -1
  313. package/dist/generated/themes/Input.css.js +1 -1
  314. package/dist/generated/themes/Input.css.js.map +1 -1
  315. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  316. package/dist/generated/themes/InputIcon.css.js +1 -1
  317. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  318. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  319. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  320. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  321. package/dist/generated/themes/Link.css.d.ts +1 -1
  322. package/dist/generated/themes/Link.css.js +1 -1
  323. package/dist/generated/themes/Link.css.js.map +1 -1
  324. package/dist/generated/themes/List.css.d.ts +1 -1
  325. package/dist/generated/themes/List.css.js +1 -1
  326. package/dist/generated/themes/List.css.js.map +1 -1
  327. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  328. package/dist/generated/themes/ListItem.css.js +1 -1
  329. package/dist/generated/themes/ListItem.css.js.map +1 -1
  330. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  331. package/dist/generated/themes/ListItemBase.css.js +1 -1
  332. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  333. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  334. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  335. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  336. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  337. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  338. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  339. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  340. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  341. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  342. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  343. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  344. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  345. package/dist/generated/themes/Menu.css.d.ts +1 -1
  346. package/dist/generated/themes/Menu.css.js +1 -1
  347. package/dist/generated/themes/Menu.css.js.map +1 -1
  348. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  349. package/dist/generated/themes/MenuItem.css.js +1 -1
  350. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  351. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  352. package/dist/generated/themes/MessageStrip.css.js +1 -1
  353. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  354. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  355. package/dist/generated/themes/MonthPicker.css.js +1 -1
  356. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  357. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  358. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  359. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  360. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  361. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  362. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  363. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  364. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  365. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  366. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  367. package/dist/generated/themes/MultiInput.css.js +1 -1
  368. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  369. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  370. package/dist/generated/themes/OptionBase.css.js +1 -1
  371. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  372. package/dist/generated/themes/Panel.css.d.ts +1 -1
  373. package/dist/generated/themes/Panel.css.js +1 -1
  374. package/dist/generated/themes/Panel.css.js.map +1 -1
  375. package/dist/generated/themes/Popover.css.d.ts +1 -1
  376. package/dist/generated/themes/Popover.css.js +1 -1
  377. package/dist/generated/themes/Popover.css.js.map +1 -1
  378. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  379. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  380. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  381. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  382. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  383. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  384. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  385. package/dist/generated/themes/RadioButton.css.js +1 -1
  386. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  387. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  388. package/dist/generated/themes/RangeSlider.css.js +1 -1
  389. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  390. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  391. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  392. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  393. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  394. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  395. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  396. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  397. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  398. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  399. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  400. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  401. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  402. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  403. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  404. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  405. package/dist/generated/themes/Select.css.d.ts +1 -1
  406. package/dist/generated/themes/Select.css.js +1 -1
  407. package/dist/generated/themes/Select.css.js.map +1 -1
  408. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  409. package/dist/generated/themes/SliderBase.css.js +1 -1
  410. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  411. package/dist/generated/themes/SliderTooltip.css.d.ts +2 -0
  412. package/dist/generated/themes/SliderTooltip.css.js +8 -0
  413. package/dist/generated/themes/SliderTooltip.css.js.map +1 -0
  414. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  415. package/dist/generated/themes/SplitButton.css.js +1 -1
  416. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  417. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  418. package/dist/generated/themes/StepInput.css.js +1 -1
  419. package/dist/generated/themes/StepInput.css.js.map +1 -1
  420. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  421. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  422. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  423. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  424. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  425. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  426. package/dist/generated/themes/Switch.css.d.ts +1 -1
  427. package/dist/generated/themes/Switch.css.js +1 -1
  428. package/dist/generated/themes/Switch.css.js.map +1 -1
  429. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  430. package/dist/generated/themes/TabContainer.css.js +1 -1
  431. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  432. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  433. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  434. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  435. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  436. package/dist/generated/themes/TabInStrip.css.js +1 -1
  437. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  438. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  439. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  440. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  441. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  442. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  443. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  444. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  445. package/dist/generated/themes/TableCellBase.css.js +1 -1
  446. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  447. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  448. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  449. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  450. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  451. package/dist/generated/themes/TableRow.css.js +1 -1
  452. package/dist/generated/themes/TableRow.css.js.map +1 -1
  453. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  454. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  455. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  456. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  457. package/dist/generated/themes/TableRowBase.css.js +1 -1
  458. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  459. package/dist/generated/themes/Tag.css.d.ts +1 -1
  460. package/dist/generated/themes/Tag.css.js +1 -1
  461. package/dist/generated/themes/Tag.css.js.map +1 -1
  462. package/dist/generated/themes/Text.css.d.ts +1 -1
  463. package/dist/generated/themes/Text.css.js +1 -1
  464. package/dist/generated/themes/Text.css.js.map +1 -1
  465. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  466. package/dist/generated/themes/TextArea.css.js +1 -1
  467. package/dist/generated/themes/TextArea.css.js.map +1 -1
  468. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  469. package/dist/generated/themes/TimePicker.css.js +1 -1
  470. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  471. package/dist/generated/themes/Toast.css.d.ts +1 -1
  472. package/dist/generated/themes/Toast.css.js +1 -1
  473. package/dist/generated/themes/Toast.css.js.map +1 -1
  474. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  475. package/dist/generated/themes/ToggleButton.css.js +1 -1
  476. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  477. package/dist/generated/themes/Token.css.d.ts +1 -1
  478. package/dist/generated/themes/Token.css.js +1 -1
  479. package/dist/generated/themes/Token.css.js.map +1 -1
  480. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  481. package/dist/generated/themes/Tokenizer.css.js +1 -1
  482. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  483. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  484. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  485. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  486. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  487. package/dist/generated/themes/Toolbar.css.js +1 -1
  488. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  489. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  490. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  491. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  492. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  493. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  494. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  495. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  496. package/dist/generated/themes/TreeItem.css.js +1 -1
  497. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  498. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  499. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  500. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  501. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  502. package/dist/generated/themes/YearPicker.css.js +1 -1
  503. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  504. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  505. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  506. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  507. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  508. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  509. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  510. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  511. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  512. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  513. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  514. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  515. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  516. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  517. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  518. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  519. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  520. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  521. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  522. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  523. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  524. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  525. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  526. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  527. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  528. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  529. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  530. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  531. package/dist/vscode.html-custom-data.json +52 -2
  532. package/dist/web-types.json +95 -3
  533. package/package.json +10 -10
  534. package/src/AvatarTemplate.tsx +16 -10
  535. package/src/BusyIndicatorTemplate.tsx +4 -1
  536. package/src/CalendarHeaderTemplate.tsx +3 -0
  537. package/src/CalendarTemplate.tsx +2 -2
  538. package/src/InputTemplate.tsx +1 -1
  539. package/src/MonthPickerTemplate.tsx +1 -0
  540. package/src/PopupTemplate.tsx +5 -0
  541. package/src/RangeSliderTemplate.tsx +25 -39
  542. package/src/ResponsivePopoverTemplate.tsx +2 -0
  543. package/src/SelectTemplate.tsx +23 -13
  544. package/src/SliderBaseTemplate.tsx +0 -1
  545. package/src/SliderTemplate.tsx +14 -21
  546. package/src/SliderTooltipTemplate.tsx +27 -0
  547. package/src/YearPickerTemplate.tsx +1 -0
  548. package/src/i18n/messagebundle_en.properties +246 -0
  549. package/src/i18n/messagebundle_en_US_saprigi.properties +18 -0
  550. package/src/themes/BusyIndicator.css +5 -2
  551. package/src/themes/PopupsCommon.css +2 -0
  552. package/src/themes/ResponsivePopoverCommon.css +2 -2
  553. package/src/themes/Select.css +19 -0
  554. package/src/themes/SliderTooltip.css +34 -0
  555. package/src/themes/base/CheckBox-parameters.css +7 -1
  556. package/src/themes/base/Select-parameters.css +8 -0
  557. package/src/themes/sap_horizon/BusyIndicator-parameters.css +0 -1
  558. package/src/themes/sap_horizon/Select-parameters.css +2 -0
  559. package/src/themes/sap_horizon_dark/BusyIndicator-parameters.css +0 -1
  560. package/src/themes/sap_horizon_dark/Select-parameters.css +2 -0
@@ -19,9 +19,6 @@ type DynamicDateRangeValue = {
19
19
  */
20
20
  values?: Date[] | number[];
21
21
  };
22
- type DynamicDateRangeChangeEventDetail = {
23
- value: DynamicDateRangeValue | undefined;
24
- };
25
22
  /**
26
23
  * Represents a dynamic date range option used by the `ui5-dynamic-date-range` component.
27
24
  *
@@ -44,7 +41,7 @@ type DynamicDateRangeChangeEventDetail = {
44
41
  * - `isValidString(value: string): boolean`: Validates whether a given string is a valid representation of the dynamic date range value.
45
42
  *
46
43
  * @public
47
- * @since 2.10.0
44
+ * @since 2.11.0
48
45
  */
49
46
  interface IDynamicDateRangeOption {
50
47
  icon: string;
@@ -58,12 +55,42 @@ interface IDynamicDateRangeOption {
58
55
  isValidString: (value: string) => boolean;
59
56
  }
60
57
  /**
61
- * Fired when the input operation has finished by pressing Enter or on focusout or a value is selected in the popover.
58
+ * @class
59
+ *
60
+ * ### Overview
61
+ *
62
+ * 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.).
63
+ * It allows users to select a date range from a predefined set of options or enter custom dates.
64
+ *
65
+ * ### Usage
66
+ *
67
+ * 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.
68
+ * 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.
69
+ * Every option should be registered using the `DynamicDateRange.register` method.
70
+ *
71
+ * If needed, you can also create a range of dates based on specific option using the `toDates` method.
72
+ *
73
+ * ### Standard Options
74
+ *
75
+ * The component comes with a set of standard options, including:
76
+ * - "TODAY" - Represents the current date. An example value is `{ operator: "TODAY"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Today.js";`
77
+ * - "YESTERDAY" - Represents the previous date. An example value is `{ operator: "YESTERDAY"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Yesterday.js";`
78
+ * - "TOMORROW" - Represents the next date. An example value is `{ operator: "TOMORROW"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Tomorrow.js";`
79
+ * - "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";`
80
+ * - "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";`
81
+ *
82
+ * ### ES6 Module Import
83
+ *
84
+ * `import "@ui5/webcomponents/dist/DynamicDateRange.js";`
85
+ *
86
+ * @constructor
87
+ * @extends UI5Element
62
88
  * @public
89
+ * @since 2.11.0
63
90
  */
64
91
  declare class DynamicDateRange extends UI5Element {
65
92
  eventDetails: {
66
- change: DynamicDateRangeChangeEventDetail;
93
+ change: void;
67
94
  };
68
95
  static i18nBundle: I18nBundle;
69
96
  /**
@@ -107,6 +134,8 @@ declare class DynamicDateRange extends UI5Element {
107
134
  /**
108
135
  * Converts a `value` into concrete `startDate` and `endDate` JavaScript `Date` objects.
109
136
  *
137
+ * @public
138
+ * @param value The option to convert into an array of date ranges
110
139
  * @returns An array of two `Date` objects representing the start and end dates.
111
140
  */
112
141
  toDates(value: DynamicDateRangeValue): Date[];
@@ -130,4 +159,4 @@ declare class DynamicDateRange extends UI5Element {
130
159
  static getOptionClass(operator: string): (new () => IDynamicDateRangeOption) | undefined;
131
160
  }
132
161
  export default DynamicDateRange;
133
- export type { DynamicDateRangeValue, IDynamicDateRangeOption, DynamicDateRangeChangeEventDetail, };
162
+ export type { DynamicDateRangeValue, IDynamicDateRangeOption, };
@@ -24,8 +24,38 @@ import dynamicDateRangeCss from "./generated/themes/DynamicDateRange.css.js";
24
24
  import dynamicDateRangePopoverCss from "./generated/themes/DynamicDateRangePopover.css.js";
25
25
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
26
26
  /**
27
- * Fired when the input operation has finished by pressing Enter or on focusout or a value is selected in the popover.
27
+ * @class
28
+ *
29
+ * ### Overview
30
+ *
31
+ * 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.).
32
+ * It allows users to select a date range from a predefined set of options or enter custom dates.
33
+ *
34
+ * ### Usage
35
+ *
36
+ * 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.
37
+ * 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.
38
+ * Every option should be registered using the `DynamicDateRange.register` method.
39
+ *
40
+ * If needed, you can also create a range of dates based on specific option using the `toDates` method.
41
+ *
42
+ * ### Standard Options
43
+ *
44
+ * The component comes with a set of standard options, including:
45
+ * - "TODAY" - Represents the current date. An example value is `{ operator: "TODAY"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Today.js";`
46
+ * - "YESTERDAY" - Represents the previous date. An example value is `{ operator: "YESTERDAY"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Yesterday.js";`
47
+ * - "TOMORROW" - Represents the next date. An example value is `{ operator: "TOMORROW"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Tomorrow.js";`
48
+ * - "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";`
49
+ * - "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";`
50
+ *
51
+ * ### ES6 Module Import
52
+ *
53
+ * `import "@ui5/webcomponents/dist/DynamicDateRange.js";`
54
+ *
55
+ * @constructor
56
+ * @extends UI5Element
28
57
  * @public
58
+ * @since 2.11.0
29
59
  */
30
60
  let DynamicDateRange = DynamicDateRange_1 = class DynamicDateRange extends UI5Element {
31
61
  constructor() {
@@ -110,13 +140,13 @@ let DynamicDateRange = DynamicDateRange_1 = class DynamicDateRange extends UI5El
110
140
  const value = e.target?.value;
111
141
  if (!value) {
112
142
  this.value = undefined;
113
- this.fireDecoratorEvent("change", { value: undefined });
143
+ this.fireDecoratorEvent("change");
114
144
  return;
115
145
  }
116
146
  const currentOption = this.optionsObjects.find(option => option.isValidString(value));
117
147
  this.value = currentOption ? this.getOption(currentOption.operator)?.parse(value) : undefined;
118
148
  if (this.value) {
119
- this.fireDecoratorEvent("change", { value: this.value });
149
+ this.fireDecoratorEvent("change");
120
150
  }
121
151
  }
122
152
  onButtonBackClick() {
@@ -125,6 +155,8 @@ let DynamicDateRange = DynamicDateRange_1 = class DynamicDateRange extends UI5El
125
155
  /**
126
156
  * Converts a `value` into concrete `startDate` and `endDate` JavaScript `Date` objects.
127
157
  *
158
+ * @public
159
+ * @param value The option to convert into an array of date ranges
128
160
  * @returns An array of two `Date` objects representing the start and end dates.
129
161
  */
130
162
  toDates(value) {
@@ -140,7 +172,7 @@ let DynamicDateRange = DynamicDateRange_1 = class DynamicDateRange extends UI5El
140
172
  }
141
173
  if (this._currentOption?.isValidString(stringValue)) {
142
174
  this.value = this.currentValue;
143
- this.fireDecoratorEvent("change", { value: this.value });
175
+ this.fireDecoratorEvent("change");
144
176
  }
145
177
  else {
146
178
  this.value = undefined;
@@ -236,44 +268,6 @@ __decorate([
236
268
  i18n("@ui5/webcomponents")
237
269
  ], DynamicDateRange, "i18nBundle", void 0);
238
270
  DynamicDateRange = DynamicDateRange_1 = __decorate([
239
- event("change", {
240
- bubbles: true,
241
- cancelable: true,
242
- })
243
- /**
244
- * @class
245
- *
246
- * ### Overview
247
- *
248
- * 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.).
249
- * It allows users to select a date range from a predefined set of options or enter custom dates.
250
- *
251
- * ### Usage
252
- *
253
- * 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.
254
- * 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.
255
- * Every option should be registered using the `DynamicDateRange.register` method.
256
- *
257
- * If needed, you can also create a range of dates based on specific option using the `toDates` method.
258
- *
259
- * ### Standard Options
260
- *
261
- * The component comes with a set of standard options, including:
262
- * - "TODAY" - Represents the current date. An example value is `{ operator: "TODAY"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Today.js";`
263
- * - "YESTERDAY" - Represents the previous date. An example value is `{ operator: "YESTERDAY"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Yesterday.js";`
264
- * - "TOMORROW" - Represents the next date. An example value is `{ operator: "TOMORROW"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Tomorrow.js";`
265
- * - "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";`
266
- * - "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";`
267
- *
268
- * ### ES6 Module Import
269
- *
270
- * `import "@ui5/webcomponents/dist/DynamicDateRange.js";`
271
- *
272
- * @constructor
273
- * @extends UI5Element
274
- * @public
275
- */
276
- ,
277
271
  customElement({
278
272
  tag: "ui5-dynamic-date-range",
279
273
  languageAware: true,
@@ -285,6 +279,15 @@ DynamicDateRange = DynamicDateRange_1 = __decorate([
285
279
  dynamicDateRangePopoverCss,
286
280
  ],
287
281
  })
282
+ /**
283
+ * Fired when the input operation has finished by pressing Enter or on focusout or a value is selected in the popover.
284
+ * @public
285
+ */
286
+ ,
287
+ event("change", {
288
+ bubbles: true,
289
+ cancelable: true,
290
+ })
288
291
  ], DynamicDateRange);
289
292
  DynamicDateRange.define();
290
293
  export default DynamicDateRange;
@@ -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 type { JsxTemplate } from \"@ui5/webcomponents-base\";\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 {\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\";\nimport type List from \"./List.js\";\nimport type ListItem from \"./ListItem.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 /**\n * Values of the dynamic date range.\n * @default []\n * @public\n */\n values?: Date[] | number[];\n}\n\ntype DynamicDateRangeChangeEventDetail = {\n\tvalue: DynamicDateRangeValue | undefined,\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): 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.10.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) => Date[];\n\thandleSelectionChange?: (event: CustomEvent) => DynamicDateRangeValue | undefined;\n\ttemplate?: JsxTemplate;\n\tisValidString: (value: string) => boolean;\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})\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 *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DynamicDateRange.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-dynamic-date-range\",\n\tlanguageAware: true,\n\ttemplate: DynamicDateRangeTemplate,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tdynamicDateRangeCss,\n\t\tResponsivePopoverCommonCss,\n\t\tdynamicDateRangePopoverCss,\n\t],\n})\n\nclass DynamicDateRange extends UI5Element {\n\teventDetails!: {\n\t\tchange: DynamicDateRangeChangeEventDetail,\n\t}\n\n @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 @property({ type: Object })\n _currentOption?: IDynamicDateRangeOption;\n\n\t@property({ type: Object })\n currentValue?: DynamicDateRangeValue;\n\n\toptionsObjects: IDynamicDateRangeOption[] = [];\n\n\tstatic optionsClasses: Map<string, new () => 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\tconst optionKeys = this.options.split(\",\").map(option => option.trim());\n\n\t\tthis.optionsObjects = optionKeys.map(option => {\n\t\t\tconst OptionClass = DynamicDateRange.getOptionClass(option);\n\t\t\tlet optionObject;\n\n\t\t\tif (OptionClass) {\n\t\t\t\toptionObject = new OptionClass();\n\t\t\t}\n\n\t\t\treturn optionObject;\n\t\t}).filter(optionObject => optionObject !== undefined);\n\n\t\tif (this.value) {\n\t\t\tconst selectedItem = this._list?.items.find(item => {\n\t\t\t\tconst option = this.optionsObjects.find(x => x.operator === this.value?.operator);\n\t\t\t\treturn option && item.textContent === option.text;\n\t\t\t}) as ListItem;\n\n\t\t\tthis._list?.focusItem(selectedItem);\n\t\t}\n\t}\n\n\tget _optionsTitles(): Array<string> {\n\t\treturn this.optionsObjects.map(option => option.text);\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.open = false;\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\tif (!this._currentOption?.template) {\n\t\t\tthis.currentValue = this._currentOption?.parse(this._currentOption.text);\n\t\t\tthis._submitValue();\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\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 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\", { value: undefined });\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\", {\tvalue: this.value });\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 * @returns An array of two `Date` objects representing the start and end dates.\n\t */\n\ttoDates(value: DynamicDateRangeValue): Date[] {\n\t\treturn this.getOption(value.operator)?.toDates(value) as Date[];\n\t}\n\n\tget _hasCurrentOptionTemplate(): boolean {\n\t\treturn !!this._currentOption?.template;\n\t}\n\n\t_submitValue() {\n\t\tconst stringValue = this._currentOption?.format(this.currentValue!) as string;\n\n\t\tif (this._input) {\n\t\t\tthis._input.value = stringValue;\n\t\t}\n\n\t\tif (this._currentOption?.isValidString(stringValue)) {\n\t\t\tthis.value = this.currentValue as DynamicDateRangeValue;\n\t\t\tthis.fireDecoratorEvent(\"change\", { value: this.value });\n\t\t} else {\n\t\t\tthis.value = undefined;\n\t\t}\n\n\t\tthis._currentOption = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_close() {\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 && this.currentValue.operator === this._currentOption?.operator) {\n\t\t\treturn `${DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_SELECTED_TEXT)}: ${this._currentOption?.format(this.currentValue)}`;\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\tthis.currentValue = this._currentOption?.handleSelectionChange && this._currentOption?.handleSelectionChange(e) as DynamicDateRangeValue;\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\tDynamicDateRangeChangeEventDetail,\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 type { JsxTemplate } from \"@ui5/webcomponents-base\";\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 {\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\";\nimport type List from \"./List.js\";\nimport type ListItem from \"./ListItem.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?: Date[] | 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): 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) => Date[];\n\thandleSelectionChange?: (event: CustomEvent) => DynamicDateRangeValue | undefined;\n\ttemplate?: JsxTemplate;\n\tisValidString: (value: string) => boolean;\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 *\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\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@property({ type: Object })\n\tcurrentValue?: DynamicDateRangeValue;\n\n\toptionsObjects: IDynamicDateRangeOption[] = [];\n\n\tstatic optionsClasses: Map<string, new () => 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\tconst optionKeys = this.options.split(\",\").map(option => option.trim());\n\n\t\tthis.optionsObjects = optionKeys.map(option => {\n\t\t\tconst OptionClass = DynamicDateRange.getOptionClass(option);\n\t\t\tlet optionObject;\n\n\t\t\tif (OptionClass) {\n\t\t\t\toptionObject = new OptionClass();\n\t\t\t}\n\n\t\t\treturn optionObject;\n\t\t}).filter(optionObject => optionObject !== undefined);\n\n\t\tif (this.value) {\n\t\t\tconst selectedItem = this._list?.items.find(item => {\n\t\t\t\tconst option = this.optionsObjects.find(x => x.operator === this.value?.operator);\n\t\t\t\treturn option && item.textContent === option.text;\n\t\t\t}) as ListItem;\n\n\t\t\tthis._list?.focusItem(selectedItem);\n\t\t}\n\t}\n\n\tget _optionsTitles(): Array<string> {\n\t\treturn this.optionsObjects.map(option => option.text);\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.open = false;\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\tif (!this._currentOption?.template) {\n\t\t\tthis.currentValue = this._currentOption?.parse(this._currentOption.text);\n\t\t\tthis._submitValue();\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\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 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): Date[] {\n\t\treturn this.getOption(value.operator)?.toDates(value) as Date[];\n\t}\n\n\tget _hasCurrentOptionTemplate(): boolean {\n\t\treturn !!this._currentOption?.template;\n\t}\n\n\t_submitValue() {\n\t\tconst stringValue = this._currentOption?.format(this.currentValue!) as string;\n\n\t\tif (this._input) {\n\t\t\tthis._input.value = stringValue;\n\t\t}\n\n\t\tif (this._currentOption?.isValidString(stringValue)) {\n\t\t\tthis.value = this.currentValue as DynamicDateRangeValue;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.value = undefined;\n\t\t}\n\n\t\tthis._currentOption = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_close() {\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 && this.currentValue.operator === this._currentOption?.operator) {\n\t\t\treturn `${DynamicDateRange.i18nBundle.getText(DYNAMIC_DATE_RANGE_SELECTED_TEXT)}: ${this._currentOption?.format(this.currentValue)}`;\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\tthis.currentValue = this._currentOption?.handleSelectionChange && this._currentOption?.handleSelectionChange(e) as DynamicDateRangeValue;\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"]}
@@ -6,7 +6,7 @@ export default function InputTemplate(hooks) {
6
6
  const suggestionsList = hooks?.suggestionsList;
7
7
  const preContent = hooks?.preContent || defaultPreContent;
8
8
  const postContent = hooks?.postContent || defaultPostContent;
9
- return (_jsxs(_Fragment, { children: [_jsx("div", { class: "ui5-input-root ui5-input-focusable-element", part: "root", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, children: _jsxs("div", { class: "ui5-input-content", children: [preContent.call(this), _jsx("input", { id: "inner", part: "input", class: "ui5-input-inner", style: this.styles.innerInput, type: this.inputNativeType, "inner-input": true, "inner-input-with-icon": this.icon.length, disabled: this.disabled, readonly: this._readonly, value: this._innerValue, placeholder: this._placeholder, maxlength: this.maxlength, role: this.accInfo.role, enterkeyhint: this.hint, "aria-controls": this.accInfo.ariaControls, "aria-invalid": this.accInfo.ariaInvalid, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-describedby": this.accInfo.ariaDescribedBy, "aria-roledescription": this.accInfo.ariaRoledescription, "aria-autocomplete": this.accInfo.ariaAutoComplete, "aria-expanded": this.accInfo.ariaExpanded, "aria-label": this.accInfo.ariaLabel, "aria-required": this.required, autocomplete: "off", "data-sap-focus-ref": true, step: this.nativeInputAttributes.step, min: this.nativeInputAttributes.min, max: this.nativeInputAttributes.max, onInput: this._handleNativeInput, onChange: this._handleChange, onSelect: this._handleSelect, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._click, onFocusIn: this.innerFocusIn }), this._effectiveShowClearIcon &&
9
+ return (_jsxs(_Fragment, { children: [_jsx("div", { class: "ui5-input-root ui5-input-focusable-element", part: "root", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, children: _jsxs("div", { class: "ui5-input-content", children: [preContent.call(this), _jsx("input", { id: "inner", part: "input", class: "ui5-input-inner", style: this.styles.innerInput, type: this.inputNativeType, "inner-input": true, "inner-input-with-icon": !!this.icon.length, disabled: this.disabled, readonly: this._readonly, value: this._innerValue, placeholder: this._placeholder, maxlength: this.maxlength, role: this.accInfo.role, enterkeyhint: this.hint, "aria-controls": this.accInfo.ariaControls, "aria-invalid": this.accInfo.ariaInvalid, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-describedby": this.accInfo.ariaDescribedBy, "aria-roledescription": this.accInfo.ariaRoledescription, "aria-autocomplete": this.accInfo.ariaAutoComplete, "aria-expanded": this.accInfo.ariaExpanded, "aria-label": this.accInfo.ariaLabel, "aria-required": this.required, autocomplete: "off", "data-sap-focus-ref": true, step: this.nativeInputAttributes.step, min: this.nativeInputAttributes.min, max: this.nativeInputAttributes.max, onInput: this._handleNativeInput, onChange: this._handleChange, onSelect: this._handleSelect, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._click, onFocusIn: this.innerFocusIn }), this._effectiveShowClearIcon &&
10
10
  _jsx("div", { tabindex: -1, class: "ui5-input-clear-icon-wrapper inputIcon", part: "clear-icon-wrapper", onClick: this._clear, onMouseDown: this._iconMouseDown, children: _jsx(Icon, { part: "clear-icon", class: "ui5-input-clear-icon", name: decline, tabindex: -1, accessibleName: this.clearIconAccessibleName }) }), this.icon.length > 0 &&
11
11
  _jsx("div", { class: "ui5-input-icon-root", tabindex: -1, children: _jsx("slot", { name: "icon" }) }), _jsx("div", { class: "ui5-input-value-state-icon", children: this._valueStateInputIcon }), postContent.call(this), this._effectiveShowSuggestions &&
12
12
  _jsxs(_Fragment, { children: [_jsx("span", { id: "suggestionsText", class: "ui5-hidden-text", children: this.suggestionsText }), _jsx("span", { id: "selectionText", class: "ui5-hidden-text", "aria-live": "polite", role: "status" }), _jsx("span", { id: "suggestionsCount", class: "ui5-hidden-text", "aria-live": "polite", children: this.availableSuggestionsCount })] }), this.accInfo.ariaDescription &&
@@ -1 +1 @@
1
- {"version":3,"file":"InputTemplate.js","sourceRoot":"","sources":["../src/InputTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Input from \"./Input.js\";\nimport type { JsxTemplateResult } from \"@ui5/webcomponents-base/dist/index.js\";\nimport Icon from \"./Icon.js\";\nimport decline from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport InputPopoverTemplate from \"./InputPopoverTemplate.js\";\n\ntype TemplateHook = () => JsxTemplateResult;\n\nexport default function InputTemplate(this: Input, hooks?: { preContent: TemplateHook, postContent: TemplateHook, suggestionsList?: TemplateHook }) {\n\tconst suggestionsList = hooks?.suggestionsList;\n\tconst preContent = hooks?.preContent || defaultPreContent;\n\tconst postContent = hooks?.postContent || defaultPostContent;\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-input-root ui5-input-focusable-element\"\n\t\t\t\tpart=\"root\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t>\n\t\t\t\t<div class=\"ui5-input-content\">\n\t\t\t\t\t{ preContent.call(this) }\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"inner\"\n\t\t\t\t\t\tpart=\"input\"\n\t\t\t\t\t\tclass=\"ui5-input-inner\"\n\t\t\t\t\t\tstyle={this.styles.innerInput}\n\t\t\t\t\t\ttype={this.inputNativeType}\n\t\t\t\t\t\tinner-input\n\t\t\t\t\t\tinner-input-with-icon={this.icon.length}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\treadonly={this._readonly}\n\t\t\t\t\t\tvalue={this._innerValue}\n\t\t\t\t\t\tplaceholder={this._placeholder}\n\t\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\t\trole={this.accInfo.role}\n\t\t\t\t\t\tenterkeyhint={this.hint}\n\t\t\t\t\t\taria-controls={this.accInfo.ariaControls}\n\t\t\t\t\t\taria-invalid={this.accInfo.ariaInvalid}\n\t\t\t\t\t\taria-haspopup={this.accInfo.ariaHasPopup}\n\t\t\t\t\t\taria-describedby={this.accInfo.ariaDescribedBy}\n\t\t\t\t\t\taria-roledescription={this.accInfo.ariaRoledescription}\n\t\t\t\t\t\taria-autocomplete={this.accInfo.ariaAutoComplete}\n\t\t\t\t\t\taria-expanded={this.accInfo.ariaExpanded}\n\t\t\t\t\t\taria-label={this.accInfo.ariaLabel}\n\t\t\t\t\t\taria-required={this.required}\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t\tstep={this.nativeInputAttributes.step}\n\t\t\t\t\t\tmin={this.nativeInputAttributes.min}\n\t\t\t\t\t\tmax={this.nativeInputAttributes.max}\n\t\t\t\t\t\tonInput={this._handleNativeInput}\n\t\t\t\t\t\tonChange={this._handleChange}\n\t\t\t\t\t\tonSelect={this._handleSelect}\n\t\t\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t\t\t\tonClick={this._click}\n\t\t\t\t\t\tonFocusIn={this.innerFocusIn}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{this._effectiveShowClearIcon &&\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\tclass=\"ui5-input-clear-icon-wrapper inputIcon\"\n\t\t\t\t\t\t\tpart=\"clear-icon-wrapper\"\n\t\t\t\t\t\t\tonClick={this._clear}\n\t\t\t\t\t\t\tonMouseDown={this._iconMouseDown}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tpart=\"clear-icon\"\n\t\t\t\t\t\t\t\tclass=\"ui5-input-clear-icon\"\n\t\t\t\t\t\t\t\tname={decline}\n\t\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\t\taccessibleName={this.clearIconAccessibleName}>\n\t\t\t\t\t\t\t</Icon>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.icon.length > 0 &&\n\t\t\t\t\t\t<div class=\"ui5-input-icon-root\"\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name=\"icon\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t<div class=\"ui5-input-value-state-icon\">\n\t\t\t\t\t\t{this._valueStateInputIcon}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{ postContent.call(this) }\n\n\t\t\t\t\t{this._effectiveShowSuggestions &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span id=\"suggestionsText\" class=\"ui5-hidden-text\">{this.suggestionsText}</span>\n\t\t\t\t\t\t\t<span id=\"selectionText\" class=\"ui5-hidden-text\" aria-live=\"polite\" role=\"status\"></span>\n\t\t\t\t\t\t\t<span id=\"suggestionsCount\" class=\"ui5-hidden-text\" aria-live=\"polite\">{this.availableSuggestionsCount}</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.accInfo.ariaDescription &&\n\t\t\t\t\t\t<span id=\"descr\" class=\"ui5-hidden-text\">{this.accInfo.ariaDescription}</span>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.accInfo.accessibleDescription &&\n\t\t\t\t\t\t<span id=\"accessibleDescription\" class=\"ui5-hidden-text\">{this.accInfo.accessibleDescription}</span>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.hasValueState &&\n\t\t\t\t\t\t<span id=\"valueStateDesc\" class=\"ui5-hidden-text\">{this.ariaValueStateHiddenText}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{ InputPopoverTemplate.call(this, { suggestionsList }) }\n\t\t</>\n\t);\n}\n\nfunction defaultPreContent() {}\n\nfunction defaultPostContent() {}\n"]}
1
+ {"version":3,"file":"InputTemplate.js","sourceRoot":"","sources":["../src/InputTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Input from \"./Input.js\";\nimport type { JsxTemplateResult } from \"@ui5/webcomponents-base/dist/index.js\";\nimport Icon from \"./Icon.js\";\nimport decline from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport InputPopoverTemplate from \"./InputPopoverTemplate.js\";\n\ntype TemplateHook = () => JsxTemplateResult;\n\nexport default function InputTemplate(this: Input, hooks?: { preContent: TemplateHook, postContent: TemplateHook, suggestionsList?: TemplateHook }) {\n\tconst suggestionsList = hooks?.suggestionsList;\n\tconst preContent = hooks?.preContent || defaultPreContent;\n\tconst postContent = hooks?.postContent || defaultPostContent;\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-input-root ui5-input-focusable-element\"\n\t\t\t\tpart=\"root\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t>\n\t\t\t\t<div class=\"ui5-input-content\">\n\t\t\t\t\t{ preContent.call(this) }\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"inner\"\n\t\t\t\t\t\tpart=\"input\"\n\t\t\t\t\t\tclass=\"ui5-input-inner\"\n\t\t\t\t\t\tstyle={this.styles.innerInput}\n\t\t\t\t\t\ttype={this.inputNativeType}\n\t\t\t\t\t\tinner-input\n\t\t\t\t\t\tinner-input-with-icon={!!this.icon.length}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\treadonly={this._readonly}\n\t\t\t\t\t\tvalue={this._innerValue}\n\t\t\t\t\t\tplaceholder={this._placeholder}\n\t\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\t\trole={this.accInfo.role}\n\t\t\t\t\t\tenterkeyhint={this.hint}\n\t\t\t\t\t\taria-controls={this.accInfo.ariaControls}\n\t\t\t\t\t\taria-invalid={this.accInfo.ariaInvalid}\n\t\t\t\t\t\taria-haspopup={this.accInfo.ariaHasPopup}\n\t\t\t\t\t\taria-describedby={this.accInfo.ariaDescribedBy}\n\t\t\t\t\t\taria-roledescription={this.accInfo.ariaRoledescription}\n\t\t\t\t\t\taria-autocomplete={this.accInfo.ariaAutoComplete}\n\t\t\t\t\t\taria-expanded={this.accInfo.ariaExpanded}\n\t\t\t\t\t\taria-label={this.accInfo.ariaLabel}\n\t\t\t\t\t\taria-required={this.required}\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tdata-sap-focus-ref\n\t\t\t\t\t\tstep={this.nativeInputAttributes.step}\n\t\t\t\t\t\tmin={this.nativeInputAttributes.min}\n\t\t\t\t\t\tmax={this.nativeInputAttributes.max}\n\t\t\t\t\t\tonInput={this._handleNativeInput}\n\t\t\t\t\t\tonChange={this._handleChange}\n\t\t\t\t\t\tonSelect={this._handleSelect}\n\t\t\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t\t\t\tonClick={this._click}\n\t\t\t\t\t\tonFocusIn={this.innerFocusIn}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{this._effectiveShowClearIcon &&\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\tclass=\"ui5-input-clear-icon-wrapper inputIcon\"\n\t\t\t\t\t\t\tpart=\"clear-icon-wrapper\"\n\t\t\t\t\t\t\tonClick={this._clear}\n\t\t\t\t\t\t\tonMouseDown={this._iconMouseDown}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tpart=\"clear-icon\"\n\t\t\t\t\t\t\t\tclass=\"ui5-input-clear-icon\"\n\t\t\t\t\t\t\t\tname={decline}\n\t\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t\t\taccessibleName={this.clearIconAccessibleName}>\n\t\t\t\t\t\t\t</Icon>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.icon.length > 0 &&\n\t\t\t\t\t\t<div class=\"ui5-input-icon-root\"\n\t\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name=\"icon\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t<div class=\"ui5-input-value-state-icon\">\n\t\t\t\t\t\t{this._valueStateInputIcon}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{ postContent.call(this) }\n\n\t\t\t\t\t{this._effectiveShowSuggestions &&\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span id=\"suggestionsText\" class=\"ui5-hidden-text\">{this.suggestionsText}</span>\n\t\t\t\t\t\t\t<span id=\"selectionText\" class=\"ui5-hidden-text\" aria-live=\"polite\" role=\"status\"></span>\n\t\t\t\t\t\t\t<span id=\"suggestionsCount\" class=\"ui5-hidden-text\" aria-live=\"polite\">{this.availableSuggestionsCount}</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.accInfo.ariaDescription &&\n\t\t\t\t\t\t<span id=\"descr\" class=\"ui5-hidden-text\">{this.accInfo.ariaDescription}</span>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.accInfo.accessibleDescription &&\n\t\t\t\t\t\t<span id=\"accessibleDescription\" class=\"ui5-hidden-text\">{this.accInfo.accessibleDescription}</span>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.hasValueState &&\n\t\t\t\t\t\t<span id=\"valueStateDesc\" class=\"ui5-hidden-text\">{this.ariaValueStateHiddenText}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{ InputPopoverTemplate.call(this, { suggestionsList }) }\n\t\t</>\n\t);\n}\n\nfunction defaultPreContent() {}\n\nfunction defaultPostContent() {}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  export default function MonthPickerTemplate() {
3
- return (_jsx("div", { class: "ui5-mp-root", role: "grid", "aria-roledescription": this.roleDescription, "aria-readonly": "false", "aria-multiselectable": "false", onMouseOver: this._onmouseover, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._selectMonth, children: this._monthsInterval.map(months => _jsx("div", { role: "row", class: "ui5-mp-quarter", children: months.map(month => _jsxs("div", { "data-sap-timestamp": month.timestamp, tabindex: month._tabIndex, "data-sap-focus-ref": month.focusRef ? "true" : undefined, class: month.classes, part: month.parts, role: "gridcell", "aria-selected": month.ariaSelected, "aria-disabled": month.ariaDisabled, children: [_jsx("span", { class: "ui5-dp-monthtext", children: month.name }), month.nameInSecType &&
3
+ return (_jsx("div", { class: "ui5-mp-root", part: "month-picker-root", role: "grid", "aria-roledescription": this.roleDescription, "aria-readonly": "false", "aria-multiselectable": "false", onMouseOver: this._onmouseover, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._selectMonth, children: this._monthsInterval.map(months => _jsx("div", { role: "row", class: "ui5-mp-quarter", children: months.map(month => _jsxs("div", { "data-sap-timestamp": month.timestamp, tabindex: month._tabIndex, "data-sap-focus-ref": month.focusRef ? "true" : undefined, class: month.classes, part: month.parts, role: "gridcell", "aria-selected": month.ariaSelected, "aria-disabled": month.ariaDisabled, children: [_jsx("span", { class: "ui5-dp-monthtext", children: month.name }), month.nameInSecType &&
4
4
  _jsx("span", { class: "ui5-dp-monthtext ui5-dp-monthsectext", children: month.nameInSecType })] })) })) }));
5
5
  }
6
6
  //# sourceMappingURL=MonthPickerTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonthPickerTemplate.js","sourceRoot":"","sources":["../src/MonthPickerTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,cACC,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,MAAM,0BACW,IAAI,CAAC,eAAe,mBAC5B,OAAO,0BACA,OAAO,EAC5B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,OAAO,EAAE,IAAI,CAAC,YAAY,YAEzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClC,cAAK,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,gBAAgB,YAEpC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnB,qCACqB,KAAK,CAAC,SAAS,EACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,wBACL,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACvD,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,IAAI,EAAE,KAAK,CAAC,KAAK,EACjB,IAAI,EAAC,UAAU,mBACA,KAAK,CAAC,YAAY,mBAClB,KAAK,CAAC,YAAY,aAEjC,eAAM,KAAK,EAAC,kBAAkB,YAC5B,KAAK,CAAC,IAAI,GACL,EAEN,KAAK,CAAC,aAAa;wBACrB,eAAM,KAAK,EAAC,sCAAsC,YAChD,KAAK,CAAC,aAAa,GACd,IAED,CACN,GACI,CACN,GACI,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type MonthPicker from \"./MonthPicker.js\";\n\nexport default function MonthPickerTemplate(this: MonthPicker) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-mp-root\"\n\t\t\trole=\"grid\"\n\t\t\taria-roledescription={this.roleDescription}\n\t\t\taria-readonly=\"false\"\n\t\t\taria-multiselectable=\"false\"\n\t\t\tonMouseOver={this._onmouseover}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonClick={this._selectMonth}\n\t\t>\n\t\t\t{this._monthsInterval.map(months =>\n\t\t\t\t<div role=\"row\" class=\"ui5-mp-quarter\">\n\n\t\t\t\t\t{months.map(month =>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-sap-timestamp={month.timestamp}\n\t\t\t\t\t\t\ttabindex={month._tabIndex}\n\t\t\t\t\t\t\tdata-sap-focus-ref={month.focusRef ? \"true\" : undefined}\n\t\t\t\t\t\t\tclass={month.classes}\n\t\t\t\t\t\t\tpart={month.parts}\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\taria-selected={month.ariaSelected}\n\t\t\t\t\t\t\taria-disabled={month.ariaDisabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"ui5-dp-monthtext\">\n\t\t\t\t\t\t\t\t{month.name}\n\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t{month.nameInSecType &&\n\t\t\t\t\t\t<span class=\"ui5-dp-monthtext ui5-dp-monthsectext\">\n\t\t\t\t\t\t\t{month.nameInSecType}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>);\n}\n"]}
1
+ {"version":3,"file":"MonthPickerTemplate.js","sourceRoot":"","sources":["../src/MonthPickerTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,cACC,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAC,MAAM,0BACW,IAAI,CAAC,eAAe,mBAC5B,OAAO,0BACA,OAAO,EAC5B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,OAAO,EAAE,IAAI,CAAC,YAAY,YAEzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClC,cAAK,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,gBAAgB,YAEpC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnB,qCACqB,KAAK,CAAC,SAAS,EACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,wBACL,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACvD,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,IAAI,EAAE,KAAK,CAAC,KAAK,EACjB,IAAI,EAAC,UAAU,mBACA,KAAK,CAAC,YAAY,mBAClB,KAAK,CAAC,YAAY,aAEjC,eAAM,KAAK,EAAC,kBAAkB,YAC5B,KAAK,CAAC,IAAI,GACL,EAEN,KAAK,CAAC,aAAa;wBACrB,eAAM,KAAK,EAAC,sCAAsC,YAChD,KAAK,CAAC,aAAa,GACd,IAED,CACN,GACI,CACN,GACI,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type MonthPicker from \"./MonthPicker.js\";\n\nexport default function MonthPickerTemplate(this: MonthPicker) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-mp-root\"\n\t\t\tpart=\"month-picker-root\"\n\t\t\trole=\"grid\"\n\t\t\taria-roledescription={this.roleDescription}\n\t\t\taria-readonly=\"false\"\n\t\t\taria-multiselectable=\"false\"\n\t\t\tonMouseOver={this._onmouseover}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonClick={this._selectMonth}\n\t\t>\n\t\t\t{this._monthsInterval.map(months =>\n\t\t\t\t<div role=\"row\" class=\"ui5-mp-quarter\">\n\n\t\t\t\t\t{months.map(month =>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-sap-timestamp={month.timestamp}\n\t\t\t\t\t\t\ttabindex={month._tabIndex}\n\t\t\t\t\t\t\tdata-sap-focus-ref={month.focusRef ? \"true\" : undefined}\n\t\t\t\t\t\t\tclass={month.classes}\n\t\t\t\t\t\t\tpart={month.parts}\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\taria-selected={month.ariaSelected}\n\t\t\t\t\t\t\taria-disabled={month.ariaDisabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"ui5-dp-monthtext\">\n\t\t\t\t\t\t\t\t{month.name}\n\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t{month.nameInSecType &&\n\t\t\t\t\t\t<span class=\"ui5-dp-monthtext ui5-dp-monthsectext\">\n\t\t\t\t\t\t\t{month.nameInSecType}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>);\n}\n"]}
package/dist/Popover.d.ts CHANGED
@@ -179,7 +179,7 @@ declare class Popover extends Popup {
179
179
  * @returns The adjusted top in px.
180
180
  */
181
181
  _adjustForIOSKeyboard(top: number): number;
182
- getPopoverSize(): PopoverSize;
182
+ getPopoverSize(calcScrollHeight?: boolean): PopoverSize;
183
183
  _showOutsideViewport(): void;
184
184
  _isUI5AbstractElement(el: HTMLElement): el is UI5Element;
185
185
  get arrowDOM(): Element;
@@ -209,7 +209,7 @@ declare class Popover extends Popup {
209
209
  * @private
210
210
  */
211
211
  fallbackPlacement(clientWidth: number, clientHeight: number, targetRect: DOMRect, popoverSize: PopoverSize): PopoverPlacement | undefined;
212
- getActualPlacement(targetRect: DOMRect, popoverSize: PopoverSize): `${PopoverPlacement}`;
212
+ getActualPlacement(targetRect: DOMRect): `${PopoverPlacement}`;
213
213
  getVerticalLeft(targetRect: DOMRect, popoverSize: PopoverSize): number;
214
214
  getHorizontalTop(targetRect: DOMRect, popoverSize: PopoverSize): number;
215
215
  get isModal(): boolean;
package/dist/Popover.js CHANGED
@@ -320,8 +320,22 @@ let Popover = Popover_1 = class Popover extends Popup {
320
320
  const actualTop = Math.ceil(this.getBoundingClientRect().top);
321
321
  return top + (Number.parseInt(this.style.top || "0") - actualTop);
322
322
  }
323
- getPopoverSize() {
324
- const rect = this.getBoundingClientRect(), width = rect.width, height = rect.height;
323
+ getPopoverSize(calcScrollHeight = false) {
324
+ const rect = this.getBoundingClientRect();
325
+ const width = rect.width;
326
+ let height;
327
+ const domRef = this.getDomRef();
328
+ if (calcScrollHeight && domRef) {
329
+ const header = domRef.querySelector(".ui5-popup-header-root");
330
+ const content = domRef.querySelector(".ui5-popup-content");
331
+ const footer = domRef.querySelector(".ui5-popup-footer-root");
332
+ height = content?.scrollHeight || 0;
333
+ height += header?.scrollHeight || 0;
334
+ height += footer?.scrollHeight || 0;
335
+ }
336
+ else {
337
+ height = rect.height;
338
+ }
325
339
  return { width, height };
326
340
  }
327
341
  _showOutsideViewport() {
@@ -353,7 +367,7 @@ let Popover = Popover_1 = class Popover extends Popup {
353
367
  const clientHeight = document.documentElement.clientHeight;
354
368
  let maxHeight = clientHeight;
355
369
  let maxWidth = clientWidth;
356
- const placement = this.getActualPlacement(targetRect, popoverSize);
370
+ const placement = this.getActualPlacement(targetRect);
357
371
  this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placement, targetRect);
358
372
  const isVertical = placement === PopoverPlacement.Top
359
373
  || placement === PopoverPlacement.Bottom;
@@ -498,20 +512,28 @@ let Popover = Popover_1 = class Popover extends Popup {
498
512
  return PopoverPlacement.Top;
499
513
  }
500
514
  }
501
- getActualPlacement(targetRect, popoverSize) {
515
+ getActualPlacement(targetRect) {
502
516
  const placement = this.placement;
503
517
  let actualPlacement = placement;
518
+ const isVertical = placement === PopoverPlacement.Top
519
+ || placement === PopoverPlacement.Bottom;
520
+ const popoverSize = this.getPopoverSize(!this.allowTargetOverlap);
504
521
  const clientWidth = document.documentElement.clientWidth;
505
- const clientHeight = document.documentElement.clientHeight;
522
+ let clientHeight = document.documentElement.clientHeight;
523
+ let popoverHeight = popoverSize.height;
524
+ if (isVertical) {
525
+ popoverHeight += this.hideArrow ? 0 : ARROW_SIZE;
526
+ clientHeight -= Popover_1.VIEWPORT_MARGIN;
527
+ }
506
528
  switch (placement) {
507
529
  case PopoverPlacement.Top:
508
- if (targetRect.top < popoverSize.height
530
+ if (targetRect.top < popoverHeight
509
531
  && targetRect.top < clientHeight - targetRect.bottom) {
510
532
  actualPlacement = PopoverPlacement.Bottom;
511
533
  }
512
534
  break;
513
535
  case PopoverPlacement.Bottom:
514
- if (clientHeight - targetRect.bottom < popoverSize.height
536
+ if (clientHeight - targetRect.bottom < popoverHeight
515
537
  && clientHeight - targetRect.bottom < targetRect.top) {
516
538
  actualPlacement = PopoverPlacement.Top;
517
539
  }