@ui5/webcomponents 2.0.0-rc.3 → 2.0.0-rc.4

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 (818) hide show
  1. package/.env.testing +4 -0
  2. package/CHANGELOG.md +215 -0
  3. package/README.md +0 -33
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/Avatar.d.ts +2 -2
  6. package/dist/AvatarGroup.d.ts +4 -4
  7. package/dist/Breadcrumbs.d.ts +1 -1
  8. package/dist/Breadcrumbs.js +10 -5
  9. package/dist/Breadcrumbs.js.map +1 -1
  10. package/dist/Button.d.ts +26 -13
  11. package/dist/Button.js +34 -18
  12. package/dist/Button.js.map +1 -1
  13. package/dist/Calendar.d.ts +10 -5
  14. package/dist/Calendar.js +81 -26
  15. package/dist/Calendar.js.map +1 -1
  16. package/dist/CalendarDate.d.ts +2 -1
  17. package/dist/CalendarDate.js +1 -0
  18. package/dist/CalendarDate.js.map +1 -1
  19. package/dist/CalendarDateRange.d.ts +31 -0
  20. package/dist/CalendarDateRange.js +36 -0
  21. package/dist/CalendarDateRange.js.map +1 -0
  22. package/dist/CalendarHeader.js +8 -8
  23. package/dist/CalendarHeader.js.map +1 -1
  24. package/dist/CheckBox.d.ts +8 -17
  25. package/dist/CheckBox.js +14 -22
  26. package/dist/CheckBox.js.map +1 -1
  27. package/dist/ColorPalette.d.ts +19 -0
  28. package/dist/ColorPalette.js +112 -13
  29. package/dist/ColorPalette.js.map +1 -1
  30. package/dist/ColorPaletteItem.d.ts +16 -0
  31. package/dist/ColorPaletteItem.js +10 -0
  32. package/dist/ColorPaletteItem.js.map +1 -1
  33. package/dist/ColorPalettePopover.d.ts +5 -0
  34. package/dist/ColorPalettePopover.js +15 -0
  35. package/dist/ColorPalettePopover.js.map +1 -1
  36. package/dist/ColorPicker.d.ts +13 -1
  37. package/dist/ColorPicker.js +10 -0
  38. package/dist/ColorPicker.js.map +1 -1
  39. package/dist/ComboBox.d.ts +23 -11
  40. package/dist/ComboBox.js +156 -58
  41. package/dist/ComboBox.js.map +1 -1
  42. package/dist/ComboBoxItem.d.ts +5 -5
  43. package/dist/ComboBoxItem.js +3 -7
  44. package/dist/ComboBoxItem.js.map +1 -1
  45. package/dist/{ComboBoxGroupItem.d.ts → ComboBoxItemGroup.d.ts} +11 -3
  46. package/dist/{ComboBoxGroupItem.js → ComboBoxItemGroup.js} +24 -9
  47. package/dist/ComboBoxItemGroup.js.map +1 -0
  48. package/dist/CustomListItem.d.ts +7 -0
  49. package/dist/CustomListItem.js +7 -2
  50. package/dist/CustomListItem.js.map +1 -1
  51. package/dist/DatePicker.d.ts +9 -18
  52. package/dist/DatePicker.js +19 -15
  53. package/dist/DatePicker.js.map +1 -1
  54. package/dist/DateRangePicker.d.ts +5 -1
  55. package/dist/DateRangePicker.js +21 -0
  56. package/dist/DateRangePicker.js.map +1 -1
  57. package/dist/DateTimePicker.d.ts +4 -1
  58. package/dist/DateTimePicker.js +14 -0
  59. package/dist/DateTimePicker.js.map +1 -1
  60. package/dist/DayPicker.js +6 -4
  61. package/dist/DayPicker.js.map +1 -1
  62. package/dist/Dialog.d.ts +0 -16
  63. package/dist/Dialog.js +0 -21
  64. package/dist/Dialog.js.map +1 -1
  65. package/dist/FileUploader.d.ts +6 -23
  66. package/dist/FileUploader.js +15 -46
  67. package/dist/FileUploader.js.map +1 -1
  68. package/dist/Form.d.ts +198 -0
  69. package/dist/Form.js +358 -0
  70. package/dist/Form.js.map +1 -0
  71. package/dist/FormGroup.d.ts +63 -0
  72. package/dist/FormGroup.js +86 -0
  73. package/dist/FormGroup.js.map +1 -0
  74. package/dist/FormItem.d.ts +62 -0
  75. package/dist/FormItem.js +76 -0
  76. package/dist/FormItem.js.map +1 -0
  77. package/dist/Input.d.ts +17 -30
  78. package/dist/Input.js +46 -48
  79. package/dist/Input.js.map +1 -1
  80. package/dist/Label.d.ts +1 -1
  81. package/dist/Label.js +1 -1
  82. package/dist/Label.js.map +1 -1
  83. package/dist/Link.d.ts +4 -3
  84. package/dist/Link.js +2 -1
  85. package/dist/Link.js.map +1 -1
  86. package/dist/List.d.ts +3 -2
  87. package/dist/List.js +45 -0
  88. package/dist/List.js.map +1 -1
  89. package/dist/ListItem.d.ts +8 -15
  90. package/dist/ListItem.js +25 -34
  91. package/dist/ListItem.js.map +1 -1
  92. package/dist/ListItemBase.d.ts +24 -2
  93. package/dist/ListItemBase.js +48 -13
  94. package/dist/ListItemBase.js.map +1 -1
  95. package/dist/ListItemGroup.d.ts +6 -1
  96. package/dist/ListItemGroup.js +4 -1
  97. package/dist/ListItemGroup.js.map +1 -1
  98. package/dist/ListItemGroupHeader.d.ts +2 -0
  99. package/dist/ListItemGroupHeader.js +9 -0
  100. package/dist/ListItemGroupHeader.js.map +1 -1
  101. package/dist/Menu.d.ts +11 -90
  102. package/dist/Menu.js +62 -324
  103. package/dist/Menu.js.map +1 -1
  104. package/dist/MenuItem.d.ts +57 -22
  105. package/dist/MenuItem.js +106 -24
  106. package/dist/MenuItem.js.map +1 -1
  107. package/dist/MonthPicker.d.ts +1 -0
  108. package/dist/MonthPicker.js +10 -6
  109. package/dist/MonthPicker.js.map +1 -1
  110. package/dist/MultiComboBox.d.ts +17 -3
  111. package/dist/MultiComboBox.js +63 -25
  112. package/dist/MultiComboBox.js.map +1 -1
  113. package/dist/MultiInput.d.ts +18 -4
  114. package/dist/MultiInput.js +56 -31
  115. package/dist/MultiInput.js.map +1 -1
  116. package/dist/NavigationMenu.d.ts +1 -6
  117. package/dist/NavigationMenu.js +3 -47
  118. package/dist/NavigationMenu.js.map +1 -1
  119. package/dist/NavigationMenuItem.d.ts +22 -3
  120. package/dist/NavigationMenuItem.js +29 -4
  121. package/dist/NavigationMenuItem.js.map +1 -1
  122. package/dist/Option.d.ts +20 -33
  123. package/dist/Option.js +31 -19
  124. package/dist/Option.js.map +1 -1
  125. package/dist/OptionCustom.d.ts +51 -0
  126. package/dist/OptionCustom.js +63 -0
  127. package/dist/OptionCustom.js.map +1 -0
  128. package/dist/Panel.d.ts +1 -1
  129. package/dist/Popover.d.ts +8 -21
  130. package/dist/Popover.js +32 -44
  131. package/dist/Popover.js.map +1 -1
  132. package/dist/Popup.d.ts +20 -23
  133. package/dist/Popup.js +53 -57
  134. package/dist/Popup.js.map +1 -1
  135. package/dist/RadioButton.d.ts +16 -27
  136. package/dist/RadioButton.js +19 -31
  137. package/dist/RadioButton.js.map +1 -1
  138. package/dist/RadioButtonGroup.js +6 -5
  139. package/dist/RadioButtonGroup.js.map +1 -1
  140. package/dist/RangeSlider.d.ts +3 -1
  141. package/dist/RangeSlider.js +7 -0
  142. package/dist/RangeSlider.js.map +1 -1
  143. package/dist/ResponsivePopover.d.ts +4 -16
  144. package/dist/ResponsivePopover.js +17 -30
  145. package/dist/ResponsivePopover.js.map +1 -1
  146. package/dist/SegmentedButtonItem.d.ts +6 -1
  147. package/dist/SegmentedButtonItem.js +7 -4
  148. package/dist/SegmentedButtonItem.js.map +1 -1
  149. package/dist/Select.d.ts +27 -82
  150. package/dist/Select.js +83 -231
  151. package/dist/Select.js.map +1 -1
  152. package/dist/Slider.d.ts +3 -1
  153. package/dist/Slider.js +4 -0
  154. package/dist/Slider.js.map +1 -1
  155. package/dist/SliderBase.d.ts +11 -1
  156. package/dist/SliderBase.js +6 -0
  157. package/dist/SliderBase.js.map +1 -1
  158. package/dist/StandardListItem.d.ts +7 -0
  159. package/dist/StandardListItem.js +3 -0
  160. package/dist/StandardListItem.js.map +1 -1
  161. package/dist/StepInput.d.ts +6 -15
  162. package/dist/StepInput.js +7 -11
  163. package/dist/StepInput.js.map +1 -1
  164. package/dist/Switch.d.ts +8 -17
  165. package/dist/Switch.js +13 -21
  166. package/dist/Switch.js.map +1 -1
  167. package/dist/TabContainer.js +11 -5
  168. package/dist/TabContainer.js.map +1 -1
  169. package/dist/Tag.d.ts +1 -1
  170. package/dist/Tag.js.map +1 -1
  171. package/dist/TextArea.d.ts +9 -18
  172. package/dist/TextArea.js +22 -15
  173. package/dist/TextArea.js.map +1 -1
  174. package/dist/TimePicker.d.ts +24 -24
  175. package/dist/TimePicker.js +32 -59
  176. package/dist/TimePicker.js.map +1 -1
  177. package/dist/TimeSelectionClocks.js +2 -0
  178. package/dist/TimeSelectionClocks.js.map +1 -1
  179. package/dist/TimeSelectionInputs.js +2 -0
  180. package/dist/TimeSelectionInputs.js.map +1 -1
  181. package/dist/Toast.d.ts +1 -1
  182. package/dist/Toast.js +2 -2
  183. package/dist/Toast.js.map +1 -1
  184. package/dist/ToggleSpinButton.d.ts +1 -1
  185. package/dist/ToggleSpinButton.js +1 -1
  186. package/dist/ToggleSpinButton.js.map +1 -1
  187. package/dist/Token.d.ts +5 -0
  188. package/dist/Token.js +3 -0
  189. package/dist/Token.js.map +1 -1
  190. package/dist/Tokenizer.d.ts +11 -5
  191. package/dist/Tokenizer.js +93 -71
  192. package/dist/Tokenizer.js.map +1 -1
  193. package/dist/Toolbar.d.ts +5 -0
  194. package/dist/Toolbar.js +16 -4
  195. package/dist/Toolbar.js.map +1 -1
  196. package/dist/ToolbarButton.d.ts +11 -3
  197. package/dist/ToolbarButton.js +2 -2
  198. package/dist/ToolbarButton.js.map +1 -1
  199. package/dist/TreeItemBase.d.ts +8 -1
  200. package/dist/TreeItemBase.js +3 -1
  201. package/dist/TreeItemBase.js.map +1 -1
  202. package/dist/TreeItemCustom.js +4 -2
  203. package/dist/TreeItemCustom.js.map +1 -1
  204. package/dist/bundle.esm.d.ts +0 -1
  205. package/dist/bundle.esm.js +5 -3
  206. package/dist/bundle.esm.js.map +1 -1
  207. package/dist/css/themes/Avatar.css +1 -1
  208. package/dist/css/themes/AvatarGroup.css +1 -1
  209. package/dist/css/themes/Bar.css +1 -1
  210. package/dist/css/themes/Breadcrumbs.css +1 -1
  211. package/dist/css/themes/BusyIndicator.css +1 -1
  212. package/dist/css/themes/Button.css +1 -1
  213. package/dist/css/themes/Calendar.css +1 -1
  214. package/dist/css/themes/CalendarHeader.css +1 -1
  215. package/dist/css/themes/CalendarLegend.css +1 -1
  216. package/dist/css/themes/CalendarLegendItem.css +1 -1
  217. package/dist/css/themes/Card.css +1 -1
  218. package/dist/css/themes/CardHeader.css +1 -1
  219. package/dist/css/themes/Carousel.css +1 -1
  220. package/dist/css/themes/CheckBox.css +1 -1
  221. package/dist/css/themes/ColorPalette.css +1 -1
  222. package/dist/css/themes/ColorPaletteItem.css +1 -1
  223. package/dist/css/themes/ColorPalettePopover.css +1 -1
  224. package/dist/css/themes/ColorPicker.css +1 -1
  225. package/dist/css/themes/ComboBox.css +1 -1
  226. package/dist/css/themes/CustomListItem.css +1 -1
  227. package/dist/css/themes/DatePicker.css +1 -1
  228. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  229. package/dist/css/themes/DayPicker.css +1 -1
  230. package/dist/css/themes/Dialog.css +1 -1
  231. package/dist/css/themes/FileUploader.css +1 -1
  232. package/dist/css/themes/Form.css +1 -0
  233. package/dist/css/themes/FormItem.css +1 -0
  234. package/dist/css/themes/FormLabelSpan.css +1 -0
  235. package/dist/css/themes/FormLayout.css +1 -0
  236. package/dist/css/themes/GrowingButton.css +1 -1
  237. package/dist/css/themes/Icon.css +1 -1
  238. package/dist/css/themes/Input.css +1 -1
  239. package/dist/css/themes/InputIcon.css +1 -1
  240. package/dist/css/themes/InputSharedStyles.css +1 -1
  241. package/dist/css/themes/Label.css +1 -1
  242. package/dist/css/themes/Link.css +1 -1
  243. package/dist/css/themes/List.css +1 -1
  244. package/dist/css/themes/ListItem.css +1 -1
  245. package/dist/css/themes/ListItemAdditionalText.css +1 -0
  246. package/dist/css/themes/ListItemBase.css +1 -1
  247. package/dist/css/themes/ListItemGroup.css +1 -1
  248. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  249. package/dist/css/themes/ListItemIcon.css +1 -0
  250. package/dist/css/themes/Menu.css +1 -1
  251. package/dist/css/themes/MenuItem.css +1 -0
  252. package/dist/css/themes/MessageStrip.css +1 -1
  253. package/dist/css/themes/MonthPicker.css +1 -1
  254. package/dist/css/themes/MultiComboBox.css +1 -1
  255. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  256. package/dist/css/themes/MultiInput.css +1 -1
  257. package/dist/css/themes/NavigationMenu.css +1 -1
  258. package/dist/css/themes/NavigationMenuItem.css +1 -0
  259. package/dist/css/themes/OptionBase.css +1 -0
  260. package/dist/css/themes/Panel.css +1 -1
  261. package/dist/css/themes/Popover.css +1 -1
  262. package/dist/css/themes/Popup.css +1 -1
  263. package/dist/css/themes/PopupsCommon.css +1 -1
  264. package/dist/css/themes/ProgressIndicator.css +1 -1
  265. package/dist/css/themes/RadioButton.css +1 -1
  266. package/dist/css/themes/RangeSlider.css +1 -1
  267. package/dist/css/themes/RatingIndicator.css +1 -1
  268. package/dist/css/themes/ResponsivePopover.css +1 -1
  269. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  270. package/dist/css/themes/SegmentedButton.css +1 -1
  271. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  272. package/dist/css/themes/Select.css +1 -1
  273. package/dist/css/themes/SelectPopover.css +1 -1
  274. package/dist/css/themes/SliderBase.css +1 -1
  275. package/dist/css/themes/SplitButton.css +1 -1
  276. package/dist/css/themes/StepInput.css +1 -1
  277. package/dist/css/themes/Switch.css +1 -1
  278. package/dist/css/themes/TabContainer.css +1 -1
  279. package/dist/css/themes/TabInOverflow.css +1 -1
  280. package/dist/css/themes/TabInStrip.css +1 -1
  281. package/dist/css/themes/TabSemanticIcon.css +1 -1
  282. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  283. package/dist/css/themes/Tag.css +1 -1
  284. package/dist/css/themes/Text.css +1 -1
  285. package/dist/css/themes/TextArea.css +1 -1
  286. package/dist/css/themes/TimePicker.css +1 -1
  287. package/dist/css/themes/Toast.css +1 -1
  288. package/dist/css/themes/ToggleButton.css +1 -1
  289. package/dist/css/themes/Token.css +1 -1
  290. package/dist/css/themes/Tokenizer.css +1 -1
  291. package/dist/css/themes/TokenizerPopover.css +1 -1
  292. package/dist/css/themes/Toolbar.css +1 -1
  293. package/dist/css/themes/ToolbarPopover.css +1 -1
  294. package/dist/css/themes/TreeItem.css +1 -1
  295. package/dist/css/themes/ValueStateMessage.css +1 -1
  296. package/dist/css/themes/YearPicker.css +1 -1
  297. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  298. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  299. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  300. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  301. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  302. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  303. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  304. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  305. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  306. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  307. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  308. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  309. package/dist/custom-elements-internal.json +2414 -1795
  310. package/dist/custom-elements.json +1979 -1523
  311. package/dist/features/InputSuggestions.js +3 -1
  312. package/dist/features/InputSuggestions.js.map +1 -1
  313. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  314. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  315. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  316. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  317. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  318. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  319. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  320. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  321. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  322. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  323. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  324. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  325. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  326. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  327. package/dist/generated/i18n/i18n-defaults.d.ts +6 -2
  328. package/dist/generated/i18n/i18n-defaults.js +6 -2
  329. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  330. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +2 -2
  331. package/dist/generated/templates/BusyIndicatorTemplate.lit.js.map +1 -1
  332. package/dist/generated/templates/ButtonTemplate.lit.js +3 -2
  333. package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
  334. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  335. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  336. package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
  337. package/dist/generated/templates/CheckBoxTemplate.lit.js.map +1 -1
  338. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +2 -2
  339. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js.map +1 -1
  340. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  341. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
  342. package/dist/generated/templates/ColorPaletteTemplate.lit.js +1 -1
  343. package/dist/generated/templates/ColorPaletteTemplate.lit.js.map +1 -1
  344. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +12 -9
  345. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  346. package/dist/generated/templates/ComboBoxTemplate.lit.js +14 -11
  347. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  348. package/dist/generated/templates/DatePickerInputTemplate.lit.js +2 -2
  349. package/dist/generated/templates/DatePickerInputTemplate.lit.js.map +1 -1
  350. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  351. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
  352. package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
  353. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  354. package/dist/generated/templates/DateRangePickerTemplate.lit.d.ts +4 -0
  355. package/dist/generated/templates/DateRangePickerTemplate.lit.js +9 -0
  356. package/dist/generated/templates/DateRangePickerTemplate.lit.js.map +1 -0
  357. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  358. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  359. package/dist/generated/templates/DateTimePickerTemplate.lit.js +2 -2
  360. package/dist/generated/templates/DateTimePickerTemplate.lit.js.map +1 -1
  361. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +1 -1
  362. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js.map +1 -1
  363. package/dist/generated/templates/FileUploaderTemplate.lit.js +5 -7
  364. package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
  365. package/dist/generated/templates/FormItemTemplate.lit.d.ts +4 -0
  366. package/dist/generated/templates/FormItemTemplate.lit.js +6 -0
  367. package/dist/generated/templates/FormItemTemplate.lit.js.map +1 -0
  368. package/dist/generated/templates/FormTemplate.lit.d.ts +4 -0
  369. package/dist/generated/templates/FormTemplate.lit.js +13 -0
  370. package/dist/generated/templates/FormTemplate.lit.js.map +1 -0
  371. package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
  372. package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
  373. package/dist/generated/templates/InputTemplate.lit.js +4 -4
  374. package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
  375. package/dist/generated/templates/{MenuListItemTemplate.lit.d.ts → ListItemBaseTemplate.lit.d.ts} +2 -2
  376. package/dist/generated/templates/ListItemBaseTemplate.lit.js +5 -0
  377. package/dist/generated/templates/ListItemBaseTemplate.lit.js.map +1 -0
  378. package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js +1 -1
  379. package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js.map +1 -1
  380. package/dist/generated/templates/ListItemGroupTemplate.lit.js +1 -1
  381. package/dist/generated/templates/ListItemGroupTemplate.lit.js.map +1 -1
  382. package/dist/generated/templates/MenuItemTemplate.lit.d.ts +4 -0
  383. package/dist/generated/templates/{MenuListItemTemplate.lit.js → MenuItemTemplate.lit.js} +21 -15
  384. package/dist/generated/templates/MenuItemTemplate.lit.js.map +1 -0
  385. package/dist/generated/templates/MenuTemplate.lit.js +6 -8
  386. package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
  387. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +2 -2
  388. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  389. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -4
  390. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  391. package/dist/generated/templates/MultiInputTemplate.lit.js +28 -27
  392. package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
  393. package/dist/generated/templates/NavigationMenuItemTemplate.lit.d.ts +4 -0
  394. package/dist/generated/templates/NavigationMenuItemTemplate.lit.js +57 -0
  395. package/dist/generated/templates/NavigationMenuItemTemplate.lit.js.map +1 -0
  396. package/dist/generated/templates/NavigationMenuTemplate.lit.js +6 -19
  397. package/dist/generated/templates/NavigationMenuTemplate.lit.js.map +1 -1
  398. package/dist/generated/templates/OptionCustomTemplate.lit.d.ts +4 -0
  399. package/dist/generated/templates/OptionCustomTemplate.lit.js +5 -0
  400. package/dist/generated/templates/OptionCustomTemplate.lit.js.map +1 -0
  401. package/dist/generated/templates/OptionTemplate.lit.d.ts +4 -0
  402. package/dist/generated/templates/OptionTemplate.lit.js +7 -0
  403. package/dist/generated/templates/OptionTemplate.lit.js.map +1 -0
  404. package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
  405. package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
  406. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +2 -2
  407. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
  408. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  409. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js.map +1 -1
  410. package/dist/generated/templates/SelectPopoverTemplate.lit.js +6 -7
  411. package/dist/generated/templates/SelectPopoverTemplate.lit.js.map +1 -1
  412. package/dist/generated/templates/SelectTemplate.lit.js +8 -9
  413. package/dist/generated/templates/SelectTemplate.lit.js.map +1 -1
  414. package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
  415. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  416. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  417. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  418. package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
  419. package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
  420. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  421. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js.map +1 -1
  422. package/dist/generated/templates/TextAreaTemplate.lit.js +2 -2
  423. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  424. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +2 -2
  425. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js.map +1 -1
  426. package/dist/generated/templates/TimePickerTemplate.lit.js +3 -3
  427. package/dist/generated/templates/TimePickerTemplate.lit.js.map +1 -1
  428. package/dist/generated/templates/ToggleButtonTemplate.lit.js +3 -2
  429. package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
  430. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +3 -2
  431. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
  432. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +4 -3
  433. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js.map +1 -1
  434. package/dist/generated/templates/TokenizerTemplate.lit.js +4 -3
  435. package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
  436. package/dist/generated/templates/ToolbarButtonTemplate.lit.js +1 -1
  437. package/dist/generated/templates/ToolbarButtonTemplate.lit.js.map +1 -1
  438. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js +1 -1
  439. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js.map +1 -1
  440. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js +1 -1
  441. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js.map +1 -1
  442. package/dist/generated/templates/ToolbarTemplate.lit.js +1 -1
  443. package/dist/generated/templates/ToolbarTemplate.lit.js.map +1 -1
  444. package/dist/generated/themes/Avatar.css.js +1 -1
  445. package/dist/generated/themes/Avatar.css.js.map +1 -1
  446. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  447. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  448. package/dist/generated/themes/Bar.css.js +1 -1
  449. package/dist/generated/themes/Bar.css.js.map +1 -1
  450. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  451. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  452. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  453. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  454. package/dist/generated/themes/Button.css.js +1 -1
  455. package/dist/generated/themes/Button.css.js.map +1 -1
  456. package/dist/generated/themes/Calendar.css.js +1 -1
  457. package/dist/generated/themes/Calendar.css.js.map +1 -1
  458. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  459. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  460. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  461. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  462. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  463. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  464. package/dist/generated/themes/Card.css.js +1 -1
  465. package/dist/generated/themes/Card.css.js.map +1 -1
  466. package/dist/generated/themes/CardHeader.css.js +1 -1
  467. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  468. package/dist/generated/themes/Carousel.css.js +1 -1
  469. package/dist/generated/themes/Carousel.css.js.map +1 -1
  470. package/dist/generated/themes/CheckBox.css.js +1 -1
  471. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  472. package/dist/generated/themes/ColorPalette.css.js +1 -1
  473. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  474. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  475. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  476. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  477. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  478. package/dist/generated/themes/ColorPicker.css.js +1 -1
  479. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  480. package/dist/generated/themes/ComboBox.css.js +1 -1
  481. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  482. package/dist/generated/themes/CustomListItem.css.js +1 -1
  483. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  484. package/dist/generated/themes/DatePicker.css.js +1 -1
  485. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  486. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  487. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  488. package/dist/generated/themes/DayPicker.css.js +1 -1
  489. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  490. package/dist/generated/themes/Dialog.css.js +1 -1
  491. package/dist/generated/themes/Dialog.css.js.map +1 -1
  492. package/dist/generated/themes/FileUploader.css.js +1 -1
  493. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  494. package/dist/generated/themes/Form.css.js +9 -0
  495. package/dist/generated/themes/Form.css.js.map +1 -0
  496. package/dist/generated/themes/FormItem.css.js +9 -0
  497. package/dist/generated/themes/FormItem.css.js.map +1 -0
  498. package/dist/generated/themes/FormLabelSpan.css.js +9 -0
  499. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -0
  500. package/dist/generated/themes/FormLayout.css.d.ts +3 -0
  501. package/dist/generated/themes/FormLayout.css.js +9 -0
  502. package/dist/generated/themes/FormLayout.css.js.map +1 -0
  503. package/dist/generated/themes/GrowingButton.css.js +1 -1
  504. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  505. package/dist/generated/themes/Icon.css.js +1 -1
  506. package/dist/generated/themes/Icon.css.js.map +1 -1
  507. package/dist/generated/themes/Input.css.js +1 -1
  508. package/dist/generated/themes/Input.css.js.map +1 -1
  509. package/dist/generated/themes/InputIcon.css.js +1 -1
  510. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  511. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  512. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  513. package/dist/generated/themes/Label.css.js +1 -1
  514. package/dist/generated/themes/Label.css.js.map +1 -1
  515. package/dist/generated/themes/Link.css.js +1 -1
  516. package/dist/generated/themes/Link.css.js.map +1 -1
  517. package/dist/generated/themes/List.css.js +1 -1
  518. package/dist/generated/themes/List.css.js.map +1 -1
  519. package/dist/generated/themes/ListItem.css.js +1 -1
  520. package/dist/generated/themes/ListItem.css.js.map +1 -1
  521. package/dist/generated/themes/ListItemAdditionalText.css.d.ts +3 -0
  522. package/dist/generated/themes/{SelectMenu.css.js → ListItemAdditionalText.css.js} +2 -2
  523. package/dist/generated/themes/ListItemAdditionalText.css.js.map +1 -0
  524. package/dist/generated/themes/ListItemBase.css.js +1 -1
  525. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  526. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  527. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  528. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  529. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  530. package/dist/generated/themes/ListItemIcon.css.d.ts +3 -0
  531. package/dist/generated/themes/ListItemIcon.css.js +9 -0
  532. package/dist/generated/themes/ListItemIcon.css.js.map +1 -0
  533. package/dist/generated/themes/Menu.css.js +1 -1
  534. package/dist/generated/themes/Menu.css.js.map +1 -1
  535. package/dist/generated/themes/MenuItem.css.d.ts +3 -0
  536. package/dist/generated/themes/MenuItem.css.js +9 -0
  537. package/dist/generated/themes/MenuItem.css.js.map +1 -0
  538. package/dist/generated/themes/MessageStrip.css.js +1 -1
  539. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  540. package/dist/generated/themes/MonthPicker.css.js +1 -1
  541. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  542. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  543. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  544. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  545. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  546. package/dist/generated/themes/MultiInput.css.js +1 -1
  547. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  548. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  549. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  550. package/dist/generated/themes/NavigationMenuItem.css.d.ts +3 -0
  551. package/dist/generated/themes/NavigationMenuItem.css.js +9 -0
  552. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -0
  553. package/dist/generated/themes/OptionBase.css.d.ts +3 -0
  554. package/dist/generated/themes/{SelectMenuOption.css.js → OptionBase.css.js} +3 -2
  555. package/dist/generated/themes/{SelectMenu.css.js.map → OptionBase.css.js.map} +1 -1
  556. package/dist/generated/themes/Panel.css.js +1 -1
  557. package/dist/generated/themes/Panel.css.js.map +1 -1
  558. package/dist/generated/themes/Popover.css.js +1 -1
  559. package/dist/generated/themes/Popover.css.js.map +1 -1
  560. package/dist/generated/themes/Popup.css.js +1 -1
  561. package/dist/generated/themes/Popup.css.js.map +1 -1
  562. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  563. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  564. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  565. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  566. package/dist/generated/themes/RadioButton.css.js +1 -1
  567. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  568. package/dist/generated/themes/RangeSlider.css.js +1 -1
  569. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  570. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  571. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  572. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  573. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  574. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  575. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  576. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  577. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  578. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  579. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  580. package/dist/generated/themes/Select.css.js +1 -1
  581. package/dist/generated/themes/Select.css.js.map +1 -1
  582. package/dist/generated/themes/SelectPopover.css.js +1 -1
  583. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  584. package/dist/generated/themes/SliderBase.css.js +1 -1
  585. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  586. package/dist/generated/themes/SplitButton.css.js +1 -1
  587. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  588. package/dist/generated/themes/StepInput.css.js +1 -1
  589. package/dist/generated/themes/StepInput.css.js.map +1 -1
  590. package/dist/generated/themes/Switch.css.js +1 -1
  591. package/dist/generated/themes/Switch.css.js.map +1 -1
  592. package/dist/generated/themes/TabContainer.css.js +1 -1
  593. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  594. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  595. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  596. package/dist/generated/themes/TabInStrip.css.js +1 -1
  597. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  598. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  599. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  600. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  601. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  602. package/dist/generated/themes/Tag.css.js +1 -1
  603. package/dist/generated/themes/Tag.css.js.map +1 -1
  604. package/dist/generated/themes/Text.css.js +1 -1
  605. package/dist/generated/themes/Text.css.js.map +1 -1
  606. package/dist/generated/themes/TextArea.css.js +1 -1
  607. package/dist/generated/themes/TextArea.css.js.map +1 -1
  608. package/dist/generated/themes/TimePicker.css.js +1 -1
  609. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  610. package/dist/generated/themes/Toast.css.js +1 -1
  611. package/dist/generated/themes/Toast.css.js.map +1 -1
  612. package/dist/generated/themes/ToggleButton.css.js +1 -1
  613. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  614. package/dist/generated/themes/Token.css.js +1 -1
  615. package/dist/generated/themes/Token.css.js.map +1 -1
  616. package/dist/generated/themes/Tokenizer.css.js +1 -1
  617. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  618. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  619. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  620. package/dist/generated/themes/Toolbar.css.js +1 -1
  621. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  622. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  623. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  624. package/dist/generated/themes/TreeItem.css.js +1 -1
  625. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  626. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  627. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  628. package/dist/generated/themes/YearPicker.css.js +1 -1
  629. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  630. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  631. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  632. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  633. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  634. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  635. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  636. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  637. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  638. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  639. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  640. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  641. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  642. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  643. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  644. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  645. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  646. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  647. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  648. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  649. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  650. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  651. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  652. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  653. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  654. package/dist/popup-utils/OpenedPopupsRegistry.js +1 -1
  655. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
  656. package/dist/popup-utils/PopoverRegistry.js +5 -4
  657. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  658. package/dist/styles/Icon.css +33 -0
  659. package/dist/styles/Icon.module.css +33 -0
  660. package/dist/types/FormItemSpacing.d.ts +19 -0
  661. package/dist/types/FormItemSpacing.js +21 -0
  662. package/dist/types/FormItemSpacing.js.map +1 -0
  663. package/dist/types/{HighlightTypes.d.ts → Highlight.d.ts} +3 -3
  664. package/dist/types/Highlight.js +30 -0
  665. package/dist/types/Highlight.js.map +1 -0
  666. package/dist/types/InputType.d.ts +7 -1
  667. package/dist/types/InputType.js +6 -0
  668. package/dist/types/InputType.js.map +1 -1
  669. package/dist/types/LinkAccessibleRole.d.ts +19 -0
  670. package/dist/types/LinkAccessibleRole.js +21 -0
  671. package/dist/types/LinkAccessibleRole.js.map +1 -0
  672. package/dist/vscode.html-custom-data.json +306 -157
  673. package/dist/web-types.json +698 -364
  674. package/package.json +10 -10
  675. package/src/BusyIndicator.hbs +1 -1
  676. package/src/Button.hbs +10 -1
  677. package/src/Calendar.hbs +2 -2
  678. package/src/CheckBox.hbs +0 -2
  679. package/src/ColorPalette.hbs +3 -1
  680. package/src/ColorPaletteItem.hbs +1 -1
  681. package/src/ColorPalettePopover.hbs +2 -1
  682. package/src/ComboBox.hbs +2 -2
  683. package/src/ComboBoxPopover.hbs +15 -4
  684. package/src/DatePickerInput.hbs +1 -3
  685. package/src/DatePickerPopover.hbs +3 -3
  686. package/src/DateRangePicker.hbs +23 -0
  687. package/src/DateTimePickerPopover.hbs +2 -2
  688. package/src/FileUploader.hbs +10 -16
  689. package/src/FileUploaderPopover.hbs +1 -1
  690. package/src/Form.hbs +37 -0
  691. package/src/FormItem.hbs +14 -0
  692. package/src/Input.hbs +1 -3
  693. package/src/InputPopover.hbs +5 -5
  694. package/src/ListItemBase.hbs +21 -0
  695. package/src/ListItemGroup.hbs +12 -12
  696. package/src/ListItemGroupHeader.hbs +0 -1
  697. package/src/Menu.hbs +17 -49
  698. package/src/MenuItem.hbs +109 -0
  699. package/src/MonthPicker.hbs +1 -1
  700. package/src/MultiComboBox.hbs +2 -2
  701. package/src/MultiComboBoxPopover.hbs +4 -4
  702. package/src/MultiInput.hbs +4 -2
  703. package/src/NavigationMenu.hbs +14 -101
  704. package/src/NavigationMenuItem.hbs +124 -0
  705. package/src/Option.hbs +15 -0
  706. package/src/OptionCustom.hbs +5 -0
  707. package/src/RadioButton.hbs +0 -1
  708. package/src/ResponsivePopover.hbs +6 -5
  709. package/src/SegmentedButtonItem.hbs +1 -1
  710. package/src/Select.hbs +2 -3
  711. package/src/SelectPopover.hbs +7 -20
  712. package/src/StepInput.hbs +2 -4
  713. package/src/Switch.hbs +0 -1
  714. package/src/TabContainer.hbs +4 -4
  715. package/src/TextArea.hbs +0 -2
  716. package/src/TextAreaPopover.hbs +1 -1
  717. package/src/TimePicker.hbs +4 -5
  718. package/src/TimePickerPopover.hbs +6 -5
  719. package/src/TokenizerPopover.hbs +9 -7
  720. package/src/ToolbarButton.hbs +1 -1
  721. package/src/ToolbarPopover.hbs +2 -2
  722. package/src/ToolbarPopoverButton.hbs +1 -1
  723. package/src/i18n/messagebundle.properties +11 -3
  724. package/src/i18n/messagebundle_en.properties +13 -3
  725. package/src/i18n/messagebundle_en_US_saprigi.properties +13 -3
  726. package/src/styles/Icon.module.css +1 -0
  727. package/src/themes/Button.css +7 -10
  728. package/src/themes/Calendar.css +1 -0
  729. package/src/themes/CalendarLegendItem.css +4 -1
  730. package/src/themes/ColorPalette.css +11 -6
  731. package/src/themes/ColorPaletteItem.css +55 -27
  732. package/src/themes/Form.css +50 -0
  733. package/src/themes/FormItem.css +65 -0
  734. package/src/themes/FormLabelSpan.css +267 -0
  735. package/src/themes/FormLayout.css +159 -0
  736. package/src/themes/GrowingButton.css +1 -1
  737. package/src/themes/Input.css +20 -20
  738. package/src/themes/InputIcon.css +6 -13
  739. package/src/themes/InputSharedStyles.css +15 -16
  740. package/src/themes/Label.css +7 -4
  741. package/src/themes/ListItem.css +6 -57
  742. package/src/themes/ListItemAdditionalText.css +10 -0
  743. package/src/themes/ListItemBase.css +61 -46
  744. package/src/themes/ListItemIcon.css +6 -0
  745. package/src/themes/Menu.css +0 -10
  746. package/src/themes/{MenuListItem.css → MenuItem.css} +12 -0
  747. package/src/themes/MonthPicker.css +23 -0
  748. package/src/themes/NavigationMenu.css +7 -65
  749. package/src/themes/NavigationMenuItem.css +54 -0
  750. package/src/themes/OptionBase.css +3 -0
  751. package/src/themes/Popover.css +1 -1
  752. package/src/themes/Popup.css +1 -1
  753. package/src/themes/ResponsivePopover.css +3 -3
  754. package/src/themes/ResponsivePopoverCommon.css +3 -3
  755. package/src/themes/SegmentedButton.css +2 -3
  756. package/src/themes/SegmentedButtonItem.css +0 -8
  757. package/src/themes/SelectPopover.css +1 -9
  758. package/src/themes/TimePicker.css +1 -24
  759. package/src/themes/base/ColorPalette-parameters.css +10 -4
  760. package/src/themes/base/Form-parameters.css +20 -0
  761. package/src/themes/base/sizes-parameters.css +25 -7
  762. package/src/themes/sap_fiori_3/parameters-bundle.css +2 -2
  763. package/src/themes/sap_fiori_3/sizes-parameters.css +6 -0
  764. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -2
  765. package/src/themes/sap_fiori_3_dark/sizes-parameters.css +6 -0
  766. package/src/themes/sap_fiori_3_hcb/Tag-parameters.css +102 -0
  767. package/src/themes/sap_fiori_3_hcw/Tag-parameters.css +102 -0
  768. package/src/themes/sap_horizon/ColorPalette-parameters.css +7 -4
  769. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  770. package/src/themes/sap_horizon/sizes-parameters.css +4 -2
  771. package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +7 -4
  772. package/src/themes/sap_horizon_dark/sizes-parameters.css +4 -2
  773. package/src/themes/sap_horizon_dark_exp/ColorPalette-parameters.css +5 -4
  774. package/src/themes/sap_horizon_dark_exp/sizes-parameters.css +1 -2
  775. package/src/themes/sap_horizon_exp/ColorPalette-parameters.css +5 -4
  776. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  777. package/src/themes/sap_horizon_exp/sizes-parameters.css +1 -2
  778. package/src/themes/sap_horizon_hcb/ColorPalette-parameters.css +8 -0
  779. package/src/themes/sap_horizon_hcb/Tag-parameters.css +9 -9
  780. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  781. package/src/themes/sap_horizon_hcw/ColorPalette-parameters.css +8 -0
  782. package/src/themes/sap_horizon_hcw/Tag-parameters.css +9 -9
  783. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  784. package/dist/ComboBoxGroupItem.js.map +0 -1
  785. package/dist/MenuListItem.d.ts +0 -61
  786. package/dist/MenuListItem.js +0 -71
  787. package/dist/MenuListItem.js.map +0 -1
  788. package/dist/SelectMenu.d.ts +0 -102
  789. package/dist/SelectMenu.js +0 -237
  790. package/dist/SelectMenu.js.map +0 -1
  791. package/dist/SelectMenuOption.d.ts +0 -94
  792. package/dist/SelectMenuOption.js +0 -78
  793. package/dist/SelectMenuOption.js.map +0 -1
  794. package/dist/css/themes/MenuListItem.css +0 -1
  795. package/dist/css/themes/SelectMenu.css +0 -1
  796. package/dist/css/themes/SelectMenuOption.css +0 -0
  797. package/dist/features/InputElementsFormSupport.d.ts +0 -41
  798. package/dist/features/InputElementsFormSupport.js +0 -134
  799. package/dist/features/InputElementsFormSupport.js.map +0 -1
  800. package/dist/generated/templates/MenuListItemTemplate.lit.js.map +0 -1
  801. package/dist/generated/templates/SelectMenuTemplate.lit.d.ts +0 -4
  802. package/dist/generated/templates/SelectMenuTemplate.lit.js +0 -15
  803. package/dist/generated/templates/SelectMenuTemplate.lit.js.map +0 -1
  804. package/dist/generated/themes/MenuListItem.css.js +0 -9
  805. package/dist/generated/themes/MenuListItem.css.js.map +0 -1
  806. package/dist/generated/themes/SelectMenuOption.css.js.map +0 -1
  807. package/dist/styles/Input.css +0 -0
  808. package/dist/styles/Input.module.css +0 -0
  809. package/dist/types/HighlightTypes.js +0 -30
  810. package/dist/types/HighlightTypes.js.map +0 -1
  811. package/src/MenuListItem.hbs +0 -35
  812. package/src/SelectMenu.hbs +0 -57
  813. package/src/styles/Input.module.css +0 -0
  814. package/src/themes/SelectMenu.css +0 -16
  815. package/src/themes/SelectMenuOption.css +0 -0
  816. /package/dist/generated/themes/{MenuListItem.css.d.ts → Form.css.d.ts} +0 -0
  817. /package/dist/generated/themes/{SelectMenu.css.d.ts → FormItem.css.d.ts} +0 -0
  818. /package/dist/generated/themes/{SelectMenuOption.css.d.ts → FormLabelSpan.css.d.ts} +0 -0
@@ -1,8 +1,7 @@
1
1
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
2
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
3
+ import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
3
4
  import CalendarPickersMode from "./types/CalendarPickersMode.js";
4
- import type FormSupportT from "./features/InputElementsFormSupport.js";
5
- import type { IFormElement } from "./features/InputElementsFormSupport.js";
6
5
  import "@ui5/webcomponents-icons/dist/appointment-2.js";
7
6
  import "@ui5/webcomponents-icons/dist/decline.js";
8
7
  import DateComponentBase from "./DateComponentBase.js";
@@ -104,7 +103,7 @@ type DatePickerInputEventDetail = {
104
103
  * @extends DateComponentBase
105
104
  * @public
106
105
  */
107
- declare class DatePicker extends DateComponentBase implements IFormElement {
106
+ declare class DatePicker extends DateComponentBase implements IFormInputElement {
108
107
  /**
109
108
  * Defines a formatted date value.
110
109
  * @default ""
@@ -149,14 +148,9 @@ declare class DatePicker extends DateComponentBase implements IFormElement {
149
148
  */
150
149
  placeholder?: string;
151
150
  /**
152
- * Determines the name with which the component will be submitted in an HTML form.
151
+ * Determines the name by which the component will be identified upon submission in an HTML form.
153
152
  *
154
- * **Important:** For the `name` property to have effect, you must add the following import to your project:
155
- * `import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`
156
- *
157
- * **Note:** When set, a native `input` HTML element
158
- * will be created inside the component so that it can be submitted as
159
- * part of an HTML form. Do not use this property unless you need to submit a form.
153
+ * **Note:** This property is only applicable within the context of an HTML Form element.
160
154
  * @default ""
161
155
  * @public
162
156
  */
@@ -175,7 +169,7 @@ declare class DatePicker extends DateComponentBase implements IFormElement {
175
169
  * Defines the open or closed state of the popover.
176
170
  * @public
177
171
  * @default false
178
- * @since 2.0
172
+ * @since 2.0.0
179
173
  */
180
174
  open: boolean;
181
175
  /**
@@ -206,15 +200,12 @@ declare class DatePicker extends DateComponentBase implements IFormElement {
206
200
  * @public
207
201
  */
208
202
  valueStateMessage: Array<HTMLElement>;
209
- /**
210
- * The slot is used to render native `input` HTML element within Light DOM to enable form submit,
211
- * when `name` property is set.
212
- * @private
213
- */
214
- formSupport: Array<HTMLElement>;
215
203
  responsivePopover?: ResponsivePopover;
216
- FormSupport?: typeof FormSupportT;
217
204
  static i18nBundle: I18nBundle;
205
+ get formValidityMessage(): string;
206
+ get formValidity(): ValidityStateFlags;
207
+ formElementAnchor(): Promise<HTMLElement | undefined>;
208
+ get formFormattedValue(): FormData | string | null;
218
209
  /**
219
210
  * @protected
220
211
  */
@@ -9,7 +9,6 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
9
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
10
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
11
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
12
- import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
13
12
  import "@ui5/webcomponents-localization/dist/DateFormat.js";
14
13
  import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
15
14
  import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
@@ -17,13 +16,14 @@ import getRoundedTimestamp from "@ui5/webcomponents-localization/dist/dates/getR
17
16
  import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
18
17
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
19
18
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
19
+ import { submitForm } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
20
20
  import { isPageUp, isPageDown, isPageUpShift, isPageDownShift, isPageUpShiftCtrl, isPageDownShiftCtrl, isShow, isF4, isEnter, isTabNext, isTabPrevious, isF6Next, isF6Previous, } from "@ui5/webcomponents-base/dist/Keys.js";
21
21
  import AriaHasPopup from "@ui5/webcomponents-base/dist/types/AriaHasPopup.js";
22
22
  import { isPhone, isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
23
23
  import CalendarPickersMode from "./types/CalendarPickersMode.js";
24
24
  import "@ui5/webcomponents-icons/dist/appointment-2.js";
25
25
  import "@ui5/webcomponents-icons/dist/decline.js";
26
- import { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_DESCRIPTION, INPUT_SUGGESTIONS_TITLE } from "./generated/i18n/i18n-defaults.js";
26
+ import { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_DESCRIPTION, INPUT_SUGGESTIONS_TITLE, FORM_TEXTFIELD_REQUIRED, } from "./generated/i18n/i18n-defaults.js";
27
27
  import DateComponentBase from "./DateComponentBase.js";
28
28
  import Icon from "./Icon.js";
29
29
  import Button from "./Button.js";
@@ -121,6 +121,18 @@ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverComm
121
121
  * @public
122
122
  */
123
123
  let DatePicker = DatePicker_1 = class DatePicker extends DateComponentBase {
124
+ get formValidityMessage() {
125
+ return DatePicker_1.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);
126
+ }
127
+ get formValidity() {
128
+ return { valueMissing: this.required && !this.value };
129
+ }
130
+ async formElementAnchor() {
131
+ return (await this.getFocusDomRefAsync())?.getFocusDomRefAsync();
132
+ }
133
+ get formFormattedValue() {
134
+ return this.value;
135
+ }
124
136
  /**
125
137
  * @protected
126
138
  */
@@ -137,19 +149,12 @@ let DatePicker = DatePicker_1 = class DatePicker extends DateComponentBase {
137
149
  this._calendarCurrentPicker = this.firstPicker;
138
150
  }
139
151
  onBeforeRendering() {
140
- this.FormSupport = getFeature("FormSupport");
141
152
  ["minDate", "maxDate"].forEach((prop) => {
142
153
  const propValue = this[prop];
143
154
  if (!this.isValid(propValue)) {
144
155
  console.warn(`Invalid value for property "${prop}": ${propValue} is not compatible with the configured format pattern: "${this._displayFormat}"`); // eslint-disable-line
145
156
  }
146
157
  });
147
- if (this.FormSupport) {
148
- this.FormSupport.syncNativeHiddenInput(this);
149
- }
150
- else if (this.name) {
151
- console.warn(`In order for the "name" property to have effect, you should also: import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`); // eslint-disable-line
152
- }
153
158
  this.value = this.normalizeValue(this.value) || this.value;
154
159
  this.liveValue = this.value;
155
160
  }
@@ -204,8 +209,8 @@ let DatePicker = DatePicker_1 = class DatePicker extends DateComponentBase {
204
209
  return;
205
210
  }
206
211
  if (isEnter(e)) {
207
- if (this.FormSupport) {
208
- this.FormSupport.triggerFormSubmit(this);
212
+ if (this._internals?.form) {
213
+ submitForm(this);
209
214
  }
210
215
  }
211
216
  else if (isPageUpShiftCtrl(e)) {
@@ -317,7 +322,8 @@ let DatePicker = DatePicker_1 = class DatePicker extends DateComponentBase {
317
322
  }
318
323
  _click(e) {
319
324
  if (isPhone()) {
320
- this.responsivePopover.showAt(this);
325
+ this.responsivePopover.opener = this;
326
+ this.responsivePopover.open = true;
321
327
  e.preventDefault(); // prevent immediate selection of any item
322
328
  }
323
329
  }
@@ -547,13 +553,11 @@ __decorate([
547
553
  __decorate([
548
554
  slot({ type: HTMLElement })
549
555
  ], DatePicker.prototype, "valueStateMessage", void 0);
550
- __decorate([
551
- slot({ type: HTMLElement })
552
- ], DatePicker.prototype, "formSupport", void 0);
553
556
  DatePicker = DatePicker_1 = __decorate([
554
557
  customElement({
555
558
  tag: "ui5-date-picker",
556
559
  languageAware: true,
560
+ formAssociated: true,
557
561
  template: DatePickerTemplate,
558
562
  styles: [
559
563
  datePickerCss,
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getRoundedTimestamp from \"@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport {\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n\tisShow,\n\tisF4,\n\tisEnter,\n\tisTabNext,\n\tisTabPrevious,\n\tisF6Next,\n\tisF6Previous,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AriaHasPopup from \"@ui5/webcomponents-base/dist/types/AriaHasPopup.js\";\nimport { isPhone, isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport type FormSupportT from \"./features/InputElementsFormSupport.js\";\nimport type { IFormElement } from \"./features/InputElementsFormSupport.js\";\nimport \"@ui5/webcomponents-icons/dist/appointment-2.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_DESCRIPTION, INPUT_SUGGESTIONS_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport DateComponentBase from \"./DateComponentBase.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Calendar from \"./Calendar.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\nimport CalendarDateComponent from \"./CalendarDate.js\";\nimport Input from \"./Input.js\";\nimport InputType from \"./types/InputType.js\";\nimport IconMode from \"./types/IconMode.js\";\nimport DatePickerTemplate from \"./generated/templates/DatePickerTemplate.lit.js\";\n\n// default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Styles\nimport datePickerCss from \"./generated/themes/DatePicker.css.js\";\nimport datePickerPopoverCss from \"./generated/themes/DatePickerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\ntype DatePickerChangeEventDetail = {\n\tvalue: string,\n\tvalid: boolean,\n}\n\ntype DatePickerValueStateChangeEventDetail = {\n\tvalueState: `${ValueState}`,\n\tvalid: boolean,\n}\n\ntype DatePickerInputEventDetail = {\n\tvalue: string,\n\tvalid: boolean,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-date-picker` component provides an input field with assigned calendar which opens on user action.\n * The `ui5-date-picker` allows users to select a localized date using touch,\n * mouse, or keyboard input. It consists of two parts: the date input field and the\n * date picker.\n *\n * ### Usage\n *\n * The user can enter a date by:\n *\n * - Using the calendar that opens in a popup\n * - Typing it in directly in the input field\n *\n * When the user makes an entry and presses the enter key, the calendar shows the corresponding date.\n * When the user directly triggers the calendar display, the actual date is displayed.\n *\n * ### Formatting\n *\n * If a date is entered by typing it into\n * the input field, it must fit to the used date format.\n *\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see [UTS #35: Unicode Locale Data Markup Language](http://unicode.org/reports/tr35/#Date_Field_Symbol_Table).\n *\n * For example, if the `format-pattern` is \"yyyy-MM-dd\",\n * a valid value string is \"2015-07-30\" and the same is displayed in the input.\n *\n * ### Keyboard Handling\n * The `ui5-date-picker` provides advanced keyboard handling.\n * If the `ui5-date-picker` is focused,\n * you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\n * Once the drop-down is opened, you can use the [Up], [Down], [Left] or [Right] arrow keys\n * to navigate through the dates and select one by pressing the `Space` or `Enter` keys. Moreover you can\n * use TAB to reach the buttons for changing month and year.\n *\n * If the `ui5-date-picker` input field is focused and its corresponding picker dialog is not opened,\n * then users can increment or decrement the date referenced by `dateValue` property\n * by using the following shortcuts:\n *\n * - [Page Down] - Decrements the corresponding day of the month by one\n * - [Shift] + [Page Down] - Decrements the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one\n * - [Page Up] - Increments the corresponding day of the month by one\n * - [Shift] + [Page Up] - Increments the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one\n *\n * ### Calendar types\n * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.\n * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,\n * you need to set the `primaryCalendarType` property and import one or more of the following modules:\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Islamic.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Japanese.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Persian.js\";`\n *\n * Or, you can use the global configuration and set the `calendarType` key:\n *\n * ```html\n * <script data-id=\"sap-ui-config\" type=\"application/json\">\n * \t{\n * \t\t\"calendarType\": \"Japanese\"\n * \t}\n * <script>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DatePicker.js\";`\n * @constructor\n * @extends DateComponentBase\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-date-picker\",\n\tlanguageAware: true,\n\ttemplate: DatePickerTemplate,\n\tstyles: [\n\t\tdatePickerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tdatePickerPopoverCss,\n\t],\n\tdependencies: [\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tCalendar,\n\t\tCalendarDateComponent,\n\t\tInput,\n\t\tButton,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @allowPreventDefault\n * @public\n * @param {string} value The submitted value.\n * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.\n */\n@event<DatePickerChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n/**\n * Fired when the value of the component is changed at each key stroke.\n * @allowPreventDefault\n * @public\n * @param {string} value The submitted value.\n * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.\n */\n@event<DatePickerInputEventDetail>(\"input\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.\n */\n@event<DatePickerValueStateChangeEventDetail>(\"value-state-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: String,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\nclass DatePicker extends DateComponentBase implements IFormElement {\n\t/**\n\t * Defines a formatted date value.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @since 1.0.0-rc.9\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Determines whether the component is displayed as disabled.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Determines whether the component is displayed as read-only.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines a short hint, intended to aid the user with data entry when the\n\t * component has no value.\n\t *\n\t * **Note:** When no placeholder is set, the format pattern is displayed as a placeholder.\n\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\tplaceholder?: string;\n\n\t/**\n\t * Determines the name with which the component will be submitted in an HTML form.\n\t *\n\t * **Important:** For the `name` property to have effect, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t *\n\t * **Note:** When set, a native `input` HTML element\n\t * will be created inside the component so that it can be submitted as\n\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers!: boolean;\n\n\t/**\n\t * Defines the open or closed state of the popover.\n\t * @public\n\t * @default false\n\t * @since 2.0\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the aria-label attribute for the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t@property({ type: Object })\n\t_respPopoverConfig!: object;\n\n\t@property({ defaultValue: \"day\" })\n\t_calendarCurrentPicker!: string;\n\n\tliveValue?: string;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Warning` or `Error` value state.\n\t * @since 1.0.0-rc.7\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * The slot is used to render native `input` HTML element within Light DOM to enable form submit,\n\t * when `name` property is set.\n\t * @private\n\t */\n\t@slot({ type: HTMLElement })\n\tformSupport!: Array<HTMLElement>;\n\n\tresponsivePopover?: ResponsivePopover;\n\n\tFormSupport?: typeof FormSupportT;\n\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @protected\n\t */\n\tonResponsivePopoverAfterClose() {\n\t\tthis.open = false;\n\t\tif (isPhone()) {\n\t\t\tthis.blur(); // close device's keyboard and prevent further typing\n\t\t} else {\n\t\t\tthis._getInput()?.focus();\n\t\t}\n\t}\n\n\tonResponsivePopoverBeforeOpen() {\n\t\tthis._calendarCurrentPicker = this.firstPicker;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.FormSupport = getFeature<typeof FormSupportT>(\"FormSupport\");\n\n\t\t[\"minDate\", \"maxDate\"].forEach((prop: string) => {\n\t\t\tconst propValue = this[prop as keyof DatePicker] as string;\n\n\t\t\tif (!this.isValid(propValue)) {\n\t\t\t\tconsole.warn(`Invalid value for property \"${prop}\": ${propValue} is not compatible with the configured format pattern: \"${this._displayFormat}\"`); // eslint-disable-line\n\t\t\t}\n\t\t});\n\n\t\tif (this.FormSupport) {\n\t\t\tthis.FormSupport.syncNativeHiddenInput(this);\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\n\t\tthis.value = this.normalizeValue(this.value) || this.value;\n\t\tthis.liveValue = this.value;\n\t}\n\n\t/**\n\t * Override in derivatives to change calendar selection mode\n\t * @protected\n\t */\n\tget _calendarSelectionMode(): string {\n\t\treturn \"Single\";\n\t}\n\n\t/**\n\t * Used to provide a timestamp to the Calendar (to focus it to a relevant date when open) based on the component's state\n\t * Override in derivatives to provide the calendar a timestamp based on their properties\n\t * By default focus the calendar on the selected date if set, or the current day otherwise\n\t * @protected\n\t */\n\tget _calendarTimestamp(): number {\n\t\tif (this.value && this.dateValueUTC && this._checkValueValidity(this.value)) {\n\t\t\tconst millisecondsUTC = this.dateValueUTC.getTime();\n\t\t\treturn getRoundedTimestamp(millisecondsUTC);\n\t\t}\n\n\t\treturn getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Used to provide selectedDates to the calendar based on the component's state\n\t * Override in derivatives to provide different rules for setting the calendar's selected dates\n\t * @protected\n\t */\n\tget _calendarSelectedDates(): Array<string> {\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn [this.value];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault(); // Prevent scroll on Alt/Option + Arrow Up/Down\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\tconst target = e.target as HTMLElement;\n\t\tif (target && this.open && this._getInput().id === target.id && (isTabNext(e) || isTabPrevious(e) || isF6Next(e) || isF6Previous(e))) {\n\t\t\tthis._togglePicker();\n\t\t}\n\n\t\tif (this.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tif (this.FormSupport) {\n\t\t\t\tthis.FormSupport.triggerFormSubmit(this);\n\t\t\t}\n\t\t} else if (isPageUpShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"year\");\n\t\t} else if (isPageUpShift(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"month\");\n\t\t} else if (isPageUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"day\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"year\");\n\t\t} else if (isPageDownShift(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"month\");\n\t\t} else if (isPageDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"day\");\n\t\t}\n\t}\n\n\t/**\n\t * @param amount\n\t * @param unit\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @protected\n\t */\n\t_modifyDateValue(amount: number, unit: string, preserveDate?: boolean) {\n\t\tif (!this.dateValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modifiedDate = modifyDateBy(CalendarDate.fromLocalJSDate(this.dateValue), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\tconst newValue = this.formatValue(modifiedDate.toUTCJSDate());\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t_updateValueAndFireEvents(value: string, normalizeValue: boolean, events: Array<string>, updateValue = true) {\n\t\tconst valid = this._checkValueValidity(value);\n\n\t\tif (valid && normalizeValue) {\n\t\t\tvalue = this.normalizeValue(value); // transform valid values (in any format) to the correct format\n\t\t}\n\n\t\tlet executeEvent = true;\n\t\tthis.liveValue = value;\n\n\t\tconst previousValue = this.value;\n\n\t\tif (updateValue) {\n\t\t\tthis._getInput().value = value;\n\t\t\tthis.value = value;\n\t\t\tthis._updateValueState(); // Change the value state to Error/None, but only if needed\n\t\t}\n\n\t\tevents.forEach((e: string) => {\n\t\t\tif (!this.fireEvent<DatePickerChangeEventDetail>(e, { value, valid }, true)) {\n\t\t\t\texecuteEvent = false;\n\t\t\t}\n\t\t});\n\n\t\tif (!executeEvent && updateValue) {\n\t\t\tif (this.value !== previousValue && this.value !== this._getInput().value) {\n\t\t\t\treturn; // If the value was changed in the change event, do not revert it\n\t\t\t}\n\n\t\t\tthis._getInput().value = previousValue;\n\n\t\t\tthis.value = previousValue;\n\t\t}\n\t}\n\n\t_updateValueState() {\n\t\tconst valid = this._checkValueValidity(this.value);\n\t\tconst previousValueState = this.valueState;\n\n\t\tthis.valueState = valid ? ValueState.None : ValueState.Negative;\n\n\t\tconst eventPrevented = !this.fireEvent<DatePickerValueStateChangeEventDetail>(\"value-state-change\", { valueState: this.valueState, valid }, true);\n\n\t\tif (eventPrevented) {\n\t\t\tthis.valueState = previousValueState;\n\t\t}\n\t}\n\n\t_getInput(): Input {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"[ui5-input]\")!;\n\t}\n\n\t/**\n\t * The ui5-input \"submit\" event handler - fire change event when the user presses enter\n\t * @protected\n\t */\n\t_onInputSubmit() {}\n\n\t/**\n\t * The ui5-input \"change\" event handler - fire change event when the user focuses out of the input\n\t * @protected\n\t */\n\t_onInputChange(e: Event) {\n\t\tthis._updateValueAndFireEvents((e.target as DatePicker).value, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t/**\n\t * The ui5-input \"input\" event handler - fire input even when the user types\n\t * @protected\n\t */\n\t_onInputInput(e: KeyboardEvent) {\n\t\tthis._updateValueAndFireEvents((e.target as DatePicker).value, false, [\"input\"], false);\n\t}\n\n\t/**\n\t * Checks if the provided value is valid and within valid range.\n\t * @protected\n\t * @param value\n\t */\n\t_checkValueValidity(value: string): boolean {\n\t\tif (value === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.isValid(value) && this.isInValidRange(value);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (isPhone()) {\n\t\t\tthis.responsivePopover!.showAt(this);\n\t\t\te.preventDefault(); // prevent immediate selection of any item\n\t\t}\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValid(value: string): boolean {\n\t\tif (value === \"\" || value === undefined) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!this.getFormat().parse(value);\n\t}\n\n\t/**\n\t * Checks if a date is between the minimum and maximum date.\n\t * @public\n\t * @param value A value to be checked\n\t */\n\tisInValidRange(value: string): boolean {\n\t\tif (value === \"\" || value === undefined) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst calendarDate = this._getCalendarDateFromString(value);\n\n\t\tif (!calendarDate || !this._minDate || !this._maxDate) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @protected\n\t */\n\tnormalizeValue(value: string) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC\n\t}\n\n\tget _displayFormat(): string {\n\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\treturn this.getFormat().oFormatOptions.pattern as string;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : this._displayFormat;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn DatePicker.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget phone() {\n\t\treturn isPhone();\n\t}\n\n\tget showHeader() {\n\t\treturn this.phone;\n\t}\n\n\tget showFooter() {\n\t\treturn this.phone;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": this.dateAriaDescription,\n\t\t\t\"ariaHasPopup\": AriaHasPopup.Grid.toLowerCase(),\n\t\t\t\"ariaRequired\": this.required,\n\t\t\t\"ariaLabel\": getEffectiveAriaLabelText(this),\n\t\t};\n\t}\n\n\tget openIconTitle() {\n\t\treturn DatePicker.i18nBundle.getText(DATEPICKER_OPEN_ICON_TITLE);\n\t}\n\n\tget openIconName() {\n\t\treturn \"appointment-2\";\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn DatePicker.i18nBundle.getText(DATEPICKER_DATE_DESCRIPTION);\n\t}\n\n\t/**\n\t * Defines whether the dialog on mobile should have header\n\t * @private\n\t */\n\tget _shouldHideHeader() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns the first picker depending on the CalendarPickerMode\n\t */\n\tget firstPicker() {\n\t\tconst calendarPickerMode = this._calendarPickersMode;\n\t\tlet firstPicker = \"day\";\n\n\t\tif (calendarPickerMode === CalendarPickersMode.YEAR) {\n\t\t\tfirstPicker = \"year\";\n\t\t} else if (calendarPickerMode === CalendarPickersMode.MONTH_YEAR) {\n\t\t\tfirstPicker = \"month\";\n\t\t}\n\n\t\treturn firstPicker;\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\t_respPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_canOpenPicker() {\n\t\treturn !this.disabled && !this.readonly;\n\t}\n\n\tget _calendarPickersMode() {\n\t\tconst format = this.getFormat() as DateFormat & { aFormatArray: Array<{type: string}> };\n\t\tconst patternSymbolTypes = format.aFormatArray.map(patternSymbolSettings => {\n\t\t\treturn patternSymbolSettings.type.toLowerCase();\n\t\t});\n\n\t\tif (patternSymbolTypes.includes(\"day\")) {\n\t\t\treturn CalendarPickersMode.DAY_MONTH_YEAR;\n\t\t}\n\n\t\tif (patternSymbolTypes.includes(\"month\") || patternSymbolTypes.includes(\"monthstandalone\")) {\n\t\t\treturn CalendarPickersMode.MONTH_YEAR;\n\t\t}\n\n\t\treturn CalendarPickersMode.YEAR;\n\t}\n\n\t/**\n\t * The user selected a new date in the calendar\n\t * @param e\n\t * @protected\n\t */\n\tonSelectedDatesChange(e: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\te.preventDefault();\n\t\tconst newValue = e.detail.selectedValues && e.detail.selectedValues[0];\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * The user clicked the \"month\" button in the header\n\t */\n\tonHeaderShowMonthPress() {\n\t\tthis._calendarCurrentPicker = \"month\";\n\t}\n\n\t/**\n\t * The user clicked the \"year\" button in the header\n\t */\n\tonHeaderShowYearPress() {\n\t\tthis._calendarCurrentPicker = \"year\";\n\t}\n\n\t/**\n\t * Formats a Java Script date object into a string representing a locale date\n\t * according to the `formatPattern` property of the DatePicker instance\n\t * @public\n\t * @param date A Java Script date object to be formatted as string\n\t * @returns The date as string\n\t */\n\tformatValue(date: Date): string {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\t_togglePicker(): void {\n\t\tthis.open = !this.open;\n\t}\n\n\t_toggleAndFocusInput() {\n\t\tthis._togglePicker();\n\t\tthis._getInput().focus();\n\t}\n\n\t/**\n\t * Currently selected date represented as a Local JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget dateValue(): Date | null {\n\t\treturn this.liveValue ? this.getFormat().parse(this.liveValue) as Date : this.getFormat().parse(this.value) as Date;\n\t}\n\n\tget dateValueUTC(): Date | null {\n\t\treturn this.liveValue ? this.getFormat().parse(this.liveValue, true) as Date : this.getFormat().parse(this.value) as Date;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn InputType.Text;\n\t}\n}\n\nDatePicker.define();\n\nexport default DatePicker;\nexport type {\n\tDatePickerChangeEventDetail,\n\tDatePickerInputEventDetail,\n\tDatePickerValueStateChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getRoundedTimestamp from \"@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n\tisShow,\n\tisF4,\n\tisEnter,\n\tisTabNext,\n\tisTabPrevious,\n\tisF6Next,\n\tisF6Previous,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AriaHasPopup from \"@ui5/webcomponents-base/dist/types/AriaHasPopup.js\";\nimport { isPhone, isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport \"@ui5/webcomponents-icons/dist/appointment-2.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport {\n\tDATEPICKER_OPEN_ICON_TITLE,\n\tDATEPICKER_DATE_DESCRIPTION,\n\tINPUT_SUGGESTIONS_TITLE,\n\tFORM_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport DateComponentBase from \"./DateComponentBase.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Calendar from \"./Calendar.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\nimport CalendarDateComponent from \"./CalendarDate.js\";\nimport Input from \"./Input.js\";\nimport InputType from \"./types/InputType.js\";\nimport IconMode from \"./types/IconMode.js\";\nimport DatePickerTemplate from \"./generated/templates/DatePickerTemplate.lit.js\";\n\n// default calendar for bundling\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\";\n\n// Styles\nimport datePickerCss from \"./generated/themes/DatePicker.css.js\";\nimport datePickerPopoverCss from \"./generated/themes/DatePickerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\ntype DatePickerChangeEventDetail = {\n\tvalue: string,\n\tvalid: boolean,\n}\n\ntype DatePickerValueStateChangeEventDetail = {\n\tvalueState: `${ValueState}`,\n\tvalid: boolean,\n}\n\ntype DatePickerInputEventDetail = {\n\tvalue: string,\n\tvalid: boolean,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-date-picker` component provides an input field with assigned calendar which opens on user action.\n * The `ui5-date-picker` allows users to select a localized date using touch,\n * mouse, or keyboard input. It consists of two parts: the date input field and the\n * date picker.\n *\n * ### Usage\n *\n * The user can enter a date by:\n *\n * - Using the calendar that opens in a popup\n * - Typing it in directly in the input field\n *\n * When the user makes an entry and presses the enter key, the calendar shows the corresponding date.\n * When the user directly triggers the calendar display, the actual date is displayed.\n *\n * ### Formatting\n *\n * If a date is entered by typing it into\n * the input field, it must fit to the used date format.\n *\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see [UTS #35: Unicode Locale Data Markup Language](http://unicode.org/reports/tr35/#Date_Field_Symbol_Table).\n *\n * For example, if the `format-pattern` is \"yyyy-MM-dd\",\n * a valid value string is \"2015-07-30\" and the same is displayed in the input.\n *\n * ### Keyboard Handling\n * The `ui5-date-picker` provides advanced keyboard handling.\n * If the `ui5-date-picker` is focused,\n * you can open or close the drop-down by pressing [F4], [Alt] + [Up] or [Alt] + [Down] keys.\n * Once the drop-down is opened, you can use the [Up], [Down], [Left] or [Right] arrow keys\n * to navigate through the dates and select one by pressing the `Space` or `Enter` keys. Moreover you can\n * use TAB to reach the buttons for changing month and year.\n *\n * If the `ui5-date-picker` input field is focused and its corresponding picker dialog is not opened,\n * then users can increment or decrement the date referenced by `dateValue` property\n * by using the following shortcuts:\n *\n * - [Page Down] - Decrements the corresponding day of the month by one\n * - [Shift] + [Page Down] - Decrements the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one\n * - [Page Up] - Increments the corresponding day of the month by one\n * - [Shift] + [Page Up] - Increments the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one\n *\n * ### Calendar types\n * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.\n * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,\n * you need to set the `primaryCalendarType` property and import one or more of the following modules:\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Islamic.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Japanese.js\";`\n *\n * `import \"@ui5/webcomponents-localization/dist/features/calendar/Persian.js\";`\n *\n * Or, you can use the global configuration and set the `calendarType` key:\n *\n * ```html\n * <script data-id=\"sap-ui-config\" type=\"application/json\">\n * \t{\n * \t\t\"calendarType\": \"Japanese\"\n * \t}\n * <script>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DatePicker.js\";`\n * @constructor\n * @extends DateComponentBase\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-date-picker\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\ttemplate: DatePickerTemplate,\n\tstyles: [\n\t\tdatePickerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tdatePickerPopoverCss,\n\t],\n\tdependencies: [\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tCalendar,\n\t\tCalendarDateComponent,\n\t\tInput,\n\t\tButton,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @allowPreventDefault\n * @public\n * @param {string} value The submitted value.\n * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.\n */\n@event<DatePickerChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n/**\n * Fired when the value of the component is changed at each key stroke.\n * @allowPreventDefault\n * @public\n * @param {string} value The submitted value.\n * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.\n */\n@event<DatePickerInputEventDetail>(\"input\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in correct format pattern and in valid range.\n */\n@event<DatePickerValueStateChangeEventDetail>(\"value-state-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: String,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\nclass DatePicker extends DateComponentBase implements IFormInputElement {\n\t/**\n\t * Defines a formatted date value.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue!: string\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @since 1.0.0-rc.9\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Determines whether the component is displayed as disabled.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Determines whether the component is displayed as read-only.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines a short hint, intended to aid the user with data entry when the\n\t * component has no value.\n\t *\n\t * **Note:** When no placeholder is set, the format pattern is displayed as a placeholder.\n\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\tplaceholder?: string;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers!: boolean;\n\n\t/**\n\t * Defines the open or closed state of the popover.\n\t * @public\n\t * @default false\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the aria-label attribute for the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t@property({ type: Object })\n\t_respPopoverConfig!: object;\n\n\t@property({ defaultValue: \"day\" })\n\t_calendarCurrentPicker!: string;\n\n\tliveValue?: string;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Warning` or `Error` value state.\n\t * @since 1.0.0-rc.7\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tresponsivePopover?: ResponsivePopover;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\treturn DatePicker.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && !this.value };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn (await this.getFocusDomRefAsync() as UI5Element)?.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue(): FormData | string | null {\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tonResponsivePopoverAfterClose() {\n\t\tthis.open = false;\n\t\tif (isPhone()) {\n\t\t\tthis.blur(); // close device's keyboard and prevent further typing\n\t\t} else {\n\t\t\tthis._getInput()?.focus();\n\t\t}\n\t}\n\n\tonResponsivePopoverBeforeOpen() {\n\t\tthis._calendarCurrentPicker = this.firstPicker;\n\t}\n\n\tonBeforeRendering() {\n\t\t[\"minDate\", \"maxDate\"].forEach((prop: string) => {\n\t\t\tconst propValue = this[prop as keyof DatePicker] as string;\n\n\t\t\tif (!this.isValid(propValue)) {\n\t\t\t\tconsole.warn(`Invalid value for property \"${prop}\": ${propValue} is not compatible with the configured format pattern: \"${this._displayFormat}\"`); // eslint-disable-line\n\t\t\t}\n\t\t});\n\n\t\tthis.value = this.normalizeValue(this.value) || this.value;\n\t\tthis.liveValue = this.value;\n\t}\n\n\t/**\n\t * Override in derivatives to change calendar selection mode\n\t * @protected\n\t */\n\tget _calendarSelectionMode(): string {\n\t\treturn \"Single\";\n\t}\n\n\t/**\n\t * Used to provide a timestamp to the Calendar (to focus it to a relevant date when open) based on the component's state\n\t * Override in derivatives to provide the calendar a timestamp based on their properties\n\t * By default focus the calendar on the selected date if set, or the current day otherwise\n\t * @protected\n\t */\n\tget _calendarTimestamp(): number {\n\t\tif (this.value && this.dateValueUTC && this._checkValueValidity(this.value)) {\n\t\t\tconst millisecondsUTC = this.dateValueUTC.getTime();\n\t\t\treturn getRoundedTimestamp(millisecondsUTC);\n\t\t}\n\n\t\treturn getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Used to provide selectedDates to the calendar based on the component's state\n\t * Override in derivatives to provide different rules for setting the calendar's selected dates\n\t * @protected\n\t */\n\tget _calendarSelectedDates(): Array<string> {\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn [this.value];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isShow(e)) {\n\t\t\te.preventDefault(); // Prevent scroll on Alt/Option + Arrow Up/Down\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\tconst target = e.target as HTMLElement;\n\t\tif (target && this.open && this._getInput().id === target.id && (isTabNext(e) || isTabPrevious(e) || isF6Next(e) || isF6Previous(e))) {\n\t\t\tthis._togglePicker();\n\t\t}\n\n\t\tif (this.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tif (this._internals?.form) {\n\t\t\t\tsubmitForm(this);\n\t\t\t}\n\t\t} else if (isPageUpShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"year\");\n\t\t} else if (isPageUpShift(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"month\");\n\t\t} else if (isPageUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(1, \"day\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"year\");\n\t\t} else if (isPageDownShift(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"month\");\n\t\t} else if (isPageDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._modifyDateValue(-1, \"day\");\n\t\t}\n\t}\n\n\t/**\n\t * @param amount\n\t * @param unit\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @protected\n\t */\n\t_modifyDateValue(amount: number, unit: string, preserveDate?: boolean) {\n\t\tif (!this.dateValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modifiedDate = modifyDateBy(CalendarDate.fromLocalJSDate(this.dateValue), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\tconst newValue = this.formatValue(modifiedDate.toUTCJSDate());\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t_updateValueAndFireEvents(value: string, normalizeValue: boolean, events: Array<string>, updateValue = true) {\n\t\tconst valid = this._checkValueValidity(value);\n\n\t\tif (valid && normalizeValue) {\n\t\t\tvalue = this.normalizeValue(value); // transform valid values (in any format) to the correct format\n\t\t}\n\n\t\tlet executeEvent = true;\n\t\tthis.liveValue = value;\n\n\t\tconst previousValue = this.value;\n\n\t\tif (updateValue) {\n\t\t\tthis._getInput().value = value;\n\t\t\tthis.value = value;\n\t\t\tthis._updateValueState(); // Change the value state to Error/None, but only if needed\n\t\t}\n\n\t\tevents.forEach((e: string) => {\n\t\t\tif (!this.fireEvent<DatePickerChangeEventDetail>(e, { value, valid }, true)) {\n\t\t\t\texecuteEvent = false;\n\t\t\t}\n\t\t});\n\n\t\tif (!executeEvent && updateValue) {\n\t\t\tif (this.value !== previousValue && this.value !== this._getInput().value) {\n\t\t\t\treturn; // If the value was changed in the change event, do not revert it\n\t\t\t}\n\n\t\t\tthis._getInput().value = previousValue;\n\n\t\t\tthis.value = previousValue;\n\t\t}\n\t}\n\n\t_updateValueState() {\n\t\tconst valid = this._checkValueValidity(this.value);\n\t\tconst previousValueState = this.valueState;\n\n\t\tthis.valueState = valid ? ValueState.None : ValueState.Negative;\n\n\t\tconst eventPrevented = !this.fireEvent<DatePickerValueStateChangeEventDetail>(\"value-state-change\", { valueState: this.valueState, valid }, true);\n\n\t\tif (eventPrevented) {\n\t\t\tthis.valueState = previousValueState;\n\t\t}\n\t}\n\n\t_getInput(): Input {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"[ui5-input]\")!;\n\t}\n\n\t/**\n\t * The ui5-input \"submit\" event handler - fire change event when the user presses enter\n\t * @protected\n\t */\n\t_onInputSubmit() {}\n\n\t/**\n\t * The ui5-input \"change\" event handler - fire change event when the user focuses out of the input\n\t * @protected\n\t */\n\t_onInputChange(e: Event) {\n\t\tthis._updateValueAndFireEvents((e.target as DatePicker).value, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t/**\n\t * The ui5-input \"input\" event handler - fire input even when the user types\n\t * @protected\n\t */\n\t_onInputInput(e: KeyboardEvent) {\n\t\tthis._updateValueAndFireEvents((e.target as DatePicker).value, false, [\"input\"], false);\n\t}\n\n\t/**\n\t * Checks if the provided value is valid and within valid range.\n\t * @protected\n\t * @param value\n\t */\n\t_checkValueValidity(value: string): boolean {\n\t\tif (value === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.isValid(value) && this.isInValidRange(value);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (isPhone()) {\n\t\t\tthis.responsivePopover!.opener = this;\n\t\t\tthis.responsivePopover!.open = true;\n\t\t\te.preventDefault(); // prevent immediate selection of any item\n\t\t}\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValid(value: string): boolean {\n\t\tif (value === \"\" || value === undefined) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!this.getFormat().parse(value);\n\t}\n\n\t/**\n\t * Checks if a date is between the minimum and maximum date.\n\t * @public\n\t * @param value A value to be checked\n\t */\n\tisInValidRange(value: string): boolean {\n\t\tif (value === \"\" || value === undefined) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst calendarDate = this._getCalendarDateFromString(value);\n\n\t\tif (!calendarDate || !this._minDate || !this._maxDate) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @protected\n\t */\n\tnormalizeValue(value: string) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC\n\t}\n\n\tget _displayFormat(): string {\n\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\treturn this.getFormat().oFormatOptions.pattern as string;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : this._displayFormat;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn DatePicker.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget phone() {\n\t\treturn isPhone();\n\t}\n\n\tget showHeader() {\n\t\treturn this.phone;\n\t}\n\n\tget showFooter() {\n\t\treturn this.phone;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaRoledescription\": this.dateAriaDescription,\n\t\t\t\"ariaHasPopup\": AriaHasPopup.Grid.toLowerCase(),\n\t\t\t\"ariaRequired\": this.required,\n\t\t\t\"ariaLabel\": getEffectiveAriaLabelText(this),\n\t\t};\n\t}\n\n\tget openIconTitle() {\n\t\treturn DatePicker.i18nBundle.getText(DATEPICKER_OPEN_ICON_TITLE);\n\t}\n\n\tget openIconName() {\n\t\treturn \"appointment-2\";\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn DatePicker.i18nBundle.getText(DATEPICKER_DATE_DESCRIPTION);\n\t}\n\n\t/**\n\t * Defines whether the dialog on mobile should have header\n\t * @private\n\t */\n\tget _shouldHideHeader() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns the first picker depending on the CalendarPickerMode\n\t */\n\tget firstPicker() {\n\t\tconst calendarPickerMode = this._calendarPickersMode;\n\t\tlet firstPicker = \"day\";\n\n\t\tif (calendarPickerMode === CalendarPickersMode.YEAR) {\n\t\t\tfirstPicker = \"year\";\n\t\t} else if (calendarPickerMode === CalendarPickersMode.MONTH_YEAR) {\n\t\t\tfirstPicker = \"month\";\n\t\t}\n\n\t\treturn firstPicker;\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\t_respPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_canOpenPicker() {\n\t\treturn !this.disabled && !this.readonly;\n\t}\n\n\tget _calendarPickersMode() {\n\t\tconst format = this.getFormat() as DateFormat & { aFormatArray: Array<{type: string}> };\n\t\tconst patternSymbolTypes = format.aFormatArray.map(patternSymbolSettings => {\n\t\t\treturn patternSymbolSettings.type.toLowerCase();\n\t\t});\n\n\t\tif (patternSymbolTypes.includes(\"day\")) {\n\t\t\treturn CalendarPickersMode.DAY_MONTH_YEAR;\n\t\t}\n\n\t\tif (patternSymbolTypes.includes(\"month\") || patternSymbolTypes.includes(\"monthstandalone\")) {\n\t\t\treturn CalendarPickersMode.MONTH_YEAR;\n\t\t}\n\n\t\treturn CalendarPickersMode.YEAR;\n\t}\n\n\t/**\n\t * The user selected a new date in the calendar\n\t * @param e\n\t * @protected\n\t */\n\tonSelectedDatesChange(e: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\te.preventDefault();\n\t\tconst newValue = e.detail.selectedValues && e.detail.selectedValues[0];\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * The user clicked the \"month\" button in the header\n\t */\n\tonHeaderShowMonthPress() {\n\t\tthis._calendarCurrentPicker = \"month\";\n\t}\n\n\t/**\n\t * The user clicked the \"year\" button in the header\n\t */\n\tonHeaderShowYearPress() {\n\t\tthis._calendarCurrentPicker = \"year\";\n\t}\n\n\t/**\n\t * Formats a Java Script date object into a string representing a locale date\n\t * according to the `formatPattern` property of the DatePicker instance\n\t * @public\n\t * @param date A Java Script date object to be formatted as string\n\t * @returns The date as string\n\t */\n\tformatValue(date: Date): string {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\t_togglePicker(): void {\n\t\tthis.open = !this.open;\n\t}\n\n\t_toggleAndFocusInput() {\n\t\tthis._togglePicker();\n\t\tthis._getInput().focus();\n\t}\n\n\t/**\n\t * Currently selected date represented as a Local JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget dateValue(): Date | null {\n\t\treturn this.liveValue ? this.getFormat().parse(this.liveValue) as Date : this.getFormat().parse(this.value) as Date;\n\t}\n\n\tget dateValueUTC(): Date | null {\n\t\treturn this.liveValue ? this.getFormat().parse(this.liveValue, true) as Date : this.getFormat().parse(this.value) as Date;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn InputType.Text;\n\t}\n}\n\nDatePicker.define();\n\nexport default DatePicker;\nexport type {\n\tDatePickerChangeEventDetail,\n\tDatePickerInputEventDetail,\n\tDatePickerValueStateChangeEventDetail,\n};\n"]}
@@ -1,3 +1,4 @@
1
+ import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
1
2
  import DatePicker from "./DatePicker.js";
2
3
  import CalendarPickersMode from "./types/CalendarPickersMode.js";
3
4
  import type { DatePickerChangeEventDetail as DateRangePickerChangeEventDetail, DatePickerInputEventDetail as DateRangePickerInputEventDetail } from "./DatePicker.js";
@@ -34,7 +35,7 @@ import type { CalendarSelectionChangeEventDetail } from "./Calendar.js";
34
35
  * @since 1.0.0-rc.8
35
36
  * @public
36
37
  */
37
- declare class DateRangePicker extends DatePicker {
38
+ declare class DateRangePicker extends DatePicker implements IFormInputElement {
38
39
  /**
39
40
  * Determines the symbol which separates the dates.
40
41
  * If not supplied, the default time interval delimiter for the current locale will be used.
@@ -48,6 +49,7 @@ declare class DateRangePicker extends DatePicker {
48
49
  */
49
50
  _tempValue: string;
50
51
  private _prevDelimiter;
52
+ get formFormattedValue(): string | FormData;
51
53
  constructor();
52
54
  /**
53
55
  * **Note:** The getter method is inherited and not supported. If called it will return an empty value.
@@ -91,6 +93,8 @@ declare class DateRangePicker extends DatePicker {
91
93
  * @default null
92
94
  */
93
95
  get endDateValue(): Date | null;
96
+ get startValue(): string;
97
+ get endValue(): string;
94
98
  /**
95
99
  * @override
96
100
  */
@@ -12,10 +12,12 @@ import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDat
12
12
  import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
13
13
  import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
14
14
  import { DATERANGE_DESCRIPTION } from "./generated/i18n/i18n-defaults.js";
15
+ import DateRangePickerTemplate from "./generated/templates/DateRangePickerTemplate.lit.js";
15
16
  // Styles
16
17
  import DateRangePickerCss from "./generated/themes/DateRangePicker.css.js";
17
18
  import DatePicker from "./DatePicker.js";
18
19
  import CalendarPickersMode from "./types/CalendarPickersMode.js";
20
+ import CalendarDateRange from "./CalendarDateRange.js";
19
21
  /**
20
22
  * @class
21
23
  *
@@ -49,6 +51,17 @@ import CalendarPickersMode from "./types/CalendarPickersMode.js";
49
51
  * @public
50
52
  */
51
53
  let DateRangePicker = DateRangePicker_1 = class DateRangePicker extends DatePicker {
54
+ get formFormattedValue() {
55
+ const values = this._splitValueByDelimiter(this.value || "").filter(Boolean);
56
+ if (values.length) {
57
+ const formData = new FormData();
58
+ for (let i = 0; i < values.length; i++) {
59
+ formData.append(this.name, values[i]);
60
+ }
61
+ return formData;
62
+ }
63
+ return this.value;
64
+ }
52
65
  constructor() {
53
66
  super();
54
67
  this._prevDelimiter = null;
@@ -121,6 +134,12 @@ let DateRangePicker = DateRangePicker_1 = class DateRangePicker extends DatePick
121
134
  get endDateValue() {
122
135
  return CalendarDate.fromTimestamp(this._endDateTimestamp * 1000).toLocalJSDate();
123
136
  }
137
+ get startValue() {
138
+ return this._calendarSelectedDates[0] || "";
139
+ }
140
+ get endValue() {
141
+ return this._calendarSelectedDates[1] || "";
142
+ }
124
143
  /**
125
144
  * @override
126
145
  */
@@ -296,6 +315,8 @@ DateRangePicker = DateRangePicker_1 = __decorate([
296
315
  customElement({
297
316
  tag: "ui5-daterange-picker",
298
317
  styles: [DatePicker.styles, DateRangePickerCss],
318
+ template: DateRangePickerTemplate,
319
+ dependencies: [...DatePicker.dependencies, CalendarDateRange],
299
320
  })
300
321
  ], DateRangePicker);
301
322
  DateRangePicker.define();
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../src/DateRangePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport { DATERANGE_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport DateRangePickerCss from \"./generated/themes/DateRangePicker.css.js\";\nimport DatePicker from \"./DatePicker.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\n\nimport type {\n\tDatePickerChangeEventDetail as DateRangePickerChangeEventDetail,\n\tDatePickerInputEventDetail as DateRangePickerInputEventDetail,\n} from \"./DatePicker.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The DateRangePicker enables the users to enter a localized date range using touch, mouse, keyboard input, or by selecting a date range in the calendar.\n *\n * ### Usage\n * The user can enter a date by:\n * Using the calendar that opens in a popup or typing it in directly in the input field (not available for mobile devices).\n * For the `ui5-daterange-picker`\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DateRangePicker.js\";`\n *\n * ### Keyboard Handling\n * The `ui5-daterange-picker` provides advanced keyboard handling.\n *\n * When the `ui5-daterange-picker` input field is focused the user can\n * increment or decrement respectively the range start or end date, depending on where the cursor is.\n * The following shortcuts are available:\n *\n * - [Page Down] - Decrements the corresponding day of the month by one\n * - [Shift] + [Page Down] - Decrements the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one\n * - [Page Up] - Increments the corresponding day of the month by one\n * - [Shift] + [Page Up] - Increments the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one\n * @constructor\n * @extends DatePicker\n * @since 1.0.0-rc.8\n * @public\n */\n@customElement({\n\ttag: \"ui5-daterange-picker\",\n\tstyles: [DatePicker.styles, DateRangePickerCss],\n})\nclass DateRangePicker extends DatePicker {\n\t /**\n\t * Determines the symbol which separates the dates.\n\t * If not supplied, the default time interval delimiter for the current locale will be used.\n\t * @default \"-\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"-\" })\n\tdelimiter!: string;\n\n\t /**\n\t * The first date in the range during selection (this is a temporary value, not the first date in the value range)\n\t * @private\n\t */\n\t@property()\n\t_tempValue!: string;\n\n\tprivate _prevDelimiter: string | null;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._prevDelimiter = null;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValue(): Date | null {\n\t\treturn null;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValueUTC(): Date | null {\n\t\treturn null;\n\t}\n\n\tget _startDateTimestamp() {\n\t\treturn this._extractFirstTimestamp(this.value);\n\t}\n\n\tget _endDateTimestamp() {\n\t\treturn this._extractLastTimestamp(this.value);\n\t}\n\n\tget _tempTimestamp() {\n\t\treturn this._tempValue && (this.getFormat().parse(this._tempValue, true) as Date).getTime() / 1000;\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectionMode() {\n\t\treturn \"Range\";\n\t}\n\n\t/**\n\t * Required by DatePicker.js - set the calendar focus on the first selected date (or today if not set)\n\t * @override\n\t */\n\tget _calendarTimestamp() {\n\t\treturn this._tempTimestamp || this._startDateTimestamp || getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectedDates() {\n\t\tif (this._tempValue) {\n\t\t\treturn [this._tempValue];\n\t\t}\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn this._splitValueByDelimiter(this.value);\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the start date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget startDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\t/**\n\t * Returns the end date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget endDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._endDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : `${this._displayFormat} ${this._effectiveDelimiter} ${this._displayFormat}`;\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_DESCRIPTION);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _onInputSubmit() {\n\t\tconst input = this._getInput();\n\t\tconst caretPos = input.getCaretPosition();\n\t\tawait renderFinished();\n\t\tinput.setCaretPosition(caretPos); // Return the caret on the previous position after rendering\n\t}\n\n\t/**\n\t * @override\n\t */\n\t onResponsivePopoverAfterClose() {\n\t\tthis._tempValue = \"\"; // reset _tempValue on popover close\n\t\tsuper.onResponsivePopoverAfterClose();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tisValid(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value);\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValid(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * @override\n\t */\n\tisInValidRange(value: string): boolean {\n\t\treturn this._splitValueByDelimiter(value).every(dateString => super.isInValidRange(dateString));\n\t}\n\n\t/**\n\t * Extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)\n\t * @override\n\t */\n\tnormalizeValue(value: string) {\n\t\tconst firstDateTimestamp = this._extractFirstTimestamp(value);\n\t\tconst lastDateTimestamp = this._extractLastTimestamp(value);\n\t\tif (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n\t\t\treturn this._buildValue(lastDateTimestamp, firstDateTimestamp);\n\t\t}\n\t\treturn this._buildValue(firstDateTimestamp, lastDateTimestamp);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tonSelectedDatesChange(event: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\tevent.preventDefault(); // never let the calendar update its own dates, the parent component controls them\n\t\tconst values = event.detail.selectedValues;\n\n\t\tif (values.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date\n\t\t\tthis._tempValue = values[0];\n\t\t\treturn;\n\t\t}\n\t\tconst newValue = this._buildValue(event.detail.selectedDates[0], event.detail.selectedDates[1]); // the value will be normalized so we don't need to order them here\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _modifyDateValue(amount: number, unit: string, preserveDate?: boolean) {\n\t\tif (!this._endDateTimestamp) { // If empty or only one date -> treat as datepicker entirely\n\t\t\treturn super._modifyDateValue(amount, unit, preserveDate);\n\t\t}\n\n\t\tconst input = this._getInput();\n\t\tlet caretPos: number = input.getCaretPosition()!; // caret position is always number for input of type text;\n\t\tlet newValue: string;\n\n\t\tif (caretPos <= this.value.indexOf(this._effectiveDelimiter)) { // The user is focusing the first date -> change it and keep the second date\n\t\t\tconst startDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newStartDateTimestamp = startDateModified.valueOf() / 1000;\n\t\t\tif (newStartDateTimestamp > this._endDateTimestamp) { // dates flipped -> move the caret to the same position but on the last date\n\t\t\t\tcaretPos += Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t\tnewValue = this._buildValue(newStartDateTimestamp, this._endDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t} else {\n\t\t\tconst endDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._endDateTimestamp * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newEndDateTimestamp = endDateModified.valueOf() / 1000;\n\t\t\tnewValue = this._buildValue(this._startDateTimestamp, newEndDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t\tif (newEndDateTimestamp < this._startDateTimestamp!) { // dates flipped -> move the caret to the same position but on the first date\n\t\t\t\tcaretPos -= Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t}\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tawait renderFinished();\n\t\tinput.setCaretPosition(caretPos); // Return the caret to the previous (or the adjusted, if dates flipped) position after rendering\n\t}\n\n\tget _effectiveDelimiter(): string {\n\t\tconst ctor = this.constructor as typeof DateRangePicker;\n\t\treturn this.delimiter || (ctor.getMetadata().getProperties().delimiter.defaultValue) as string;\n\t}\n\n\t_splitValueByDelimiter(value: string) {\n\t\tconst valuesArray: Array<string> = [];\n\t\tconst partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);\n\n\t\t// if format successfully parse the value, the value contains only single date\n\t\tif (this.getFormat().parse(value)) {\n\t\t\tvaluesArray[0] = partsArray.join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = \"\";\n\t\t} else {\n\t\t\tvaluesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t}\n\n\t\treturn valuesArray;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty\n\t * @private\n\t */\n\t_extractFirstTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)\n\n\t\tconst parsedDate = this.getFormat().parse(dateStrings[0], true) as Date;\n\t\treturn parsedDate.getTime() / 1000;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date\n\t * @private\n\t */\n\t_extractLastTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst dateStrings = this._splitValueByDelimiter(value);\n\t\tif (dateStrings[1]) {\n\t\t\tconst parsedDate = this.getFormat().parse(dateStrings[1], true) as Date;\n\t\t\treturn parsedDate.getTime() / 1000;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n\t * @private\n\t */\n\t_buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {\n\t\tthis._prevDelimiter = this._effectiveDelimiter;\n\t\tif (firstDateTimestamp) {\n\t\t\tconst firstDateString = this._getStringFromTimestamp(firstDateTimestamp * 1000);\n\n\t\t\tif (!lastDateTimestamp) {\n\t\t\t\treturn firstDateString;\n\t\t\t}\n\n\t\t\tconst lastDateString = this._getStringFromTimestamp(lastDateTimestamp * 1000);\n\t\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _calendarPickersMode() {\n\t\treturn CalendarPickersMode.DAY_MONTH_YEAR;\n\t}\n}\n\nDateRangePicker.define();\n\nexport default DateRangePicker;\nexport type {\n\tDateRangePickerChangeEventDetail,\n\tDateRangePickerInputEventDetail,\n};\n"]}
1
+ {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../src/DateRangePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport { DATERANGE_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\nimport DateRangePickerTemplate from \"./generated/templates/DateRangePickerTemplate.lit.js\";\n\n// Styles\nimport DateRangePickerCss from \"./generated/themes/DateRangePicker.css.js\";\nimport DatePicker from \"./DatePicker.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport CalendarDateRange from \"./CalendarDateRange.js\";\n\nimport type {\n\tDatePickerChangeEventDetail as DateRangePickerChangeEventDetail,\n\tDatePickerInputEventDetail as DateRangePickerInputEventDetail,\n} from \"./DatePicker.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The DateRangePicker enables the users to enter a localized date range using touch, mouse, keyboard input, or by selecting a date range in the calendar.\n *\n * ### Usage\n * The user can enter a date by:\n * Using the calendar that opens in a popup or typing it in directly in the input field (not available for mobile devices).\n * For the `ui5-daterange-picker`\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DateRangePicker.js\";`\n *\n * ### Keyboard Handling\n * The `ui5-daterange-picker` provides advanced keyboard handling.\n *\n * When the `ui5-daterange-picker` input field is focused the user can\n * increment or decrement respectively the range start or end date, depending on where the cursor is.\n * The following shortcuts are available:\n *\n * - [Page Down] - Decrements the corresponding day of the month by one\n * - [Shift] + [Page Down] - Decrements the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one\n * - [Page Up] - Increments the corresponding day of the month by one\n * - [Shift] + [Page Up] - Increments the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one\n * @constructor\n * @extends DatePicker\n * @since 1.0.0-rc.8\n * @public\n */\n@customElement({\n\ttag: \"ui5-daterange-picker\",\n\tstyles: [DatePicker.styles, DateRangePickerCss],\n\ttemplate: DateRangePickerTemplate,\n\tdependencies: [...DatePicker.dependencies, CalendarDateRange],\n})\nclass DateRangePicker extends DatePicker implements IFormInputElement {\n\t /**\n\t * Determines the symbol which separates the dates.\n\t * If not supplied, the default time interval delimiter for the current locale will be used.\n\t * @default \"-\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"-\" })\n\tdelimiter!: string;\n\n\t /**\n\t * The first date in the range during selection (this is a temporary value, not the first date in the value range)\n\t * @private\n\t */\n\t@property()\n\t_tempValue!: string;\n\n\tprivate _prevDelimiter: string | null;\n\n\tget formFormattedValue() {\n\t\tconst values = this._splitValueByDelimiter(this.value || \"\").filter(Boolean);\n\n\t\tif (values.length) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tfor (let i = 0; i < values.length; i++) {\n\t\t\t\tformData.append(this.name, values[i]);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._prevDelimiter = null;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValue(): Date | null {\n\t\treturn null;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValueUTC(): Date | null {\n\t\treturn null;\n\t}\n\n\tget _startDateTimestamp() {\n\t\treturn this._extractFirstTimestamp(this.value);\n\t}\n\n\tget _endDateTimestamp() {\n\t\treturn this._extractLastTimestamp(this.value);\n\t}\n\n\tget _tempTimestamp() {\n\t\treturn this._tempValue && (this.getFormat().parse(this._tempValue, true) as Date).getTime() / 1000;\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectionMode() {\n\t\treturn \"Range\";\n\t}\n\n\t/**\n\t * Required by DatePicker.js - set the calendar focus on the first selected date (or today if not set)\n\t * @override\n\t */\n\tget _calendarTimestamp() {\n\t\treturn this._tempTimestamp || this._startDateTimestamp || getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectedDates() {\n\t\tif (this._tempValue) {\n\t\t\treturn [this._tempValue];\n\t\t}\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn this._splitValueByDelimiter(this.value);\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the start date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget startDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\t/**\n\t * Returns the end date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget endDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._endDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\tget startValue(): string {\n\t\treturn this._calendarSelectedDates[0] || \"\";\n\t}\n\n\tget endValue(): string {\n\t\treturn this._calendarSelectedDates[1] || \"\";\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder !== undefined ? this.placeholder : `${this._displayFormat} ${this._effectiveDelimiter} ${this._displayFormat}`;\n\t}\n\n\tget dateAriaDescription() {\n\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_DESCRIPTION);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _onInputSubmit() {\n\t\tconst input = this._getInput();\n\t\tconst caretPos = input.getCaretPosition();\n\t\tawait renderFinished();\n\t\tinput.setCaretPosition(caretPos); // Return the caret on the previous position after rendering\n\t}\n\n\t/**\n\t * @override\n\t */\n\t onResponsivePopoverAfterClose() {\n\t\tthis._tempValue = \"\"; // reset _tempValue on popover close\n\t\tsuper.onResponsivePopoverAfterClose();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tisValid(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value);\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValid(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * @override\n\t */\n\tisInValidRange(value: string): boolean {\n\t\treturn this._splitValueByDelimiter(value).every(dateString => super.isInValidRange(dateString));\n\t}\n\n\t/**\n\t * Extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)\n\t * @override\n\t */\n\tnormalizeValue(value: string) {\n\t\tconst firstDateTimestamp = this._extractFirstTimestamp(value);\n\t\tconst lastDateTimestamp = this._extractLastTimestamp(value);\n\t\tif (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n\t\t\treturn this._buildValue(lastDateTimestamp, firstDateTimestamp);\n\t\t}\n\t\treturn this._buildValue(firstDateTimestamp, lastDateTimestamp);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tonSelectedDatesChange(event: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\tevent.preventDefault(); // never let the calendar update its own dates, the parent component controls them\n\t\tconst values = event.detail.selectedValues;\n\n\t\tif (values.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date\n\t\t\tthis._tempValue = values[0];\n\t\t\treturn;\n\t\t}\n\t\tconst newValue = this._buildValue(event.detail.selectedDates[0], event.detail.selectedDates[1]); // the value will be normalized so we don't need to order them here\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _modifyDateValue(amount: number, unit: string, preserveDate?: boolean) {\n\t\tif (!this._endDateTimestamp) { // If empty or only one date -> treat as datepicker entirely\n\t\t\treturn super._modifyDateValue(amount, unit, preserveDate);\n\t\t}\n\n\t\tconst input = this._getInput();\n\t\tlet caretPos: number = input.getCaretPosition()!; // caret position is always number for input of type text;\n\t\tlet newValue: string;\n\n\t\tif (caretPos <= this.value.indexOf(this._effectiveDelimiter)) { // The user is focusing the first date -> change it and keep the second date\n\t\t\tconst startDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newStartDateTimestamp = startDateModified.valueOf() / 1000;\n\t\t\tif (newStartDateTimestamp > this._endDateTimestamp) { // dates flipped -> move the caret to the same position but on the last date\n\t\t\t\tcaretPos += Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t\tnewValue = this._buildValue(newStartDateTimestamp, this._endDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t} else {\n\t\t\tconst endDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._endDateTimestamp * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newEndDateTimestamp = endDateModified.valueOf() / 1000;\n\t\t\tnewValue = this._buildValue(this._startDateTimestamp, newEndDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t\tif (newEndDateTimestamp < this._startDateTimestamp!) { // dates flipped -> move the caret to the same position but on the first date\n\t\t\t\tcaretPos -= Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t}\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tawait renderFinished();\n\t\tinput.setCaretPosition(caretPos); // Return the caret to the previous (or the adjusted, if dates flipped) position after rendering\n\t}\n\n\tget _effectiveDelimiter(): string {\n\t\tconst ctor = this.constructor as typeof DateRangePicker;\n\t\treturn this.delimiter || (ctor.getMetadata().getProperties().delimiter.defaultValue) as string;\n\t}\n\n\t_splitValueByDelimiter(value: string) {\n\t\tconst valuesArray: Array<string> = [];\n\t\tconst partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);\n\n\t\t// if format successfully parse the value, the value contains only single date\n\t\tif (this.getFormat().parse(value)) {\n\t\t\tvaluesArray[0] = partsArray.join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = \"\";\n\t\t} else {\n\t\t\tvaluesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t}\n\n\t\treturn valuesArray;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty\n\t * @private\n\t */\n\t_extractFirstTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)\n\n\t\tconst parsedDate = this.getFormat().parse(dateStrings[0], true) as Date;\n\t\treturn parsedDate.getTime() / 1000;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date\n\t * @private\n\t */\n\t_extractLastTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst dateStrings = this._splitValueByDelimiter(value);\n\t\tif (dateStrings[1]) {\n\t\t\tconst parsedDate = this.getFormat().parse(dateStrings[1], true) as Date;\n\t\t\treturn parsedDate.getTime() / 1000;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n\t * @private\n\t */\n\t_buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {\n\t\tthis._prevDelimiter = this._effectiveDelimiter;\n\t\tif (firstDateTimestamp) {\n\t\t\tconst firstDateString = this._getStringFromTimestamp(firstDateTimestamp * 1000);\n\n\t\t\tif (!lastDateTimestamp) {\n\t\t\t\treturn firstDateString;\n\t\t\t}\n\n\t\t\tconst lastDateString = this._getStringFromTimestamp(lastDateTimestamp * 1000);\n\t\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _calendarPickersMode() {\n\t\treturn CalendarPickersMode.DAY_MONTH_YEAR;\n\t}\n}\n\nDateRangePicker.define();\n\nexport default DateRangePicker;\nexport type {\n\tDateRangePickerChangeEventDetail,\n\tDateRangePickerInputEventDetail,\n};\n"]}
@@ -1,4 +1,6 @@
1
+ /// <reference types="openui5" />
1
2
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
+ import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
2
4
  import "@ui5/webcomponents-icons/dist/date-time.js";
3
5
  import type ResponsivePopover from "./ResponsivePopover.js";
4
6
  import type { CalendarSelectionChangeEventDetail } from "./Calendar.js";
@@ -73,7 +75,7 @@ type PreviewValues = {
73
75
  * @since 1.0.0-rc.7
74
76
  * @public
75
77
  */
76
- declare class DateTimePicker extends DatePicker {
78
+ declare class DateTimePicker extends DatePicker implements IFormInputElement {
77
79
  /**
78
80
  * Defines the visibility of the time view in `phoneMode`.
79
81
  * For more information, see the `phoneMode` property.
@@ -181,6 +183,7 @@ declare class DateTimePicker extends DatePicker {
181
183
  _modifyDateValue(amount: number, unit: string, preserveDate: boolean): void;
182
184
  getPicker(): ResponsivePopover;
183
185
  getSelectedDateTime(): Date;
186
+ getFormat(): import("sap/ui/core/format/DateFormat").default;
184
187
  /**
185
188
  * @override
186
189
  */
@@ -14,6 +14,7 @@ import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateB
14
14
  import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
15
15
  import "@ui5/webcomponents-icons/dist/date-time.js";
16
16
  import UI5Date from "@ui5/webcomponents-localization/dist/dates/UI5Date.js";
17
+ import DateFormat from "@ui5/webcomponents-localization/dist/DateFormat.js";
17
18
  import Button from "./Button.js";
18
19
  import ToggleButton from "./ToggleButton.js";
19
20
  import SegmentedButton from "./SegmentedButton.js";
@@ -287,6 +288,19 @@ let DateTimePicker = DateTimePicker_1 = class DateTimePicker extends DatePicker
287
288
  }
288
289
  return selectedDate;
289
290
  }
291
+ getFormat() {
292
+ return this._isPattern
293
+ ? DateFormat.getDateTimeInstance({
294
+ strictParsing: true,
295
+ pattern: this._formatPattern,
296
+ calendarType: this._primaryCalendarType,
297
+ })
298
+ : DateFormat.getDateTimeInstance({
299
+ strictParsing: true,
300
+ style: this._formatPattern,
301
+ calendarType: this._primaryCalendarType,
302
+ });
303
+ }
290
304
  /**
291
305
  * @override
292
306
  */