@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
package/src/DatePicker.js CHANGED
@@ -1,17 +1,11 @@
1
- import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
- import { fetchCldr } from "@ui5/webcomponents-base/dist/asset-registries/LocaleData.js";
4
- import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
5
- import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
6
1
  import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
7
- import getCachedLocaleDataInstance from "@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js";
8
- import DateFormat from "@ui5/webcomponents-localization/dist/DateFormat.js";
9
- import CalendarType from "@ui5/webcomponents-base/dist/types/CalendarType.js";
10
2
  import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
3
+ import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
4
+ import getRoundedTimestamp from "@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js";
5
+ import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
11
6
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
12
7
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
13
8
  import {
14
- isEnter,
15
9
  isPageUp,
16
10
  isPageDown,
17
11
  isPageUpShift,
@@ -22,14 +16,15 @@ import {
22
16
  isF4,
23
17
  } from "@ui5/webcomponents-base/dist/Keys.js";
24
18
  import { isPhone, isIE } from "@ui5/webcomponents-base/dist/Device.js";
25
- import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
26
19
  import "@ui5/webcomponents-icons/dist/appointment-2.js";
27
20
  import "@ui5/webcomponents-icons/dist/decline.js";
28
- import { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_ACC_TEXT, INPUT_SUGGESTIONS_TITLE } from "./generated/i18n/i18n-defaults.js";
21
+ import { DATEPICKER_OPEN_ICON_TITLE, DATEPICKER_DATE_DESCRIPTION, INPUT_SUGGESTIONS_TITLE } from "./generated/i18n/i18n-defaults.js";
22
+ import DateComponentBase from "./DateComponentBase.js";
29
23
  import Icon from "./Icon.js";
30
24
  import Button from "./Button.js";
31
25
  import ResponsivePopover from "./ResponsivePopover.js";
32
26
  import Calendar from "./Calendar.js";
27
+ import * as CalendarDateComponent from "./CalendarDate.js";
33
28
  import Input from "./Input.js";
34
29
  import InputType from "./types/InputType.js";
35
30
  import DatePickerTemplate from "./generated/templates/DatePickerTemplate.lit.js";
@@ -49,7 +44,6 @@ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverComm
49
44
  const metadata = {
50
45
  tag: "ui5-date-picker",
51
46
  altTag: "ui5-datepicker",
52
- languageAware: true,
53
47
  managedSlots: true,
54
48
  properties: /** @lends sap.ui.webcomponents.main.DatePicker.prototype */ {
55
49
  /**
@@ -64,7 +58,7 @@ const metadata = {
64
58
  },
65
59
 
66
60
  /**
67
- * Defines the value state of the <code>ui5-date-picker</code>.
61
+ * Defines the value state of the component.
68
62
  * <br><br>
69
63
  * Available options are:
70
64
  * <ul>
@@ -85,67 +79,10 @@ const metadata = {
85
79
  },
86
80
 
87
81
  /**
88
- * Determines the format, displayed in the input field.
89
- *
90
- * @type {string}
91
- * @defaultvalue ""
92
- * @public
93
- */
94
- formatPattern: {
95
- type: String,
96
- },
97
-
98
- /**
99
- * Determines the minimum date available for selection.
100
- *
101
- * @type {string}
102
- * @defaultvalue ""
103
- * @since 1.0.0-rc.6
104
- * @public
105
- */
106
- minDate: {
107
- type: String,
108
- },
109
-
110
- /**
111
- * Determines the maximum date available for selection.
112
- *
113
- * @type {string}
114
- * @defaultvalue ""
115
- * @since 1.0.0-rc.6
116
- * @public
117
- */
118
- maxDate: {
119
- type: String,
120
- },
121
-
122
- /**
123
- * Determines the calendar type.
124
- * The input value is formated according to the calendar type
125
- * and the picker shows the months and years from the specified calendar.
126
- * <br><br>
127
- * Available options are:
128
- * <ul>
129
- * <li><code>Gregorian</code></li>
130
- * <li><code>Islamic</code></li>
131
- * <li><code>Japanese</code></li>
132
- * <li><code>Buddhist</code></li>
133
- * <li><code>Persian</code></li>
134
- * </ul>
135
- *
136
- * @type {CalendarType}
137
- * @defaultvalue "Gregorian"
138
- * @public
139
- */
140
- primaryCalendarType: {
141
- type: CalendarType,
142
- },
143
-
144
- /**
145
- * Defines whether the <code>ui5-datepicker</code> is required.
82
+ * Defines whether the component is required.
146
83
  *
147
84
  * @since 1.0.0-rc.9
148
- * @type {Boolean}
85
+ * @type {boolean}
149
86
  * @defaultvalue false
150
87
  * @public
151
88
  */
@@ -154,7 +91,7 @@ const metadata = {
154
91
  },
155
92
 
156
93
  /**
157
- * Determines whether the <code>ui5-date-picker</code> is displayed as disabled.
94
+ * Determines whether the component is displayed as disabled.
158
95
  *
159
96
  * @type {boolean}
160
97
  * @defaultvalue false
@@ -165,7 +102,7 @@ const metadata = {
165
102
  },
166
103
 
167
104
  /**
168
- * Determines whether the <code>ui5-date-picker</code> is displayed as read-only.
105
+ * Determines whether the component is displayed as read-only.
169
106
  *
170
107
  * @type {boolean}
171
108
  * @defaultvalue false
@@ -177,11 +114,11 @@ const metadata = {
177
114
 
178
115
  /**
179
116
  * Defines a short hint, intended to aid the user with data entry when the
180
- * <code>ui5-date-picker</code> has no value.
117
+ * component has no value.
181
118
  *
182
119
  * <br><br>
183
120
  * <b>Note:</b> When no placeholder is set, the format pattern is displayed as a placeholder.
184
- * Passing an empty string as the value of this property will make the <code>ui5-date-picker</code> appear empty - without placeholder or format pattern.
121
+ * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.
185
122
  *
186
123
  * @type {string}
187
124
  * @defaultvalue undefined
@@ -193,7 +130,7 @@ const metadata = {
193
130
  },
194
131
 
195
132
  /**
196
- * Determines the name with which the <code>ui5-date-picker</code> will be submitted in an HTML form.
133
+ * Determines the name with which the component will be submitted in an HTML form.
197
134
  *
198
135
  * <br><br>
199
136
  * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
@@ -201,7 +138,7 @@ const metadata = {
201
138
  *
202
139
  * <br><br>
203
140
  * <b>Note:</b> When set, a native <code>input</code> HTML element
204
- * will be created inside the <code>ui5-date-picker</code> so that it can be submitted as
141
+ * will be created inside the component so that it can be submitted as
205
142
  * part of an HTML form. Do not use this property unless you need to submit a form.
206
143
  *
207
144
  * @type {string}
@@ -216,7 +153,7 @@ const metadata = {
216
153
  * Defines the visibility of the week numbers column.
217
154
  * <br><br>
218
155
  *
219
- * <b>Note:<b> For calendars other than Gregorian,
156
+ * <b>Note:</b> For calendars other than Gregorian,
220
157
  * the week numbers are not displayed regardless of what is set.
221
158
  *
222
159
  * @type {boolean}
@@ -229,26 +166,25 @@ const metadata = {
229
166
  },
230
167
 
231
168
  /**
232
- * Defines the aria-label attribute for the <code>ui5-date-picker</code>.
169
+ * Defines the aria-label attribute for the component.
233
170
  *
234
171
  * @type {String}
235
- * @since 1.0.0-rc.9
236
- * @private
237
- * @defaultvalue ""
172
+ * @public
173
+ * @since 1.0.0-rc.15
238
174
  */
239
- ariaLabel: {
175
+ accessibleName: {
240
176
  type: String,
241
177
  },
242
178
 
243
179
  /**
244
- * Receives id(or many ids) of the elements that label the <code>ui5-date-picker</code>.
180
+ * Receives id(or many ids) of the elements that label the component.
245
181
  *
246
182
  * @type {String}
247
183
  * @defaultvalue ""
248
- * @private
249
- * @since 1.0.0-rc.9
184
+ * @public
185
+ * @since 1.0.0-rc.15
250
186
  */
251
- ariaLabelledby: {
187
+ accessibleNameRef: {
252
188
  type: String,
253
189
  defaultValue: "",
254
190
  },
@@ -262,20 +198,21 @@ const metadata = {
262
198
  type: Object,
263
199
  },
264
200
 
265
- _calendar: {
266
- type: Object,
201
+ _calendarCurrentPicker: {
202
+ type: String,
203
+ defaultValue: "day",
267
204
  },
268
205
  },
269
206
 
270
207
  slots: /** @lends sap.ui.webcomponents.main.DatePicker.prototype */ {
271
208
  /**
272
- * Defines the value state message that will be displayed as pop up under the <code>ui5-date-picker</code>.
209
+ * Defines the value state message that will be displayed as pop up under the component.
273
210
  * <br><br>
274
211
  *
275
212
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
276
213
  * <br>
277
214
  * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
278
- * when the <code>ui5-date-picker</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
215
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
279
216
  * @type {HTMLElement}
280
217
  * @since 1.0.0-rc.7
281
218
  * @slot
@@ -284,6 +221,17 @@ const metadata = {
284
221
  valueStateMessage: {
285
222
  type: HTMLElement,
286
223
  },
224
+
225
+ /**
226
+ * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,
227
+ * when <code>name</code> property is set.
228
+ * @type {HTMLElement[]}
229
+ * @slot
230
+ * @private
231
+ */
232
+ formSupport: {
233
+ type: HTMLElement,
234
+ },
287
235
  },
288
236
 
289
237
  events: /** @lends sap.ui.webcomponents.main.DatePicker.prototype */ {
@@ -292,17 +240,41 @@ const metadata = {
292
240
  * Fired when the input operation has finished by pressing Enter or on focusout.
293
241
  *
294
242
  * @event
243
+ * @allowPreventDefault
295
244
  * @public
245
+ * @param {String} value The submitted value.
246
+ * @param {Boolean} valid Indicator if the value is in correct format pattern and in valid range.
296
247
  */
297
- change: {},
248
+ change: {
249
+ details: {
250
+ value: {
251
+ type: String,
252
+ },
253
+ valid: {
254
+ type: Boolean,
255
+ },
256
+ },
257
+ },
298
258
 
299
259
  /**
300
- * Fired when the value of the <code>ui5-date-picker</code> is changed at each key stroke.
260
+ * Fired when the value of the component is changed at each key stroke.
301
261
  *
302
262
  * @event
263
+ * @allowPreventDefault
303
264
  * @public
265
+ * @param {String} value The submitted value.
266
+ * @param {Boolean} valid Indicator if the value is in correct format pattern and in valid range.
304
267
  */
305
- input: {},
268
+ input: {
269
+ details: {
270
+ value: {
271
+ type: String,
272
+ },
273
+ valid: {
274
+ type: Boolean,
275
+ },
276
+ },
277
+ },
306
278
  },
307
279
  };
308
280
 
@@ -324,7 +296,7 @@ const metadata = {
324
296
  * <li>Typing it in directly in the input field</li>
325
297
  * </ul>
326
298
  * <br><br>
327
- * When the user makes an entry and chooses the enter key, the calendar shows the corresponding date.
299
+ * When the user makes an entry and presses the enter key, the calendar shows the corresponding date.
328
300
  * When the user directly triggers the calendar display, the actual date is displayed.
329
301
  *
330
302
  * <h3>Formatting</h3>
@@ -360,6 +332,29 @@ const metadata = {
360
332
  * <li>[SHIFT] + [CTRL] + [PAGEUP] - Increments the corresponding year by one</li>
361
333
  * </ul>
362
334
  *
335
+ * <h3>Calendar types</h3>
336
+ * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.
337
+ * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,
338
+ * you need to set the <code>primaryCalendarType</code> property and import one or more of the following modules:
339
+ * <br><br>
340
+ *
341
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js";</code>
342
+ * <br>
343
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Islamic.js";</code>
344
+ * <br>
345
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Japanese.js";</code>
346
+ * <br>
347
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Persian.js";</code>
348
+ * <br><br>
349
+ *
350
+ * Or, you can use the global configuration and set the <code>calendarType</code> key:
351
+ * <br>
352
+ * <pre><code>&lt;script data-id="sap-ui-config" type="application/json"&gt;
353
+ * {
354
+ * "calendarType": "Japanese"
355
+ * }
356
+ * &lt;/script&gt;</code></pre>
357
+ *
363
358
  * <h3>ES6 Module Import</h3>
364
359
  *
365
360
  * <code>import "@ui5/webcomponents/dist/DatePicker";</code>
@@ -367,19 +362,15 @@ const metadata = {
367
362
  * @constructor
368
363
  * @author SAP SE
369
364
  * @alias sap.ui.webcomponents.main.DatePicker
370
- * @extends sap.ui.webcomponents.base.UI5Element
365
+ * @extends DateComponentBase
371
366
  * @tagname ui5-date-picker
372
367
  * @public
373
368
  */
374
- class DatePicker extends UI5Element {
369
+ class DatePicker extends DateComponentBase {
375
370
  static get metadata() {
376
371
  return metadata;
377
372
  }
378
373
 
379
- static get render() {
380
- return litRender;
381
- }
382
-
383
374
  static get template() {
384
375
  return DatePickerTemplate;
385
376
  }
@@ -396,94 +387,24 @@ class DatePicker extends UI5Element {
396
387
  return [ResponsivePopoverCommonCss, datePickerPopoverCss];
397
388
  }
398
389
 
399
- constructor() {
400
- super();
401
-
402
- this._respPopoverConfig = {
403
- allowTargetOverlap: true,
404
- stayOpenOnScroll: true,
405
- afterClose: () => {
406
- this._isPickerOpen = false;
407
-
408
- if (isPhone()) {
409
- // close device's keyboard and prevent further typing
410
- this.blur();
411
- } else if (this._focusInputAfterClose) {
412
- this._getInput().focus();
413
- this._focusInputAfterClose = false;
414
- }
415
-
416
- const calendar = this.calendar;
417
- if (calendar) {
418
- calendar._hideMonthPicker();
419
- calendar._hideYearPicker();
420
- }
421
- },
422
- afterOpen: () => {
423
- const calendar = this.calendar;
424
-
425
- if (!calendar) {
426
- return;
427
- }
428
-
429
- const dayPicker = calendar.shadowRoot.querySelector(`#${calendar._id}-daypicker`);
430
- const selectedDay = dayPicker.shadowRoot.querySelector(".ui5-dp-item--selected");
431
- const today = dayPicker.shadowRoot.querySelector(".ui5-dp-item--now");
432
- let focusableDay = selectedDay || today;
433
- if (!selectedDay && (this.minDate || this.maxDate) && !this.isInValidRange((new Date().getTime()))) {
434
- focusableDay = this.findFirstFocusableDay(dayPicker);
435
- }
436
-
437
- if (this._focusInputAfterOpen) {
438
- this._focusInputAfterOpen = false;
439
- this._getInput().focus();
440
- } else if (focusableDay) {
441
- focusableDay.focus();
442
-
443
- let focusableDayIdx = parseInt(focusableDay.getAttribute("data-sap-index"));
444
- const focusableItem = dayPicker.focusableDays.find(item => parseInt(item._index) === focusableDayIdx);
445
- focusableDayIdx = focusableItem ? dayPicker.focusableDays.indexOf(focusableItem) : focusableDayIdx;
446
-
447
- dayPicker._itemNav.current = focusableDayIdx;
448
- dayPicker._itemNav.update();
449
- }
450
- },
451
- };
452
-
453
- this._calendar = {
454
- onSelectedDatesChange: this._handleCalendarChange.bind(this),
455
- selectedDates: [],
456
- };
457
-
458
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
459
- }
460
-
461
- findFirstFocusableDay(daypicker) {
462
- const today = new Date();
463
- if (!this.isInValidRange(today.getTime())) {
464
- const focusableItems = Array.from(daypicker.shadowRoot.querySelectorAll(".ui5-dp-item"));
465
- return focusableItems.filter(x => !x.classList.contains("ui5-dp-item--disabled"))[0];
390
+ /**
391
+ * @protected
392
+ */
393
+ onResponsivePopoverAfterClose() {
394
+ this._isPickerOpen = false;
395
+ if (isPhone()) {
396
+ this.blur(); // close device's keyboard and prevent further typing
397
+ } else {
398
+ this._getInput().focus();
466
399
  }
467
400
  }
468
401
 
469
402
  onBeforeRendering() {
470
- this._calendar.primaryCalendarType = this._primaryCalendarType;
471
- this._calendar.formatPattern = this._formatPattern;
472
-
473
- if (this.minDate && !this.isValid(this.minDate)) {
474
- this.minDate = null;
475
- console.warn(`In order for the "minDate" property to have effect, you should enter valid date format`); // eslint-disable-line
476
- }
477
-
478
- if (this.maxDate && !this.isValid(this.maxDate)) {
479
- this.maxDate = null;
480
- console.warn(`In order for the "maxDate" property to have effect, you should enter valid date format`); // eslint-disable-line
481
- }
482
- if (this._checkValueValidity(this.value) || this.checkRealValueValidity()) {
483
- this._changeCalendarSelection();
484
- } else {
485
- this._calendar.selectedDates = [];
486
- }
403
+ ["minDate", "maxDate"].forEach(prop => {
404
+ if (this[prop] && !this.isValid(this[prop])) {
405
+ console.warn(`Invalid value for property "${prop}": ${this[prop]} is not compatible with the configured format pattern: "${this._displayFormat}"`); // eslint-disable-line
406
+ }
407
+ });
487
408
 
488
409
  const FormSupport = getFeature("FormSupport");
489
410
  if (FormSupport) {
@@ -492,32 +413,51 @@ class DatePicker extends UI5Element {
492
413
  console.warn(`In order for the "name" property to have effect, you should also: import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`); // eslint-disable-line
493
414
  }
494
415
 
495
- if (this.minDate) {
496
- this._calendar.minDate = this.minDate;
497
- }
416
+ this.liveValue = this.value;
417
+ }
498
418
 
499
- if (this.maxDate) {
500
- this._calendar.maxDate = this.maxDate;
419
+ /**
420
+ * Override in derivatives to change calendar selection mode
421
+ * @returns {string}
422
+ * @protected
423
+ */
424
+ get _calendarSelectionMode() {
425
+ return "Single";
426
+ }
427
+
428
+ /**
429
+ * Used to provide a timestamp to the Calendar (to focus it to a relevant date when open) based on the component's state
430
+ * Override in derivatives to provide the calendar a timestamp based on their properties
431
+ * By default focus the calendar on the selected date if set, or the current day otherwise
432
+ * @protected
433
+ */
434
+ get _calendarTimestamp() {
435
+ if (this.value && this._checkValueValidity(this.value)) {
436
+ const millisecondsUTC = this.dateValueUTC.getTime();
437
+ return getRoundedTimestamp(millisecondsUTC);
501
438
  }
439
+
440
+ return getTodayUTCTimestamp(this._primaryCalendarType);
502
441
  }
503
442
 
504
- _getTimeStampFromString(value) {
505
- const jsDate = this.getFormat().parse(value);
506
- if (jsDate) {
507
- return CalendarDate.fromLocalJSDate(jsDate, this._primaryCalendarType).toUTCJSDate().valueOf();
443
+ /**
444
+ * Used to provide selectedDates to the calendar based on the component's state
445
+ * Override in derivatives to provide different rules for setting the calendar's selected dates
446
+ * @protected
447
+ */
448
+ get _calendarSelectedDates() {
449
+ if (this.value && this._checkValueValidity(this.value)) {
450
+ return [this.value];
508
451
  }
509
- return undefined;
452
+
453
+ return [];
510
454
  }
511
455
 
512
456
  _onkeydown(event) {
513
457
  if (isShow(event)) {
514
458
  event.preventDefault(); // Prevent scroll on Alt/Option + Arrow Up/Down
515
459
  if (this.isOpen()) {
516
- if (isF4(event)) {
517
- if (this.calendar._monthPicker._hidden) {
518
- this.calendar._showYearPicker();
519
- }
520
- } else {
460
+ if (!isF4(event)) {
521
461
  this._toggleAndFocusInput();
522
462
  }
523
463
  } else {
@@ -529,108 +469,76 @@ class DatePicker extends UI5Element {
529
469
  return;
530
470
  }
531
471
 
532
- if (isEnter(event)) {
533
- this._handleEnterPressed();
534
- }
535
-
536
472
  if (isPageUpShiftCtrl(event)) {
537
473
  event.preventDefault();
538
- this._changeDateValueWrapper(true, true, false, false);
474
+ this._modifyDateValue(1, "year");
539
475
  } else if (isPageUpShift(event)) {
540
476
  event.preventDefault();
541
- this._changeDateValueWrapper(true, false, true, false);
477
+ this._modifyDateValue(1, "month");
542
478
  } else if (isPageUp(event)) {
543
479
  event.preventDefault();
544
- this._changeDateValueWrapper(true, false, false, true);
545
- }
546
-
547
- if (isPageDownShiftCtrl(event)) {
480
+ this._modifyDateValue(1, "day");
481
+ } else if (isPageDownShiftCtrl(event)) {
548
482
  event.preventDefault();
549
- this._changeDateValueWrapper(false, true, false, false);
483
+ this._modifyDateValue(-1, "year");
550
484
  } else if (isPageDownShift(event)) {
551
485
  event.preventDefault();
552
- this._changeDateValueWrapper(false, false, true, false);
486
+ this._modifyDateValue(-1, "month");
553
487
  } else if (isPageDown(event)) {
554
488
  event.preventDefault();
555
- this._changeDateValueWrapper(false, false, false, true);
489
+ this._modifyDateValue(-1, "day");
556
490
  }
557
491
  }
558
492
 
559
493
  /**
560
- * This method is used in the derived classes
561
- */
562
- _handleEnterPressed() {}
563
-
564
- /**
565
- * This method is used in the derived classes
566
- */
567
- _onfocusout() {}
568
-
569
- /**
570
- * Adds or extracts a given number of measuring units from the "dateValue" property value
571
- * @param {boolean} forward if true indicates addition
572
- * @param {boolean} years indicates that the measuring unit is in years
573
- * @param {boolean} months indicates that the measuring unit is in months
574
- * @param {boolean} days indicates that the measuring unit is in days
575
- * @param {int} step number of measuring units to substract or add defaults to 1
576
- */
577
- _changeDateValueWrapper(forward, years, months, days, step = 1) {
578
- let date = this.dateValue;
579
- date = this._changeDateValue(date, forward, years, months, days, step);
580
- this.value = this.formatValue(date);
581
- }
582
-
583
- /**
584
- * Adds or extracts a given number of measuring units from the "dateValue" property value
585
494
  *
586
- * @param {boolean} date js date object to be changed
587
- * @param {boolean} years indicates that the measuring unit is in years
588
- * @param {boolean} months indicates that the measuring unit is in months
589
- * @param {boolean} days indicates that the measuring unit is in days
590
- * @param {boolean} forward if true indicates addition
591
- * @param {int} step number of measuring units to substract or add defaults ot 1
592
- * @returns {Object} JS date object
495
+ * @param amount
496
+ * @param unit
497
+ * @protected
593
498
  */
594
- _changeDateValue(date, forward, years, months, days, step = 1) {
595
- if (!date) {
499
+ _modifyDateValue(amount, unit) {
500
+ if (!this.dateValue) {
596
501
  return;
597
502
  }
598
503
 
599
- let calDate = CalendarDate.fromLocalJSDate(date, this._primaryCalendarType);
600
- const oldCalDate = new CalendarDate(calDate, this._primaryCalendarType);
601
- const incrementStep = forward ? step : -step;
504
+ const modifiedDate = modifyDateBy(CalendarDate.fromLocalJSDate(this.dateValue), amount, unit, this._minDate, this._maxDate);
505
+ const newValue = this.formatValue(modifiedDate.toUTCJSDate());
506
+ this._updateValueAndFireEvents(newValue, true, ["change", "value-changed"]);
507
+ }
602
508
 
603
- if (incrementStep === 0 || (!days && !months && !years)) {
604
- return;
509
+ _updateValueAndFireEvents(value, normalizeValue, events, updateValue = true) {
510
+ const valid = this._checkValueValidity(value);
511
+
512
+ if (valid && normalizeValue) {
513
+ value = this.normalizeValue(value); // transform valid values (in any format) to the correct format
605
514
  }
606
515
 
607
- if (days) {
608
- calDate.setDate(calDate.getDate() + incrementStep);
609
- } else if (months) {
610
- calDate.setMonth(calDate.getMonth() + incrementStep);
611
- const monthDiff = (calDate.getYear() - oldCalDate.getYear()) * 12 + (calDate.getMonth() - oldCalDate.getMonth());
516
+ let executeEvent = true;
517
+ this.liveValue = value;
612
518
 
613
- if (calDate.getMonth() === oldCalDate.getMonth() || monthDiff !== incrementStep) {
614
- // first condition example: 31th of March increment month with -1 results in 2th of March
615
- // second condition example: 31th of January increment month with +1 results in 2th of March
616
- calDate.setDate(0);
519
+ events.forEach(event => {
520
+ if (!this.fireEvent(event, { value, valid }, true)) {
521
+ executeEvent = false;
617
522
  }
618
- } else if (years) {
619
- calDate.setYear(calDate.getYear() + incrementStep);
523
+ });
620
524
 
621
- if (calDate.getMonth() !== oldCalDate.getMonth()) {
622
- // day doesn't exist in this month (February 29th)
623
- calDate.setDate(0);
624
- }
525
+ if (!executeEvent) {
526
+ return;
625
527
  }
626
528
 
627
- if (calDate.valueOf() < this._minDate) {
628
- calDate = CalendarDate.fromTimestamp(this._minDate, this._primaryCalendarType);
629
- } else if (calDate.valueOf() > this._maxDate) {
630
- calDate = CalendarDate.fromTimestamp(this._maxDate, this._primaryCalendarType);
529
+ if (updateValue) {
530
+ this.value = value;
531
+ this._updateValueState(); // Change the value state to Error/None, but only if needed
631
532
  }
533
+ }
632
534
 
633
- return calDate.toLocalJSDate();
535
+ _updateValueState() {
536
+ const isValid = this._checkValueValidity(this.value);
537
+ if (!isValid) { // If not valid - always set Error regardless of the current value state
538
+ this.valueState = ValueState.Error;
539
+ } else if (isValid && this.valueState === ValueState.Error) { // However if valid, change only Error (but not the others) to None
540
+ this.valueState = ValueState.None;
541
+ }
634
542
  }
635
543
 
636
544
  _toggleAndFocusInput() {
@@ -642,48 +550,41 @@ class DatePicker extends UI5Element {
642
550
  return this.shadowRoot.querySelector("[ui5-input]");
643
551
  }
644
552
 
645
- async _handleInputChange() {
646
- let nextValue = await this._getInput().getInputValue();
647
- const emptyValue = nextValue === "";
648
- const isValid = emptyValue || this._checkValueValidity(nextValue);
649
-
650
- if (isValid) {
651
- nextValue = this.normalizeValue(nextValue);
652
- this.valueState = ValueState.None;
653
- } else {
654
- this.valueState = ValueState.Error;
655
- }
656
-
657
-
658
- this.value = nextValue;
659
- this.fireEvent("change", { value: nextValue, valid: isValid });
660
- // Angular two way data binding
661
- this.fireEvent("value-changed", { value: nextValue, valid: isValid });
662
- }
663
-
664
- async _handleInputLiveChange() {
665
- const nextValue = await this._getInput().getInputValue();
666
- const emptyValue = nextValue === "";
667
- const isValid = emptyValue || this._checkValueValidity(nextValue);
553
+ /**
554
+ * The ui5-input "submit" event handler - fire change event when the user presses enter
555
+ * @protected
556
+ */
557
+ _onInputSubmit(event) {}
668
558
 
669
- this.value = nextValue;
670
- this.fireEvent("input", { value: nextValue, valid: isValid });
559
+ /**
560
+ * The ui5-input "change" event handler - fire change event when the user focuses out of the input
561
+ * @protected
562
+ */
563
+ _onInputChange(event) {
564
+ this._updateValueAndFireEvents(event.target.value, true, ["change", "value-changed"]);
671
565
  }
672
566
 
673
- _checkValueValidity(value) {
674
- return this.isValid(value) && this.isInValidRange(this._getTimeStampFromString(value));
567
+ /**
568
+ * The ui5-input "input" event handler - fire input even when the user types
569
+ * @protected
570
+ */
571
+ async _onInputInput(event) {
572
+ this._updateValueAndFireEvents(event.target.value, false, ["input"], false);
675
573
  }
676
574
 
677
575
  /**
678
- * This method is used in the derived classes
576
+ * @protected
679
577
  */
680
- checkRealValueValidity() {
681
- return false;
578
+ _checkValueValidity(value) {
579
+ if (value === "") {
580
+ return true;
581
+ }
582
+ return this.isValid(value) && this.isInValidRange(value);
682
583
  }
683
584
 
684
585
  _click(event) {
685
586
  if (isPhone()) {
686
- this.responsivePopover.open(this);
587
+ this.responsivePopover.showAt(this);
687
588
  event.preventDefault(); // prevent immediate selection of any item
688
589
  }
689
590
  }
@@ -694,12 +595,17 @@ class DatePicker extends UI5Element {
694
595
  * @public
695
596
  */
696
597
  isValid(value = "") {
697
- return !!(value && this.getFormat().parse(value));
598
+ if (value === "") {
599
+ return true;
600
+ }
601
+
602
+ return !!this.getFormat().parse(value);
698
603
  }
699
604
 
700
605
  /**
701
- * Checks if a date is in range between minimum and maximum date.
702
- * @param {object} value
606
+ * Checks if a date is between the minimum and maximum date.
607
+ * @param {string} value A value to be checked
608
+ * @returns {boolean}
703
609
  * @public
704
610
  */
705
611
  isInValidRange(value = "") {
@@ -707,82 +613,35 @@ class DatePicker extends UI5Element {
707
613
  return true;
708
614
  }
709
615
 
710
- const pickedDate = new Date(value),
711
- minDate = new Date(this._minDate),
712
- maxDate = new Date(this._maxDate);
713
-
714
- if (minDate && maxDate) {
715
- if (minDate <= pickedDate && maxDate >= pickedDate) {
716
- return true;
717
- }
718
- } else if (minDate && !maxDate) {
719
- if (minDate <= pickedDate) {
720
- return true;
721
- }
722
- } else if (maxDate && !minDate) {
723
- if (maxDate >= pickedDate) {
724
- return true;
725
- }
726
- } else if (!maxDate && !minDate) {
727
- return true;
728
- }
729
-
730
- return false;
616
+ const calendarDate = this._getCalendarDateFromString(value);
617
+ return calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();
731
618
  }
732
619
 
733
- // because the parser understands more than one format
734
- // but we need values in one format
620
+ /**
621
+ * The parser understands many formats, but we need one format
622
+ * @protected
623
+ */
735
624
  normalizeValue(value) {
736
625
  if (value === "") {
737
626
  return value;
738
627
  }
739
628
 
740
- return this.getFormat().format(this.getFormat().parse(value));
741
- }
742
-
743
- get validValue() {
744
- if (this.isValid(this.value)) {
745
- return this.value;
746
- }
747
- return this.getFormat().format(new Date());
748
- }
749
-
750
- get calendar() {
751
- return this.responsivePopover.querySelector(`#${this._id}-calendar`);
752
- }
753
-
754
- get _calendarDate() {
755
- const millisecondsUTC = this.getFormat().parse(this.validValue, true).getTime();
756
- const oCalDate = CalendarDate.fromTimestamp(
757
- millisecondsUTC - (millisecondsUTC % (24 * 60 * 60 * 1000)),
758
- this._primaryCalendarType
759
- );
760
- return oCalDate;
761
- }
762
-
763
- get _primaryCalendarType() {
764
- const localeData = getCachedLocaleDataInstance(getLocale());
765
- return this.primaryCalendarType || getCalendarType() || localeData.getPreferredCalendarType();
766
- }
767
-
768
- get _formatPattern() {
769
- return this.formatPattern || "medium"; // get from config
770
- }
771
-
772
- get _isPattern() {
773
- return this._formatPattern !== "medium" && this._formatPattern !== "short" && this._formatPattern !== "long";
629
+ return this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC
774
630
  }
775
631
 
776
632
  get _displayFormat() {
777
633
  return this.getFormat().oFormatOptions.pattern;
778
634
  }
779
635
 
636
+ /**
637
+ * @protected
638
+ */
780
639
  get _placeholder() {
781
640
  return this.placeholder !== undefined ? this.placeholder : this._displayFormat;
782
641
  }
783
642
 
784
643
  get _headerTitleText() {
785
- return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
644
+ return DatePicker.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
786
645
  }
787
646
 
788
647
  get phone() {
@@ -801,64 +660,21 @@ class DatePicker extends UI5Element {
801
660
  return isIE();
802
661
  }
803
662
 
804
- getFormat() {
805
- if (this._isPattern) {
806
- this._oDateFormat = DateFormat.getInstance({
807
- pattern: this._formatPattern,
808
- calendarType: this._primaryCalendarType,
809
- });
810
- } else {
811
- this._oDateFormat = DateFormat.getInstance({
812
- style: this._formatPattern,
813
- calendarType: this._primaryCalendarType,
814
- });
815
- }
816
- return this._oDateFormat;
817
- }
818
-
819
663
  get accInfo() {
820
664
  return {
821
- "ariaDescribedBy": `${this._id}-date`,
665
+ "ariaRoledescription": this.dateAriaDescription,
822
666
  "ariaHasPopup": "true",
823
667
  "ariaAutoComplete": "none",
824
668
  "role": "combobox",
825
- "ariaOwns": `${this._id}-responsive-popover`,
669
+ "ariaControls": `${this._id}-responsive-popover`,
826
670
  "ariaExpanded": this.isOpen(),
827
- "ariaDescription": this.dateAriaDescription,
828
671
  "ariaRequired": this.required,
829
672
  "ariaLabel": getEffectiveAriaLabelText(this),
830
673
  };
831
674
  }
832
675
 
833
- get _maxDate() {
834
- return this.maxDate ? this._getTimeStampFromString(this.maxDate) : this._getMaxCalendarDate();
835
- }
836
-
837
- get _minDate() {
838
- return this.minDate ? this._getTimeStampFromString(this.minDate) : this._getMinCalendarDate();
839
- }
840
-
841
- _getMinCalendarDate() {
842
- const minDate = new CalendarDate(1, 0, 1, this._primaryCalendarType);
843
- minDate.setYear(1);
844
- minDate.setMonth(0);
845
- minDate.setDate(1);
846
- return minDate.valueOf();
847
- }
848
-
849
- _getMaxCalendarDate() {
850
- const maxDate = new CalendarDate(1, 0, 1, this._primaryCalendarType);
851
- maxDate.setYear(9999);
852
- maxDate.setMonth(11);
853
- const tempDate = new CalendarDate(maxDate, this._primaryCalendarType);
854
- tempDate.setDate(1);
855
- tempDate.setMonth(tempDate.getMonth() + 1, 0);
856
- maxDate.setDate(tempDate.getDate());// 31st for Gregorian Calendar
857
- return maxDate.valueOf();
858
- }
859
-
860
676
  get openIconTitle() {
861
- return this.i18nBundle.getText(DATEPICKER_OPEN_ICON_TITLE);
677
+ return DatePicker.i18nBundle.getText(DATEPICKER_OPEN_ICON_TITLE);
862
678
  }
863
679
 
864
680
  get openIconName() {
@@ -866,7 +682,7 @@ class DatePicker extends UI5Element {
866
682
  }
867
683
 
868
684
  get dateAriaDescription() {
869
- return this.i18nBundle.getText(DATEPICKER_DATE_ACC_TEXT);
685
+ return DatePicker.i18nBundle.getText(DATEPICKER_DATE_DESCRIPTION);
870
686
  }
871
687
 
872
688
  /**
@@ -886,59 +702,42 @@ class DatePicker extends UI5Element {
886
702
  return !this.disabled && !this.readonly;
887
703
  }
888
704
 
889
- _handleCalendarChange(event) {
890
- const iNewValue = event.detail.dates && event.detail.dates[0];
891
-
892
- if (this._calendar.selectedDates.indexOf(iNewValue) !== -1) {
893
- this.closePicker();
894
- return false;
895
- }
896
-
897
- const fireChange = this._handleCalendarSelectedDatesChange(event, iNewValue);
898
-
899
- if (fireChange) {
900
- this.fireEvent("change", { value: this.value, valid: true });
901
- // Angular two way data binding
902
- this.fireEvent("value-changed", { value: this.value, valid: true });
903
- }
705
+ /**
706
+ * The user selected a new date in the calendar
707
+ * @param event
708
+ * @protected
709
+ */
710
+ onSelectedDatesChange(event) {
711
+ event.preventDefault();
712
+ const newValue = event.detail.values && event.detail.values[0];
713
+ this._updateValueAndFireEvents(newValue, true, ["change", "value-changed"]);
904
714
 
905
715
  this.closePicker();
906
716
  }
907
717
 
908
- _handleCalendarSelectedDatesChange(event, newValue) {
909
- this._updateValueCalendarSelectedDatesChange(newValue);
910
-
911
- this._calendar.timestamp = newValue;
912
- this._calendar.selectedDates = event.detail.dates;
913
- this._focusInputAfterClose = true;
914
-
915
- if (this.isInValidRange(this._getTimeStampFromString(this.value))) {
916
- this.valueState = ValueState.None;
917
- } else {
918
- this.valueState = ValueState.Error;
919
- }
920
-
921
- return true;
718
+ /**
719
+ * The user clicked the "month" button in the header
720
+ */
721
+ onHeaderShowMonthPress() {
722
+ this._calendarCurrentPicker = "month";
922
723
  }
923
724
 
924
- _updateValueCalendarSelectedDatesChange(newValue) {
925
- this.value = this.getFormat().format(
926
- new Date(CalendarDate.fromTimestamp(
927
- newValue * 1000,
928
- this._primaryCalendarType
929
- ).valueOf()),
930
- true
931
- );
725
+ /**
726
+ * The user clicked the "year" button in the header
727
+ */
728
+ onHeaderShowYearPress() {
729
+ this._calendarCurrentPicker = "year";
932
730
  }
933
731
 
934
732
  /**
935
733
  * Formats a Java Script date object into a string representing a locale date
936
734
  * according to the <code>formatPattern</code> property of the DatePicker instance
937
- * @param {object} oDate A Java Script date object to be formatted as string
735
+ * @param {object} date A Java Script date object to be formatted as string
736
+ * @returns {string} The date as string
938
737
  * @public
939
738
  */
940
- formatValue(oDate) {
941
- return this.getFormat().format(oDate);
739
+ formatValue(date) {
740
+ return this.getFormat().format(date);
942
741
  }
943
742
 
944
743
  /**
@@ -951,21 +750,16 @@ class DatePicker extends UI5Element {
951
750
 
952
751
  /**
953
752
  * Opens the picker.
954
- * @param {object} options A JSON object with additional configuration.<br>
955
- * <code>{ focusInput: true }</code> By default, the focus goes in the picker after opening it.
956
- * Specify this option to focus the input field.
957
753
  * @public
754
+ * @async
755
+ * @returns {Promise} Resolves when the picker is open
958
756
  */
959
- async openPicker(options) {
757
+ async openPicker() {
960
758
  this._isPickerOpen = true;
759
+ this._calendarCurrentPicker = "day";
961
760
  this.responsivePopover = await this._respPopover();
962
- this._changeCalendarSelection();
963
-
964
- if (options && options.focusInput) {
965
- this._focusInputAfterOpen = true;
966
- }
967
761
 
968
- this.responsivePopover.open(this);
762
+ this.responsivePopover.showAt(this);
969
763
  }
970
764
 
971
765
  togglePicker() {
@@ -976,25 +770,9 @@ class DatePicker extends UI5Element {
976
770
  }
977
771
  }
978
772
 
979
- _changeCalendarSelection(focusTimestamp) {
980
- if (this._calendarDate.getYear() < 1) {
981
- // 0 is a valid year, but we cannot display it
982
- return;
983
- }
984
-
985
- const oCalDate = this._calendarDate;
986
- const timestamp = focusTimestamp || oCalDate.valueOf() / 1000;
987
-
988
- this._calendar = Object.assign({}, this._calendar);
989
- this._calendar.timestamp = timestamp;
990
- if (this.value) {
991
- this._calendar.selectedDates = [timestamp];
992
- }
993
- }
994
-
995
773
  /**
996
774
  * Checks if the picker is open.
997
- * @returns {Boolean} true if the picker is open, false otherwise
775
+ * @returns {boolean} true if the picker is open, false otherwise
998
776
  * @public
999
777
  */
1000
778
  isOpen() {
@@ -1002,30 +780,18 @@ class DatePicker extends UI5Element {
1002
780
  }
1003
781
 
1004
782
  /**
1005
- * Gets some semantic details about an event originated in the control.
1006
- * @param {*} event An event object
1007
- * @returns {Object} Semantic details
1008
- */
1009
- getSemanticTargetInfo(event) {
1010
- const oDomTarget = getDomTarget(event);
1011
- let isInput = false;
1012
-
1013
- if (oDomTarget && oDomTarget.className.indexOf("ui5-input-inner") > -1) {
1014
- isInput = true;
1015
- }
1016
-
1017
- return { isInput };
1018
- }
1019
-
1020
- /**
1021
- * Currently selected date represented as JavaScript Date instance.
783
+ * Currently selected date represented as a Local JavaScript Date instance.
1022
784
  *
1023
785
  * @readonly
1024
786
  * @type { Date }
1025
787
  * @public
1026
788
  */
1027
789
  get dateValue() {
1028
- return this.getFormat().parse(this.value);
790
+ return this.liveValue ? this.getFormat().parse(this.liveValue) : this.getFormat().parse(this.value);
791
+ }
792
+
793
+ get dateValueUTC() {
794
+ return this.liveValue ? this.getFormat().parse(this.liveValue, true) : this.getFormat().parse(this.value);
1029
795
  }
1030
796
 
1031
797
  get styles() {
@@ -1045,34 +811,13 @@ class DatePicker extends UI5Element {
1045
811
  Icon,
1046
812
  ResponsivePopover,
1047
813
  Calendar,
814
+ CalendarDateComponent.default,
1048
815
  Input,
1049
816
  Button,
1050
817
  ];
1051
818
  }
1052
-
1053
- static async onDefine() {
1054
- await Promise.all([
1055
- fetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript()),
1056
- fetchI18nBundle("@ui5/webcomponents"),
1057
- ]);
1058
- }
1059
819
  }
1060
820
 
1061
- const getDomTarget = event => {
1062
- let target,
1063
- composedPath;
1064
-
1065
- if (typeof event.composedPath === "function") {
1066
- composedPath = event.composedPath();
1067
- }
1068
-
1069
- if (Array.isArray(composedPath) && composedPath.length) {
1070
- target = composedPath[0];
1071
- }
1072
-
1073
- return target;
1074
- };
1075
-
1076
821
  DatePicker.define();
1077
822
 
1078
823
  export default DatePicker;