@ui5/webcomponents 0.0.0-aeb93167c → 0.0.0-b053ad005

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 (742) hide show
  1. package/CHANGELOG.md +343 -0
  2. package/README.md +144 -52
  3. package/csp.js +7 -0
  4. package/customI18n.js +50 -0
  5. package/dist/Assets-static.js +6 -0
  6. package/dist/Assets.js +2 -1
  7. package/dist/Avatar.js +189 -49
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +45 -19
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +121 -34
  13. package/dist/Button.js +110 -66
  14. package/dist/Calendar.js +324 -648
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +110 -59
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +38 -198
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +253 -94
  21. package/dist/CheckBox.js +138 -70
  22. package/dist/ColorPalette.js +493 -0
  23. package/dist/ColorPaletteItem.js +137 -0
  24. package/dist/ColorPalettePopover.js +219 -0
  25. package/dist/ColorPicker.js +524 -0
  26. package/dist/ComboBox.js +348 -144
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +11 -24
  30. package/dist/CustomListItem.js +36 -2
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +264 -519
  33. package/dist/DateRangePicker.js +162 -426
  34. package/dist/DateTimePicker.js +94 -413
  35. package/dist/DayPicker.js +443 -648
  36. package/dist/Dialog.js +220 -58
  37. package/dist/DurationPicker.js +109 -511
  38. package/dist/FileUploader.js +70 -31
  39. package/dist/GroupHeaderListItem.js +22 -13
  40. package/dist/Icon.js +103 -41
  41. package/dist/Input.js +346 -155
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +105 -43
  45. package/dist/List.js +377 -104
  46. package/dist/ListItem.js +60 -13
  47. package/dist/ListItemBase.js +29 -2
  48. package/dist/MessageStrip.js +47 -46
  49. package/dist/MonthPicker.js +171 -225
  50. package/dist/MultiComboBox.js +356 -135
  51. package/dist/MultiComboBoxItem.js +7 -2
  52. package/dist/MultiInput.js +55 -24
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +63 -73
  55. package/dist/Popover.js +195 -80
  56. package/dist/Popup.js +151 -61
  57. package/dist/ProgressIndicator.js +28 -20
  58. package/dist/RadioButton.js +126 -43
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +27 -37
  62. package/dist/ResponsivePopover.js +56 -42
  63. package/dist/SegmentedButton.js +102 -68
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +275 -116
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +35 -9
  69. package/dist/StepInput.js +681 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +13 -26
  72. package/dist/SuggestionListItem.js +17 -6
  73. package/dist/Switch.js +52 -32
  74. package/dist/Tab.js +47 -26
  75. package/dist/TabContainer.js +94 -34
  76. package/dist/TabSeparator.js +1 -0
  77. package/dist/Table.js +474 -22
  78. package/dist/TableCell.js +11 -9
  79. package/dist/TableColumn.js +13 -3
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +210 -11
  82. package/dist/TextArea.js +86 -46
  83. package/dist/TimePicker.js +27 -743
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +16 -9
  87. package/dist/Toast.js +19 -8
  88. package/dist/ToggleButton.js +21 -8
  89. package/dist/Token.js +32 -16
  90. package/dist/Tokenizer.js +75 -42
  91. package/dist/Tree.js +97 -41
  92. package/dist/TreeItem.js +44 -9
  93. package/dist/TreeListItem.js +86 -2
  94. package/dist/WheelSlider.js +58 -58
  95. package/dist/YearPicker.js +188 -284
  96. package/dist/api.json +6877 -1
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +0 -1
  99. package/dist/features/InputSuggestions.js +131 -30
  100. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  105. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  110. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  111. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  112. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  113. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  115. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  119. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  123. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  136. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  148. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  156. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  157. package/dist/generated/i18n/i18n-defaults.js +2 -2
  158. package/dist/generated/json-imports/Themes-static.js +35 -0
  159. package/dist/generated/json-imports/Themes.js +23 -19
  160. package/dist/generated/json-imports/i18n-static.js +162 -0
  161. package/dist/generated/json-imports/i18n.js +113 -89
  162. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  163. package/dist/generated/templates/AvatarTemplate.lit.js +9 -16
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -13
  165. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  166. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  167. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -13
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -13
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -11
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -11
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -17
  173. package/dist/generated/templates/CarouselTemplate.lit.js +13 -19
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -14
  175. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  176. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -25
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -14
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -20
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -13
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -13
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -19
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -19
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -15
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +7 -14
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -14
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -11
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -13
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -31
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -15
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -11
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -12
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -20
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -16
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +8 -15
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -13
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -27
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -16
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +13 -19
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -14
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -16
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +4 -11
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -11
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +14 -17
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -14
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +11 -16
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -21
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -27
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -12
  216. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  217. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  218. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -28
  219. package/dist/generated/templates/StepInputTemplate.lit.js +8 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +24 -31
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -13
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -13
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -23
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +8 -17
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -11
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -11
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -11
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -11
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -18
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -15
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -15
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -15
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -15
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -13
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -17
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -11
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -13
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -14
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +9 -16
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -13
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +18 -24
  245. package/dist/generated/templates/TreeTemplate.lit.js +5 -12
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -14
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -13
  248. package/dist/generated/themes/Avatar.css.js +5 -5
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +5 -5
  251. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  252. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  253. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  254. package/dist/generated/themes/BusyIndicator.css.js +5 -5
  255. package/dist/generated/themes/Button.css.js +5 -5
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +5 -5
  258. package/dist/generated/themes/CalendarHeader.css.js +5 -5
  259. package/dist/generated/themes/Card.css.js +5 -5
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +5 -5
  262. package/dist/generated/themes/CheckBox.css.js +5 -5
  263. package/dist/generated/themes/ColorPalette.css.js +8 -0
  264. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  265. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  266. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  267. package/dist/generated/themes/ColorPicker.css.js +8 -0
  268. package/dist/generated/themes/ComboBox.css.js +5 -5
  269. package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
  270. package/dist/generated/themes/CustomListItem.css.js +5 -5
  271. package/dist/generated/themes/DatePicker.css.js +5 -5
  272. package/dist/generated/themes/DatePickerPopover.css.js +5 -5
  273. package/dist/generated/themes/DateRangePicker.css.js +5 -5
  274. package/dist/generated/themes/DateTimePicker.css.js +5 -5
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
  276. package/dist/generated/themes/DayPicker.css.js +5 -5
  277. package/dist/generated/themes/Dialog.css.js +5 -5
  278. package/dist/generated/themes/FileUploader.css.js +5 -5
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +5 -5
  282. package/dist/generated/themes/Input.css.js +5 -5
  283. package/dist/generated/themes/InputIcon.css.js +5 -5
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
  285. package/dist/generated/themes/Label.css.js +5 -5
  286. package/dist/generated/themes/Link.css.js +5 -5
  287. package/dist/generated/themes/List.css.js +5 -5
  288. package/dist/generated/themes/ListItem.css.js +5 -5
  289. package/dist/generated/themes/ListItemBase.css.js +5 -5
  290. package/dist/generated/themes/MessageStrip.css.js +5 -5
  291. package/dist/generated/themes/MonthPicker.css.js +5 -5
  292. package/dist/generated/themes/MultiComboBox.css.js +5 -5
  293. package/dist/generated/themes/MultiInput.css.js +5 -5
  294. package/dist/generated/themes/Panel.css.js +5 -5
  295. package/dist/generated/themes/Popover.css.js +5 -5
  296. package/dist/generated/themes/Popup.css.js +5 -5
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +5 -5
  299. package/dist/generated/themes/PopupsCommon.css.js +5 -5
  300. package/dist/generated/themes/ProgressIndicator.css.js +5 -5
  301. package/dist/generated/themes/RadioButton.css.js +5 -5
  302. package/dist/generated/themes/RatingIndicator.css.js +5 -5
  303. package/dist/generated/themes/ResponsivePopover.css.js +5 -5
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
  305. package/dist/generated/themes/SegmentedButton.css.js +5 -5
  306. package/dist/generated/themes/Select.css.js +5 -5
  307. package/dist/generated/themes/SelectPopover.css.js +5 -5
  308. package/dist/generated/themes/SliderBase.css.js +8 -0
  309. package/dist/generated/themes/StepInput.css.js +8 -0
  310. package/dist/generated/themes/Suggestions.css.js +8 -0
  311. package/dist/generated/themes/Switch.css.js +5 -5
  312. package/dist/generated/themes/Tab.css.js +5 -5
  313. package/dist/generated/themes/TabContainer.css.js +5 -5
  314. package/dist/generated/themes/TabInOverflow.css.js +5 -5
  315. package/dist/generated/themes/TabInStrip.css.js +5 -5
  316. package/dist/generated/themes/Table.css.js +5 -5
  317. package/dist/generated/themes/TableCell.css.js +5 -5
  318. package/dist/generated/themes/TableColumn.css.js +5 -5
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +5 -5
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +5 -5
  323. package/dist/generated/themes/TimePicker.css.js +5 -5
  324. package/dist/generated/themes/TimePickerPopover.css.js +5 -5
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +5 -5
  327. package/dist/generated/themes/Toast.css.js +5 -5
  328. package/dist/generated/themes/ToggleButton.css.js +5 -5
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +5 -5
  331. package/dist/generated/themes/Tokenizer.css.js +5 -5
  332. package/dist/generated/themes/Tree.css.js +5 -5
  333. package/dist/generated/themes/TreeListItem.css.js +5 -5
  334. package/dist/generated/themes/ValueStateMessage.css.js +5 -5
  335. package/dist/generated/themes/WheelSlider.css.js +5 -5
  336. package/dist/generated/themes/YearPicker.css.js +5 -5
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  344. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  346. package/dist/i18n/messagebundle.properties +335 -0
  347. package/dist/i18n/messagebundle_ar.properties +224 -0
  348. package/dist/i18n/messagebundle_bg.properties +224 -0
  349. package/dist/i18n/messagebundle_ca.properties +224 -0
  350. package/dist/i18n/messagebundle_cs.properties +224 -0
  351. package/dist/i18n/messagebundle_cy.properties +224 -0
  352. package/dist/i18n/messagebundle_da.properties +224 -0
  353. package/dist/i18n/messagebundle_de.properties +224 -0
  354. package/dist/i18n/messagebundle_el.properties +224 -0
  355. package/dist/i18n/messagebundle_en.properties +224 -0
  356. package/dist/i18n/messagebundle_en_GB.properties +224 -0
  357. package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
  358. package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
  359. package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
  360. package/dist/i18n/messagebundle_es.properties +224 -0
  361. package/dist/i18n/messagebundle_es_MX.properties +224 -0
  362. package/dist/i18n/messagebundle_et.properties +224 -0
  363. package/dist/i18n/messagebundle_fi.properties +224 -0
  364. package/dist/i18n/messagebundle_fr.properties +224 -0
  365. package/dist/i18n/messagebundle_fr_CA.properties +224 -0
  366. package/dist/i18n/messagebundle_hi.properties +224 -0
  367. package/dist/i18n/messagebundle_hr.properties +224 -0
  368. package/dist/i18n/messagebundle_hu.properties +224 -0
  369. package/dist/i18n/messagebundle_id.properties +224 -0
  370. package/dist/i18n/messagebundle_in.properties +172 -0
  371. package/dist/i18n/messagebundle_it.properties +224 -0
  372. package/dist/i18n/messagebundle_iw.properties +224 -0
  373. package/dist/i18n/messagebundle_ja.properties +224 -0
  374. package/dist/i18n/messagebundle_kk.properties +224 -0
  375. package/dist/i18n/messagebundle_ko.properties +224 -0
  376. package/dist/i18n/messagebundle_lt.properties +224 -0
  377. package/dist/i18n/messagebundle_lv.properties +224 -0
  378. package/dist/i18n/messagebundle_ms.properties +224 -0
  379. package/dist/i18n/messagebundle_nl.properties +224 -0
  380. package/dist/i18n/messagebundle_no.properties +224 -0
  381. package/dist/i18n/messagebundle_pl.properties +224 -0
  382. package/dist/i18n/messagebundle_pt.properties +224 -0
  383. package/dist/i18n/messagebundle_pt_PT.properties +224 -0
  384. package/dist/i18n/messagebundle_ro.properties +224 -0
  385. package/dist/i18n/messagebundle_ru.properties +224 -0
  386. package/dist/i18n/messagebundle_sh.properties +224 -0
  387. package/dist/i18n/messagebundle_sk.properties +224 -0
  388. package/dist/i18n/messagebundle_sl.properties +224 -0
  389. package/dist/i18n/messagebundle_sv.properties +224 -0
  390. package/dist/i18n/messagebundle_th.properties +224 -0
  391. package/dist/i18n/messagebundle_tr.properties +224 -0
  392. package/dist/i18n/messagebundle_uk.properties +224 -0
  393. package/dist/i18n/messagebundle_vi.properties +224 -0
  394. package/dist/i18n/messagebundle_zh_CN.properties +224 -0
  395. package/dist/i18n/messagebundle_zh_TW.properties +224 -0
  396. package/dist/popup-utils/OpenedPopupsRegistry.js +1 -1
  397. package/dist/popup-utils/PopoverRegistry.js +2 -4
  398. package/dist/timepicker-utils/TimeSlider.js +15 -13
  399. package/{src/types/AvatarBackgroundColor.js → dist/types/AvatarColorScheme.js} +9 -9
  400. package/dist/types/AvatarGroupType.js +43 -0
  401. package/dist/types/AvatarShape.js +1 -1
  402. package/dist/types/AvatarSize.js +1 -1
  403. package/dist/types/BreadcrumbsDesign.js +42 -0
  404. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  405. package/dist/types/BusyIndicatorSize.js +1 -1
  406. package/dist/types/ButtonDesign.js +8 -1
  407. package/dist/types/CalendarSelectionMode.js +47 -0
  408. package/dist/types/CarouselArrowsPlacement.js +3 -3
  409. package/dist/types/GrowingMode.js +48 -0
  410. package/dist/types/InputType.js +7 -7
  411. package/dist/types/LinkDesign.js +1 -1
  412. package/dist/types/ListGrowingMode.js +15 -0
  413. package/dist/types/ListItemType.js +1 -1
  414. package/dist/types/ListMode.js +1 -1
  415. package/dist/types/ListSeparators.js +1 -1
  416. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  417. package/dist/types/PanelAccessibleRole.js +1 -1
  418. package/dist/types/PopoverHorizontalAlign.js +1 -1
  419. package/dist/types/PopoverPlacementType.js +2 -2
  420. package/dist/types/PopoverVerticalAlign.js +1 -2
  421. package/dist/types/Priority.js +1 -1
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +5 -5
  425. package/dist/types/TabLayout.js +1 -1
  426. package/dist/types/TableGrowingMode.js +15 -0
  427. package/dist/types/TableMode.js +47 -0
  428. package/dist/types/TableRowType.js +40 -0
  429. package/dist/types/TitleLevel.js +1 -1
  430. package/dist/types/ToastPlacement.js +1 -2
  431. package/dist/types/WrappingType.js +41 -0
  432. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  433. package/dist/webcomponentsjs/README.md +64 -47
  434. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  435. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  436. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  437. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  438. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  439. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  440. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  441. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  442. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  443. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  444. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  445. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  446. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  447. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  448. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  449. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  450. package/package-scripts.js +1 -0
  451. package/package.json +18 -7
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +2 -1
  454. package/src/Avatar.hbs +14 -3
  455. package/src/Avatar.js +189 -49
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +7 -4
  459. package/src/Badge.js +45 -19
  460. package/src/Breadcrumbs.hbs +42 -0
  461. package/src/Breadcrumbs.js +563 -0
  462. package/src/BreadcrumbsItem.js +109 -0
  463. package/src/BreadcrumbsPopover.hbs +28 -0
  464. package/src/BusyIndicator.hbs +28 -14
  465. package/src/BusyIndicator.js +121 -34
  466. package/src/Button.hbs +5 -3
  467. package/src/Button.js +110 -66
  468. package/src/Calendar.hbs +53 -48
  469. package/src/Calendar.js +324 -648
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +29 -36
  472. package/src/CalendarHeader.js +110 -59
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +7 -39
  475. package/src/Card.js +38 -198
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +23 -16
  479. package/src/Carousel.js +253 -94
  480. package/src/CheckBox.hbs +10 -7
  481. package/src/CheckBox.js +138 -70
  482. package/src/ColorPalette.hbs +52 -0
  483. package/src/ColorPalette.js +493 -0
  484. package/src/ColorPaletteDialog.hbs +18 -0
  485. package/src/ColorPaletteItem.hbs +11 -0
  486. package/src/ColorPaletteItem.js +137 -0
  487. package/src/ColorPalettePopover.hbs +29 -0
  488. package/src/ColorPalettePopover.js +219 -0
  489. package/src/ColorPicker.hbs +98 -0
  490. package/src/ColorPicker.js +524 -0
  491. package/src/ComboBox.hbs +7 -2
  492. package/src/ComboBox.js +348 -144
  493. package/src/ComboBoxFilters.js +8 -1
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +11 -24
  496. package/src/ComboBoxPopover.hbs +26 -16
  497. package/src/CustomListItem.js +36 -2
  498. package/src/DateComponentBase.js +170 -0
  499. package/src/DatePicker.hbs +5 -4
  500. package/src/DatePicker.js +264 -519
  501. package/src/DatePickerPopover.hbs +22 -17
  502. package/src/DateRangePicker.js +162 -426
  503. package/src/DateTimePicker.js +94 -413
  504. package/src/DateTimePickerPopover.hbs +28 -52
  505. package/src/DayPicker.hbs +18 -12
  506. package/src/DayPicker.js +443 -648
  507. package/src/Dialog.hbs +14 -10
  508. package/src/Dialog.js +220 -58
  509. package/src/DurationPicker.js +109 -511
  510. package/src/FileUploader.hbs +3 -0
  511. package/src/FileUploader.js +70 -31
  512. package/src/FileUploaderPopover.hbs +2 -1
  513. package/src/GroupHeaderListItem.hbs +4 -4
  514. package/src/GroupHeaderListItem.js +22 -13
  515. package/src/Icon.hbs +4 -3
  516. package/src/Icon.js +103 -41
  517. package/src/Input.hbs +17 -6
  518. package/src/Input.js +346 -155
  519. package/src/InputPopover.hbs +11 -7
  520. package/src/Interfaces.js +192 -0
  521. package/src/Label.hbs +1 -1
  522. package/src/Label.js +27 -12
  523. package/src/Link.hbs +3 -2
  524. package/src/Link.js +105 -43
  525. package/src/List.hbs +76 -37
  526. package/src/List.js +377 -104
  527. package/src/ListItem.hbs +20 -7
  528. package/src/ListItem.js +60 -13
  529. package/src/ListItemBase.js +29 -2
  530. package/src/MessageStrip.hbs +10 -11
  531. package/src/MessageStrip.js +47 -46
  532. package/src/MonthPicker.hbs +6 -6
  533. package/src/MonthPicker.js +171 -225
  534. package/src/MultiComboBox.hbs +10 -6
  535. package/src/MultiComboBox.js +356 -135
  536. package/src/MultiComboBoxItem.js +7 -2
  537. package/src/MultiComboBoxPopover.hbs +42 -18
  538. package/src/MultiInput.hbs +2 -1
  539. package/src/MultiInput.js +55 -24
  540. package/src/Option.js +48 -5
  541. package/src/Panel.hbs +23 -16
  542. package/src/Panel.js +63 -73
  543. package/src/Popover.js +195 -80
  544. package/src/Popup.hbs +5 -0
  545. package/src/Popup.js +151 -61
  546. package/src/ProgressIndicator.hbs +7 -1
  547. package/src/ProgressIndicator.js +28 -20
  548. package/src/RadioButton.hbs +7 -4
  549. package/src/RadioButton.js +126 -43
  550. package/src/RadioButtonGroup.js +53 -29
  551. package/src/RangeSlider.hbs +70 -0
  552. package/src/RangeSlider.js +769 -0
  553. package/src/RatingIndicator.hbs +5 -3
  554. package/src/RatingIndicator.js +27 -37
  555. package/src/ResponsivePopover.hbs +13 -8
  556. package/src/ResponsivePopover.js +56 -42
  557. package/src/SegmentedButton.hbs +12 -5
  558. package/src/SegmentedButton.js +102 -68
  559. package/src/SegmentedButtonItem.hbs +42 -0
  560. package/src/SegmentedButtonItem.js +109 -0
  561. package/src/Select.hbs +26 -17
  562. package/src/Select.js +275 -116
  563. package/src/SelectPopover.hbs +27 -24
  564. package/src/Slider.hbs +42 -0
  565. package/src/Slider.js +320 -0
  566. package/src/SliderBase.hbs +38 -0
  567. package/src/SliderBase.js +842 -0
  568. package/src/StandardListItem.hbs +7 -5
  569. package/src/StandardListItem.js +35 -9
  570. package/src/StepInput.hbs +77 -0
  571. package/src/StepInput.js +681 -0
  572. package/src/SuggestionGroupItem.js +64 -0
  573. package/src/SuggestionItem.js +13 -26
  574. package/src/SuggestionListItem.hbs +4 -4
  575. package/src/SuggestionListItem.js +17 -6
  576. package/src/Switch.hbs +19 -3
  577. package/src/Switch.js +52 -32
  578. package/src/Tab.js +47 -26
  579. package/src/TabContainer.hbs +43 -26
  580. package/src/TabContainer.js +94 -34
  581. package/src/TabContainerPopover.hbs +2 -1
  582. package/src/TabInStrip.hbs +1 -6
  583. package/src/TabSeparator.hbs +1 -1
  584. package/src/TabSeparator.js +1 -0
  585. package/src/Table.hbs +95 -25
  586. package/src/Table.js +474 -22
  587. package/src/TableCell.hbs +1 -0
  588. package/src/TableCell.js +11 -9
  589. package/src/TableColumn.hbs +2 -0
  590. package/src/TableColumn.js +13 -3
  591. package/src/TableGroupRow.hbs +12 -0
  592. package/src/TableGroupRow.js +160 -0
  593. package/src/TableRow.hbs +29 -2
  594. package/src/TableRow.js +210 -11
  595. package/src/TextArea.hbs +1 -3
  596. package/src/TextArea.js +86 -46
  597. package/src/TextAreaPopover.hbs +2 -1
  598. package/src/TimePicker.hbs +6 -3
  599. package/src/TimePicker.js +27 -743
  600. package/src/TimePickerBase.js +463 -0
  601. package/src/TimePickerPopover.hbs +28 -52
  602. package/src/TimeSelection.hbs +60 -0
  603. package/src/TimeSelection.js +493 -0
  604. package/src/Title.js +16 -9
  605. package/src/Toast.hbs +13 -11
  606. package/src/Toast.js +19 -8
  607. package/src/ToggleButton.js +21 -8
  608. package/src/Token.hbs +2 -0
  609. package/src/Token.js +32 -16
  610. package/src/Tokenizer.hbs +1 -0
  611. package/src/Tokenizer.js +75 -42
  612. package/src/TokenizerPopover.hbs +1 -1
  613. package/src/Tree.hbs +10 -2
  614. package/src/Tree.js +97 -41
  615. package/src/TreeItem.js +44 -9
  616. package/src/TreeListItem.hbs +15 -4
  617. package/src/TreeListItem.js +86 -2
  618. package/src/WheelSlider.hbs +17 -10
  619. package/src/WheelSlider.js +58 -58
  620. package/src/YearPicker.hbs +9 -7
  621. package/src/YearPicker.js +188 -284
  622. package/src/features/ColorPaletteMoreColors.js +42 -0
  623. package/src/features/InputElementsFormSupport.js +0 -1
  624. package/src/features/InputSuggestions.js +131 -30
  625. package/src/i18n/messagebundle.properties +144 -189
  626. package/src/i18n/messagebundle_ar.properties +99 -115
  627. package/src/i18n/messagebundle_bg.properties +99 -115
  628. package/src/i18n/messagebundle_ca.properties +99 -115
  629. package/src/i18n/messagebundle_cs.properties +99 -115
  630. package/src/i18n/messagebundle_cy.properties +224 -0
  631. package/src/i18n/messagebundle_da.properties +99 -115
  632. package/src/i18n/messagebundle_de.properties +99 -115
  633. package/src/i18n/messagebundle_el.properties +99 -115
  634. package/src/i18n/messagebundle_en.properties +99 -115
  635. package/src/i18n/messagebundle_en_GB.properties +224 -0
  636. package/src/i18n/messagebundle_en_US_sappsd.properties +99 -115
  637. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  638. package/src/i18n/messagebundle_en_US_saptrc.properties +99 -115
  639. package/src/i18n/messagebundle_es.properties +99 -115
  640. package/src/i18n/messagebundle_es_MX.properties +224 -0
  641. package/src/i18n/messagebundle_et.properties +99 -115
  642. package/src/i18n/messagebundle_fi.properties +99 -115
  643. package/src/i18n/messagebundle_fr.properties +99 -115
  644. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  645. package/src/i18n/messagebundle_hi.properties +99 -115
  646. package/src/i18n/messagebundle_hr.properties +99 -115
  647. package/src/i18n/messagebundle_hu.properties +99 -115
  648. package/src/i18n/messagebundle_id.properties +224 -0
  649. package/src/i18n/messagebundle_in.properties +172 -0
  650. package/src/i18n/messagebundle_it.properties +99 -115
  651. package/src/i18n/messagebundle_iw.properties +99 -115
  652. package/src/i18n/messagebundle_ja.properties +100 -116
  653. package/src/i18n/messagebundle_kk.properties +99 -115
  654. package/src/i18n/messagebundle_ko.properties +99 -115
  655. package/src/i18n/messagebundle_lt.properties +99 -115
  656. package/src/i18n/messagebundle_lv.properties +99 -115
  657. package/src/i18n/messagebundle_ms.properties +99 -115
  658. package/src/i18n/messagebundle_nl.properties +99 -115
  659. package/src/i18n/messagebundle_no.properties +99 -115
  660. package/src/i18n/messagebundle_pl.properties +99 -115
  661. package/src/i18n/messagebundle_pt.properties +99 -115
  662. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  663. package/src/i18n/messagebundle_ro.properties +98 -114
  664. package/src/i18n/messagebundle_ru.properties +99 -115
  665. package/src/i18n/messagebundle_sh.properties +99 -115
  666. package/src/i18n/messagebundle_sk.properties +99 -115
  667. package/src/i18n/messagebundle_sl.properties +99 -115
  668. package/src/i18n/messagebundle_sv.properties +99 -115
  669. package/src/i18n/messagebundle_th.properties +99 -115
  670. package/src/i18n/messagebundle_tr.properties +99 -115
  671. package/src/i18n/messagebundle_uk.properties +101 -117
  672. package/src/i18n/messagebundle_vi.properties +99 -115
  673. package/src/i18n/messagebundle_zh_CN.properties +99 -115
  674. package/src/i18n/messagebundle_zh_TW.properties +99 -115
  675. package/src/popup-utils/OpenedPopupsRegistry.js +1 -1
  676. package/src/popup-utils/PopoverRegistry.js +2 -4
  677. package/src/timepicker-utils/TimeSlider.js +15 -13
  678. package/{dist/types/AvatarBackgroundColor.js → src/types/AvatarColorScheme.js} +9 -9
  679. package/src/types/AvatarGroupType.js +43 -0
  680. package/src/types/AvatarShape.js +1 -1
  681. package/src/types/AvatarSize.js +1 -1
  682. package/src/types/BreadcrumbsDesign.js +42 -0
  683. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  684. package/src/types/BusyIndicatorSize.js +1 -1
  685. package/src/types/ButtonDesign.js +8 -1
  686. package/src/types/CalendarSelectionMode.js +47 -0
  687. package/src/types/CarouselArrowsPlacement.js +3 -3
  688. package/src/types/GrowingMode.js +48 -0
  689. package/src/types/InputType.js +7 -7
  690. package/src/types/LinkDesign.js +1 -1
  691. package/src/types/ListGrowingMode.js +15 -0
  692. package/src/types/ListItemType.js +1 -1
  693. package/src/types/ListMode.js +1 -1
  694. package/src/types/ListSeparators.js +1 -1
  695. package/src/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  696. package/src/types/PanelAccessibleRole.js +1 -1
  697. package/src/types/PopoverHorizontalAlign.js +1 -1
  698. package/src/types/PopoverPlacementType.js +2 -2
  699. package/src/types/PopoverVerticalAlign.js +1 -2
  700. package/src/types/Priority.js +1 -1
  701. package/src/types/SemanticColor.js +1 -1
  702. package/src/types/SwitchDesign.js +40 -0
  703. package/src/types/TabContainerTabsPlacement.js +5 -5
  704. package/src/types/TabLayout.js +1 -1
  705. package/src/types/TableGrowingMode.js +15 -0
  706. package/src/types/TableMode.js +47 -0
  707. package/src/types/TableRowType.js +40 -0
  708. package/src/types/TitleLevel.js +1 -1
  709. package/src/types/ToastPlacement.js +1 -2
  710. package/src/types/WrappingType.js +41 -0
  711. package/dist/Timeline.js +0 -99
  712. package/dist/TimelineItem.js +0 -156
  713. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -14
  714. package/dist/generated/templates/DateRangePickerTemplate.lit.js +0 -16
  715. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -17
  716. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -16
  717. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -19
  718. package/dist/generated/templates/TimelineTemplate.lit.js +0 -15
  719. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  720. package/dist/generated/themes/DurationPicker.css.js +0 -8
  721. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  722. package/dist/generated/themes/Timeline.css.js +0 -8
  723. package/dist/generated/themes/TimelineItem.css.js +0 -8
  724. package/dist/popup-utils/PopupUtils.js +0 -84
  725. package/dist/types/AvatarFitType.js +0 -40
  726. package/dist/webcomponentsjs/package.json +0 -46
  727. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  728. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  729. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  730. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  731. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  732. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  733. package/src/ComboBoxItem.hbs +0 -0
  734. package/src/DateRangePicker.hbs +0 -1
  735. package/src/DurationPicker.hbs +0 -29
  736. package/src/DurationPickerPopover.hbs +0 -48
  737. package/src/Timeline.hbs +0 -9
  738. package/src/Timeline.js +0 -99
  739. package/src/TimelineItem.hbs +0 -39
  740. package/src/TimelineItem.js +0 -156
  741. package/src/popup-utils/PopupUtils.js +0 -84
  742. package/src/types/AvatarFitType.js +0 -40
@@ -1,9 +1,8 @@
1
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
2
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
3
- import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
1
+ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
4
2
  import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
5
- import DateRangePickerTemplate from "./generated/templates/DateRangePickerTemplate.lit.js";
6
- import RenderScheduler from "../../base/src/RenderScheduler.js";
3
+ import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
4
+ import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
5
+ import { DATERANGE_DESCRIPTION } from "./generated/i18n/i18n-defaults.js";
7
6
 
8
7
  // Styles
9
8
  import DateRangePickerCss from "./generated/themes/DateRangePicker.css.js";
@@ -17,38 +16,24 @@ const metadata = {
17
16
  properties: /** @lends sap.ui.webcomponents.main.DateRangePicker.prototype */ {
18
17
  /**
19
18
  * Determines the symbol which separates the dates.
19
+ * If not supplied, the default time interval delimiter for the current locale will be used.
20
20
  *
21
21
  * @type {string}
22
- * @defaultvalue "-"
23
22
  * @public
24
23
  */
25
24
  delimiter: {
26
25
  type: String,
27
26
  defaultValue: "-",
28
27
  },
28
+
29
29
  /**
30
- * Defines the UNIX timestamp of the first date - seconds since 00:00:00 UTC on Jan 1, 1970.
31
- * @type {number}
32
- * @private
33
- */
34
- _firstDateTimestamp: {
35
- type: Integer,
36
- },
37
- /**
38
- * Defines the UNIX timestamp of the second date- seconds since 00:00:00 UTC on Jan 1, 1970.
39
- * @type {number}
30
+ * The first date in the range during selection (this is a temporary value, not the first date in the value range)
40
31
  * @private
41
- */
42
- _lastDateTimestamp: {
43
- type: Integer,
32
+ */
33
+ _tempValue: {
34
+ type: String,
44
35
  },
45
36
  },
46
- slots: /** @lends sap.ui.webcomponents.main.DateRangePicker.prototype */ {
47
- //
48
- },
49
- events: /** @lends sap.ui.webcomponents.main.DateRangePicker.prototype */ {
50
- //
51
- },
52
37
  };
53
38
 
54
39
  /**
@@ -63,17 +48,15 @@ const metadata = {
63
48
  * For the <code>ui5-daterange-picker</code>
64
49
  * <h3>ES6 Module Import</h3>
65
50
  *
66
- * <code>import @ui5/webcomponents/dist/DateRangePicker.js";</code>
51
+ * <code>import "@ui5/webcomponents/dist/DateRangePicker.js";</code>
67
52
  *
68
53
  * <h3>Keyboard Handling</h3>
69
54
  * The <code>ui5-daterange-picker</code> provides advanced keyboard handling.
70
55
  * <br>
71
56
  *
72
57
  * When the <code>ui5-daterange-picker</code> input field is focused the user can
73
- * increment or decrement the corresponding field of the JS date object referenced by <code>_firstDateTimestamp</code> propery
74
- * if the caret symbol is before the delimiter character or <code>_lastDateTimestamp</code> property if the caret symbol is
75
- * after the delimiter character.
76
- * The following shortcuts are enabled:
58
+ * increment or decrement respectively the range start or end date, depending on where the cursor is.
59
+ * The following shortcuts are available:
77
60
  * <br>
78
61
  * <ul>
79
62
  * <li>[PAGEDOWN] - Decrements the corresponding day of the month by one</li>
@@ -97,493 +80,246 @@ class DateRangePicker extends DatePicker {
97
80
  return metadata;
98
81
  }
99
82
 
100
- static get render() {
101
- return litRender;
102
- }
103
-
104
83
  static get styles() {
105
84
  return [DatePicker.styles, DateRangePickerCss];
106
85
  }
107
86
 
108
- static get template() {
109
- return DateRangePickerTemplate;
110
- }
111
-
112
- constructor() {
113
- super();
114
- this.isFirstDatePick = true;
115
- this._initialRendering = true;
116
- this._oneTimeStampSelected = false; // Used to determine whether the first & last date is the same
117
- this._dayPickerMouseoverHandler = this._itemMouseoverHandler.bind(this);
118
- this._respPopoverConfig.beforeOpen = this.handleBeforeOpen;
119
- this._respPopoverConfig.beforeClose = this.handleBeforeClose;
120
- }
121
-
122
- async onAfterRendering() {
123
- const daypicker = this.getDayPicker();
124
- this._cleanHoveredAttributeFromVisibleItems(daypicker);
125
- this._initialRendering = false;
87
+ get _startDateTimestamp() {
88
+ return this._extractFirstTimestamp(this.value);
126
89
  }
127
90
 
128
- async handleBeforeOpen() {
129
- const daypicker = await this.getDayPicker();
130
- daypicker.addEventListener("item-mouseover", this._dayPickerMouseoverHandler);
131
- daypicker.addEventListener("daypickerrendered", this._keyboardNavigationHandler);
91
+ get _endDateTimestamp() {
92
+ return this._extractLastTimestamp(this.value);
132
93
  }
133
94
 
134
- async handleBeforeClose() {
135
- const daypicker = await this.getDayPicker();
136
- daypicker.removeEventListener("item-mouseover", this._dayPickerMouseoverHandler);
137
- daypicker.removeEventListener("daypickerrendered", this._keyboardNavigationHandler);
95
+ get _tempTimestamp() {
96
+ return this._tempValue && this.getFormat().parse(this._tempValue, true).getTime() / 1000;
138
97
  }
139
98
 
140
- _itemMouseoverHandler(event) {
141
- if (this._oneTimeStampSelected) {
142
- return;
143
- }
144
-
145
- const dayItems = event.target.shadowRoot.querySelectorAll(".ui5-dp-item");
146
- const firstDateTimestamp = event.target._selectedDates[0];
147
- const lastDateTimestamp = event.detail.target.parentElement.dataset.sapTimestamp;
148
-
149
- for (let i = 0; i < dayItems.length; i++) {
150
- if ((dayItems[i].dataset.sapTimestamp < firstDateTimestamp && dayItems[i].dataset.sapTimestamp > lastDateTimestamp)
151
- || (dayItems[i].dataset.sapTimestamp > firstDateTimestamp && dayItems[i].dataset.sapTimestamp < lastDateTimestamp)) {
152
- dayItems[i].setAttribute("hovered", "");
153
- } else {
154
- dayItems[i].removeAttribute("hovered");
155
- }
156
- }
157
- }
158
-
159
- _keyboardNavigationHandler(event) {
160
- if (!event.detail.focusedItemIndex) {
161
- return;
162
- }
163
-
164
- const dayItems = event.target.shadowRoot.querySelectorAll(".ui5-dp-item");
165
- const firstDateTimestamp = this._selectedDates[0];
166
- const lastDateTimestamp = dayItems[event.detail.focusedItemIndex].dataset.sapTimestamp;
167
-
168
- for (let i = 0; i < dayItems.length; i++) {
169
- if ((dayItems[i].dataset.sapTimestamp < firstDateTimestamp && dayItems[i].dataset.sapTimestamp > lastDateTimestamp)
170
- || (dayItems[i].dataset.sapTimestamp > firstDateTimestamp && dayItems[i].dataset.sapTimestamp < lastDateTimestamp)) {
171
- dayItems[i].setAttribute("hovered", "");
172
- } else {
173
- dayItems[i].removeAttribute("hovered");
174
- }
175
- }
176
- }
177
-
178
- _splitValueByDelimiter(value) {
179
- let returnValue = [];
180
-
181
- if (!value) {
182
- return ["", ""];
183
- }
184
-
185
- if (this.delimiter) {
186
- returnValue = String(value).split(this.delimiter);
187
- }
188
-
189
- return returnValue;
99
+ /**
100
+ * Required by DatePicker.js
101
+ * @override
102
+ */
103
+ get _calendarSelectionMode() {
104
+ return "Range";
190
105
  }
191
106
 
192
- _setValue(value) {
193
- const emptyValue = value === "",
194
- isValid = emptyValue || this._checkValueValidity(value);
195
- let dates = [undefined, undefined];
196
-
197
- if (value === this._prevValue) {
198
- return this;
199
- }
200
-
201
- if (!value) {
202
- this.value = "";
203
- return;
204
- }
205
-
206
- dates = this._splitValueByDelimiter(value);
207
- if (!isValid) {
208
- this.valueState = ValueState.Error;
209
- console.warn("Value can not be converted to a valid dates", this); // eslint-disable-line
210
- return;
211
- }
212
- this.valueState = ValueState.None;
213
-
214
- const firstDate = this.getFormat().parse(dates[0]);
215
- const secondDate = this.getFormat().parse(dates[1]);
216
-
217
- this._firstDateTimestamp = Date.UTC(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate(), firstDate.getHours()) / 1000;
218
- this._lastDateTimestamp = Date.UTC(secondDate.getFullYear(), secondDate.getMonth(), secondDate.getDate(), secondDate.getHours()) / 1000;
219
-
220
- if (this._firstDateTimestamp > this._lastDateTimestamp) {
221
- const temp = this._firstDateTimestamp;
222
- this._firstDateTimestamp = this._lastDateTimestamp;
223
- this._lastDateTimestamp = temp;
224
- }
225
-
226
- this._calendar.selectedDates = this.dateIntervalArrayBuilder(this._firstDateTimestamp * 1000, this._lastDateTimestamp * 1000);
227
-
228
- this.value = this._formatValue(firstDate.valueOf() / 1000, secondDate.valueOf() / 1000);
229
- this.realValue = this.value;
230
- this._prevValue = this.realValue;
107
+ /**
108
+ * Required by DatePicker.js - set the calendar focus on the first selected date (or today if not set)
109
+ * @override
110
+ */
111
+ get _calendarTimestamp() {
112
+ return this._tempTimestamp || this._startDateTimestamp || getTodayUTCTimestamp(this._primaryCalendarType);
231
113
  }
232
114
 
233
- _changeCalendarSelection(focusTimestamp) {
234
- if (this._calendarDate.getYear() < 1) {
235
- // 0 is a valid year, but we cannot display it
236
- return;
237
- }
238
-
239
- const oCalDate = this._calendarDate,
240
- timestamp = focusTimestamp || oCalDate.valueOf() / 1000,
241
- dates = this._splitValueByDelimiter(this.realValue);
242
-
243
- if (this._initialRendering) {
244
- this._oneTimeStampSelected = dates[0].trim() === dates[1].trim();
245
- this._setValue(this.realValue);
115
+ /**
116
+ * Required by DatePicker.js
117
+ * @override
118
+ */
119
+ get _calendarSelectedDates() {
120
+ if (this._tempValue) {
121
+ return [this._tempValue];
246
122
  }
247
-
248
- this._calendar = Object.assign({}, this._calendar);
249
- this._calendar.timestamp = timestamp;
250
- if (this.realValue && this._checkValueValidity(this.realValue)) {
251
- this._calendar.selectedDates = this.dateIntervalArrayBuilder(this._getTimeStampFromString(dates[0]), this._getTimeStampFromString(dates[1]));
123
+ if (this.value && this._checkValueValidity(this.value)) {
124
+ return this._splitValueByDelimiter(this.value);
252
125
  }
253
- }
254
-
255
- get _calendarDate() {
256
- const dates = this._splitValueByDelimiter(this.realValue),
257
- value = this._checkValueValidity(this.realValue) ? dates[0] : this.getFormat().format(new Date()),
258
- millisecondsUTCFirstDate = value ? this.getFormat().parse(value, true).getTime() : this.getFormat().parse(this.validValue, true).getTime(),
259
- oCalDateFirst = CalendarDate.fromTimestamp(
260
- millisecondsUTCFirstDate - (millisecondsUTCFirstDate % (24 * 60 * 60 * 1000)),
261
- this._primaryCalendarType
262
- );
263
-
264
- return oCalDateFirst;
265
- }
266
-
267
- get _shoudHideValueInInput() {
268
- return this._firstDateTimestamp === this._lastDateTimestamp && this._firstDateTimestamp;
126
+ return [];
269
127
  }
270
128
 
271
129
  /**
272
- * Currently selected first date represented as JavaScript Date instance.
130
+ * Returns the start date of the currently selected range as JavaScript Date instance.
273
131
  *
274
132
  * @readonly
275
133
  * @type { Date }
276
134
  * @public
277
135
  */
278
- get firstDateValue() {
279
- const dateValue = new Date(this._firstDateTimestamp * 1000);
280
- return new Date(dateValue.getUTCFullYear(), dateValue.getUTCMonth(), dateValue.getUTCDate(), dateValue.getUTCHours());
136
+ get startDateValue() {
137
+ return CalendarDate.fromTimestamp(this._startDateTimestamp * 1000).toLocalJSDate();
281
138
  }
282
139
 
283
140
  /**
284
- * Currently selected last date represented as JavaScript Date instance.
141
+ * Returns the end date of the currently selected range as JavaScript Date instance.
285
142
  *
286
143
  * @readonly
287
144
  * @type { Date }
288
145
  * @public
289
146
  */
290
- get lastDateValue() {
291
- const dateValue = new Date(this._lastDateTimestamp * 1000);
292
- return new Date(dateValue.getUTCFullYear(), dateValue.getUTCMonth(), dateValue.getUTCDate(), dateValue.getUTCHours());
147
+ get endDateValue() {
148
+ return CalendarDate.fromTimestamp(this._endDateTimestamp * 1000).toLocalJSDate();
293
149
  }
294
150
 
151
+ /**
152
+ * @override
153
+ */
295
154
  get _placeholder() {
296
- return this.placeholder !== undefined ? this.placeholder : this._displayFormat.concat(" ", this.delimiter, " ", this._displayFormat);
155
+ return this.placeholder !== undefined ? this.placeholder : `${this._displayFormat} ${this._effectiveDelimiter} ${this._displayFormat}`;
297
156
  }
298
157
 
299
- async getDayPicker() {
300
- this.responsivePopover = await this._respPopover();
301
- const calendar = this.responsivePopover.querySelector(`#${this._id}-calendar`);
302
- return calendar.shadowRoot.querySelector(`#${calendar._id}-daypicker`);
158
+ get dateAriaDescription() {
159
+ return DateRangePicker.i18nBundle.getText(DATERANGE_DESCRIPTION);
303
160
  }
304
161
 
305
- async _handleInputChange() {
306
- const nextValue = await this._getInput().getInputValue();
307
- const emptyValue = nextValue === "";
308
- const isValid = emptyValue || this._checkValueValidity(nextValue);
309
- const dates = this._splitValueByDelimiter(nextValue);
310
-
311
- if (dates.length === 2) {
312
- this._oneTimeStampSelected = dates[0].trim() === dates[1].trim();
313
- }
314
-
315
- if (isValid) {
316
- this._setValue(nextValue);
317
- this.valueState = ValueState.None;
318
- } else {
319
- this.valueState = ValueState.Error;
320
- }
321
-
322
- this.fireEvent("change", { value: nextValue, valid: isValid });
323
- // Angular two way data binding
324
- this.fireEvent("value-changed", { value: nextValue, valid: isValid });
325
- }
326
-
327
- _checkValueValidity(value) {
328
- return this.isValid(value) && this.isInValidRange(value);
162
+ /**
163
+ * @override
164
+ */
165
+ async _onInputSubmit(event) {
166
+ const input = this._getInput();
167
+ const caretPos = input.getCaretPosition();
168
+ await renderFinished();
169
+ input.setCaretPosition(caretPos); // Return the caret on the previous position after rendering
329
170
  }
330
171
 
331
- checkRealValueValidity() {
332
- return this.isValid(this.realValue) && this.isInValidRange(this.realValue);
172
+ /**
173
+ * @override
174
+ */
175
+ onResponsivePopoverAfterClose() {
176
+ this._tempValue = ""; // reset _tempValue on popover close
177
+ super.onResponsivePopoverAfterClose();
333
178
  }
334
179
 
180
+ /**
181
+ * @override
182
+ */
335
183
  isValid(value) {
336
- const dateStrings = this._splitValueByDelimiter(value, this.delimiter),
337
- isFirstDateValid = super.isValid(dateStrings[0]),
338
- isLastDateValid = super.isValid(dateStrings[1]);
339
-
340
- if (!dateStrings[1]) {
341
- return isFirstDateValid;
342
- }
343
-
344
- return isFirstDateValid && isLastDateValid;
184
+ const parts = this._splitValueByDelimiter(value);
185
+ return parts.length <= 2 && parts.every(dateString => super.isValid(dateString)); // must be at most 2 dates and each must be valid
345
186
  }
346
187
 
188
+ /**
189
+ * @override
190
+ */
347
191
  isInValidRange(value) {
348
- const dateStrings = this._splitValueByDelimiter(value, this.delimiter),
349
- isFirstDateInValidRange = super.isInValidRange(this._getTimeStampFromString(dateStrings[0])),
350
- isLastDateInValidRange = super.isInValidRange(this._getTimeStampFromString(dateStrings[1]));
351
-
352
- if (!dateStrings[1]) {
353
- return isFirstDateInValidRange;
354
- }
355
-
356
- return isFirstDateInValidRange && isLastDateInValidRange;
357
- }
358
-
359
- dateIntervalArrayBuilder(firstTimestamp, lastTimestamp) {
360
- const datesTimestamps = [],
361
- tempCalendarDate = CalendarDate.fromTimestamp(firstTimestamp);
362
-
363
- while (tempCalendarDate.valueOf() < lastTimestamp) {
364
- datesTimestamps.push(tempCalendarDate.valueOf() / 1000);
365
- tempCalendarDate.setDate(tempCalendarDate.getDate() + 1);
366
- }
367
-
368
- datesTimestamps.push(tempCalendarDate.valueOf() / 1000);
369
-
370
- return datesTimestamps;
371
- }
372
-
373
- _handleCalendarChange(event) {
374
- const newValue = event.detail.dates && event.detail.dates[0];
375
- this._oneTimeStampSelected = false;
376
- if (this.isFirstDatePick) {
377
- this.isFirstDatePick = false;
378
- this._firstDateTimestamp = newValue;
379
- this._lastDateTimestamp = newValue;
380
- this._calendar.timestamp = newValue;
381
- this._handleCalendarSelectedDatesChange();
382
- } else {
383
- this.closePicker();
384
- this.isFirstDatePick = true;
385
- if (newValue < this._firstDateTimestamp) {
386
- this._lastDateTimestamp = this._firstDateTimestamp;
387
- this._firstDateTimestamp = newValue;
388
- } else {
389
- this._oneTimeStampSelected = newValue === this._firstDateTimestamp;
390
- this._lastDateTimestamp = newValue;
391
- }
392
- const fireChange = this._handleCalendarSelectedDatesChange();
393
-
394
- if (fireChange) {
395
- this.fireEvent("change", { value: this.realValue, valid: true });
396
- // Angular two way data binding
397
- this.fireEvent("value-changed", { value: this.realValue, valid: true });
398
- }
399
- }
192
+ return this._splitValueByDelimiter(value).every(dateString => super.isInValidRange(dateString));
400
193
  }
401
194
 
402
195
  /**
403
- * Adds or extracts a given number of measuring units from the "dateValue" property value
404
- *
405
- * @param {boolean} forward if true indicates addition
406
- * @param {boolean} years indicates that the measuring unit is in years
407
- * @param {boolean} months indicates that the measuring unit is in months
408
- * @param {boolean} days indicates that the measuring unit is in days
409
- * @param {int} step number of measuring units to substract or add defaults ot 1
196
+ * Extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)
197
+ * @override
410
198
  */
411
- async _changeDateValueWrapper(forward, years, months, days, step = 1) {
412
- const emptyValue = this.value === "";
413
- const isValid = emptyValue || this._checkValueValidity(this.value);
414
-
415
- if (!isValid) {
416
- return;
417
- }
418
-
419
- const dates = this._splitValueByDelimiter(this.value);
420
- const innerInput = this.shadowRoot.querySelector("ui5-input").shadowRoot.querySelector(".ui5-input-inner");
421
- const caretPos = this._getCaretPosition(innerInput);
422
- const first = dates[0] && caretPos <= dates[0].trim().length + 1;
423
- const last = dates[1] && (caretPos >= this.value.length - dates[1].trim().length - 1 && caretPos <= this.value.length);
424
- let firstDate = this.getFormat().parse(dates[0]);
425
- let lastDate = this.getFormat().parse(dates[1]);
426
-
427
- if (first && firstDate) {
428
- firstDate = this._changeDateValue(firstDate, forward, years, months, days, step);
429
- } else if (last && lastDate) {
430
- lastDate = this._changeDateValue(lastDate, forward, years, months, days, step);
199
+ normalizeValue(value) {
200
+ const firstDateTimestamp = this._extractFirstTimestamp(value);
201
+ const lastDateTimestamp = this._extractLastTimestamp(value);
202
+ if (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary
203
+ return this._buildValue(lastDateTimestamp, firstDateTimestamp);
431
204
  }
432
-
433
- this.value = this._formatValue(firstDate.valueOf() / 1000, lastDate.valueOf() / 1000);
434
-
435
- await RenderScheduler.whenFinished();
436
- // Return the caret on the previous position after rendering
437
- this._setCaretPosition(innerInput, caretPos);
205
+ return this._buildValue(firstDateTimestamp, lastDateTimestamp);
438
206
  }
439
207
 
440
208
  /**
441
- * This method is used in the derived classes
209
+ * @override
442
210
  */
443
- async _handleEnterPressed() {
444
- const innerInput = this.shadowRoot.querySelector("ui5-input").shadowRoot.querySelector(".ui5-input-inner");
445
- const caretPos = this._getCaretPosition(innerInput);
211
+ onSelectedDatesChange(event) {
212
+ event.preventDefault(); // never let the calendar update its own dates, the parent component controls them
213
+ const values = event.detail.values;
446
214
 
447
- this._confirmInput();
448
-
449
- await RenderScheduler.whenFinished();
450
- // Return the caret on the previous position after rendering
451
- this._setCaretPosition(innerInput, caretPos);
452
- }
453
-
454
- _onfocusout() {
455
- this._confirmInput();
456
- }
457
-
458
- _confirmInput() {
459
- const emptyValue = this.value === "";
460
-
461
- if (emptyValue) {
215
+ if (values.length === 0) {
462
216
  return;
463
217
  }
464
218
 
465
- const dates = this._splitValueByDelimiter(this.value);
466
- let firstDate = this.getFormat().parse(dates[0]);
467
- let lastDate = this.getFormat().parse(dates[1]);
468
-
469
- if (firstDate > lastDate) {
470
- const temp = firstDate;
471
- firstDate = lastDate;
472
- lastDate = temp;
219
+ if (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date
220
+ this._tempValue = values[0];
221
+ return;
473
222
  }
474
223
 
475
- const newValue = this._formatValue(firstDate.valueOf() / 1000, lastDate.valueOf() / 1000);
476
-
477
- this._setValue(newValue);
224
+ const newValue = this._buildValue(...event.detail.dates); // the value will be normalized so we don't need to order them here
225
+ this._updateValueAndFireEvents(newValue, true, ["change", "value-changed"]);
226
+ this.closePicker();
478
227
  }
479
228
 
480
229
  /**
481
- * Returns the caret (cursor) position of the specified text field (field).
482
- * Return value range is 0-field.value.length.
483
- */
484
- _getCaretPosition(field) {
485
- // Initialize
486
- let caretPos = 0;
487
-
488
- // IE Support
489
- if (document.selection) {
490
- // Set focus on the element
491
- field.focus();
492
-
493
- // To get cursor position, get empty selection range
494
- const selection = document.selection.createRange();
495
-
496
- // Move selection start to 0 position
497
- selection.moveStart("character", -field.value.length);
498
-
499
- // The caret position is selection length
500
- caretPos = selection.text.length;
501
- } else if (field.selectionStart || field.selectionStart === "0") { // Firefox support
502
- caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
230
+ * @override
231
+ */
232
+ async _modifyDateValue(amount, unit) {
233
+ if (!this._endDateTimestamp) { // If empty or only one date -> treat as datepicker entirely
234
+ return super._modifyDateValue(amount, unit);
503
235
  }
504
236
 
505
- return caretPos;
506
- }
237
+ const input = this._getInput();
238
+ let caretPos = input.getCaretPosition();
239
+ let newValue;
507
240
 
508
- _setCaretPosition(field, caretPos) {
509
- if (field.createTextRange) {
510
- const range = field.createTextRange();
511
- range.move("character", caretPos);
512
- range.select();
513
- } else if (field.selectionStart) {
514
- field.focus();
515
- field.setSelectionRange(caretPos, caretPos);
241
+ if (caretPos <= this.value.indexOf(this._effectiveDelimiter)) { // The user is focusing the first date -> change it and keep the seoond date
242
+ const startDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._startDateTimestamp * 1000), amount, unit, this._minDate, this._maxDate);
243
+ const newStartDateTimestamp = startDateModified.valueOf() / 1000;
244
+ if (newStartDateTimestamp > this._endDateTimestamp) { // dates flipped -> move the caret to the same position but on the last date
245
+ caretPos += Math.ceil(this.value.length / 2);
246
+ }
247
+ newValue = this._buildValue(newStartDateTimestamp, this._endDateTimestamp); // the value will be normalized so we don't try to order them here
516
248
  } else {
517
- field.focus();
249
+ const endDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._endDateTimestamp * 1000), amount, unit, this._minDate, this._maxDate);
250
+ const newEndDateTimestamp = endDateModified.valueOf() / 1000;
251
+ newValue = this._buildValue(this._startDateTimestamp, newEndDateTimestamp); // the value will be normalized so we don't try to order them here
252
+ if (newEndDateTimestamp < this._startDateTimestamp) { // dates flipped -> move the caret to the same position but on the first date
253
+ caretPos -= Math.ceil(this.value.length / 2);
254
+ }
518
255
  }
256
+ this._updateValueAndFireEvents(newValue, true, ["change", "value-changed"]);
257
+
258
+ await renderFinished();
259
+ input.setCaretPosition(caretPos); // Return the caret to the previous (or the adjusted, if dates flipped) position after rendering
519
260
  }
520
261
 
521
- _handleCalendarSelectedDatesChange() {
522
- this._updateValueCalendarSelectedDatesChange();
523
- this._cleanHoveredAttributeFromVisibleItems();
262
+ get _effectiveDelimiter() {
263
+ return this.delimiter || this.constructor.getMetadata().getProperties().delimiter.defaultValue; // treat empty string as the default value
264
+ }
524
265
 
525
- this._calendar.timestamp = this._firstDateTimestamp;
526
- this._calendar.selectedDates = this.dateIntervalArrayBuilder(this._firstDateTimestamp * 1000, this._lastDateTimestamp * 1000);
527
- this._focusInputAfterClose = true;
266
+ _splitValueByDelimiter(value) {
267
+ const valuesArray = [];
268
+ const partsArray = value.split(this._effectiveDelimiter);
528
269
 
529
- if (this.isInValidRange(this.realValue)) {
530
- this.valueState = ValueState.None;
531
- } else {
532
- this.valueState = ValueState.Error;
533
- }
270
+ valuesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);
271
+ valuesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);
534
272
 
535
- return true;
273
+ return valuesArray;
536
274
  }
537
275
 
538
- async _cleanHoveredAttributeFromVisibleItems(dayPicker) {
539
- if (!dayPicker) {
540
- return;
276
+ /**
277
+ * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty
278
+ * @private
279
+ */
280
+ _extractFirstTimestamp(value) {
281
+ if (!value || !this._checkValueValidity(value)) {
282
+ return undefined;
541
283
  }
542
284
 
543
- const daypicker = await this.getDayPicker();
544
- const dayItems = daypicker.shadowRoot.querySelectorAll(".ui5-dp-item");
545
-
546
- for (let i = 0; i < dayItems.length; i++) {
547
- dayItems[i].removeAttribute("hovered");
548
- }
285
+ const dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)
286
+ return this.getFormat().parse(dateStrings[0], true).getTime() / 1000;
549
287
  }
550
288
 
551
- _updateValueCalendarSelectedDatesChange() {
552
- const calStartDate = CalendarDate.fromTimestamp(this._firstDateTimestamp * 1000, this._primaryCalendarType);
553
- const calEndDate = CalendarDate.fromTimestamp(this._lastDateTimestamp * 1000, this._primaryCalendarType);
289
+ /**
290
+ * 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
291
+ * @private
292
+ */
293
+ _extractLastTimestamp(value) {
294
+ if (!value || !this._checkValueValidity(value)) {
295
+ return undefined;
296
+ }
554
297
 
555
- // Collect both dates and merge them into one
556
- if (this._firstDateTimestamp !== this._lastDateTimestamp || this._oneTimeStampSelected) {
557
- this.value = this._formatValue(calStartDate.toLocalJSDate().valueOf() / 1000, calEndDate.toLocalJSDate().valueOf() / 1000);
298
+ const dateStrings = this._splitValueByDelimiter(value);
299
+ if (dateStrings[1]) {
300
+ return this.getFormat().parse(dateStrings[1], true).getTime() / 1000;
558
301
  }
559
302
 
560
- this.realValue = this._formatValue(calStartDate.toLocalJSDate().valueOf() / 1000, calEndDate.toLocalJSDate().valueOf() / 1000);
561
- this._prevValue = this.realValue;
303
+ return undefined;
562
304
  }
563
305
 
564
306
  /**
565
- * Combines the start and end dates of a range into a formated string
566
- *
567
- * @param {int} firstDateValue locale start date timestamp
568
- * @param {int} lastDateValue locale end date timestamp
569
- * @returns {string} formated start to end date range
307
+ * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp
308
+ * @private
570
309
  */
571
- _formatValue(firstDateValue, lastDateValue) {
572
- let value = "";
573
- const delimiter = this.delimiter,
574
- format = this.getFormat(),
575
- firstDateString = format.format(new Date(firstDateValue * 1000)),
576
- lastDateString = format.format(new Date(lastDateValue * 1000));
577
-
578
- if (firstDateValue) {
579
- if (delimiter && delimiter !== "" && lastDateString) {
580
- value = firstDateString.concat(" ", delimiter, " ", lastDateString);
581
- } else {
582
- value = firstDateString;
310
+ _buildValue(firstDateTimestamp, lastDateTimestamp) {
311
+ if (firstDateTimestamp) {
312
+ const firstDateString = this._getStringFromTimestamp(firstDateTimestamp * 1000);
313
+
314
+ if (!lastDateTimestamp) {
315
+ return firstDateString;
583
316
  }
317
+
318
+ const lastDateString = this._getStringFromTimestamp(lastDateTimestamp * 1000);
319
+ return `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;
584
320
  }
585
321
 
586
- return value;
322
+ return "";
587
323
  }
588
324
  }
589
325