@ui5/webcomponents 0.0.0-39bd3067f → 0.0.0-4180fe799

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 (732) hide show
  1. package/CHANGELOG.md +610 -1
  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 +197 -46
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +44 -22
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +159 -20
  13. package/dist/Button.js +132 -69
  14. package/dist/Calendar.js +342 -546
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -62
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +44 -158
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +272 -76
  21. package/dist/CheckBox.js +149 -49
  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 +603 -94
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +12 -24
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +418 -403
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +111 -384
  35. package/dist/DayPicker.js +509 -431
  36. package/dist/Dialog.js +497 -50
  37. package/dist/DurationPicker.js +170 -317
  38. package/dist/FileUploader.js +217 -24
  39. package/dist/GroupHeaderListItem.js +24 -19
  40. package/dist/Icon.js +197 -36
  41. package/dist/Input.js +660 -167
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +138 -28
  45. package/dist/List.js +501 -110
  46. package/dist/ListItem.js +110 -28
  47. package/dist/ListItemBase.js +42 -8
  48. package/dist/MessageStrip.js +56 -70
  49. package/dist/MonthPicker.js +180 -182
  50. package/dist/MultiComboBox.js +583 -207
  51. package/dist/MultiComboBoxItem.js +8 -5
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +100 -37
  55. package/dist/Popover.js +255 -224
  56. package/dist/Popup.js +381 -284
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +131 -51
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +291 -0
  62. package/dist/ResponsivePopover.js +73 -46
  63. package/dist/SegmentedButton.js +127 -60
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +448 -107
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +44 -22
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +37 -31
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +60 -42
  74. package/dist/Tab.js +55 -24
  75. package/dist/TabContainer.js +241 -82
  76. package/dist/TabSeparator.js +1 -0
  77. package/dist/Table.js +480 -35
  78. package/dist/TableCell.js +11 -13
  79. package/dist/TableColumn.js +13 -3
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +244 -18
  82. package/dist/TextArea.js +153 -55
  83. package/dist/TimePicker.js +55 -644
  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 +24 -13
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +84 -45
  90. package/dist/Tokenizer.js +246 -64
  91. package/dist/Tree.js +443 -0
  92. package/dist/TreeItem.js +168 -0
  93. package/dist/TreeListItem.js +332 -0
  94. package/dist/WheelSlider.js +79 -59
  95. package/dist/YearPicker.js +199 -255
  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 +276 -53
  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 -0
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  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 -15
  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 -9
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  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 -6
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  173. package/dist/generated/templates/CarouselTemplate.lit.js +13 -12
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  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 -5
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -6
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -13
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -6
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -12
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -8
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -7
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -23
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -8
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -13
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -9
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -27
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -14
  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 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -5
  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 -19
  219. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -6
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -14
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -17
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +6 -30
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -10
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -8
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -8
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -5
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
  245. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -7
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  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 +8 -0
  274. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  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 +8 -0
  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 +8 -0
  299. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  300. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  301. package/dist/generated/themes/RadioButton.css.js +5 -5
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  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 +8 -0
  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 +8 -0
  333. package/dist/generated/themes/TreeListItem.css.js +8 -0
  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 -0
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  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 +18 -13
  397. package/dist/popup-utils/PopoverRegistry.js +55 -21
  398. package/dist/timepicker-utils/TimeSlider.js +15 -13
  399. package/dist/types/{AvatarBackgroundColor.js → 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 +2 -2
  414. package/dist/types/ListMode.js +9 -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 +55 -0
  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 +23 -6
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +7 -0
  454. package/src/Avatar.hbs +20 -0
  455. package/src/Avatar.js +392 -0
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +14 -0
  459. package/src/Badge.js +165 -0
  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 +32 -0
  465. package/src/BusyIndicator.js +269 -0
  466. package/src/Button.hbs +45 -0
  467. package/src/Button.js +463 -0
  468. package/src/Calendar.hbs +69 -0
  469. package/src/Calendar.js +489 -0
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +54 -0
  472. package/src/CalendarHeader.js +209 -0
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +14 -0
  475. package/src/Card.js +160 -0
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +85 -0
  479. package/src/Carousel.js +681 -0
  480. package/src/CheckBox.hbs +44 -0
  481. package/src/CheckBox.js +424 -0
  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 +49 -0
  492. package/src/ComboBox.js +1041 -0
  493. package/src/ComboBoxFilters.js +40 -0
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +49 -0
  496. package/src/ComboBoxPopover.hbs +125 -0
  497. package/src/CustomListItem.hbs +5 -0
  498. package/src/CustomListItem.js +99 -0
  499. package/src/DateComponentBase.js +170 -0
  500. package/src/DatePicker.hbs +44 -0
  501. package/src/DatePicker.js +823 -0
  502. package/src/DatePickerPopover.hbs +63 -0
  503. package/src/DateRangePicker.js +328 -0
  504. package/src/DateTimePicker.js +430 -0
  505. package/src/DateTimePickerPopover.hbs +74 -0
  506. package/src/DayPicker.hbs +66 -0
  507. package/src/DayPicker.js +754 -0
  508. package/src/Dialog.hbs +35 -0
  509. package/src/Dialog.js +601 -0
  510. package/src/DurationPicker.js +312 -0
  511. package/src/FileUploader.hbs +40 -0
  512. package/src/FileUploader.js +532 -0
  513. package/src/FileUploaderPopover.hbs +25 -0
  514. package/src/GroupHeaderListItem.hbs +15 -0
  515. package/src/GroupHeaderListItem.js +94 -0
  516. package/src/Icon.hbs +25 -0
  517. package/src/Icon.js +373 -0
  518. package/src/Input.hbs +78 -0
  519. package/src/Input.js +1381 -0
  520. package/src/InputPopover.hbs +118 -0
  521. package/src/Interfaces.js +192 -0
  522. package/src/Label.hbs +13 -0
  523. package/src/Label.js +152 -0
  524. package/src/Link.hbs +20 -0
  525. package/src/Link.js +349 -0
  526. package/src/List.hbs +89 -0
  527. package/src/List.js +1056 -0
  528. package/src/ListItem.hbs +102 -0
  529. package/src/ListItem.js +371 -0
  530. package/src/ListItemBase.js +179 -0
  531. package/src/MessageStrip.hbs +34 -0
  532. package/src/MessageStrip.js +227 -0
  533. package/src/MonthPicker.hbs +29 -0
  534. package/src/MonthPicker.js +299 -0
  535. package/src/MultiComboBox.hbs +78 -0
  536. package/src/MultiComboBox.js +1091 -0
  537. package/src/MultiComboBoxItem.js +43 -0
  538. package/src/MultiComboBoxPopover.hbs +133 -0
  539. package/src/MultiInput.hbs +41 -0
  540. package/src/MultiInput.js +301 -0
  541. package/src/Option.js +115 -0
  542. package/src/Panel.hbs +63 -0
  543. package/src/Panel.js +462 -0
  544. package/src/Popover.hbs +25 -0
  545. package/src/Popover.js +786 -0
  546. package/src/Popup.hbs +34 -0
  547. package/src/Popup.js +567 -0
  548. package/src/PopupBlockLayer.hbs +7 -0
  549. package/src/ProgressIndicator.hbs +35 -0
  550. package/src/ProgressIndicator.js +235 -0
  551. package/src/RadioButton.hbs +33 -0
  552. package/src/RadioButton.js +494 -0
  553. package/src/RadioButtonGroup.js +205 -0
  554. package/src/RangeSlider.hbs +70 -0
  555. package/src/RangeSlider.js +769 -0
  556. package/src/RatingIndicator.hbs +33 -0
  557. package/src/RatingIndicator.js +291 -0
  558. package/src/ResponsivePopover.hbs +39 -0
  559. package/src/ResponsivePopover.js +206 -0
  560. package/src/SegmentedButton.hbs +17 -0
  561. package/src/SegmentedButton.js +290 -0
  562. package/src/SegmentedButtonItem.hbs +42 -0
  563. package/src/SegmentedButtonItem.js +109 -0
  564. package/src/Select.hbs +45 -0
  565. package/src/Select.js +834 -0
  566. package/src/SelectPopover.hbs +89 -0
  567. package/src/Slider.hbs +42 -0
  568. package/src/Slider.js +320 -0
  569. package/src/SliderBase.hbs +38 -0
  570. package/src/SliderBase.js +842 -0
  571. package/src/StandardListItem.hbs +44 -0
  572. package/src/StandardListItem.js +191 -0
  573. package/src/StepInput.hbs +80 -0
  574. package/src/StepInput.js +684 -0
  575. package/src/SuggestionGroupItem.js +64 -0
  576. package/src/SuggestionItem.js +146 -0
  577. package/src/SuggestionListItem.hbs +33 -0
  578. package/src/SuggestionListItem.js +76 -0
  579. package/src/Switch.hbs +50 -0
  580. package/src/Switch.js +262 -0
  581. package/src/Tab.hbs +3 -0
  582. package/src/Tab.js +334 -0
  583. package/src/TabContainer.hbs +93 -0
  584. package/src/TabContainer.js +679 -0
  585. package/src/TabContainerPopover.hbs +24 -0
  586. package/src/TabInOverflow.hbs +22 -0
  587. package/src/TabInStrip.hbs +43 -0
  588. package/src/TabSeparator.hbs +1 -0
  589. package/src/TabSeparator.js +44 -0
  590. package/src/Table.hbs +99 -0
  591. package/src/Table.js +761 -0
  592. package/src/TableCell.hbs +7 -0
  593. package/src/TableCell.js +88 -0
  594. package/src/TableColumn.hbs +8 -0
  595. package/src/TableColumn.js +136 -0
  596. package/src/TableGroupRow.hbs +12 -0
  597. package/src/TableGroupRow.js +160 -0
  598. package/src/TableRow.hbs +61 -0
  599. package/src/TableRow.js +388 -0
  600. package/src/TextArea.hbs +50 -0
  601. package/src/TextArea.js +691 -0
  602. package/src/TextAreaPopover.hbs +28 -0
  603. package/src/TimePicker.hbs +35 -0
  604. package/src/TimePicker.js +166 -0
  605. package/src/TimePickerBase.js +463 -0
  606. package/src/TimePickerPopover.hbs +34 -0
  607. package/src/TimeSelection.hbs +60 -0
  608. package/src/TimeSelection.js +493 -0
  609. package/src/Title.hbs +47 -0
  610. package/src/Title.js +132 -0
  611. package/src/Toast.hbs +13 -0
  612. package/src/Toast.js +243 -0
  613. package/src/ToggleButton.hbs +5 -0
  614. package/src/ToggleButton.js +84 -0
  615. package/src/Token.hbs +30 -0
  616. package/src/Token.js +219 -0
  617. package/src/Tokenizer.hbs +27 -0
  618. package/src/Tokenizer.js +414 -0
  619. package/src/TokenizerPopover.hbs +50 -0
  620. package/src/Tree.hbs +42 -0
  621. package/src/Tree.js +443 -0
  622. package/src/TreeItem.js +168 -0
  623. package/src/TreeListItem.hbs +48 -0
  624. package/src/TreeListItem.js +332 -0
  625. package/src/WheelSlider.hbs +48 -0
  626. package/src/WheelSlider.js +435 -0
  627. package/src/YearPicker.hbs +27 -0
  628. package/src/YearPicker.js +324 -0
  629. package/src/features/ColorPaletteMoreColors.js +42 -0
  630. package/src/features/InputElementsFormSupport.js +88 -0
  631. package/src/features/InputSuggestions.js +530 -0
  632. package/src/i18n/messagebundle.properties +335 -0
  633. package/src/i18n/messagebundle_ar.properties +224 -0
  634. package/src/i18n/messagebundle_bg.properties +224 -0
  635. package/src/i18n/messagebundle_ca.properties +224 -0
  636. package/src/i18n/messagebundle_cs.properties +224 -0
  637. package/src/i18n/messagebundle_cy.properties +224 -0
  638. package/src/i18n/messagebundle_da.properties +224 -0
  639. package/src/i18n/messagebundle_de.properties +224 -0
  640. package/src/i18n/messagebundle_el.properties +224 -0
  641. package/src/i18n/messagebundle_en.properties +224 -0
  642. package/src/i18n/messagebundle_en_GB.properties +224 -0
  643. package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
  644. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  645. package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
  646. package/src/i18n/messagebundle_es.properties +224 -0
  647. package/src/i18n/messagebundle_es_MX.properties +224 -0
  648. package/src/i18n/messagebundle_et.properties +224 -0
  649. package/src/i18n/messagebundle_fi.properties +224 -0
  650. package/src/i18n/messagebundle_fr.properties +224 -0
  651. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  652. package/src/i18n/messagebundle_hi.properties +224 -0
  653. package/src/i18n/messagebundle_hr.properties +224 -0
  654. package/src/i18n/messagebundle_hu.properties +224 -0
  655. package/src/i18n/messagebundle_id.properties +224 -0
  656. package/src/i18n/messagebundle_in.properties +172 -0
  657. package/src/i18n/messagebundle_it.properties +224 -0
  658. package/src/i18n/messagebundle_iw.properties +224 -0
  659. package/src/i18n/messagebundle_ja.properties +224 -0
  660. package/src/i18n/messagebundle_kk.properties +224 -0
  661. package/src/i18n/messagebundle_ko.properties +224 -0
  662. package/src/i18n/messagebundle_lt.properties +224 -0
  663. package/src/i18n/messagebundle_lv.properties +224 -0
  664. package/src/i18n/messagebundle_ms.properties +224 -0
  665. package/src/i18n/messagebundle_nl.properties +224 -0
  666. package/src/i18n/messagebundle_no.properties +224 -0
  667. package/src/i18n/messagebundle_pl.properties +224 -0
  668. package/src/i18n/messagebundle_pt.properties +224 -0
  669. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  670. package/src/i18n/messagebundle_ro.properties +224 -0
  671. package/src/i18n/messagebundle_ru.properties +224 -0
  672. package/src/i18n/messagebundle_sh.properties +224 -0
  673. package/src/i18n/messagebundle_sk.properties +224 -0
  674. package/src/i18n/messagebundle_sl.properties +224 -0
  675. package/src/i18n/messagebundle_sv.properties +224 -0
  676. package/src/i18n/messagebundle_th.properties +224 -0
  677. package/src/i18n/messagebundle_tr.properties +224 -0
  678. package/src/i18n/messagebundle_uk.properties +224 -0
  679. package/src/i18n/messagebundle_vi.properties +224 -0
  680. package/src/i18n/messagebundle_zh_CN.properties +224 -0
  681. package/src/i18n/messagebundle_zh_TW.properties +224 -0
  682. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  683. package/src/popup-utils/PopoverRegistry.js +145 -0
  684. package/src/timepicker-utils/TimeSlider.js +103 -0
  685. package/src/types/AvatarColorScheme.js +104 -0
  686. package/src/types/AvatarGroupType.js +43 -0
  687. package/src/types/AvatarShape.js +41 -0
  688. package/src/types/AvatarSize.js +67 -0
  689. package/src/types/BreadcrumbsDesign.js +42 -0
  690. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  691. package/src/types/BusyIndicatorSize.js +47 -0
  692. package/src/types/ButtonDesign.js +68 -0
  693. package/src/types/CalendarSelectionMode.js +47 -0
  694. package/src/types/CarouselArrowsPlacement.js +40 -0
  695. package/src/types/GrowingMode.js +48 -0
  696. package/src/types/InputType.js +68 -0
  697. package/src/types/LinkDesign.js +47 -0
  698. package/src/types/ListGrowingMode.js +15 -0
  699. package/src/types/ListItemType.js +47 -0
  700. package/src/types/ListMode.js +77 -0
  701. package/src/types/ListSeparators.js +46 -0
  702. package/src/types/MessageStripDesign.js +54 -0
  703. package/src/types/PanelAccessibleRole.js +48 -0
  704. package/src/types/PopoverHorizontalAlign.js +54 -0
  705. package/src/types/PopoverPlacementType.js +54 -0
  706. package/src/types/PopoverVerticalAlign.js +54 -0
  707. package/src/types/Priority.js +55 -0
  708. package/src/types/SemanticColor.js +61 -0
  709. package/src/types/SwitchDesign.js +40 -0
  710. package/src/types/TabContainerTabsPlacement.js +40 -0
  711. package/src/types/TabLayout.js +40 -0
  712. package/src/types/TableGrowingMode.js +15 -0
  713. package/src/types/TableMode.js +47 -0
  714. package/src/types/TableRowType.js +40 -0
  715. package/src/types/TitleLevel.js +68 -0
  716. package/src/types/ToastPlacement.js +91 -0
  717. package/src/types/WrappingType.js +41 -0
  718. package/dist/Timeline.js +0 -97
  719. package/dist/TimelineItem.js +0 -161
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -8
  722. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -8
  723. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  724. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  725. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  726. package/dist/generated/themes/DurationPicker.css.js +0 -8
  727. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  728. package/dist/generated/themes/Timeline.css.js +0 -8
  729. package/dist/generated/themes/TimelineItem.css.js +0 -8
  730. package/dist/popup-utils/PopupUtils.js +0 -55
  731. package/dist/types/AvatarFitType.js +0 -40
  732. package/dist/webcomponentsjs/package.json +0 -46
@@ -0,0 +1,754 @@
1
+ import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
2
+ import { getFirstDayOfWeek } from "@ui5/webcomponents-base/dist/config/FormatSettings.js";
3
+ import getCachedLocaleDataInstance from "@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js";
4
+ import {
5
+ isSpace,
6
+ isSpaceShift,
7
+ isEnter,
8
+ isEnterShift,
9
+ isUp,
10
+ isDown,
11
+ isLeft,
12
+ isRight,
13
+ isHome,
14
+ isEnd,
15
+ isHomeCtrl,
16
+ isEndCtrl,
17
+ isPageUp,
18
+ isPageDown,
19
+ isPageUpShift,
20
+ isPageUpAlt,
21
+ isPageUpShiftCtrl,
22
+ isPageDownShift,
23
+ isPageDownAlt,
24
+ isPageDownShiftCtrl,
25
+ } from "@ui5/webcomponents-base/dist/Keys.js";
26
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
27
+ import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
28
+ import calculateWeekNumber from "@ui5/webcomponents-localization/dist/dates/calculateWeekNumber.js";
29
+ import CalendarType from "@ui5/webcomponents-base/dist/types/CalendarType.js";
30
+ import CalendarSelectionMode from "./types/CalendarSelectionMode.js";
31
+ import CalendarPart from "./CalendarPart.js";
32
+ import DayPickerTemplate from "./generated/templates/DayPickerTemplate.lit.js";
33
+
34
+ import {
35
+ DAY_PICKER_WEEK_NUMBER_TEXT,
36
+ DAY_PICKER_NON_WORKING_DAY,
37
+ DAY_PICKER_TODAY,
38
+ } from "./generated/i18n/i18n-defaults.js";
39
+
40
+ import dayPickerCSS from "./generated/themes/DayPicker.css.js";
41
+
42
+ /**
43
+ * @public
44
+ */
45
+ const metadata = {
46
+ tag: "ui5-daypicker",
47
+ properties: /** @lends sap.ui.webcomponents.main.DayPicker.prototype */ {
48
+ /**
49
+ * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.
50
+ * @type {Array}
51
+ * @public
52
+ */
53
+ selectedDates: {
54
+ type: Integer,
55
+ multiple: true,
56
+ compareValues: true,
57
+ },
58
+
59
+ /**
60
+ * Defines the type of selection used in the day picker component.
61
+ * Accepted property values are:<br>
62
+ * <ul>
63
+ * <li><code>CalendarSelectionMode.Single</code> - enables a single date selection.(default value)</li>
64
+ * <li><code>CalendarSelectionMode.Range</code> - enables selection of a date range.</li>
65
+ * <li><code>CalendarSelectionMode.Multiple</code> - enables selection of multiple dates.</li>
66
+ * </ul>
67
+ * @type {CalendarSelectionMode}
68
+ * @defaultvalue "Single"
69
+ * @public
70
+ */
71
+ selectionMode: {
72
+ type: CalendarSelectionMode,
73
+ defaultValue: CalendarSelectionMode.Single,
74
+ },
75
+
76
+ /**
77
+ * Defines the visibility of the week numbers column.
78
+ * <br><br>
79
+ *
80
+ * <b>Note:<b> For calendars other than Gregorian,
81
+ * the week numbers are not displayed regardless of what is set.
82
+ *
83
+ * @type {boolean}
84
+ * @defaultvalue false
85
+ * @public
86
+ * @since 1.0.0-rc.8
87
+ */
88
+ hideWeekNumbers: {
89
+ type: Boolean,
90
+ },
91
+
92
+ /**
93
+ * @type {Object}
94
+ * @private
95
+ */
96
+ _weeks: {
97
+ type: Object,
98
+ multiple: true,
99
+ },
100
+
101
+ _dayNames: {
102
+ type: Object,
103
+ multiple: true,
104
+ },
105
+
106
+ /**
107
+ * When set, the component will skip all work in onBeforeRendering and will not automatically set the focus on itself
108
+ * @type {boolean}
109
+ * @private
110
+ */
111
+ _hidden: {
112
+ type: Boolean,
113
+ noAttribute: true,
114
+ },
115
+
116
+ /**
117
+ * When selectionMode="Range" and the first day in the range is selected, this is the currently hovered (when using mouse) or focused (when using keyboard) day by the user
118
+ * @private
119
+ */
120
+ _secondTimestamp: {
121
+ type: String,
122
+ },
123
+ },
124
+ events: /** @lends sap.ui.webcomponents.main.DayPicker.prototype */ {
125
+ /**
126
+ * Fired when the selected date(s) change
127
+ * @public
128
+ * @event
129
+ */
130
+ change: {},
131
+ /**
132
+ * Fired when the timestamp changes (user navigates with the keyboard) or clicks with the mouse
133
+ * @public
134
+ * @event
135
+ */
136
+ navigate: {},
137
+ },
138
+ };
139
+
140
+ const isBetween = (x, num1, num2) => x > Math.min(num1, num2) && x < Math.max(num1, num2);
141
+
142
+ const DAYS_IN_WEEK = 7;
143
+
144
+ /**
145
+ * @class
146
+ *
147
+ * Represents one month view inside a calendar.
148
+ *
149
+ * @constructor
150
+ * @author SAP SE
151
+ * @alias sap.ui.webcomponents.main.DayPicker
152
+ * @extends CalendarPart
153
+ * @tagname ui5-daypicker
154
+ * @public
155
+ */
156
+ class DayPicker extends CalendarPart {
157
+ static get metadata() {
158
+ return metadata;
159
+ }
160
+
161
+ static get template() {
162
+ return DayPickerTemplate;
163
+ }
164
+
165
+ static get styles() {
166
+ return dayPickerCSS;
167
+ }
168
+
169
+ onBeforeRendering() {
170
+ const localeData = getCachedLocaleDataInstance(getLocale());
171
+ this._buildWeeks(localeData);
172
+ this._buildDayNames(localeData);
173
+ }
174
+
175
+ /**
176
+ * Builds the _weeks object that represents the month
177
+ * @param localeData
178
+ * @private
179
+ */
180
+ _buildWeeks(localeData) {
181
+ if (this._hidden) {
182
+ return; // Optimization to not do any work unless the current picker
183
+ }
184
+
185
+ this._weeks = [];
186
+
187
+ const firstDayOfWeek = this._getFirstDayOfWeek();
188
+ const monthsNames = localeData.getMonths("wide", this._primaryCalendarType);
189
+ const secondaryMonthsNames = this.hasSecondaryCalendarType && localeData.getMonths("wide", this.secondaryCalendarType);
190
+ const nonWorkingDayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_NON_WORKING_DAY);
191
+ const todayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_TODAY);
192
+ const tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times
193
+ const todayDate = CalendarDate.fromLocalJSDate(new Date(), this._primaryCalendarType); // current day date - calculate once
194
+ const calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf
195
+ const minDate = this._minDate; // store the _minDate (expensive getter)
196
+ const maxDate = this._maxDate; // store the _maxDate (expensive getter)
197
+
198
+ const tempSecondDate = this.hasSecondaryCalendarType && this._getSecondaryDay(tempDate);
199
+
200
+ let week = [];
201
+ for (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping
202
+ const timestamp = tempDate.valueOf() / 1000; // no need to round because CalendarDate does it
203
+
204
+ let dayOfTheWeek = tempDate.getDay() - firstDayOfWeek;
205
+ if (dayOfTheWeek < 0) {
206
+ dayOfTheWeek += DAYS_IN_WEEK;
207
+ }
208
+
209
+ const isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();
210
+ const isSelected = this._isDaySelected(timestamp);
211
+ const isSelectedBetween = this._isDayInsideSelectionRange(timestamp);
212
+ const isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();
213
+ const isWeekend = this._isWeekend(tempDate);
214
+ const isDisabled = tempDate.valueOf() < minDate.valueOf() || tempDate.valueOf() > maxDate.valueOf();
215
+ const isToday = tempDate.isSame(todayDate);
216
+ const isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;
217
+
218
+ const nonWorkingAriaLabel = isWeekend ? `${nonWorkingDayLabel} ` : "";
219
+ const todayAriaLabel = isToday ? `${todayLabel} ` : "";
220
+ const ariaLabel = this.hasSecondaryCalendarType
221
+ ? `${todayAriaLabel}${nonWorkingAriaLabel}${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNames[tempSecondDate.getMonth()]} ${tempSecondDate.getDate()}, ${tempSecondDate.getYear()}`
222
+ : `${todayAriaLabel}${nonWorkingAriaLabel}${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}`;
223
+
224
+ const day = {
225
+ timestamp: timestamp.toString(),
226
+ focusRef: isFocused,
227
+ _tabIndex: isFocused ? "0" : "-1",
228
+ selected: isSelected,
229
+ day: tempDate.getDate(),
230
+ secondDay: this.hasSecondaryCalendarType && tempSecondDate.getDate(),
231
+ _isSecondaryCalendarType: this.hasSecondaryCalendarType,
232
+ classes: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,
233
+ ariaLabel,
234
+ ariaSelected: isSelected ? "true" : "false",
235
+ ariaDisabled: isOtherMonth ? "true" : undefined,
236
+ disabled: isDisabled,
237
+ };
238
+
239
+ if (isFirstDayOfWeek) {
240
+ day.classes += " ui5-dp-firstday";
241
+ }
242
+
243
+ if (isSelected) {
244
+ day.classes += " ui5-dp-item--selected";
245
+ }
246
+
247
+ if (isSelectedBetween) {
248
+ day.classes += " ui5-dp-item--selected-between";
249
+ }
250
+
251
+ if (isToday) {
252
+ day.classes += " ui5-dp-item--now";
253
+ }
254
+
255
+ if (isOtherMonth) {
256
+ day.classes += " ui5-dp-item--othermonth";
257
+ }
258
+
259
+ if (isWeekend) {
260
+ day.classes += " ui5-dp-item--weeekend";
261
+ }
262
+
263
+ if (isDisabled) {
264
+ day.classes += " ui5-dp-item--disabled";
265
+ }
266
+
267
+ if (this.hasSecondaryCalendarType) {
268
+ day.classes += " ui5-dp-item--withsecondtype";
269
+ }
270
+
271
+ week.push(day);
272
+
273
+ if (dayOfTheWeek === DAYS_IN_WEEK - 1) { // 0-indexed so 6 is the last day of the week
274
+ week.unshift({
275
+ weekNum: calculateWeekNumber(getFirstDayOfWeek(), tempDate.toUTCJSDate(), tempDate.getYear(), getLocale(), localeData),
276
+ isHidden: this.shouldHideWeekNumbers,
277
+ });
278
+ }
279
+
280
+ if (week.length === DAYS_IN_WEEK + 1) { // 7 entries for each day + 1 for the week numbers
281
+ this._weeks.push(week);
282
+ week = [];
283
+ }
284
+
285
+ tempDate.setDate(tempDate.getDate() + 1);
286
+ if (this.hasSecondaryCalendarType) {
287
+ tempSecondDate.setDate(tempSecondDate.getDate() + 1);
288
+ }
289
+ }
290
+ }
291
+
292
+ /**
293
+ * Builds the dayNames object (header of the month)
294
+ * @param localeData
295
+ * @private
296
+ */
297
+ _buildDayNames(localeData) {
298
+ if (this._hidden) {
299
+ return; // Optimization to not do any work unless the current picker
300
+ }
301
+
302
+ let dayOfTheWeek;
303
+
304
+ const aDayNamesWide = localeData.getDays("wide", this._primaryCalendarType);
305
+ const aDayNamesAbbreviated = localeData.getDays("abbreviated", this._primaryCalendarType);
306
+ let dayName;
307
+
308
+ this._dayNames = [];
309
+ this._dayNames.push({
310
+ classes: "ui5-dp-dayname",
311
+ name: DayPicker.i18nBundle.getText(DAY_PICKER_WEEK_NUMBER_TEXT),
312
+ });
313
+ for (let i = 0; i < DAYS_IN_WEEK; i++) {
314
+ dayOfTheWeek = i + this._getFirstDayOfWeek();
315
+ if (dayOfTheWeek > DAYS_IN_WEEK - 1) { // 0-indexed so index of 6 is the maximum allowed
316
+ dayOfTheWeek -= DAYS_IN_WEEK;
317
+ }
318
+ dayName = {
319
+ name: aDayNamesWide[dayOfTheWeek],
320
+ ultraShortName: aDayNamesAbbreviated[dayOfTheWeek],
321
+ classes: "ui5-dp-dayname",
322
+ };
323
+
324
+ this._dayNames.push(dayName);
325
+ }
326
+
327
+ this._dayNames[1].classes += " ui5-dp-firstday";
328
+
329
+ if (this.shouldHideWeekNumbers) {
330
+ this._dayNames.shift();
331
+ }
332
+ }
333
+
334
+ onAfterRendering() {
335
+ if (this._autoFocus && !this._hidden) {
336
+ this.focus();
337
+ }
338
+ }
339
+
340
+ _onfocusin() {
341
+ this._autoFocus = true;
342
+ }
343
+
344
+ _onfocusout() {
345
+ this._autoFocus = false;
346
+ }
347
+
348
+ /**
349
+ * Tells if the day is selected (dark blue)
350
+ * @param timestamp
351
+ * @returns {boolean}
352
+ * @private
353
+ */
354
+ _isDaySelected(timestamp) {
355
+ if (this.selectionMode === CalendarSelectionMode.Single) {
356
+ return timestamp === this.selectedDates[0];
357
+ }
358
+
359
+ // Multiple, Range
360
+ return this.selectedDates.includes(timestamp);
361
+ }
362
+
363
+ /**
364
+ * Tells if the day is inside a selection range (light blue)
365
+ * @param timestamp
366
+ * @returns {*}
367
+ * @private
368
+ */
369
+ _isDayInsideSelectionRange(timestamp) {
370
+ // No selection at all (or not in range selection mode)
371
+ if (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {
372
+ return false;
373
+ }
374
+
375
+ // Only one date selected - the user is hovering with the mouse or navigating with the keyboard to select the second one
376
+ if (this.selectedDates.length === 1 && this._secondTimestamp) {
377
+ return isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);
378
+ }
379
+
380
+ // Two dates selected - stable range
381
+ return isBetween(timestamp, this.selectedDates[0], this.selectedDates[1]);
382
+ }
383
+
384
+ /**
385
+ * Selects/deselects a day
386
+ * @param event
387
+ * @param isShift true if the user did Click+Shift or Enter+Shift (but not Space+Shift)
388
+ * @private
389
+ */
390
+ _selectDate(event, isShift) {
391
+ const target = event.target;
392
+
393
+ if (!this._isDayPressed(target)) {
394
+ return;
395
+ }
396
+
397
+ const timestamp = this._getTimestampFromDom(target);
398
+
399
+ this._safelySetTimestamp(timestamp);
400
+ this._updateSecondTimestamp();
401
+
402
+ if (this.selectionMode === CalendarSelectionMode.Single) {
403
+ this.selectedDates = [timestamp];
404
+ } else if (this.selectionMode === CalendarSelectionMode.Multiple) {
405
+ if (this.selectedDates.length > 0 && isShift) {
406
+ this._multipleSelection(timestamp);
407
+ } else {
408
+ this._toggleTimestampInSelection(timestamp);
409
+ }
410
+ } else {
411
+ this.selectedDates = (this.selectedDates.length === 1) ? [...this.selectedDates, timestamp] : [timestamp];
412
+ }
413
+
414
+ this.fireEvent("change", {
415
+ timestamp: this.timestamp,
416
+ dates: this.selectedDates,
417
+ });
418
+ }
419
+
420
+ /**
421
+ * Selects/deselects the whole row (week)
422
+ * @param event
423
+ * @private
424
+ */
425
+ _selectWeek(event) {
426
+ this._weeks.forEach(week => {
427
+ const dayInThisWeek = week.findIndex(item => {
428
+ const date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);
429
+ return date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();
430
+ }) !== -1;
431
+ if (dayInThisWeek) { // The current day is in this week
432
+ const notAllDaysOfThisWeekSelected = week.some(item => item.timestamp && !this.selectedDates.includes(parseInt(item.timestamp)));
433
+ if (notAllDaysOfThisWeekSelected) { // even if one day is not selected, select the whole week
434
+ week.filter(item => item.timestamp).forEach(item => {
435
+ this._addTimestampToSelection(parseInt(item.timestamp));
436
+ });
437
+ } else { // only if all days of this week are selected, deselect them
438
+ week.filter(item => item.timestamp).forEach(item => {
439
+ this._removeTimestampFromSelection(parseInt(item.timestamp));
440
+ });
441
+ }
442
+ }
443
+ });
444
+
445
+ this.fireEvent("change", {
446
+ timestamp: this.timestamp,
447
+ dates: this.selectedDates,
448
+ });
449
+ }
450
+
451
+ _toggleTimestampInSelection(timestamp) {
452
+ if (this.selectedDates.includes(timestamp)) {
453
+ this._removeTimestampFromSelection(timestamp);
454
+ } else {
455
+ this._addTimestampToSelection(timestamp);
456
+ }
457
+ }
458
+
459
+ _addTimestampToSelection(timestamp) {
460
+ if (!this.selectedDates.includes(timestamp)) {
461
+ this.selectedDates = [...this.selectedDates, timestamp];
462
+ }
463
+ }
464
+
465
+ _removeTimestampFromSelection(timestamp) {
466
+ this.selectedDates = this.selectedDates.filter(value => value !== timestamp);
467
+ }
468
+
469
+ /**
470
+ * When at least one day is selected and the user pressed shift
471
+ * @param timestamp
472
+ * @private
473
+ */
474
+ _multipleSelection(timestamp) {
475
+ const min = Math.min(...this.selectedDates);
476
+ const max = Math.max(...this.selectedDates);
477
+ let start;
478
+ let end;
479
+ let toggle = false;
480
+
481
+ if (timestamp < min) {
482
+ start = timestamp;
483
+ end = min;
484
+ } else if (timestamp >= min && timestamp <= max) { // inside the current range - toggle all between the selected and focused
485
+ const distanceToMin = Math.abs(timestamp - min);
486
+ const distanceToMax = Math.abs(timestamp - max);
487
+
488
+ if (distanceToMin < distanceToMax) {
489
+ start = timestamp;
490
+ end = max;
491
+ } else {
492
+ start = min;
493
+ end = timestamp;
494
+ }
495
+ toggle = true;
496
+ } else {
497
+ start = max;
498
+ end = timestamp;
499
+ }
500
+
501
+ const startDate = CalendarDate.fromTimestamp(start * 1000);
502
+ const endDate = CalendarDate.fromTimestamp(end * 1000);
503
+
504
+ while (startDate.valueOf() <= endDate.valueOf()) {
505
+ this[toggle ? "_toggleTimestampInSelection" : "_addTimestampToSelection"](startDate.valueOf() / 1000);
506
+ startDate.setDate(startDate.getDate() + 1);
507
+ }
508
+ }
509
+
510
+ /**
511
+ * Set the hovered day as the _secondTimestamp
512
+ * @param event
513
+ * @private
514
+ */
515
+ _onmouseover(event) {
516
+ const hoveredItem = event.target.closest(".ui5-dp-item");
517
+ if (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {
518
+ this._secondTimestamp = this._getTimestampFromDom(hoveredItem);
519
+ }
520
+ }
521
+
522
+ _onkeydown(event) {
523
+ let preventDefault = true;
524
+
525
+ if (isEnter(event) || isEnterShift(event)) {
526
+ this._selectDate(event, isEnterShift(event));
527
+ } else if (isSpace(event) || isSpaceShift(event)) {
528
+ event.preventDefault();
529
+ } else if (isLeft(event)) {
530
+ this._modifyTimestampBy(-1, "day");
531
+ } else if (isRight(event)) {
532
+ this._modifyTimestampBy(1, "day");
533
+ } else if (isUp(event)) {
534
+ this._modifyTimestampBy(-7, "day");
535
+ } else if (isDown(event)) {
536
+ this._modifyTimestampBy(7, "day");
537
+ } else if (isPageUp(event)) {
538
+ this._modifyTimestampBy(-1, "month");
539
+ } else if (isPageDown(event)) {
540
+ this._modifyTimestampBy(1, "month");
541
+ } else if (isPageUpShift(event) || isPageUpAlt(event)) {
542
+ this._modifyTimestampBy(-1, "year");
543
+ } else if (isPageDownShift(event) || isPageDownAlt(event)) {
544
+ this._modifyTimestampBy(1, "year");
545
+ } else if (isPageUpShiftCtrl(event)) {
546
+ this._modifyTimestampBy(-10, "year");
547
+ } else if (isPageDownShiftCtrl(event)) {
548
+ this._modifyTimestampBy(10, "year");
549
+ } else if (isHome(event) || isEnd(event)) {
550
+ this._onHomeOrEnd(isHome(event));
551
+ } else if (isHomeCtrl(event)) {
552
+ const tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);
553
+ tempDate.setDate(1); // Set the first day of the month
554
+ this._setTimestamp(tempDate.valueOf() / 1000);
555
+ } else if (isEndCtrl(event)) {
556
+ const tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);
557
+ tempDate.setMonth(tempDate.getMonth() + 1);
558
+ tempDate.setDate(0); // Set the last day of the month (0th day of next month)
559
+ this._setTimestamp(tempDate.valueOf() / 1000);
560
+ } else {
561
+ preventDefault = false;
562
+ }
563
+
564
+ if (preventDefault) {
565
+ event.preventDefault();
566
+ }
567
+ }
568
+
569
+ _onkeyup(event) {
570
+ // Even if Space+Shift was pressed, ignore the shift unless in Multiple selection
571
+ if (isSpace(event) || (isSpaceShift(event) && this.selectionMode !== CalendarSelectionMode.Multiple)) {
572
+ this._selectDate(event, false);
573
+ } else if (isSpaceShift(event)) {
574
+ this._selectWeek(event);
575
+ }
576
+ }
577
+
578
+ /**
579
+ * Click is the same as Enter: Click+Shift has the same effect as Enter+Shift
580
+ * @param event
581
+ * @private
582
+ */
583
+ _onclick(event) {
584
+ this._selectDate(event, event.shiftKey);
585
+ }
586
+
587
+ /**
588
+ * One Home or End, move the focus to the first or last item in the row
589
+ * @param homePressed
590
+ * @private
591
+ */
592
+ _onHomeOrEnd(homePressed) {
593
+ this._weeks.forEach(week => {
594
+ const dayInThisWeek = week.findIndex(item => {
595
+ const date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);
596
+ return date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();
597
+ }) !== -1;
598
+ if (dayInThisWeek) { // The current day is in this week
599
+ const index = homePressed ? 1 : 7; // select the first (if Home) or last (if End) day of the week
600
+ this._setTimestamp(parseInt(week[index].timestamp));
601
+ }
602
+ });
603
+ }
604
+
605
+ /**
606
+ * Called from Calendar.js
607
+ * @protected
608
+ */
609
+ _hasPreviousPage() {
610
+ return !(this._calendarDate.getMonth() === this._minDate.getMonth() && this._calendarDate.getYear() === this._minDate.getYear());
611
+ }
612
+
613
+ /**
614
+ * Called from Calendar.js
615
+ * @protected
616
+ */
617
+ _hasNextPage() {
618
+ return !(this._calendarDate.getMonth() === this._maxDate.getMonth() && this._calendarDate.getYear() === this._maxDate.getYear());
619
+ }
620
+
621
+ /**
622
+ * Called from Calendar.js
623
+ * Same as PageUp
624
+ * @protected
625
+ */
626
+ _showPreviousPage() {
627
+ this._modifyTimestampBy(-1, "month");
628
+ }
629
+
630
+ /**
631
+ * Called from Calendar.js
632
+ * Same as PageDown
633
+ * @protected
634
+ */
635
+ _showNextPage() {
636
+ this._modifyTimestampBy(1, "month");
637
+ }
638
+
639
+ /**
640
+ * Modifies the timestamp by a certain amount of days/months/years
641
+ * @param amount
642
+ * @param unit
643
+ * @private
644
+ */
645
+ _modifyTimestampBy(amount, unit) {
646
+ // Modify the current timestamp
647
+ this._safelyModifyTimestampBy(amount, unit);
648
+ this._updateSecondTimestamp();
649
+
650
+ // Notify the calendar to update its timestamp
651
+ this.fireEvent("navigate", { timestamp: this.timestamp });
652
+ }
653
+
654
+ /**
655
+ * Sets the timestamp to an absolute value
656
+ * @param value
657
+ * @private
658
+ */
659
+ _setTimestamp(value) {
660
+ this._safelySetTimestamp(value);
661
+ this._updateSecondTimestamp();
662
+ this.fireEvent("navigate", { timestamp: this.timestamp });
663
+ }
664
+
665
+ /**
666
+ * During range selection, when the user is navigating with the keyboard, the currently focused day is considered the "second day"
667
+ * @private
668
+ */
669
+ _updateSecondTimestamp() {
670
+ if (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {
671
+ this._secondTimestamp = this.timestamp;
672
+ }
673
+ }
674
+
675
+ get shouldHideWeekNumbers() {
676
+ if (this._primaryCalendarType !== CalendarType.Gregorian) {
677
+ return true;
678
+ }
679
+
680
+ return this.hideWeekNumbers;
681
+ }
682
+
683
+ get hasSecondaryCalendarType() {
684
+ return !!this.secondaryCalendarType;
685
+ }
686
+
687
+ _isWeekend(oDate) {
688
+ const localeData = getCachedLocaleDataInstance(getLocale());
689
+
690
+ const iWeekDay = oDate.getDay(),
691
+ iWeekendStart = localeData.getWeekendStart(),
692
+ iWeekendEnd = localeData.getWeekendEnd();
693
+
694
+ return (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)
695
+ || (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));
696
+ }
697
+
698
+ _isDayPressed(target) {
699
+ const targetParent = target.parentNode;
700
+ return (target.className.indexOf("ui5-dp-item") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains("ui5-dp-item"));
701
+ }
702
+
703
+ _getSecondaryDay(tempDate) {
704
+ return new CalendarDate(tempDate, this.secondaryCalendarType);
705
+ }
706
+
707
+ _getFirstDay() {
708
+ let daysFromPreviousMonth;
709
+
710
+ const firstDayOfWeek = this._getFirstDayOfWeek();
711
+
712
+ // determine weekday of first day in month
713
+ const firstDay = new CalendarDate(this._calendarDate, this._primaryCalendarType);
714
+ firstDay.setDate(1);
715
+ daysFromPreviousMonth = firstDay.getDay() - firstDayOfWeek;
716
+ if (daysFromPreviousMonth < 0) {
717
+ daysFromPreviousMonth = 7 + daysFromPreviousMonth;
718
+ }
719
+
720
+ if (daysFromPreviousMonth > 0) {
721
+ firstDay.setDate(1 - daysFromPreviousMonth);
722
+ }
723
+
724
+ return firstDay;
725
+ }
726
+
727
+ _getFirstDayOfWeek() {
728
+ const localeData = getCachedLocaleDataInstance(getLocale());
729
+ const confFirstDayOfWeek = getFirstDayOfWeek();
730
+ return Number.isInteger(confFirstDayOfWeek) ? confFirstDayOfWeek : localeData.getFirstDayOfWeek();
731
+ }
732
+
733
+ get styles() {
734
+ return {
735
+ wrapper: {
736
+ display: this._hidden ? "none" : "flex",
737
+ "justify-content": "center",
738
+ },
739
+ main: {
740
+ width: "100%",
741
+ },
742
+ };
743
+ }
744
+
745
+ get ariaRoledescription() {
746
+ return this.hasSecondaryCalendarType
747
+ ? `${this._primaryCalendarType} calendar with secondary ${this.secondaryCalendarType} calendar`
748
+ : `${this._primaryCalendarType} calendar`;
749
+ }
750
+ }
751
+
752
+ DayPicker.define();
753
+
754
+ export default DayPicker;