@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/dist/Calendar.js CHANGED
@@ -1,18 +1,19 @@
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";
1
+ import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
2
+ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
3
+ import {
4
+ isF4,
5
+ isF4Shift,
6
+ } from "@ui5/webcomponents-base/dist/Keys.js";
7
+ import getCachedLocaleDataInstance from "@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js";
5
8
  import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
6
9
  import DateFormat from "@ui5/webcomponents-localization/dist/DateFormat.js";
7
- import getCachedLocaleDataInstance from "@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js";
8
- import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
9
- import CalendarType from "@ui5/webcomponents-base/dist/types/CalendarType.js";
10
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
11
- import { isF4, isF4Shift } from "@ui5/webcomponents-base/dist/Keys.js";
10
+ import * as CalendarDateComponent from "./CalendarDate.js";
11
+ import CalendarPart from "./CalendarPart.js";
12
12
  import CalendarHeader from "./CalendarHeader.js";
13
13
  import DayPicker from "./DayPicker.js";
14
14
  import MonthPicker from "./MonthPicker.js";
15
15
  import YearPicker from "./YearPicker.js";
16
+ import CalendarSelectionMode from "./types/CalendarSelectionMode.js";
16
17
 
17
18
  // Default calendar for bundling
18
19
  import "@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js";
@@ -30,175 +31,213 @@ const metadata = {
30
31
  tag: "ui5-calendar",
31
32
  properties: /** @lends sap.ui.webcomponents.main.Calendar.prototype */ {
32
33
  /**
33
- * Defines the UNIX timestamp - seconds since 00:00:00 UTC on Jan 1, 1970.
34
- * @type {Integer}
35
- * @public
36
- */
37
- timestamp: {
38
- type: Integer,
39
- },
40
-
41
- /**
42
- * Defines the calendar type used for display.
43
- * If not defined, the calendar type of the global configuration is used.
44
- * Available options are: "Gregorian", "Islamic", "Japanese", "Buddhist" and "Persian".
45
- * @type {CalendarType}
34
+ * Defines the type of selection used in the calendar component.
35
+ * Accepted property values are:<br>
36
+ * <ul>
37
+ * <li><code>CalendarSelectionMode.Single</code> - enables a single date selection.(default value)</li>
38
+ * <li><code>CalendarSelectionMode.Range</code> - enables selection of a date range.</li>
39
+ * <li><code>CalendarSelectionMode.Multiple</code> - enables selection of multiple dates.</li>
40
+ * </ul>
41
+ * @type {CalendarSelectionMode}
42
+ * @defaultvalue "Single"
46
43
  * @public
47
44
  */
48
- primaryCalendarType: {
49
- type: CalendarType,
50
- },
51
-
52
- /**
53
- * Defines the selected dates as UTC timestamps.
54
- * @type {Array}
55
- * @public
56
- */
57
- selectedDates: {
58
- type: Integer,
59
- multiple: true,
60
- },
61
-
62
- /**
63
- * Determines the мinimum date available for selection.
64
- *
65
- * @type {string}
66
- * @defaultvalue ""
67
- * @since 1.0.0-rc.6
68
- * @public
69
- */
70
- minDate: {
71
- type: String,
72
- },
73
-
74
- /**
75
- * Determines the maximum date available for selection.
76
- *
77
- * @type {string}
78
- * @defaultvalue ""
79
- * @since 1.0.0-rc.6
80
- * @public
81
- */
82
- maxDate: {
83
- type: String,
45
+ selectionMode: {
46
+ type: CalendarSelectionMode,
47
+ defaultValue: CalendarSelectionMode.Single,
84
48
  },
85
49
 
86
50
  /**
87
51
  * Defines the visibility of the week numbers column.
88
52
  * <br><br>
89
53
  *
90
- * <b>Note:<b> For calendars other than Gregorian,
54
+ * <b>Note:</b> For calendars other than Gregorian,
91
55
  * the week numbers are not displayed regardless of what is set.
92
56
  *
93
57
  * @type {boolean}
94
58
  * @defaultvalue false
95
59
  * @public
96
- * @since 1.0.0-rc.8
97
60
  */
98
61
  hideWeekNumbers: {
99
62
  type: Boolean,
100
63
  },
101
64
 
102
- _header: {
103
- type: Object,
104
- },
105
-
106
- _oMonth: {
107
- type: Object,
65
+ /**
66
+ * Which picker is currently visible to the user: day/month/year
67
+ */
68
+ _currentPicker: {
69
+ type: String,
70
+ defaultValue: "day",
108
71
  },
109
72
 
110
- _monthPicker: {
111
- type: Object,
73
+ _previousButtonDisabled: {
74
+ type: Boolean,
112
75
  },
113
76
 
114
- _yearPicker: {
115
- type: Object,
77
+ _nextButtonDisabled: {
78
+ type: Boolean,
116
79
  },
117
80
 
118
- _calendarWidth: {
81
+ _headerMonthButtonText: {
119
82
  type: String,
120
- noAttribute: true,
121
83
  },
122
84
 
123
- _calendarHeight: {
85
+ _headerYearButtonText: {
124
86
  type: String,
125
- noAttribute: true,
126
87
  },
127
-
128
- formatPattern: {
129
- type: String,
88
+ },
89
+ managedSlots: true,
90
+ slots: /** @lends sap.ui.webcomponents.main.Calendar.prototype */ {
91
+ /**
92
+ * Defines the selected date or dates (depending on the <code>selectionMode</code> property) for this calendar as instances of <code>ui5-date</code>
93
+ *
94
+ * @type {sap.ui.webcomponents.main.ICalendarDate[]}
95
+ * @slot dates
96
+ * @public
97
+ */
98
+ "default": {
99
+ propertyName: "dates",
100
+ type: HTMLElement,
101
+ invalidateOnChildChange: true,
130
102
  },
131
103
  },
132
104
  events: /** @lends sap.ui.webcomponents.main.Calendar.prototype */ {
133
105
  /**
134
- * Fired when the selected dates changed.
106
+ * Fired when the selected dates change.
107
+ * <b>Note:</b> If you call <code>preventDefault()</code> for this event, the component will not
108
+ * create instances of <code>ui5-date</code> for the newly selected dates. In that case you should do this manually.
109
+ *
135
110
  * @event sap.ui.webcomponents.main.Calendar#selected-dates-change
136
- * @param {Array} dates The selected dates' timestamps
111
+ * @allowPreventDefault
112
+ * @param {Array} values The selected dates
113
+ * @param {Array} dates The selected dates as UTC timestamps
137
114
  * @public
138
115
  */
139
- "selected-dates-change": { type: Array },
116
+ "selected-dates-change": {
117
+ detail: {
118
+ dates: { type: Array },
119
+ values: { type: Array },
120
+ },
121
+ },
122
+
123
+ "show-month-press": {},
124
+ "show-year-press": {},
140
125
  },
141
126
  };
142
127
 
143
128
  /**
144
129
  * @class
145
130
  *
131
+ * <h3 class="comment-api-title">Overview</h3>
132
+ *
133
+ * The <code>ui5-calendar</code> component allows users to select one or more dates.
134
+ * <br><br>
135
+ * Currently selected dates are represented with instances of <code>ui5-date</code> as
136
+ * children of the <code>ui5-calendar</code>. The value property of each <code>ui5-date</code> must be a
137
+ * date string, correctly formatted according to the <code>ui5-calendar</code>'s <code>formatPattern</code> property.
138
+ * Whenever the user changes the date selection, <code>ui5-calendar</code> will automatically create/remove instances
139
+ * of <code>ui5-date</code> in itself, unless you prevent this behavior by calling <code>preventDefault()</code> for the
140
+ * <code>selected-dates-change</code> event. This is useful if you want to control the selected dates externally.
141
+ * <br><br>
142
+ *
143
+ * <h3>Usage</h3>
144
+ *
145
+ * The user can navigate to a particular date by:
146
+ * <br>
147
+ * <ul>
148
+ * <li>Pressing over a month inside the months view</li>
149
+ * <li>Pressing over an year inside the years view</li>
150
+ * </ul>
151
+ * <br>
152
+ * The user can confirm a date selection by pressing over a date inside the days view.
153
+ * <br><br>
154
+ *
146
155
  * <h3>Keyboard Handling</h3>
147
- * The <code>ui5-calendar</code> provides advanced keyboard handling.
148
- * If the <code>ui5-calendar</code> is focused the user can
149
- * choose a picker by using the following shortcuts: <br>
150
- * <ul>
151
- * <li>[F4] - Shows month picker</li>
152
- * <li>[SHIFT] + [F4] - Shows year picker</li>
153
- * <br>
154
- * When a picker is showed and focused the user can use the following keyboard
155
- * shortcuts in order to perform a navigation:
156
- * <br>
157
- * - Day picker: <br>
158
- * <ul>
159
- * <li>[PAGEUP] - Navigate to the previous month</li>
160
- * <li>[PAGEDOWN] - Navigate to the next month</li>
161
- * <li>[SHIFT] + [PAGEUP] - Navigate to the previous year</li>
162
- * <li>[SHIFT] + [PAGEDOWN] - Navigate to the next year</li>
163
- * <li>[CTRL] + [SHIFT] + [PAGEUP] - Navigate ten years backwards</li>
164
- * <li>[CTRL] + [SHIFT] + [PAGEDOWN] - Navigate ten years forwards</li>
165
- * </ul>
166
- * <br>
167
- * - Month picker: <br>
168
- * <ul>
169
- * <li>[PAGEUP] - Navigate to the previous month</li>
170
- * <li>[PAGEDOWN] - Navigate to the next month</li>
171
- * </ul>
172
- * <br>
173
- * - Year picker: <br>
174
- * <ul>
175
- * <li>[PAGEUP] - Navigate to the previous year range</li>
176
- * <li>[PAGEDOWN] - Navigate the next year range</li>
177
- * </ul>
178
- */
179
-
180
- /**
181
- * @class
156
+ * The <code>ui5-calendar</code> provides advanced keyboard handling.
157
+ * When a picker is showed and focused the user can use the following keyboard
158
+ * shortcuts in order to perform a navigation:
159
+ * <br>
160
+ * - Day picker: <br>
161
+ * <ul>
162
+ * <li>[F4] - Shows month picker</li>
163
+ * <li>[SHIFT] + [F4] - Shows year picker</li>
164
+ * <li>[PAGEUP] - Navigate to the previous month</li>
165
+ * <li>[PAGEDOWN] - Navigate to the next month</li>
166
+ * <li>[SHIFT] + [PAGEUP] - Navigate to the previous year</li>
167
+ * <li>[SHIFT] + [PAGEDOWN] - Navigate to the next year</li>
168
+ * <li>[CTRL] + [SHIFT] + [PAGEUP] - Navigate ten years backwards</li>
169
+ * <li>[CTRL] + [SHIFT] + [PAGEDOWN] - Navigate ten years forwards</li>
170
+ * <li>[HOME] - Navigate to the first day of the week</li>
171
+ * <li>[END] - Navigate to the last day of the week</li>
172
+ * <li>[CTRL] + [HOME] - Navigate to the first day of the month</li>
173
+ * <li>[CTRL] + [END] - Navigate to the last day of the month</li>
174
+ * </ul>
175
+ * <br>
176
+ * - Month picker: <br>
177
+ * <ul>
178
+ * <li>[PAGEUP] - Navigate to the previous year</li>
179
+ * <li>[PAGEDOWN] - Navigate to the next year</li>
180
+ * <li>[HOME] - Navigate to the first month of the current row</li>
181
+ * <li>[END] - Navigate to the last month of the current row</li>
182
+ * <li>[CTRL] + [HOME] - Navigate to the first month of the current year</li>
183
+ * <li>[CTRL] + [END] - Navigate to the last month of the year</li>
184
+ * </ul>
185
+ * <br>
186
+ * - Year picker: <br>
187
+ * <ul>
188
+ * <li>[PAGEUP] - Navigate to the previous year range</li>
189
+ * <li>[PAGEDOWN] - Navigate the next year range</li>
190
+ * <li>[HOME] - Navigate to the first year of the current row</li>
191
+ * <li>[END] - Navigate to the last year of the current row</li>
192
+ * <li>[CTRL] + [HOME] - Navigate to the first year of the current year range</li>
193
+ * <li>[CTRL] + [END] - Navigate to the last year of the current year range</li>
194
+ * </ul>
195
+ * <br>
196
+ *
197
+ * <h3>Calendar types</h3>
198
+ * The component supports several calendar types - Gregorian, Buddhist, Islamic, Japanese and Persian.
199
+ * By default the Gregorian Calendar is used. In order to use the Buddhist, Islamic, Japanese or Persian calendar,
200
+ * you need to set the <code>primaryCalendarType</code> property and import one or more of the following modules:
201
+ * <br><br>
202
+ *
203
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Buddhist.js";</code>
204
+ * <br>
205
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Islamic.js";</code>
206
+ * <br>
207
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Japanese.js";</code>
208
+ * <br>
209
+ * <code>import "@ui5/webcomponents-localization/dist/features/calendar/Persian.js";</code>
210
+ * <br><br>
211
+ *
212
+ * Or, you can use the global configuration and set the <code>calendarType</code> key:
213
+ * <br>
214
+ * <code>
215
+ * &lt;script data-id="sap-ui-config" type="application/json"&gt;
216
+ * {
217
+ * "calendarType": "Japanese"
218
+ * }
219
+ * &lt;/script&gt;
220
+ * </code>
221
+ *
222
+ *
223
+ * <h3>ES6 Module Import</h3>
182
224
  *
183
- * The <code>ui5-calendar</code> can be used standale to display the years, months, weeks and days,
184
- * but the main purpose of the <code>ui5-calendar</code> is to be used within a <code>ui5-date-picker</code>.
225
+ * <code>import "@ui5/webcomponents/dist/Calendar";</code>
185
226
  *
186
227
  * @constructor
187
228
  * @author SAP SE
188
229
  * @alias sap.ui.webcomponents.main.Calendar
189
- * @extends sap.ui.webcomponents.base.UI5Element
230
+ * @extends CalendarPart
190
231
  * @tagname ui5-calendar
232
+ * @appenddocs CalendarDate
191
233
  * @public
234
+ * @since 1.0.0-rc.11
192
235
  */
193
- class Calendar extends UI5Element {
236
+ class Calendar extends CalendarPart {
194
237
  static get metadata() {
195
238
  return metadata;
196
239
  }
197
240
 
198
- static get render() {
199
- return litRender;
200
- }
201
-
202
241
  static get template() {
203
242
  return CalendarTemplate;
204
243
  }
@@ -207,605 +246,242 @@ class Calendar extends UI5Element {
207
246
  return calendarCSS;
208
247
  }
209
248
 
210
- constructor() {
211
- super();
212
- this._header = {};
213
- this._header.onPressPrevious = this._handlePrevious.bind(this);
214
- this._header.onPressNext = this._handleNext.bind(this);
215
- this._header.onBtn1Press = this._handleMonthButtonPress.bind(this);
216
- this._header.onBtn2Press = this._handleYearButtonPress.bind(this);
217
-
218
- this._oMonth = {};
219
- this._oMonth.onSelectedDatesChange = this._handleSelectedDatesChange.bind(this);
220
- this._oMonth.onNavigate = this._handleMonthNavigate.bind(this);
221
-
222
- this._monthPicker = {};
223
- this._monthPicker._hidden = true;
224
- this._monthPicker.onSelectedMonthChange = this._handleSelectedMonthChange.bind(this);
225
- this._monthPicker.onNavigate = this._handleYearNavigate.bind(this);
226
-
227
- this._yearPicker = {};
228
- this._yearPicker._hidden = true;
229
- this._yearPicker.onSelectedYearChange = this._handleSelectedYearChange.bind(this);
230
- this._yearPicker.onNavigate = this._handleYearNavigate.bind(this);
231
-
232
- this._isShiftingYears = false;
233
- }
234
-
235
- onBeforeRendering() {
236
- const localeData = getCachedLocaleDataInstance(getLocale());
237
- const oYearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this._primaryCalendarType });
238
- const firstDayOfCalendarTimeStamp = this._getMinCalendarDate();
239
-
240
- if ((this.minDate || this.maxDate) && this._timestamp && !this.isInValidRange(this._timestamp * 1000)) {
241
- if (this._minDate) {
242
- this.timestamp = this._minDate / 1000;
243
- } else {
244
- this.timestamp = (new Date(firstDayOfCalendarTimeStamp)).getTime() / 1000;
245
- }
246
- }
247
-
248
- this._oMonth.formatPattern = this._formatPattern;
249
- this._oMonth.timestamp = this._timestamp;
250
- this._oMonth.selectedDates = [...this._selectedDates];
251
- this._oMonth.primaryCalendarType = this._primaryCalendarType;
252
- this._oMonth.minDate = this.minDate;
253
- this._oMonth.maxDate = this.maxDate;
254
- this._header.monthText = localeData.getMonths("wide", this._primaryCalendarType)[this._month];
255
- this._header.yearText = oYearFormat.format(this._localDate, true);
256
-
257
- // month picker
258
- this._monthPicker.primaryCalendarType = this._primaryCalendarType;
259
- this._monthPicker.timestamp = this._timestamp;
260
-
261
- this._yearPicker.primaryCalendarType = this._primaryCalendarType;
262
-
263
- if (!this._isShiftingYears) {
264
- // year picker
265
- this._yearPicker.timestamp = this._timestamp;
266
- }
267
-
268
- this._isShiftingYears = false;
269
-
270
- this._refreshNavigationButtonsState();
271
- }
272
-
273
- _refreshNavigationButtonsState() {
274
- const minDateParsed = this.minDate && this.getFormat().parse(this.minDate);
275
- const maxDateParsed = this.maxDate && this.getFormat().parse(this.maxDate);
276
- let currentMonth = 0;
277
- let currentYear = 1;
278
-
279
- currentMonth = this.timestamp && CalendarDate.fromTimestamp(this.timestamp * 1000).getMonth();
280
- currentYear = this.timestamp && CalendarDate.fromTimestamp(this.timestamp * 1000).getYear();
281
-
282
- if (!this._oMonth._hidden) {
283
- if (this.minDate
284
- && minDateParsed.getMonth() === currentMonth
285
- && minDateParsed.getFullYear() === currentYear) {
286
- this._header._isPrevButtonDisabled = true;
287
- } else {
288
- this._header._isPrevButtonDisabled = false;
289
- }
290
-
291
- if (this.maxDate
292
- && maxDateParsed.getMonth() === currentMonth
293
- && maxDateParsed.getFullYear() === currentYear) {
294
- this._header._isNextButtonDisabled = true;
295
- } else {
296
- this._header._isNextButtonDisabled = false;
297
- }
298
- }
299
-
300
- if (!this._monthPicker._hidden) {
301
- if (this.minDate
302
- && currentYear === minDateParsed.getFullYear()) {
303
- this._header._isPrevButtonDisabled = true;
304
- } else {
305
- this._header._isPrevButtonDisabled = false;
306
- }
307
-
308
- if (this.maxDate
309
- && currentYear === maxDateParsed.getFullYear()) {
310
- this._header._isNextButtonDisabled = true;
311
- } else {
312
- this._header._isNextButtonDisabled = false;
313
- }
314
- }
315
-
316
- if (!this._yearPicker._hidden) {
317
- const cellsFromTheStart = 7;
318
- const cellsToTheEnd = 12;
319
-
320
- currentYear = this._yearPicker.timestamp && CalendarDate.fromTimestamp(this._yearPicker.timestamp * 1000).getYear();
321
- if (this.minDate
322
- && (currentYear - minDateParsed.getFullYear()) < cellsFromTheStart) {
323
- this._header._isPrevButtonDisabled = true;
324
- } else {
325
- this._header._isPrevButtonDisabled = false;
326
- }
327
-
328
- if (this.maxDate
329
- && (maxDateParsed.getFullYear() - currentYear) < cellsToTheEnd) {
330
- this._header._isNextButtonDisabled = true;
331
- } else {
332
- this._header._isNextButtonDisabled = false;
333
- }
334
- }
249
+ /**
250
+ * @private
251
+ */
252
+ get _selectedDatesTimestamps() {
253
+ return this.dates.map(date => {
254
+ const value = date.value;
255
+ return value && !!this.getFormat().parse(value) ? this._getTimeStampFromString(value) / 1000 : undefined;
256
+ }).filter(date => !!date);
335
257
  }
336
258
 
337
- get _timestamp() {
338
- return this.timestamp !== undefined ? this.timestamp : Math.floor(new Date().getTime() / 1000);
339
- }
259
+ /**
260
+ * @private
261
+ */
262
+ _setSelectedDates(selectedDates) {
263
+ const selectedValues = selectedDates.map(timestamp => this.getFormat().format(new Date(timestamp * 1000), true)); // Format as UTC
264
+ const valuesInDOM = [...this.dates].map(dateElement => dateElement.value);
340
265
 
341
- get _localDate() {
342
- return new Date(this._timestamp * 1000);
343
- }
266
+ // Remove all elements for dates that are no longer selected
267
+ this.dates.filter(dateElement => !selectedValues.includes(dateElement.value)).forEach(dateElement => {
268
+ this.removeChild(dateElement);
269
+ });
344
270
 
345
- get _calendarDate() {
346
- return CalendarDate.fromTimestamp(this._localDate.getTime(), this._primaryCalendarType);
271
+ // Create tags for the selected dates that don't already exist in DOM
272
+ selectedValues.filter(value => !valuesInDOM.includes(value)).forEach(value => {
273
+ const dateElement = document.createElement("ui5-date");
274
+ dateElement.value = value;
275
+ this.appendChild(dateElement);
276
+ });
347
277
  }
348
278
 
349
- get _month() {
350
- return this._calendarDate.getMonth();
351
- }
279
+ async onAfterRendering() {
280
+ await renderFinished(); // Await for the current picker to render and then ask if it has previous/next pages
281
+ this._previousButtonDisabled = !this._currentPickerDOM._hasPreviousPage();
282
+ this._nextButtonDisabled = !this._currentPickerDOM._hasNextPage();
352
283
 
353
- get _primaryCalendarType() {
284
+ const yearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this.primaryCalendarType });
354
285
  const localeData = getCachedLocaleDataInstance(getLocale());
355
- return this.primaryCalendarType || getCalendarType() || localeData.getPreferredCalendarType();
356
- }
357
-
358
- get _formatPattern() {
359
- return this.formatPattern || "medium"; // get from config
360
- }
361
-
362
- get _isPattern() {
363
- return this._formatPattern !== "medium" && this._formatPattern !== "short" && this._formatPattern !== "long";
364
- }
365
-
366
- get _selectedDates() {
367
- return this.selectedDates || [];
368
- }
286
+ this._headerMonthButtonText = localeData.getMonths("wide", this.primaryCalendarType)[this._calendarDate.getMonth()];
369
287
 
370
- get _maxDate() {
371
- return this.maxDate ? this._getTimeStampFromString(this.maxDate) : this._getMaxCalendarDate();
372
- }
373
-
374
- get _minDate() {
375
- return this.minDate ? this._getTimeStampFromString(this.minDate) : this._getMinCalendarDate();
376
- }
288
+ if (this._currentPicker === "year") {
289
+ const rangeStart = new CalendarDate(this._calendarDate, this._primaryCalendarType);
290
+ const rangeEnd = new CalendarDate(this._calendarDate, this._primaryCalendarType);
291
+ rangeStart.setYear(this._currentPickerDOM._firstYear);
292
+ rangeEnd.setYear(this._currentPickerDOM._lastYear);
377
293
 
378
- _getTimeStampFromString(value) {
379
- const jsDate = this.getFormat().parse(value);
380
- if (jsDate) {
381
- return CalendarDate.fromLocalJSDate(jsDate, this._primaryCalendarType).toUTCJSDate().valueOf();
294
+ this._headerYearButtonText = `${yearFormat.format(rangeStart.toLocalJSDate(), true)} - ${yearFormat.format(rangeEnd.toLocalJSDate(), true)}`;
295
+ } else {
296
+ this._headerYearButtonText = String(yearFormat.format(this._localDate, true));
382
297
  }
383
- return undefined;
384
298
  }
385
299
 
386
- _getMinCalendarDate() {
387
- const minDate = new CalendarDate(1, 0, 1, this._primaryCalendarType);
388
- minDate.setYear(1);
389
- minDate.setMonth(0);
390
- minDate.setDate(1);
391
- return minDate.valueOf();
300
+ /**
301
+ * The user clicked the "month" button in the header
302
+ */
303
+ onHeaderShowMonthPress(event) {
304
+ this._currentPickerDOM._autoFocus = false;
305
+ this._currentPicker = "month";
306
+ this.fireEvent("show-month-press", event);
392
307
  }
393
308
 
394
- _getMaxCalendarDate() {
395
- const maxDate = new CalendarDate(1, 0, 1, this._primaryCalendarType);
396
- maxDate.setYear(9999);
397
- maxDate.setMonth(11);
398
- const tempDate = new CalendarDate(maxDate, this._primaryCalendarType);
399
- tempDate.setDate(1);
400
- tempDate.setMonth(tempDate.getMonth() + 1, 0);
401
- maxDate.setDate(tempDate.getDate());// 31st for Gregorian Calendar
402
- return maxDate.valueOf();
309
+ /**
310
+ * The user clicked the "year" button in the header
311
+ */
312
+ onHeaderShowYearPress(event) {
313
+ this._currentPickerDOM._autoFocus = false;
314
+ this._currentPicker = "year";
315
+ this.fireEvent("show-year-press", event);
403
316
  }
404
317
 
405
- _onkeydown(event) {
406
- if (isF4(event) && this._monthPicker._hidden) {
407
- this._showMonthPicker();
408
- if (!this._yearPicker._hidden) {
409
- this._hideYearPicker();
410
- }
411
- }
412
-
413
- if (isF4Shift(event) && this._yearPicker._hidden) {
414
- this._showYearPicker();
415
- if (!this._monthPicker._hidden) {
416
- this._hideMonthPicker();
417
- }
418
- }
318
+ get _currentPickerDOM() {
319
+ return this.shadowRoot.querySelector(`[ui5-${this._currentPicker}picker]`);
419
320
  }
420
321
 
421
- _handleSelectedDatesChange(event) {
422
- this.selectedDates = [...event.detail.dates];
423
-
424
- this.fireEvent("selected-dates-change", { dates: event.detail.dates });
322
+ /**
323
+ * The year clicked the "Previous" button in the header
324
+ */
325
+ onHeaderPreviousPress() {
326
+ this._currentPickerDOM._showPreviousPage();
425
327
  }
426
328
 
427
- _handleMonthNavigate(event) {
428
- this.timestamp = event.detail.timestamp;
329
+ /**
330
+ * The year clicked the "Next" button in the header
331
+ */
332
+ onHeaderNextPress() {
333
+ this._currentPickerDOM._showNextPage();
429
334
  }
430
335
 
431
- _handleYearNavigate(event) {
432
- if (event.detail.start) {
433
- this._handlePrevious();
336
+ get secondaryCalendarTypeButtonText() {
337
+ if (!this.secondaryCalendarType) {
338
+ return;
434
339
  }
435
340
 
436
- if (event.detail.end) {
437
- this._handleNext();
438
- }
439
- }
440
-
441
- _handleSelectedMonthChange(event) {
442
- const oNewDate = this._calendarDate;
443
- const newMonthIndex = CalendarDate.fromTimestamp(
444
- event.detail.timestamp * 1000,
445
- this._primaryCalendarType
446
- ).getMonth();
447
-
448
- oNewDate.setMonth(newMonthIndex);
449
- this.timestamp = oNewDate.valueOf() / 1000;
450
-
451
- this._hideMonthPicker();
452
-
453
- this._focusFirstDayOfMonth(oNewDate);
341
+ const localDate = new Date(this._timestamp * 1000);
342
+ const secondYearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this.secondaryCalendarType });
343
+ const secondMonthInfo = this._getDisplayedSecondaryMonthText();
344
+ const secondYearText = secondYearFormat.format(localDate, true);
345
+ return {
346
+ yearButtonText: secondYearText,
347
+ monthButtonText: secondMonthInfo.text,
348
+ monthButtonInfo: secondMonthInfo.info,
349
+ };
454
350
  }
455
351
 
456
- _focusFirstDayOfMonth(targetDate) {
457
- let fistDayOfMonthIndex = -1;
458
-
459
- // focus first day of the month
460
- const dayPicker = this.shadowRoot.querySelector("[ui5-daypicker]");
461
-
462
- dayPicker._getVisibleDays(targetDate).forEach((date, index) => {
463
- if (date.getDate() === 1 && (fistDayOfMonthIndex === -1)) {
464
- fistDayOfMonthIndex = index;
465
- }
466
- });
352
+ _getDisplayedSecondaryMonthText() {
353
+ const month = this._getDisplayedSecondaryMonths();
354
+ const localeData = getCachedLocaleDataInstance(getLocale());
355
+ const pattern = localeData.getIntervalPattern();
356
+ const secondaryMonthsNames = getCachedLocaleDataInstance(getLocale()).getMonthsStandAlone("abbreviated", this.secondaryCalendarType);
357
+ const secondaryMonthsNamesWide = getCachedLocaleDataInstance(getLocale()).getMonthsStandAlone("wide", this.secondaryCalendarType);
358
+
359
+ if (month.startMonth === month.endMonth) {
360
+ return {
361
+ text: localeData.getMonths("abbreviated", this.secondaryCalendarType)[month.startMonth],
362
+ textInfo: localeData.getMonths("wide", this.secondaryCalendarType)[month.startMonth],
363
+ };
364
+ }
467
365
 
468
- dayPicker._itemNav.currentIndex = fistDayOfMonthIndex;
469
- dayPicker._itemNav.focusCurrent();
366
+ return {
367
+ text: pattern.replace(/\{0\}/, secondaryMonthsNames[month.startMonth]).replace(/\{1\}/, secondaryMonthsNames[month.endMonth]),
368
+ textInfo: pattern.replace(/\{0\}/, secondaryMonthsNamesWide[month.startMonth]).replace(/\{1\}/, secondaryMonthsNamesWide[month.endMonth]),
369
+ };
470
370
  }
471
371
 
472
- _handleSelectedYearChange(event) {
473
- const oNewDate = CalendarDate.fromTimestamp(
474
- event.detail.timestamp * 1000,
475
- this._primaryCalendarType
476
- );
477
- oNewDate.setMonth(0);
478
- oNewDate.setDate(1);
479
-
480
- this.timestamp = oNewDate.valueOf() / 1000;
372
+ _getDisplayedSecondaryMonths() {
373
+ const localDate = new Date(this._timestamp * 1000);
374
+ let firstDate = CalendarDate.fromLocalJSDate(localDate, this._primaryCalendarType);
375
+ firstDate.setDate(1);
376
+ firstDate = new CalendarDate(firstDate, this.secondaryCalendarType);
377
+ const startMonth = firstDate.getMonth();
481
378
 
482
- this._hideYearPicker();
379
+ let lastDate = CalendarDate.fromLocalJSDate(localDate, this._primaryCalendarType);
380
+ lastDate.setDate(this._getDaysInMonth(lastDate));
381
+ lastDate = new CalendarDate(lastDate, this.secondaryCalendarType);
382
+ const endMonth = lastDate.getMonth();
483
383
 
484
- this._focusFirstDayOfMonth(oNewDate);
384
+ return { startMonth, endMonth };
485
385
  }
486
386
 
487
- _handleMonthButtonPress() {
488
- this._hideYearPicker();
489
- this._header._isMonthButtonHidden = true;
490
-
491
- this[`_${this._monthPicker._hidden ? "show" : "hide"}MonthPicker`]();
387
+ _getDaysInMonth(date) {
388
+ const tempCalendarDate = new CalendarDate(date);
389
+ tempCalendarDate.setDate(1);
390
+ tempCalendarDate.setMonth(tempCalendarDate.getMonth() + 1);
391
+ tempCalendarDate.setDate(0);
392
+ return tempCalendarDate.getDate();
492
393
  }
493
394
 
494
- _handleYearButtonPress() {
495
- this._hideMonthPicker();
496
-
497
- this[`_${this._yearPicker._hidden ? "show" : "hide"}YearPicker`]();
395
+ /**
396
+ * The month button is hidden when the month picker or year picker is shown
397
+ * @returns {boolean}
398
+ * @private
399
+ */
400
+ get _isHeaderMonthButtonHidden() {
401
+ return this._currentPicker === "month" || this._currentPicker === "year";
498
402
  }
499
403
 
500
- _handlePrevious() {
501
- if (this._monthPicker._hidden && this._yearPicker._hidden) {
502
- this._showPrevMonth();
503
- } else if (this._monthPicker._hidden && !this._yearPicker._hidden) {
504
- this._showPrevPageYears();
505
- } else if (!this._monthPicker._hidden && this._yearPicker._hidden) {
506
- this._showPrevYear();
507
- }
404
+ get _isDayPickerHidden() {
405
+ return this._currentPicker !== "day";
508
406
  }
509
407
 
510
- _handleNext() {
511
- if (this._monthPicker._hidden && this._yearPicker._hidden) {
512
- this._showNextMonth();
513
- } else if (this._monthPicker._hidden && !this._yearPicker._hidden) {
514
- this._showNextPageYears();
515
- } else if (!this._monthPicker._hidden && this._yearPicker._hidden) {
516
- this._showNextYear();
517
- }
408
+ get _isMonthPickerHidden() {
409
+ return this._currentPicker !== "month";
518
410
  }
519
411
 
520
- _showNextMonth() {
521
- const nextMonth = this._calendarDate;
522
- const maxCalendarDateYear = CalendarDate.fromTimestamp(this._getMaxCalendarDate(), this._primaryCalendarType).getYear();
523
- nextMonth.setDate(1);
524
- nextMonth.setMonth(nextMonth.getMonth() + 1);
525
-
526
- if (nextMonth.getYear() > maxCalendarDateYear) {
527
- return;
528
- }
529
-
530
- if (!this.isInValidRange(nextMonth.toLocalJSDate().valueOf())) {
531
- return;
532
- }
533
-
534
- this._focusFirstDayOfMonth(nextMonth);
535
- this.timestamp = nextMonth.valueOf() / 1000;
412
+ get _isYearPickerHidden() {
413
+ return this._currentPicker !== "year";
536
414
  }
537
415
 
538
- _showPrevMonth() {
539
- let iNewMonth = this._month - 1,
540
- iNewYear = this._calendarDate.getYear();
541
-
542
- const minCalendarDateYear = CalendarDate.fromTimestamp(this._getMinCalendarDate(), this._primaryCalendarType).getYear();
543
-
544
- // focus first day of the month
545
- const dayPicker = this.shadowRoot.querySelector("[ui5-daypicker]");
546
- const currentMonthDate = dayPicker._calendarDate.setMonth(dayPicker._calendarDate.getMonth());
547
- const lastMonthDate = dayPicker._calendarDate.setMonth(dayPicker._calendarDate.getMonth() - 1);
548
-
549
- // set the date to last day of last month
550
- currentMonthDate.setDate(-1);
551
-
552
- // find the index of the last day
553
- let lastDayOfMonthIndex = -1;
554
-
555
- if (!this.isInValidRange(currentMonthDate.toLocalJSDate().valueOf())) {
556
- return;
557
- }
558
-
559
- dayPicker._getVisibleDays(lastMonthDate).forEach((date, index) => {
560
- const isSameDate = currentMonthDate.getDate() === date.getDate();
561
- const isSameMonth = currentMonthDate.getMonth() === date.getMonth();
562
-
563
- if (isSameDate && isSameMonth) {
564
- lastDayOfMonthIndex = (index + 1);
565
- }
416
+ onSelectedDatesChange(event) {
417
+ const timestamp = event.detail.timestamp;
418
+ const selectedDates = event.detail.dates;
419
+ const datesValues = selectedDates.map(ts => {
420
+ const calendarDate = CalendarDate.fromTimestamp(ts * 1000, this._primaryCalendarType);
421
+ return this.getFormat().format(calendarDate.toUTCJSDate(), true);
566
422
  });
567
423
 
568
- const weekDaysCount = 7;
569
-
570
- if (lastDayOfMonthIndex !== -1) {
571
- // find the DOM for the last day index
572
- const lastDay = dayPicker.shadowRoot.querySelector(".ui5-dp-content").children[parseInt(lastDayOfMonthIndex / weekDaysCount) + 1].children[(lastDayOfMonthIndex % weekDaysCount)];
573
-
574
- // update current item in ItemNavigation
575
- dayPicker._itemNav.current = lastDayOfMonthIndex;
576
-
577
- // focus the item
578
- lastDay.focus();
579
- }
580
-
581
- if (iNewMonth > 11) {
582
- iNewMonth = 0;
583
- iNewYear = this._calendarDate.getYear() + 1;
584
- }
585
-
586
- if (iNewMonth < 0) {
587
- iNewMonth = 11;
588
- iNewYear = this._calendarDate.getYear() - 1;
424
+ this.timestamp = timestamp;
425
+ const defaultPrevented = !this.fireEvent("selected-dates-change", { timestamp, dates: [...selectedDates], values: datesValues }, true);
426
+ if (!defaultPrevented) {
427
+ this._setSelectedDates(selectedDates);
589
428
  }
590
-
591
- const oNewDate = this._calendarDate;
592
- oNewDate.setYear(iNewYear);
593
- oNewDate.setMonth(iNewMonth);
594
-
595
-
596
- if (oNewDate.getYear() < minCalendarDateYear) {
597
- return;
598
- }
599
- this.timestamp = oNewDate.valueOf() / 1000;
600
- }
601
-
602
- _showNextYear() {
603
- const maxCalendarDateYear = CalendarDate.fromTimestamp(this._getMaxCalendarDate(), this._primaryCalendarType).getYear();
604
- if (this._calendarDate.getYear() === maxCalendarDateYear) {
605
- return;
606
- }
607
-
608
- const newDate = this._calendarDate;
609
- newDate.setYear(this._calendarDate.getYear() + 1);
610
-
611
- this.timestamp = newDate.valueOf() / 1000;
612
429
  }
613
430
 
614
- _showPrevYear() {
615
- const minCalendarDateYear = CalendarDate.fromTimestamp(this._getMinCalendarDate(), this._primaryCalendarType).getYear();
616
- if (this._calendarDate.getYear() === minCalendarDateYear) {
617
- return;
618
- }
619
-
620
- const oNewDate = this._calendarDate;
621
- oNewDate.setYear(this._calendarDate.getYear() - 1);
622
-
623
- this.timestamp = oNewDate.valueOf() / 1000;
624
- }
625
-
626
- _showNextPageYears() {
627
- if (!this._isYearInRange(this._yearPicker.timestamp,
628
- YearPicker._ITEMS_COUNT - YearPicker._MIDDLE_ITEM_INDEX,
629
- CalendarDate.fromTimestamp(this._minDate, this._primaryCalendarType).getYear(),
630
- CalendarDate.fromTimestamp(this._maxDate, this._primaryCalendarType).getYear())) {
631
- return;
632
- }
633
-
634
- const newDate = CalendarDate.fromTimestamp(this._yearPicker.timestamp * 1000, this._primaryCalendarType);
635
- newDate.setYear(newDate.getYear() + YearPicker._ITEMS_COUNT);
636
-
637
- this._yearPicker = Object.assign({}, this._yearPicker, {
638
- timestamp: newDate.valueOf() / 1000,
639
- });
640
-
641
- this.timestamp = this._yearPicker.timestamp;
642
-
643
- this._isShiftingYears = true;
644
- }
645
-
646
- _showPrevPageYears() {
647
- if (!this._isYearInRange(this._yearPicker.timestamp,
648
- -YearPicker._MIDDLE_ITEM_INDEX - 1,
649
- CalendarDate.fromTimestamp(this._minDate, this._primaryCalendarType).getYear(),
650
- CalendarDate.fromTimestamp(this._maxDate, this._primaryCalendarType).getYear())) {
651
- return;
652
- }
653
-
654
- const newDate = CalendarDate.fromTimestamp(this._yearPicker.timestamp * 1000, this._primaryCalendarType);
655
- newDate.setYear(newDate.getYear() - YearPicker._ITEMS_COUNT);
656
-
657
- this._yearPicker = Object.assign({}, this._yearPicker, {
658
- timestamp: newDate.valueOf() / 1000,
659
- });
660
-
661
- this.timestamp = this._yearPicker.timestamp;
662
-
663
- this._isShiftingYears = true;
664
- }
665
-
666
- _showMonthPicker() {
667
- this._monthPicker = Object.assign({}, this._monthPicker);
668
- this._oMonth = Object.assign({}, this._oMonth);
669
-
670
- this._monthPicker.timestamp = this._timestamp;
671
- this._monthPicker._hidden = false;
672
- this._oMonth._hidden = true;
673
-
674
- const calendarRect = this.shadowRoot.querySelector(".ui5-cal-root").getBoundingClientRect();
675
-
676
- this._calendarWidth = calendarRect.width.toString();
677
- this._calendarHeight = calendarRect.height.toString();
678
- this._header._isMonthButtonHidden = true;
431
+ onSelectedMonthChange(event) {
432
+ this.timestamp = event.detail.timestamp;
433
+ this._currentPicker = "day";
434
+ this._currentPickerDOM._autoFocus = true;
679
435
  }
680
436
 
681
- _showYearPicker() {
682
- this._yearPicker = Object.assign({}, this._yearPicker);
683
- this._oMonth = Object.assign({}, this._oMonth);
684
-
685
- this._yearPicker.timestamp = this._timestamp;
686
- this._yearPicker._selectedYear = this._calendarDate.getYear();
687
- this._yearPicker._hidden = false;
688
- this._oMonth._hidden = true;
689
-
690
- const calendarRect = this.shadowRoot.querySelector(".ui5-cal-root").getBoundingClientRect();
691
-
692
- this._calendarWidth = calendarRect.width.toString();
693
- this._calendarHeight = calendarRect.height.toString();
437
+ onSelectedYearChange(event) {
438
+ this.timestamp = event.detail.timestamp;
439
+ this._currentPicker = "day";
440
+ this._currentPickerDOM._autoFocus = true;
694
441
  }
695
442
 
696
- _hideMonthPicker() {
697
- this._monthPicker = Object.assign({}, this._monthPicker);
698
- this._oMonth = Object.assign({}, this._oMonth);
699
-
700
- if (this._yearPicker._hidden) {
701
- this._oMonth._hidden = false;
702
- }
703
- this._monthPicker._hidden = true;
704
- this._header._isMonthButtonHidden = false;
443
+ onNavigate(event) {
444
+ this.timestamp = event.detail.timestamp;
705
445
  }
706
446
 
707
- _hideYearPicker() {
708
- this._yearPicker = Object.assign({}, this._yearPicker);
709
- this._oMonth = Object.assign({}, this._oMonth);
710
-
711
- if (this._monthPicker._hidden) {
712
- this._oMonth._hidden = false;
447
+ _onkeydown(event) {
448
+ if (isF4(event) && this._currentPicker !== "month") {
449
+ this._currentPicker = "month";
713
450
  }
714
- this._yearPicker._hidden = true;
715
- }
716
451
 
717
- _isYearInRange(timestamp, yearsoffset, minYear, maxYear) {
718
- if (timestamp) {
719
- const oCalDate = CalendarDate.fromTimestamp(timestamp * 1000, this._primaryCalendarType);
720
- oCalDate.setMonth(0);
721
- oCalDate.setDate(1);
722
- oCalDate.setYear(oCalDate.getYear() + yearsoffset);
723
- return oCalDate.getYear() >= minYear && oCalDate.getYear() <= maxYear;
452
+ if (isF4Shift(event) && this._currentPicker !== "year") {
453
+ this._currentPicker = "year";
724
454
  }
725
455
  }
726
456
 
727
- get classes() {
728
- return {
729
- main: {
730
- "ui5-cal-root": true,
731
- },
732
- dayPicker: {
733
- ".ui5-daypicker--hidden": !this._yearPicker._hidden || !this._monthPicker._hidden,
734
- },
735
- yearPicker: {
736
- "ui5-yearpicker--hidden": this._yearPicker._hidden,
737
- },
738
- monthPicker: {
739
- "ui5-monthpicker--hidden": this._monthPicker._hidden,
740
- },
741
- };
742
- }
743
-
744
457
  /**
745
- * Checks if a date is in range between minimum and maximum date
746
- * @param {object} value
747
- * @public
458
+ * Returns an array of UTC timestamps, representing the selected dates.
459
+ * @protected
460
+ * @deprecated
748
461
  */
749
- isInValidRange(value = "") {
750
- const pickedDate = CalendarDate.fromTimestamp(value).toLocalJSDate(),
751
- minDate = this._minDate && new Date(this._minDate),
752
- maxDate = this._maxDate && new Date(this._maxDate);
753
-
754
- if (minDate && maxDate) {
755
- if (minDate <= pickedDate && maxDate >= pickedDate) {
756
- return true;
757
- }
758
- } else if (minDate && !maxDate) {
759
- if (minDate <= pickedDate) {
760
- return true;
761
- }
762
- } else if (maxDate && !minDate) {
763
- if (maxDate >= pickedDate) {
764
- return true;
765
- }
766
- } else if (!maxDate && !minDate) {
767
- return true;
768
- }
769
-
770
- return false;
771
- }
772
-
773
- getFormat() {
774
- if (this._isPattern) {
775
- this._oDateFormat = DateFormat.getInstance({
776
- pattern: this._formatPattern,
777
- calendarType: this._primaryCalendarType,
778
- });
779
- } else {
780
- this._oDateFormat = DateFormat.getInstance({
781
- style: this._formatPattern,
782
- calendarType: this._primaryCalendarType,
783
- });
784
- }
785
- return this._oDateFormat;
462
+ get selectedDates() {
463
+ return this._selectedDatesTimestamps;
786
464
  }
787
465
 
788
- get styles() {
789
- return {
790
- main: {
791
- "height": `${this._calendarHeight ? `${this._calendarHeight}px` : "auto"}`,
792
- "width": `${this._calendarWidth ? `${this._calendarWidth}px` : "auto"}`,
793
- },
794
- };
466
+ /**
467
+ * Creates instances of <code>ui5-date</code> inside this <code>ui5-calendar</code> with values, equal to the provided UTC timestamps
468
+ * @protected
469
+ * @deprecated
470
+ * @param selectedDates Array of UTC timestamps
471
+ */
472
+ set selectedDates(selectedDates) {
473
+ this._setSelectedDates(selectedDates);
795
474
  }
796
475
 
797
476
  static get dependencies() {
798
477
  return [
478
+ CalendarDateComponent.default,
799
479
  CalendarHeader,
800
480
  DayPicker,
801
481
  MonthPicker,
802
482
  YearPicker,
803
483
  ];
804
484
  }
805
-
806
- static async onDefine() {
807
- await fetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript());
808
- }
809
485
  }
810
486
 
811
487
  Calendar.define();