@ui5/webcomponents 2.22.0 → 2.23.0-rc.0

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 (352) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Carousel.js +13 -3
  4. package/dist/Carousel.js.map +1 -1
  5. package/dist/ComboBox.d.ts +4 -0
  6. package/dist/ComboBox.js +6 -0
  7. package/dist/ComboBox.js.map +1 -1
  8. package/dist/DateComponentBase.d.ts +8 -0
  9. package/dist/DateComponentBase.js +10 -8
  10. package/dist/DateComponentBase.js.map +1 -1
  11. package/dist/DateTimePicker.d.ts +5 -6
  12. package/dist/DateTimePicker.js +9 -11
  13. package/dist/DateTimePicker.js.map +1 -1
  14. package/dist/DayPicker.d.ts +16 -1
  15. package/dist/DayPicker.js +28 -7
  16. package/dist/DayPicker.js.map +1 -1
  17. package/dist/Form.d.ts +4 -4
  18. package/dist/Form.js +6 -6
  19. package/dist/Form.js.map +1 -1
  20. package/dist/GridWalker.js +8 -2
  21. package/dist/GridWalker.js.map +1 -1
  22. package/dist/Icon.d.ts +19 -0
  23. package/dist/Icon.js +17 -0
  24. package/dist/Icon.js.map +1 -1
  25. package/dist/IconTemplate.js +4 -1
  26. package/dist/IconTemplate.js.map +1 -1
  27. package/dist/Input.d.ts +4 -0
  28. package/dist/Input.js.map +1 -1
  29. package/dist/List.js +54 -2
  30. package/dist/List.js.map +1 -1
  31. package/dist/ListItem.d.ts +21 -6
  32. package/dist/ListItem.js +72 -23
  33. package/dist/ListItem.js.map +1 -1
  34. package/dist/ListItemBase.d.ts +6 -1
  35. package/dist/ListItemBase.js +20 -1
  36. package/dist/ListItemBase.js.map +1 -1
  37. package/dist/ListItemBaseTemplate.d.ts +2 -2
  38. package/dist/ListItemBaseTemplate.js.map +1 -1
  39. package/dist/ListItemGroup.d.ts +2 -0
  40. package/dist/ListItemGroup.js.map +1 -1
  41. package/dist/ListItemTemplate.js +1 -1
  42. package/dist/ListItemTemplate.js.map +1 -1
  43. package/dist/Menu.d.ts +4 -0
  44. package/dist/Menu.js.map +1 -1
  45. package/dist/MultiComboBox.d.ts +5 -1
  46. package/dist/MultiComboBox.js +41 -24
  47. package/dist/MultiComboBox.js.map +1 -1
  48. package/dist/MultiInput.d.ts +6 -0
  49. package/dist/MultiInput.js +38 -9
  50. package/dist/MultiInput.js.map +1 -1
  51. package/dist/Panel.d.ts +2 -1
  52. package/dist/Panel.js +2 -1
  53. package/dist/Panel.js.map +1 -1
  54. package/dist/PanelTemplate.js +1 -1
  55. package/dist/PanelTemplate.js.map +1 -1
  56. package/dist/Select.d.ts +2 -0
  57. package/dist/Select.js +3 -0
  58. package/dist/Select.js.map +1 -1
  59. package/dist/Tab.d.ts +8 -1
  60. package/dist/Tab.js +13 -0
  61. package/dist/Tab.js.map +1 -1
  62. package/dist/TabContainer.d.ts +6 -3
  63. package/dist/TabContainer.js +15 -10
  64. package/dist/TabContainer.js.map +1 -1
  65. package/dist/Table.d.ts +1 -0
  66. package/dist/Table.js +25 -10
  67. package/dist/Table.js.map +1 -1
  68. package/dist/TableCustomAnnouncement.d.ts +1 -0
  69. package/dist/TableCustomAnnouncement.js +17 -2
  70. package/dist/TableCustomAnnouncement.js.map +1 -1
  71. package/dist/TableGroupRow.d.ts +60 -0
  72. package/dist/TableGroupRow.js +114 -0
  73. package/dist/TableGroupRow.js.map +1 -0
  74. package/dist/TableGroupRowTemplate.d.ts +2 -0
  75. package/dist/TableGroupRowTemplate.js +7 -0
  76. package/dist/TableGroupRowTemplate.js.map +1 -0
  77. package/dist/TableRowActionBase.d.ts +1 -1
  78. package/dist/TableRowActionBase.js +1 -1
  79. package/dist/TableRowActionBase.js.map +1 -1
  80. package/dist/TableRowActionNavigation.d.ts +2 -1
  81. package/dist/TableRowActionNavigation.js +11 -1
  82. package/dist/TableRowActionNavigation.js.map +1 -1
  83. package/dist/TableRowBase.d.ts +1 -0
  84. package/dist/TableRowBase.js +3 -0
  85. package/dist/TableRowBase.js.map +1 -1
  86. package/dist/TableSelection.js +2 -2
  87. package/dist/TableSelection.js.map +1 -1
  88. package/dist/TableSelectionMulti.js +1 -1
  89. package/dist/TableSelectionMulti.js.map +1 -1
  90. package/dist/TableVirtualizer.d.ts +1 -0
  91. package/dist/TableVirtualizer.js +1 -0
  92. package/dist/TableVirtualizer.js.map +1 -1
  93. package/dist/Token.js +9 -5
  94. package/dist/Token.js.map +1 -1
  95. package/dist/Tokenizer.d.ts +1 -0
  96. package/dist/Tokenizer.js +31 -5
  97. package/dist/Tokenizer.js.map +1 -1
  98. package/dist/bundle.esm.js +3 -0
  99. package/dist/bundle.esm.js.map +1 -1
  100. package/dist/css/themes/Dialog.css +1 -1
  101. package/dist/css/themes/Form.css +1 -1
  102. package/dist/css/themes/FormItemSpan.css +1 -1
  103. package/dist/css/themes/FormLayout.css +1 -1
  104. package/dist/css/themes/Icon.css +1 -1
  105. package/dist/css/themes/ListItemBase.css +1 -1
  106. package/dist/css/themes/OptionBase.css +1 -1
  107. package/dist/css/themes/Select.css +1 -1
  108. package/dist/css/themes/SliderTooltip.css +1 -1
  109. package/dist/css/themes/Table.css +1 -1
  110. package/dist/css/themes/TableGroupRow.css +1 -0
  111. package/dist/css/themes/TableRowBase.css +1 -1
  112. package/dist/css/themes/Toolbar.css +1 -1
  113. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  114. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  115. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  116. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  117. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  118. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +6 -5
  119. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +4 -2
  121. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  122. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  123. package/dist/custom-elements-internal.json +1271 -111
  124. package/dist/custom-elements.json +591 -12
  125. package/dist/dynamic-date-range-options/DateTimeRangeTemplate.js +7 -2
  126. package/dist/dynamic-date-range-options/DateTimeRangeTemplate.js.map +1 -1
  127. package/dist/dynamic-date-range-options/FromDateTimeTemplate.js +1 -1
  128. package/dist/dynamic-date-range-options/FromDateTimeTemplate.js.map +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  153. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  154. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  177. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  178. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  180. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  181. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  182. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  183. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  184. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  185. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  186. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  187. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  188. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  189. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  190. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  191. package/dist/generated/i18n/i18n-defaults.js +6 -5
  192. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  193. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  194. package/dist/generated/themes/Dialog.css.js +1 -1
  195. package/dist/generated/themes/Dialog.css.js.map +1 -1
  196. package/dist/generated/themes/Form.css.d.ts +1 -1
  197. package/dist/generated/themes/Form.css.js +1 -1
  198. package/dist/generated/themes/Form.css.js.map +1 -1
  199. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  200. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  201. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  202. package/dist/generated/themes/FormLayout.css.d.ts +1 -1
  203. package/dist/generated/themes/FormLayout.css.js +1 -1
  204. package/dist/generated/themes/FormLayout.css.js.map +1 -1
  205. package/dist/generated/themes/Icon.css.d.ts +1 -1
  206. package/dist/generated/themes/Icon.css.js +1 -1
  207. package/dist/generated/themes/Icon.css.js.map +1 -1
  208. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  209. package/dist/generated/themes/ListItemBase.css.js +1 -1
  210. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  211. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  212. package/dist/generated/themes/OptionBase.css.js +1 -1
  213. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  214. package/dist/generated/themes/Select.css.d.ts +1 -1
  215. package/dist/generated/themes/Select.css.js +1 -1
  216. package/dist/generated/themes/Select.css.js.map +1 -1
  217. package/dist/generated/themes/SliderTooltip.css.d.ts +1 -1
  218. package/dist/generated/themes/SliderTooltip.css.js +1 -1
  219. package/dist/generated/themes/SliderTooltip.css.js.map +1 -1
  220. package/dist/generated/themes/Table.css.d.ts +1 -1
  221. package/dist/generated/themes/Table.css.js +1 -1
  222. package/dist/generated/themes/Table.css.js.map +1 -1
  223. package/dist/generated/themes/TableGroupRow.css.d.ts +2 -0
  224. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  225. package/dist/generated/themes/TableGroupRow.css.js.map +1 -0
  226. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  227. package/dist/generated/themes/TableRowBase.css.js +1 -1
  228. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  229. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  230. package/dist/generated/themes/Toolbar.css.js +1 -1
  231. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  232. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  233. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  234. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  235. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  236. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  237. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  238. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  239. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  240. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  241. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  242. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  243. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  244. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  245. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  246. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  247. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  248. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +6 -5
  249. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  250. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  251. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  252. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  253. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  254. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +4 -2
  255. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  256. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  257. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  258. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  259. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  260. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  261. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  262. package/dist/vscode.html-custom-data.json +142 -22
  263. package/dist/web-types.json +351 -40
  264. package/package-scripts.cjs +1 -0
  265. package/package.json +9 -9
  266. package/src/IconTemplate.tsx +18 -0
  267. package/src/ListItemBaseTemplate.tsx +3 -3
  268. package/src/ListItemTemplate.tsx +0 -2
  269. package/src/PanelTemplate.tsx +1 -0
  270. package/src/TableGroupRowTemplate.tsx +24 -0
  271. package/src/dynamic-date-range-options/DateTimeRangeTemplate.tsx +8 -2
  272. package/src/dynamic-date-range-options/FromDateTimeTemplate.tsx +1 -1
  273. package/src/i18n/messagebundle.properties +2 -0
  274. package/src/i18n/messagebundle_ar.properties +26 -6
  275. package/src/i18n/messagebundle_bg.properties +24 -4
  276. package/src/i18n/messagebundle_ca.properties +24 -4
  277. package/src/i18n/messagebundle_cnr.properties +24 -4
  278. package/src/i18n/messagebundle_cs.properties +25 -5
  279. package/src/i18n/messagebundle_cy.properties +24 -4
  280. package/src/i18n/messagebundle_da.properties +25 -5
  281. package/src/i18n/messagebundle_de.properties +24 -4
  282. package/src/i18n/messagebundle_el.properties +24 -4
  283. package/src/i18n/messagebundle_en.properties +24 -4
  284. package/src/i18n/messagebundle_en_GB.properties +24 -4
  285. package/src/i18n/messagebundle_en_US_sappsd.properties +24 -4
  286. package/src/i18n/messagebundle_en_US_saprigi.properties +22 -4
  287. package/src/i18n/messagebundle_en_US_saptrc.properties +24 -4
  288. package/src/i18n/messagebundle_es.properties +25 -5
  289. package/src/i18n/messagebundle_es_MX.properties +24 -4
  290. package/src/i18n/messagebundle_et.properties +24 -4
  291. package/src/i18n/messagebundle_fi.properties +24 -4
  292. package/src/i18n/messagebundle_fr.properties +25 -5
  293. package/src/i18n/messagebundle_fr_CA.properties +28 -8
  294. package/src/i18n/messagebundle_hi.properties +25 -5
  295. package/src/i18n/messagebundle_hr.properties +24 -4
  296. package/src/i18n/messagebundle_hu.properties +24 -4
  297. package/src/i18n/messagebundle_id.properties +25 -5
  298. package/src/i18n/messagebundle_it.properties +25 -5
  299. package/src/i18n/messagebundle_iw.properties +24 -4
  300. package/src/i18n/messagebundle_ja.properties +24 -4
  301. package/src/i18n/messagebundle_kk.properties +24 -4
  302. package/src/i18n/messagebundle_ko.properties +27 -7
  303. package/src/i18n/messagebundle_lt.properties +24 -4
  304. package/src/i18n/messagebundle_lv.properties +24 -4
  305. package/src/i18n/messagebundle_mk.properties +25 -5
  306. package/src/i18n/messagebundle_ms.properties +24 -4
  307. package/src/i18n/messagebundle_nl.properties +24 -4
  308. package/src/i18n/messagebundle_no.properties +25 -5
  309. package/src/i18n/messagebundle_pl.properties +24 -4
  310. package/src/i18n/messagebundle_pt.properties +24 -4
  311. package/src/i18n/messagebundle_pt_PT.properties +24 -4
  312. package/src/i18n/messagebundle_ro.properties +24 -4
  313. package/src/i18n/messagebundle_ru.properties +26 -6
  314. package/src/i18n/messagebundle_sh.properties +24 -4
  315. package/src/i18n/messagebundle_sk.properties +24 -4
  316. package/src/i18n/messagebundle_sl.properties +25 -5
  317. package/src/i18n/messagebundle_sr.properties +24 -4
  318. package/src/i18n/messagebundle_sv.properties +24 -4
  319. package/src/i18n/messagebundle_th.properties +24 -4
  320. package/src/i18n/messagebundle_tr.properties +24 -4
  321. package/src/i18n/messagebundle_uk.properties +36 -16
  322. package/src/i18n/messagebundle_vi.properties +25 -5
  323. package/src/i18n/messagebundle_zh_CN.properties +26 -6
  324. package/src/i18n/messagebundle_zh_TW.properties +24 -4
  325. package/src/themes/Dialog.css +2 -2
  326. package/src/themes/FormItemSpan.css +4 -4
  327. package/src/themes/FormLayout.css +4 -4
  328. package/src/themes/Icon.css +6 -0
  329. package/src/themes/ListItemBase.css +4 -3
  330. package/src/themes/OptionBase.css +6 -0
  331. package/src/themes/Select.css +11 -0
  332. package/src/themes/SliderTooltip.css +1 -1
  333. package/src/themes/Table.css +1 -4
  334. package/src/themes/TableGroupRow.css +20 -0
  335. package/src/themes/TableRowBase.css +5 -0
  336. package/src/themes/Toolbar.css +2 -2
  337. package/src/themes/base/Select-parameters.css +2 -0
  338. package/src/themes/base/sizes-parameters.css +2 -2
  339. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +1 -1
  340. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +1 -1
  341. package/src/themes/sap_horizon/Select-parameters.css +6 -3
  342. package/src/themes/sap_horizon_dark/Select-parameters.css +6 -3
  343. package/src/themes/sap_horizon_hcb/Link-parameters.css +1 -1
  344. package/src/themes/sap_horizon_hcw/Link-parameters.css +1 -1
  345. package/src/themes/base/SliderTooltip-parameters.css +0 -3
  346. package/src/themes/sap_fiori_3/SliderTooltip-parameters.css +0 -5
  347. package/src/themes/sap_fiori_3_dark/SliderTooltip-parameters.css +0 -5
  348. package/src/themes/sap_fiori_3_hcb/SliderTooltip-parameters.css +0 -5
  349. package/src/themes/sap_fiori_3_hcw/SliderTooltip-parameters.css +0 -5
  350. package/src/themes/sap_horizon_dark/SliderTooltip-parameters.css +0 -1
  351. package/src/themes/sap_horizon_hcb/SliderTooltip-parameters.css +0 -1
  352. package/src/themes/sap_horizon_hcw/SliderTooltip-parameters.css +0 -1
@@ -1,4 +1,5 @@
1
1
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
2
+ import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
2
3
  import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
3
4
  import "@ui5/webcomponents-icons/dist/date-time.js";
4
5
  import DateFormat from "@ui5/webcomponents-localization/dist/DateFormat.js";
@@ -186,17 +187,15 @@ declare class DateTimePicker extends DatePicker implements IFormInputElement {
186
187
  * @override
187
188
  */
188
189
  _updateValueAndFireEvents(value: string, normalizeValue: boolean, events: Array<"change" | "value-changed" | "input">, updateValue?: boolean): void;
189
- /**
190
- * Checks if the provided value is valid and within valid range.
191
- * @override
192
- * @param value
193
- */
194
- _checkValueValidity(value: string): boolean;
195
190
  getSelectedDateTime(): Date;
196
191
  getFormat(): import("sap/ui/core/format/DateFormat").default;
197
192
  getDisplayFormat(): import("sap/ui/core/format/DateFormat").default;
198
193
  getValueFormat(): import("sap/ui/core/format/DateFormat").default;
199
194
  getISOFormat(): DateFormat;
195
+ /**
196
+ * @override
197
+ */
198
+ _getCalendarDateFromString(value: string): CalendarDate | undefined;
200
199
  /**
201
200
  * @override
202
201
  */
@@ -345,17 +345,6 @@ let DateTimePicker = DateTimePicker_1 = class DateTimePicker extends DatePicker
345
345
  this._lastValidValue = this.value;
346
346
  }
347
347
  }
348
- /**
349
- * Checks if the provided value is valid and within valid range.
350
- * @override
351
- * @param value
352
- */
353
- _checkValueValidity(value) {
354
- if (value === "") {
355
- return true;
356
- }
357
- return this.isValidValue(value);
358
- }
359
348
  getSelectedDateTime() {
360
349
  const selectedDate = this.getValueFormat().parse(this._calendarSelectedDates[0]);
361
350
  const selectedTime = this.getValueFormat().parse(this._timeSelectionValue);
@@ -418,6 +407,15 @@ let DateTimePicker = DateTimePicker_1 = class DateTimePicker extends DatePicker
418
407
  }
419
408
  return this._isoFormatInstance;
420
409
  }
410
+ /**
411
+ * @override
412
+ */
413
+ _getCalendarDateFromString(value) {
414
+ const jsDate = this.getValueFormat().parse(value);
415
+ if (jsDate) {
416
+ return CalendarDate.fromTimestamp(jsDate.getTime(), this._primaryCalendarType);
417
+ }
418
+ }
421
419
  /**
422
420
  * @override
423
421
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimePicker.js","sourceRoot":"","sources":["../src/DateTimePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport \"@ui5/webcomponents-icons/dist/date-time.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport type { SegmentedButtonSelectionChangeEventDetail } from \"./SegmentedButton.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\nimport DatePicker from \"./DatePicker.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type {\n\tDatePickerChangeEventDetail as DateTimePickerChangeEventDetail,\n\tDatePickerInputEventDetail as DateTimePickerInputEventDetail,\n} from \"./DatePicker.js\";\nimport type { TimeSelectionChangeEventDetail } from \"./TimePickerInternals.js\";\n\n// i18n texts\nimport {\n\tTIMEPICKER_SUBMIT_BUTTON,\n\tTIMEPICKER_CANCEL_BUTTON,\n\tDATETIME_DESCRIPTION,\n\tDATETIME_PICKER_DATE_BUTTON,\n\tDATETIME_PICKER_TIME_BUTTON,\n\tDATETIMEPICKER_POPOVER_ACCESSIBLE_NAME,\n\tDATETIME_VALUE_MISSING,\n\tDATETIME_PATTERN_MISMATCH,\n\tDATETIME_RANGEUNDERFLOW,\n\tDATETIME_RANGEOVERFLOW,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DateTimePickerTemplate from \"./DateTimePickerTemplate.js\";\n\n// Styles\nimport DateTimePickerCss from \"./generated/themes/DateTimePicker.css.js\";\nimport DateTimePickerPopoverCss from \"./generated/themes/DateTimePickerPopover.css.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport type TimeSelectionClocks from \"./TimeSelectionClocks.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\n\nconst PHONE_MODE_BREAKPOINT = 640; // px\n\ntype PreviewValues = {\n\ttimeSelectionValue?: string,\n\tcalendarTimestamp?: number,\n\tcalendarValue?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `DateTimePicker` component alows users to select both date (day, month and year) and time (hours, minutes and seconds)\n * and for the purpose it consists of input field and Date/Time picker.\n *\n * ### Usage\n *\n * Use the `DateTimePicker` if you need a combined date and time input component.\n * Don't use it if you want to use either date, or time value.\n * In this case, use the `DatePicker` or the `TimePicker` components instead.\n *\n * The user can set date/time by:\n *\n * - using the calendar and the time selectors\n * - typing in the input field\n *\n * Programmatically, to set date/time for the `DateTimePicker`, use the `value` property\n *\n * ### Formatting\n *\n * The value entered by typing into the input field must fit to the used date/time format.\n *\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see [UTS #35: Unicode Locale Data Markup Language](https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n *\n * **Example:** the following format `dd/MM/yyyy, hh:mm:ss aa`\n * corresponds the `13/04/2020, 03:16:16 AM` value.\n *\n * The small 'h' defines \"12\" hours format and the \"aa\" symbols - \"AM/PM\" time periods.\n *\n * **Example:** the following format `dd/MM/yyyy, HH:mm:ss`\n * corresponds the `13/04/2020, 15:16:16` value.\n *\n * The capital 'H' indicates \"24\" hours format.\n *\n * **Note:** If the `formatPattern` does NOT include time,\n * the `DateTimePicker` will fallback to the default time format according to the locale.\n *\n * **Note:** If no placeholder is set to the `DateTimePicker`,\n * the current `formatPattern` is displayed as a placeholder.\n * If another placeholder is needed, it must be set or in case no placeholder is needed - it can be set to an empty string.\n *\n * **Note:** If the user input does NOT match the `formatPattern`,\n * the `DateTimePicker` makes an attempt to parse it based on the\n * locale settings.\n *\n * ### Responsive behavior\n *\n * The `DateTimePicker` is responsive and fully adapts to all devices.\n * For larger screens, such as tablet or desktop, it is displayed as a popover, while\n * on phone devices, it is displayed full screen.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DateTimePicker.js\";`\n * @constructor\n * @extends DatePicker\n * @since 1.0.0-rc.7\n * @public\n */\n@customElement({\n\ttag: \"ui5-datetime-picker\",\n\ttemplate: DateTimePickerTemplate,\n\tstyles: [\n\t\tDatePicker.styles,\n\t\tDateTimePickerCss,\n\t\tDateTimePickerPopoverCss,\n\t],\n})\nclass DateTimePicker extends DatePicker implements IFormInputElement {\n\t/**\n\t * Defines the visibility of the time view in `phoneMode`.\n\t * For more information, see the `phoneMode` property.\n\t *\n\t * **Note:** The date view would be displayed by default.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_showTimeView = false\n\n\t/**\n\t * Defines if the `DateTimePicker` should be displayed in phone mode.\n\t * The phone mode turns on when the component is used on small screens or phone devices.\n\t * In phone mode the user can see either the calendar view, or the time view\n\t * and can switch between the views via toggle buttons.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_phoneMode = false;\n\n\t/**\n\t * Selected, but not yet confirmed date/time\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_previewValues: PreviewValues = {};\n\n\t/**\n\t * Stores the last valid value to preserve time when entering invalid values\n\t * @private\n\t */\n\t_lastValidValue = \"\";\n\n\t@query(\"[ui5-time-selection-clocks]\")\n\t_clocks!: TimeSelectionClocks;\n\n\t_handleResizeBound: ResizeObserverCallback;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tonResponsivePopoverAfterClose() {\n\t\tsuper.onResponsivePopoverAfterClose();\n\t\tthis._showTimeView = false;\n\t\tthis._previewValues = {};\n\t}\n\n\t/**\n\t * LIFECYCLE METHODS\n\t */\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(document.body, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(document.body, this._handleResizeBound);\n\t}\n\n\t/**\n\t * @override\n\t * @private\n\t */\n\t_togglePicker() {\n\t\tsuper._togglePicker();\n\n\t\tif (this.open) {\n\t\t\tlet timeSelectionValue = this.value;\n\n\t\t\t// If current value is invalid, use the last valid value for time selection\n\t\t\tif (!timeSelectionValue || !this.isValidValue(timeSelectionValue)) {\n\t\t\t\ttimeSelectionValue = this._lastValidValue || this.getValueFormat().format(UI5Date.getInstance());\n\t\t\t}\n\n\t\t\tthis._previewValues = {\n\t\t\t\t...this._previewValues,\n\t\t\t\ttimeSelectionValue,\n\t\t\t};\n\t\t}\n\t}\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.valueMissing) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_VALUE_MISSING, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.patternMismatch) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_PATTERN_MISMATCH, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.rangeUnderflow) {\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_RANGEUNDERFLOW, this.minDate);\n\t\t}\n\t\tif (validity.rangeOverflow) {\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_RANGEOVERFLOW, this.maxDate);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tvalueMissing: this.required && !this.value,\n\t\t\tpatternMismatch: !this.isValidValue(this.value),\n\t\t\trangeUnderflow: !this.isValidMin(this.value),\n\t\t\trangeOverflow: !this.isValidMax(this.value),\n\t\t};\n\t}\n\n\tget _formatPattern() {\n\t\tconst formatPattern = this.formatPattern || this.valueFormat || \"medium\";\n\t\tconst hasHours = !!(formatPattern || \"\").match(/H/i);\n\t\tconst fallback = !formatPattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getCombinedDateTimePattern(\"medium\", \"medium\", this._primaryCalendarType) : (formatPattern || \"\");\n\t}\n\n\tget _calendarTimestamp() {\n\t\treturn this._previewValues.calendarTimestamp ? this._previewValues.calendarTimestamp : super._calendarTimestamp;\n\t}\n\n\tget _calendarSelectedDates() {\n\t\treturn this._previewValues.calendarValue ? [this._previewValues.calendarValue] : super._calendarSelectedDates;\n\t}\n\n\tget _timeSelectionValue() {\n\t\treturn this._previewValues.timeSelectionValue ? this._previewValues.timeSelectionValue : this.value;\n\t}\n\n\tget openIconName() {\n\t\treturn \"date-time\";\n\t}\n\n\tget btnOKLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(TIMEPICKER_SUBMIT_BUTTON);\n\t}\n\n\tget btnCancelLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(TIMEPICKER_CANCEL_BUTTON);\n\t}\n\n\tget btnDateLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_PICKER_DATE_BUTTON);\n\t}\n\n\tget btnTimeLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_PICKER_TIME_BUTTON);\n\t}\n\n\tget showFooter() {\n\t\treturn true;\n\t}\n\n\tget showDateView() {\n\t\treturn this._phoneView ? !this._showTimeView : true;\n\t}\n\n\tget showTimeView() {\n\t\treturn this._phoneView ? this._showTimeView : true;\n\t}\n\n\tget _phoneView() {\n\t\treturn isPhone() || this._phoneMode;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget roleDescription() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_DESCRIPTION);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget pickerAccessibleName() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIMEPICKER_POPOVER_ACCESSIBLE_NAME, this.ariaLabelText);\n\t}\n\n\t/**\n\t * Defines whether the dialog on mobile should have header\n\t * @private\n\t */\n\tget _shouldHideHeader() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * EVENT HANDLERS\n\t */\n\n\t/**\n\t * @override\n\t */\n\tasync onSelectedDatesChange(e: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\te.preventDefault();\n\n\t\t// Try to get the current time value from the time picker,\n\t\t// but fallback to last valid value if current picker time is empty or invalid\n\t\tlet timeValue = this._clocks?.value || \"\";\n\t\tif (!timeValue || !this.isValidValue(timeValue)) {\n\t\t\ttimeValue = this._lastValidValue || this.getValueFormat().format(UI5Date.getInstance());\n\t\t}\n\n\t\tthis._previewValues = {\n\t\t\t...this._previewValues,\n\t\t\tcalendarTimestamp: e.detail.timestamp,\n\t\t\tcalendarValue: e.detail.selectedValues[0],\n\t\t\ttimeSelectionValue: timeValue,\n\t\t};\n\t\tthis._showTimeView = true;\n\n\t\tif (this.showDateView) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait renderFinished();\n\t\tthis._clocks.focus();\n\t}\n\n\tonTimeSelectionChange(e: CustomEvent<TimeSelectionChangeEventDetail>) {\n\t\tthis._previewValues = {\n\t\t\t...this._previewValues,\n\t\t\ttimeSelectionValue: e.detail.value,\n\t\t};\n\t}\n\n\t/**\n\t * Handles document resize to switch between `phoneMode` and normal appearance.\n\t */\n\t_handleResize() {\n\t\tconst documentWidth = document.body.offsetWidth;\n\t\tconst toPhoneMode = documentWidth <= PHONE_MODE_BREAKPOINT;\n\t\tconst modeChange = (toPhoneMode && !this._phoneMode) || (!toPhoneMode && this._phoneMode); // XOR not allowed by lint\n\n\t\tif (modeChange) {\n\t\t\tthis._phoneMode = toPhoneMode;\n\t\t}\n\t}\n\n\tget _submitDisabled() {\n\t\treturn !this._calendarSelectedDates || !this._calendarSelectedDates.length;\n\t}\n\n\t/**\n\t * Handles clicking on the `submit` button, within the picker`s footer.\n\t */\n\t_submitClick() {\n\t\tconst selectedDate = this.getSelectedDateTime();\n\n\t\tconst value = this.getValueFormat().format(selectedDate);\n\t\tif (this.value !== value) {\n\t\t\tthis._updateValueAndFireEvents(value, true, [\"change\", \"value-changed\"]);\n\t\t}\n\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * Handles clicking on the `cancel` button, within the picker`s footer,\n\t * that would disregard the user selection.\n\t */\n\t_cancelClick() {\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * Handles the date/time switch available in `phoneMode` to switch\n\t * between the date and time views.\n\t * @param e\n\t */\n\t_dateTimeSwitchChange(e: CustomEvent<SegmentedButtonSelectionChangeEventDetail>) { // Note: fix when SegmentedButton is implemented in TS\n\t\tconst selectedItem = e.detail.selectedItems[0];\n\t\tthis._showTimeView = selectedItem.getAttribute(\"data-ui5-key\") === \"Time\";\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_modifyDateValue(amount: number, unit: string, preserveDate: boolean) {\n\t\tif (!this.dateValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modifiedDate = modifyDateBy(CalendarDate.fromLocalJSDate(this.dateValue), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\tconst modifiedLocalDate = modifiedDate.toLocalJSDate();\n\t\tmodifiedLocalDate.setHours(this.dateValue.getHours());\n\t\tmodifiedLocalDate.setMinutes(this.dateValue.getMinutes());\n\t\tmodifiedLocalDate.setSeconds(this.dateValue.getSeconds());\n\n\t\tconst newValue = this.formatValue(modifiedLocalDate);\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_updateValueAndFireEvents(value: string, normalizeValue: boolean, events: Array<\"change\" | \"value-changed\" | \"input\">, updateValue = true) {\n\t\tsuper._updateValueAndFireEvents(value, normalizeValue, events, updateValue);\n\n\t\t// Always store the current value if it's valid (handles both updates and initial values)\n\t\tif (this.value && this.isValidValue(this.value)) {\n\t\t\tthis._lastValidValue = this.value;\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the provided value is valid and within valid range.\n\t * @override\n\t * @param value\n\t */\n\t_checkValueValidity(value: string): boolean {\n\t\tif (value === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.isValidValue(value);\n\t}\n\n\tgetSelectedDateTime() {\n\t\tconst selectedDate = this.getValueFormat().parse(this._calendarSelectedDates[0]) as Date;\n\t\tconst selectedTime = this.getValueFormat().parse(this._timeSelectionValue) as Date;\n\t\tif (selectedTime) {\n\t\t\tselectedDate.setHours(selectedTime.getHours());\n\t\t\tselectedDate.setMinutes(selectedTime.getMinutes());\n\t\t\tselectedDate.setSeconds(selectedTime.getSeconds());\n\t\t}\n\n\t\treturn selectedDate;\n\t}\n\n\tgetFormat() {\n\t\treturn this._isPattern\n\t\t\t? DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t})\n\t\t\t: DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t}\n\n\tgetDisplayFormat() {\n\t\treturn this._isDisplayFormatPattern\n\t\t\t? DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: this._displayFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t})\n\t\t\t: DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tstyle: this._displayFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t}\n\n\tgetValueFormat() {\n\t\tif (!this._valueFormat) {\n\t\t\treturn this.getISOFormat();\n\t\t}\n\n\t\treturn this._isValueFormatPattern\n\t\t\t? DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: this._valueFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t})\n\t\t\t: DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tstyle: this._valueFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t}\n\n\tgetISOFormat() {\n\t\tif (!this._isoFormatInstance) {\n\t\t\tthis._isoFormatInstance = DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: \"YYYY-MM-dd hh:mm:ss\",\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t\t}\n\t\treturn this._isoFormatInstance;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _calendarPickersMode() {\n\t\treturn CalendarPickersMode.DAY_MONTH_YEAR;\n\t}\n}\n\nDateTimePicker.define();\n\nexport default DateTimePicker;\nexport type {\n\tDateTimePickerChangeEventDetail,\n\tDateTimePickerInputEventDetail,\n};\n"]}
1
+ {"version":3,"file":"DateTimePicker.js","sourceRoot":"","sources":["../src/DateTimePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport \"@ui5/webcomponents-icons/dist/date-time.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport type { SegmentedButtonSelectionChangeEventDetail } from \"./SegmentedButton.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\nimport DatePicker from \"./DatePicker.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type {\n\tDatePickerChangeEventDetail as DateTimePickerChangeEventDetail,\n\tDatePickerInputEventDetail as DateTimePickerInputEventDetail,\n} from \"./DatePicker.js\";\nimport type { TimeSelectionChangeEventDetail } from \"./TimePickerInternals.js\";\n\n// i18n texts\nimport {\n\tTIMEPICKER_SUBMIT_BUTTON,\n\tTIMEPICKER_CANCEL_BUTTON,\n\tDATETIME_DESCRIPTION,\n\tDATETIME_PICKER_DATE_BUTTON,\n\tDATETIME_PICKER_TIME_BUTTON,\n\tDATETIMEPICKER_POPOVER_ACCESSIBLE_NAME,\n\tDATETIME_VALUE_MISSING,\n\tDATETIME_PATTERN_MISMATCH,\n\tDATETIME_RANGEUNDERFLOW,\n\tDATETIME_RANGEOVERFLOW,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DateTimePickerTemplate from \"./DateTimePickerTemplate.js\";\n\n// Styles\nimport DateTimePickerCss from \"./generated/themes/DateTimePicker.css.js\";\nimport DateTimePickerPopoverCss from \"./generated/themes/DateTimePickerPopover.css.js\";\nimport CalendarPickersMode from \"./types/CalendarPickersMode.js\";\nimport type TimeSelectionClocks from \"./TimeSelectionClocks.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\n\nconst PHONE_MODE_BREAKPOINT = 640; // px\n\ntype PreviewValues = {\n\ttimeSelectionValue?: string,\n\tcalendarTimestamp?: number,\n\tcalendarValue?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `DateTimePicker` component alows users to select both date (day, month and year) and time (hours, minutes and seconds)\n * and for the purpose it consists of input field and Date/Time picker.\n *\n * ### Usage\n *\n * Use the `DateTimePicker` if you need a combined date and time input component.\n * Don't use it if you want to use either date, or time value.\n * In this case, use the `DatePicker` or the `TimePicker` components instead.\n *\n * The user can set date/time by:\n *\n * - using the calendar and the time selectors\n * - typing in the input field\n *\n * Programmatically, to set date/time for the `DateTimePicker`, use the `value` property\n *\n * ### Formatting\n *\n * The value entered by typing into the input field must fit to the used date/time format.\n *\n * Supported format options are pattern-based on Unicode LDML Date Format notation.\n * For more information, see [UTS #35: Unicode Locale Data Markup Language](https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n *\n * **Example:** the following format `dd/MM/yyyy, hh:mm:ss aa`\n * corresponds the `13/04/2020, 03:16:16 AM` value.\n *\n * The small 'h' defines \"12\" hours format and the \"aa\" symbols - \"AM/PM\" time periods.\n *\n * **Example:** the following format `dd/MM/yyyy, HH:mm:ss`\n * corresponds the `13/04/2020, 15:16:16` value.\n *\n * The capital 'H' indicates \"24\" hours format.\n *\n * **Note:** If the `formatPattern` does NOT include time,\n * the `DateTimePicker` will fallback to the default time format according to the locale.\n *\n * **Note:** If no placeholder is set to the `DateTimePicker`,\n * the current `formatPattern` is displayed as a placeholder.\n * If another placeholder is needed, it must be set or in case no placeholder is needed - it can be set to an empty string.\n *\n * **Note:** If the user input does NOT match the `formatPattern`,\n * the `DateTimePicker` makes an attempt to parse it based on the\n * locale settings.\n *\n * ### Responsive behavior\n *\n * The `DateTimePicker` is responsive and fully adapts to all devices.\n * For larger screens, such as tablet or desktop, it is displayed as a popover, while\n * on phone devices, it is displayed full screen.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DateTimePicker.js\";`\n * @constructor\n * @extends DatePicker\n * @since 1.0.0-rc.7\n * @public\n */\n@customElement({\n\ttag: \"ui5-datetime-picker\",\n\ttemplate: DateTimePickerTemplate,\n\tstyles: [\n\t\tDatePicker.styles,\n\t\tDateTimePickerCss,\n\t\tDateTimePickerPopoverCss,\n\t],\n})\nclass DateTimePicker extends DatePicker implements IFormInputElement {\n\t/**\n\t * Defines the visibility of the time view in `phoneMode`.\n\t * For more information, see the `phoneMode` property.\n\t *\n\t * **Note:** The date view would be displayed by default.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_showTimeView = false\n\n\t/**\n\t * Defines if the `DateTimePicker` should be displayed in phone mode.\n\t * The phone mode turns on when the component is used on small screens or phone devices.\n\t * In phone mode the user can see either the calendar view, or the time view\n\t * and can switch between the views via toggle buttons.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_phoneMode = false;\n\n\t/**\n\t * Selected, but not yet confirmed date/time\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_previewValues: PreviewValues = {};\n\n\t/**\n\t * Stores the last valid value to preserve time when entering invalid values\n\t * @private\n\t */\n\t_lastValidValue = \"\";\n\n\t@query(\"[ui5-time-selection-clocks]\")\n\t_clocks!: TimeSelectionClocks;\n\n\t_handleResizeBound: ResizeObserverCallback;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tonResponsivePopoverAfterClose() {\n\t\tsuper.onResponsivePopoverAfterClose();\n\t\tthis._showTimeView = false;\n\t\tthis._previewValues = {};\n\t}\n\n\t/**\n\t * LIFECYCLE METHODS\n\t */\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(document.body, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(document.body, this._handleResizeBound);\n\t}\n\n\t/**\n\t * @override\n\t * @private\n\t */\n\t_togglePicker() {\n\t\tsuper._togglePicker();\n\n\t\tif (this.open) {\n\t\t\tlet timeSelectionValue = this.value;\n\n\t\t\t// If current value is invalid, use the last valid value for time selection\n\t\t\tif (!timeSelectionValue || !this.isValidValue(timeSelectionValue)) {\n\t\t\t\ttimeSelectionValue = this._lastValidValue || this.getValueFormat().format(UI5Date.getInstance());\n\t\t\t}\n\n\t\t\tthis._previewValues = {\n\t\t\t\t...this._previewValues,\n\t\t\t\ttimeSelectionValue,\n\t\t\t};\n\t\t}\n\t}\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.valueMissing) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_VALUE_MISSING, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.patternMismatch) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_PATTERN_MISMATCH, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.rangeUnderflow) {\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_RANGEUNDERFLOW, this.minDate);\n\t\t}\n\t\tif (validity.rangeOverflow) {\n\t\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_RANGEOVERFLOW, this.maxDate);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tvalueMissing: this.required && !this.value,\n\t\t\tpatternMismatch: !this.isValidValue(this.value),\n\t\t\trangeUnderflow: !this.isValidMin(this.value),\n\t\t\trangeOverflow: !this.isValidMax(this.value),\n\t\t};\n\t}\n\n\tget _formatPattern() {\n\t\tconst formatPattern = this.formatPattern || this.valueFormat || \"medium\";\n\t\tconst hasHours = !!(formatPattern || \"\").match(/H/i);\n\t\tconst fallback = !formatPattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getCombinedDateTimePattern(\"medium\", \"medium\", this._primaryCalendarType) : (formatPattern || \"\");\n\t}\n\n\tget _calendarTimestamp() {\n\t\treturn this._previewValues.calendarTimestamp ? this._previewValues.calendarTimestamp : super._calendarTimestamp;\n\t}\n\n\tget _calendarSelectedDates() {\n\t\treturn this._previewValues.calendarValue ? [this._previewValues.calendarValue] : super._calendarSelectedDates;\n\t}\n\n\tget _timeSelectionValue() {\n\t\treturn this._previewValues.timeSelectionValue ? this._previewValues.timeSelectionValue : this.value;\n\t}\n\n\tget openIconName() {\n\t\treturn \"date-time\";\n\t}\n\n\tget btnOKLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(TIMEPICKER_SUBMIT_BUTTON);\n\t}\n\n\tget btnCancelLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(TIMEPICKER_CANCEL_BUTTON);\n\t}\n\n\tget btnDateLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_PICKER_DATE_BUTTON);\n\t}\n\n\tget btnTimeLabel() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_PICKER_TIME_BUTTON);\n\t}\n\n\tget showFooter() {\n\t\treturn true;\n\t}\n\n\tget showDateView() {\n\t\treturn this._phoneView ? !this._showTimeView : true;\n\t}\n\n\tget showTimeView() {\n\t\treturn this._phoneView ? this._showTimeView : true;\n\t}\n\n\tget _phoneView() {\n\t\treturn isPhone() || this._phoneMode;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget roleDescription() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIME_DESCRIPTION);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget pickerAccessibleName() {\n\t\treturn DateTimePicker.i18nBundle.getText(DATETIMEPICKER_POPOVER_ACCESSIBLE_NAME, this.ariaLabelText);\n\t}\n\n\t/**\n\t * Defines whether the dialog on mobile should have header\n\t * @private\n\t */\n\tget _shouldHideHeader() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * EVENT HANDLERS\n\t */\n\n\t/**\n\t * @override\n\t */\n\tasync onSelectedDatesChange(e: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\te.preventDefault();\n\n\t\t// Try to get the current time value from the time picker,\n\t\t// but fallback to last valid value if current picker time is empty or invalid\n\t\tlet timeValue = this._clocks?.value || \"\";\n\t\tif (!timeValue || !this.isValidValue(timeValue)) {\n\t\t\ttimeValue = this._lastValidValue || this.getValueFormat().format(UI5Date.getInstance());\n\t\t}\n\n\t\tthis._previewValues = {\n\t\t\t...this._previewValues,\n\t\t\tcalendarTimestamp: e.detail.timestamp,\n\t\t\tcalendarValue: e.detail.selectedValues[0],\n\t\t\ttimeSelectionValue: timeValue,\n\t\t};\n\t\tthis._showTimeView = true;\n\n\t\tif (this.showDateView) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait renderFinished();\n\t\tthis._clocks.focus();\n\t}\n\n\tonTimeSelectionChange(e: CustomEvent<TimeSelectionChangeEventDetail>) {\n\t\tthis._previewValues = {\n\t\t\t...this._previewValues,\n\t\t\ttimeSelectionValue: e.detail.value,\n\t\t};\n\t}\n\n\t/**\n\t * Handles document resize to switch between `phoneMode` and normal appearance.\n\t */\n\t_handleResize() {\n\t\tconst documentWidth = document.body.offsetWidth;\n\t\tconst toPhoneMode = documentWidth <= PHONE_MODE_BREAKPOINT;\n\t\tconst modeChange = (toPhoneMode && !this._phoneMode) || (!toPhoneMode && this._phoneMode); // XOR not allowed by lint\n\n\t\tif (modeChange) {\n\t\t\tthis._phoneMode = toPhoneMode;\n\t\t}\n\t}\n\n\tget _submitDisabled() {\n\t\treturn !this._calendarSelectedDates || !this._calendarSelectedDates.length;\n\t}\n\n\t/**\n\t * Handles clicking on the `submit` button, within the picker`s footer.\n\t */\n\t_submitClick() {\n\t\tconst selectedDate = this.getSelectedDateTime();\n\n\t\tconst value = this.getValueFormat().format(selectedDate);\n\t\tif (this.value !== value) {\n\t\t\tthis._updateValueAndFireEvents(value, true, [\"change\", \"value-changed\"]);\n\t\t}\n\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * Handles clicking on the `cancel` button, within the picker`s footer,\n\t * that would disregard the user selection.\n\t */\n\t_cancelClick() {\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * Handles the date/time switch available in `phoneMode` to switch\n\t * between the date and time views.\n\t * @param e\n\t */\n\t_dateTimeSwitchChange(e: CustomEvent<SegmentedButtonSelectionChangeEventDetail>) { // Note: fix when SegmentedButton is implemented in TS\n\t\tconst selectedItem = e.detail.selectedItems[0];\n\t\tthis._showTimeView = selectedItem.getAttribute(\"data-ui5-key\") === \"Time\";\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_modifyDateValue(amount: number, unit: string, preserveDate: boolean) {\n\t\tif (!this.dateValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modifiedDate = modifyDateBy(CalendarDate.fromLocalJSDate(this.dateValue), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\tconst modifiedLocalDate = modifiedDate.toLocalJSDate();\n\t\tmodifiedLocalDate.setHours(this.dateValue.getHours());\n\t\tmodifiedLocalDate.setMinutes(this.dateValue.getMinutes());\n\t\tmodifiedLocalDate.setSeconds(this.dateValue.getSeconds());\n\n\t\tconst newValue = this.formatValue(modifiedLocalDate);\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_updateValueAndFireEvents(value: string, normalizeValue: boolean, events: Array<\"change\" | \"value-changed\" | \"input\">, updateValue = true) {\n\t\tsuper._updateValueAndFireEvents(value, normalizeValue, events, updateValue);\n\n\t\t// Always store the current value if it's valid (handles both updates and initial values)\n\t\tif (this.value && this.isValidValue(this.value)) {\n\t\t\tthis._lastValidValue = this.value;\n\t\t}\n\t}\n\n\tgetSelectedDateTime() {\n\t\tconst selectedDate = this.getValueFormat().parse(this._calendarSelectedDates[0]) as Date;\n\t\tconst selectedTime = this.getValueFormat().parse(this._timeSelectionValue) as Date;\n\t\tif (selectedTime) {\n\t\t\tselectedDate.setHours(selectedTime.getHours());\n\t\t\tselectedDate.setMinutes(selectedTime.getMinutes());\n\t\t\tselectedDate.setSeconds(selectedTime.getSeconds());\n\t\t}\n\n\t\treturn selectedDate;\n\t}\n\n\tgetFormat() {\n\t\treturn this._isPattern\n\t\t\t? DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t})\n\t\t\t: DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t}\n\n\tgetDisplayFormat() {\n\t\treturn this._isDisplayFormatPattern\n\t\t\t? DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: this._displayFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t})\n\t\t\t: DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tstyle: this._displayFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t}\n\n\tgetValueFormat() {\n\t\tif (!this._valueFormat) {\n\t\t\treturn this.getISOFormat();\n\t\t}\n\n\t\treturn this._isValueFormatPattern\n\t\t\t? DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: this._valueFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t})\n\t\t\t: DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tstyle: this._valueFormat,\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t}\n\n\tgetISOFormat() {\n\t\tif (!this._isoFormatInstance) {\n\t\t\tthis._isoFormatInstance = DateFormat.getDateTimeInstance({\n\t\t\t\tstrictParsing: true,\n\t\t\t\tpattern: \"YYYY-MM-dd hh:mm:ss\",\n\t\t\t\tcalendarType: this._primaryCalendarType,\n\t\t\t});\n\t\t}\n\t\treturn this._isoFormatInstance;\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_getCalendarDateFromString(value: string) {\n\t\tconst jsDate = this.getValueFormat().parse(value) as Date;\n\t\tif (jsDate) {\n\t\t\treturn CalendarDate.fromTimestamp(jsDate.getTime(), this._primaryCalendarType);\n\t\t}\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _calendarPickersMode() {\n\t\treturn CalendarPickersMode.DAY_MONTH_YEAR;\n\t}\n}\n\nDateTimePicker.define();\n\nexport default DateTimePicker;\nexport type {\n\tDateTimePickerChangeEventDetail,\n\tDateTimePickerInputEventDetail,\n};\n"]}
@@ -231,6 +231,15 @@ declare class DayPicker extends CalendarPart implements ICalendarPicker {
231
231
  get _specialCalendarDates(): SpecialCalendarDateT[];
232
232
  get shouldHideWeekNumbers(): boolean;
233
233
  _isWeekend(oDate: CalendarDate): boolean;
234
+ /**
235
+ * Pre-computes disabled date range timestamps once before the rendering loop.
236
+ * Avoids repeated date string parsing inside the per-cell _isDateEnabled check.
237
+ * @private
238
+ */
239
+ _precomputeDisabledDates(): Array<{
240
+ startTimestamp: number;
241
+ endTimestamp: number;
242
+ }>;
234
243
  /**
235
244
  * Checks if a given date is enabled (selectable).
236
245
  * A date is considered disabled if:
@@ -238,10 +247,16 @@ declare class DayPicker extends CalendarPart implements ICalendarPicker {
238
247
  * - It matches a single disabled date
239
248
  * - It falls within a disabled date range (exclusive of start and end dates)
240
249
  * @param date - The date to check
250
+ * @param minDate - Pre-resolved min calendar date
251
+ * @param maxDate - Pre-resolved max calendar date
252
+ * @param precomputedDisabledDates - Pre-parsed disabled date range timestamps
241
253
  * @returns `true` if the date is enabled (selectable), `false` if disabled
242
254
  * @private
243
255
  */
244
- _isDateEnabled(date: CalendarDate): boolean;
256
+ _isDateEnabled(date: CalendarDate, minDate?: CalendarDate, maxDate?: CalendarDate, precomputedDisabledDates?: Array<{
257
+ startTimestamp: number;
258
+ endTimestamp: number;
259
+ }>): boolean;
245
260
  /**
246
261
  * Converts a date value string to a timestamp.
247
262
  * @param dateValue - Date string to convert
package/dist/DayPicker.js CHANGED
@@ -111,6 +111,9 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
111
111
  const tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times
112
112
  const todayDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(), this._primaryCalendarType); // current day date - calculate once
113
113
  const calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf
114
+ const minDate = this._minDate;
115
+ const maxDate = this._maxDate;
116
+ const precomputedDisabledDates = this._precomputeDisabledDates();
114
117
  const tempSecondDate = this.hasSecondaryCalendarType ? this._getSecondaryDay(tempDate) : undefined;
115
118
  let week = [];
116
119
  for (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping
@@ -128,7 +131,7 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
128
131
  const isSelectedBetween = this._isDayInsideSelectionRange(timestamp);
129
132
  const isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();
130
133
  const isWeekend = this._isWeekend(tempDate);
131
- const isDisabled = !this._isDateEnabled(tempDate);
134
+ const isDisabled = !this._isDateEnabled(tempDate, minDate, maxDate, precomputedDisabledDates);
132
135
  const isToday = tempDate.isSame(todayDate);
133
136
  const isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;
134
137
  const nonWorkingAriaLabel = (isWeekend || specialDayType === "NonWorking") && specialDayType !== "Working"
@@ -632,6 +635,17 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
632
635
  return (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)
633
636
  || (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));
634
637
  }
638
+ /**
639
+ * Pre-computes disabled date range timestamps once before the rendering loop.
640
+ * Avoids repeated date string parsing inside the per-cell _isDateEnabled check.
641
+ * @private
642
+ */
643
+ _precomputeDisabledDates() {
644
+ return this.disabledDates.map(range => ({
645
+ startTimestamp: this._getTimestampFromDateValue(range.startValue),
646
+ endTimestamp: this._getTimestampFromDateValue(range.endValue),
647
+ }));
648
+ }
635
649
  /**
636
650
  * Checks if a given date is enabled (selectable).
637
651
  * A date is considered disabled if:
@@ -639,18 +653,25 @@ let DayPicker = DayPicker_1 = class DayPicker extends CalendarPart {
639
653
  * - It matches a single disabled date
640
654
  * - It falls within a disabled date range (exclusive of start and end dates)
641
655
  * @param date - The date to check
656
+ * @param minDate - Pre-resolved min calendar date
657
+ * @param maxDate - Pre-resolved max calendar date
658
+ * @param precomputedDisabledDates - Pre-parsed disabled date range timestamps
642
659
  * @returns `true` if the date is enabled (selectable), `false` if disabled
643
660
  * @private
644
661
  */
645
- _isDateEnabled(date) {
646
- if ((this._minDate && date.isBefore(this._minDate))
647
- || (this._maxDate && date.isAfter(this._maxDate))) {
662
+ _isDateEnabled(date, minDate, maxDate, precomputedDisabledDates) {
663
+ const resolvedMin = minDate ?? this._minDate;
664
+ const resolvedMax = maxDate ?? this._maxDate;
665
+ if ((resolvedMin && date.isBefore(resolvedMin))
666
+ || (resolvedMax && date.isAfter(resolvedMax))) {
648
667
  return false;
649
668
  }
650
669
  const dateTimestamp = date.valueOf() / 1000;
651
- return !this.disabledDates.some(range => {
652
- const startTimestamp = this._getTimestampFromDateValue(range.startValue);
653
- const endTimestamp = this._getTimestampFromDateValue(range.endValue);
670
+ const disabledRanges = precomputedDisabledDates ?? this.disabledDates.map(range => ({
671
+ startTimestamp: this._getTimestampFromDateValue(range.startValue),
672
+ endTimestamp: this._getTimestampFromDateValue(range.endValue),
673
+ }));
674
+ return !disabledRanges.some(({ startTimestamp, endTimestamp }) => {
654
675
  if (endTimestamp) {
655
676
  return dateTimestamp > startTimestamp && dateTimestamp < endTimestamp;
656
677
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DayPicker.js","sourceRoot":"","sources":["../src/DayPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type LocaleData from \"@ui5/webcomponents-localization/dist/LocaleData.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceShift,\n\tisEnter,\n\tisEnterShift,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageUpAlt,\n\tisPageUpShiftCtrl,\n\tisPageDownShift,\n\tisPageDownAlt,\n\tisPageDownShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFirstDayOfWeek } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport CalendarUtils from \"@ui5/webcomponents-localization/dist/CalendarUtils.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type {\n\tDisabledDateRangeT,\n\tICalendarPicker,\n\tSpecialCalendarDateT,\n} from \"./Calendar.js\";\n\nimport {\n\tDAY_PICKER_WEEK_NUMBER_TEXT,\n\tDAY_PICKER_NON_WORKING_DAY,\n\tDAY_PICKER_TODAY,\n\tLIST_ITEM_SELECTED,\n\tDAY_PICKER_SELECTED_RANGE_START,\n\tDAY_PICKER_SELECTED_RANGE_END,\n\tDAY_PICKER_SELECTED_RANGE_BETWEEN,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DayPickerTemplate from \"./DayPickerTemplate.js\";\n\n// Styles\nimport dayPickerCSS from \"./generated/themes/DayPicker.css.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\nconst DAYS_IN_WEEK = 7;\n\ntype DayName = {\n\tname: string,\n\tclasses: string,\n\tultraShortName?: string,\n}\n\ntype Day = {\n\ttimestamp: string,\n\tday: number,\n\tfocusRef: boolean,\n\t_tabIndex: number,\n\tselected: boolean,\n\t_isSecondaryCalendarType: boolean,\n\tclasses: string,\n\ttooltip?: string,\n\tariaLabel: string,\n\tariaSelected: boolean,\n\tariaDisabled: boolean | undefined,\n\tdisabled: boolean,\n\tsecondDay?: number,\n\tweekNum?: number,\n\tisHidden?: boolean,\n\ttype?: string,\n\tparts: string,\n}\n\ntype WeekNumber = {\n\tweekNum: number,\n\tisHidden: boolean,\n}\n\ntype Week = Array<Day | WeekNumber>;\n\ntype DayPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp?: number,\n}\n\ntype DayPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Represents the days inside a single month view of the `ui5-calendar` component.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-daypicker\",\n\tstyles: dayPickerCSS,\n\ttemplate: DayPickerTemplate,\n})\n/**\n * Fired when the selected date(s) change\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes (user navigates with the keyboard) or clicks with the mouse\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass DayPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": DayPickerChangeEventDetail,\n\t\t\"navigate\": DayPickerNavigateEventDetail,\n\t};\n\n\t/**\n\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t * @default []\n\t */\n\t@property({ type: Array, noAttribute: true })\n\tselectedDates: Array<number> = [];\n\n\t/**\n\t * Defines the type of selection used in the day picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables a single date selection.(default value)\n\t * - `CalendarSelectionMode.Range` - enables selection of a date range.\n\t * - `CalendarSelectionMode.Multiple` - enables selection of multiple dates.\n\t * @default \"Single\"\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\t_weeks: Array<Week> = [];\n\n\t@property({ type: Array, noAttribute: true })\n\t_dayNames: Array<DayName> = [];\n\n\t/**\n\t * When set, the component will skip all work in onBeforeRendering and will not automatically set the focus on itself\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * 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\n\t * @private\n\t */\n\t @property({ type: Number, noAttribute: true })\n\t_secondTimestamp?: number;\n\n\t/**\n\t * Array of special calendar dates (if such are passed) from the calendar.\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\tspecialCalendarDates: Array<SpecialCalendarDateT> = [];\n\n\t/**\n\t * Array of disabled date ranges that cannot be selected.\n\t * Each range can have a start and/or end date value.\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\tdisabledDates: Array<DisabledDateRangeT> = [];\n\n\t@query(\"[data-sap-focus-ref]\")\n\t_focusableDay!: HTMLElement;\n\n\t_autoFocus?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._buildWeeks(localeData);\n\t\tthis._buildDayNames(localeData);\n\t}\n\n\t/**\n\t * Builds the \"_weeks\" object that represents the month.\n\t * @param localeData\n\t * @private\n\t */\n\t_buildWeeks(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tthis._weeks = [];\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\t\tconst specialCalendarDates = this._specialCalendarDates;\n\t\tconst monthsNames = localeData.getMonths(\"wide\", this._primaryCalendarType);\n\t\tconst secondaryMonthsNames = this.hasSecondaryCalendarType ? localeData.getMonths(\"wide\", this.secondaryCalendarType) : [];\n\t\tconst nonWorkingDayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_NON_WORKING_DAY);\n\t\tconst todayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_TODAY);\n\t\tconst tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times\n\t\tconst todayDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(), this._primaryCalendarType); // current day date - calculate once\n\t\tconst calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf\n\n\t\tconst tempSecondDate = this.hasSecondaryCalendarType ? this._getSecondaryDay(tempDate) : undefined;\n\n\t\tlet week: Week = [];\n\t\tfor (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping\n\t\t\tconst timestamp = tempDate.valueOf() / 1000; // no need to round because CalendarDate does it\n\n\t\t\tlet dayOfTheWeek = tempDate.getDay() - firstDayOfWeek;\n\t\t\tif (dayOfTheWeek < 0) {\n\t\t\t\tdayOfTheWeek += DAYS_IN_WEEK;\n\t\t\t}\n\n\t\t\tconst specialCalendarDate = specialCalendarDates.find(specialDate => specialDate.specialDateTimestamp === timestamp);\n\t\t\tconst specialDayType = specialCalendarDate ? specialCalendarDate.type : \"\";\n\t\t\tconst specialDayTooltip = specialCalendarDate ? specialCalendarDate.tooltip : \"\";\n\t\t\tconst unnamedCalendarTypeLabel = specialDayTooltip && !this._isDefaultCalendarLegendType(specialDayType) ? specialDayTooltip : \"\";\n\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();\n\t\t\tconst isSelected = this._isDaySelected(timestamp);\n\t\t\tconst isSelectedBetween = this._isDayInsideSelectionRange(timestamp);\n\t\t\tconst isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();\n\t\t\tconst isWeekend = this._isWeekend(tempDate);\n\t\t\tconst isDisabled = !this._isDateEnabled(tempDate);\n\t\t\tconst isToday = tempDate.isSame(todayDate);\n\t\t\tconst isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;\n\n\t\t\tconst nonWorkingAriaLabel = (isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\"\n\t\t\t\t? `${nonWorkingDayLabel} `\n\t\t\t\t: \"\";\n\t\t\tconst todayAriaLabel = isToday ? `${todayLabel} ` : \"\";\n\n\t\t\tconst tempSecondDateNumber = tempSecondDate ? tempSecondDate.getDate() : \"\";\n\t\t\tconst tempSecondYearNumber = tempSecondDate ? tempSecondDate.getYear() : \"\";\n\t\t\tconst secondaryMonthsNamesString = secondaryMonthsNames.length > 0 ? secondaryMonthsNames[tempSecondDate!.getMonth()] : \"\";\n\n\t\t\tconst tooltip = `${todayAriaLabel}${nonWorkingAriaLabel}${unnamedCalendarTypeLabel}`.trim();\n\n\t\t\tlet ariaLabel = this.hasSecondaryCalendarType\n\t\t\t\t? `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNamesString} ${tempSecondDateNumber}, ${tempSecondYearNumber} ${tooltip}`.trim()\n\t\t\t\t: `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()} ${tooltip}`.trim();\n\n\t\t\tif (this.selectionMode === CalendarSelectionMode.Range) {\n\t\t\t\tif (isSelected && this._isRangeEndDate(timestamp)) {\n\t\t\t\t\tariaLabel = DayPicker.i18nBundle.getText(DAY_PICKER_SELECTED_RANGE_END, ariaLabel);\n\t\t\t\t} else if (isSelected && this._isRangeStartDate(timestamp)) {\n\t\t\t\t\tariaLabel = DayPicker.i18nBundle.getText(DAY_PICKER_SELECTED_RANGE_START, ariaLabel);\n\t\t\t\t} else if (isSelectedBetween) {\n\t\t\t\t\tariaLabel = DayPicker.i18nBundle.getText(DAY_PICKER_SELECTED_RANGE_BETWEEN, ariaLabel);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst day: Day = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tday: tempDate.getDate(),\n\t\t\t\tsecondDay: this.hasSecondaryCalendarType ? (tempSecondDate as CalendarDate).getDate() : undefined,\n\t\t\t\t_isSecondaryCalendarType: this.hasSecondaryCalendarType,\n\t\t\t\tclasses: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,\n\t\t\t\ttooltip,\n\t\t\t\tariaLabel,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tariaDisabled: isDisabled || isOtherMonth,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\ttype: specialDayType,\n\t\t\t\tparts: \"day-cell\",\n\t\t\t};\n\n\t\t\tif (isFirstDayOfWeek) {\n\t\t\t\tday.classes += \" ui5-dp-firstday\";\n\t\t\t}\n\n\t\t\tif (isSelected) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected\";\n\t\t\t\tday.parts += \" day-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected-between\";\n\t\t\t\tday.parts += \" day-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isToday) {\n\t\t\t\tday.classes += \" ui5-dp-item--now\";\n\t\t\t}\n\n\t\t\tif (isOtherMonth) {\n\t\t\t\tday.classes += \" ui5-dp-item--othermonth\";\n\t\t\t}\n\n\t\t\tif ((isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\") {\n\t\t\t\tday.classes += \" ui5-dp-item--weekend\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tday.classes += \" ui5-dp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tday.classes += \" ui5-dp-item--withsecondtype\";\n\t\t\t}\n\n\t\t\tweek.push(day);\n\n\t\t\tif (dayOfTheWeek === DAYS_IN_WEEK - 1) { // 0-indexed so 6 is the last day of the week\n\t\t\t\tconst weekNumber = this._calculateWeekNumber(tempDate.toLocalJSDate());\n\n\t\t\t\tweek.unshift({\n\t\t\t\t\tweekNum: weekNumber,\n\t\t\t\t\tisHidden: this.shouldHideWeekNumbers,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (week.length === DAYS_IN_WEEK + 1) { // 7 entries for each day + 1 for the week numbers\n\t\t\t\tthis._weeks.push(week);\n\t\t\t\tweek = [];\n\t\t\t}\n\n\t\t\ttempDate.setDate(tempDate.getDate() + 1);\n\t\t\tif (this.hasSecondaryCalendarType && tempSecondDate) {\n\t\t\t\ttempSecondDate.setDate(tempSecondDate.getDate() + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t_calculateWeekNumber(date: Date): number {\n\t\tconst oDateFormat = DateFormat.getDateInstance({ pattern: \"w\", calendarType: this.primaryCalendarType, calendarWeekNumbering: this.calendarWeekNumbering });\n\t\tconst weekNumber = oDateFormat.format(date);\n\n\t\treturn Number(weekNumber);\n\t}\n\n\t/**\n\t * Builds the dayNames object (header of the month).\n\t * @param localeData\n\t * @private\n\t */\n\t_buildDayNames(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tlet dayOfTheWeek;\n\n\t\tconst aDayNamesWide = localeData.getDays(\"wide\", this._primaryCalendarType);\n\t\tlet aDayNamesAbbreviated = localeData.getDays(\"abbreviated\", this._primaryCalendarType);\n\t\tlet dayName;\n\n\t\tif (this.namesTooLong(aDayNamesAbbreviated)) {\n\t\t\taDayNamesAbbreviated = localeData.getDays(\"narrow\", this._primaryCalendarType);\n\t\t}\n\n\t\tthis._dayNames = [];\n\t\tthis._dayNames.push({\n\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\tname: DayPicker.i18nBundle.getText(DAY_PICKER_WEEK_NUMBER_TEXT),\n\t\t});\n\t\tfor (let i = 0; i < DAYS_IN_WEEK; i++) {\n\t\t\tdayOfTheWeek = i + this._getFirstDayOfWeek();\n\t\t\tif (dayOfTheWeek > DAYS_IN_WEEK - 1) { // 0-indexed so index of 6 is the maximum allowed\n\t\t\t\tdayOfTheWeek -= DAYS_IN_WEEK;\n\t\t\t}\n\t\t\tdayName = {\n\t\t\t\tname: aDayNamesWide[dayOfTheWeek],\n\t\t\t\tultraShortName: aDayNamesAbbreviated[dayOfTheWeek],\n\t\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\t};\n\t\t\tthis._dayNames.push(dayName);\n\t\t}\n\t\tthis._dayNames[1].classes += \" ui5-dp-firstday\";\n\t\tif (this.shouldHideWeekNumbers) {\n\t\t\tthis._dayNames.shift();\n\t\t}\n\t}\n\n\t/**\n\t * Tells if any of the days is more than 4 characters(too long to render).\n\t * @param dayNames\n\t * @private\n\t */\n\tnamesTooLong(dayNames: Array<string>): boolean {\n\t\treturn dayNames.some(dayName => dayName.length > 4);\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._autoFocus && !this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_focusCorrectDay() {\n\t\tif (this._shouldFocusDay) {\n\t\t\tthis._focusableDay.focus();\n\t\t}\n\t}\n\n\tget _shouldFocusDay() {\n\t\treturn document.activeElement !== this._focusableDay && this._specialCalendarDates.length === 0;\n\t}\n\n\t_onfocusin() {\n\t\tthis._autoFocus = true;\n\t\tthis._focusCorrectDay();\n\t}\n\n\t_onfocusout() {\n\t\tthis._autoFocus = false;\n\t}\n\n\t/**\n\t * Tells if the day is selected (dark blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDaySelected(timestamp: number): boolean {\n\t\tif (this.selectionMode === CalendarSelectionMode.Single) {\n\t\t\treturn timestamp === this.selectedDates[0];\n\t\t}\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\treturn this.selectedDates.includes(timestamp);\n\t\t}\n\n\t\treturn timestamp === this.selectedDates[0] || timestamp === this.selectedDates[this.selectedDates.length - 1];\n\t}\n\n\t_isRangeEndDate(timestamp: number): boolean {\n\t\treturn this.selectionMode === CalendarSelectionMode.Range && timestamp === this.selectedDates[1];\n\t}\n\n\t_isRangeStartDate(timestamp: number): boolean {\n\t\treturn this.selectionMode === CalendarSelectionMode.Range && timestamp === this.selectedDates[0];\n\t}\n\n\t/**\n\t * Tells if the day is inside a selection range (light blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDayInsideSelectionRange(timestamp: number): boolean {\n\t\t// No selection at all (or not in range selection mode)\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - the user is hovering with the mouse or navigating with the keyboard to select the second one\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\t// Two dates selected - stable range\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[this.selectedDates.length - 1]);\n\t}\n\n\t/**\n\t * Selects/deselects a day.\n\t * @param e\n\t * @param isShift true if the user did Click+Shift or Enter+Shift (but not Space+Shift)\n\t * @private\n\t */\n\t_selectDate(e: Event, isShift: boolean) {\n\t\tlet target = e.target as HTMLElement;\n\n\t\tif (!target.hasAttribute(\"data-sap-timestamp\")) {\n\t\t\ttarget = target.parentNode as HTMLElement;\n\t\t}\n\n\t\tif (!this._isDayPressed(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp, isShift);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number, isShift: boolean) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\tif (this.selectedDates.length > 0 && isShift) {\n\t\t\t\tthis._multipleSelection(timestamp);\n\t\t\t} else {\n\t\t\t\tthis._toggleTimestampInSelection(timestamp);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Selects/deselects the whole row (week).\n\t * @private\n\t */\n\t_selectWeek() {\n\t\tthis._weeks.forEach((week: Week) => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex((item: Day) => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst notAllDaysOfThisWeekSelected = _week.some(item => item.timestamp && !this.selectedDates.includes(parseInt(item.timestamp)));\n\t\t\t\tif (notAllDaysOfThisWeekSelected) { // even if one day is not selected, select the whole week\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._addTimestampToSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t} else { // only if all days of this week are selected, deselect them\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._removeTimestampFromSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_toggleTimestampInSelection(timestamp: number) {\n\t\tif (this.selectedDates.includes(timestamp)) {\n\t\t\tthis._removeTimestampFromSelection(timestamp);\n\t\t} else {\n\t\t\tthis._addTimestampToSelection(timestamp);\n\t\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\t}\n\t}\n\n\t_addTimestampToSelection(timestamp: number) {\n\t\tif (!this.selectedDates.includes(timestamp)) {\n\t\t\tthis.selectedDates = [...this.selectedDates, timestamp];\n\t\t}\n\t}\n\n\t_removeTimestampFromSelection(timestamp: number) {\n\t\tthis.selectedDates = this.selectedDates.filter(value => value !== timestamp);\n\t}\n\n\t/**\n\t * Called when at least one day is selected and the user presses \"Shift\".\n\t * @param timestamp\n\t * @private\n\t */\n\t_multipleSelection(timestamp: number) {\n\t\tconst min = Math.min(...this.selectedDates);\n\t\tconst max = Math.max(...this.selectedDates);\n\t\tlet start;\n\t\tlet end;\n\t\tlet toggle = false;\n\n\t\tif (timestamp < min) {\n\t\t\tstart = timestamp;\n\t\t\tend = min;\n\t\t} else if (timestamp >= min && timestamp <= max) { // inside the current range - toggle all between the selected and focused\n\t\t\tconst distanceToMin = Math.abs(timestamp - min);\n\t\t\tconst distanceToMax = Math.abs(timestamp - max);\n\n\t\t\tif (distanceToMin < distanceToMax) {\n\t\t\t\tstart = timestamp;\n\t\t\t\tend = max;\n\t\t\t} else {\n\t\t\t\tstart = min;\n\t\t\t\tend = timestamp;\n\t\t\t}\n\t\t\ttoggle = true;\n\t\t} else {\n\t\t\tstart = max;\n\t\t\tend = timestamp;\n\t\t}\n\n\t\tconst startDate = CalendarDate.fromTimestamp(start * 1000);\n\t\tconst endDate = CalendarDate.fromTimestamp(end * 1000);\n\n\t\twhile (startDate.valueOf() <= endDate.valueOf()) {\n\t\t\tthis[toggle ? \"_toggleTimestampInSelection\" : \"_addTimestampToSelection\"](startDate.valueOf() / 1000);\n\t\t\tstartDate.setDate(startDate.getDate() + 1);\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-dp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(e) || isEnterShift(e)) {\n\t\t\tthis._selectDate(e, isEnterShift(e));\n\t\t} else if (isSpace(e) || isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isLeft(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"day\", false);\n\t\t} else if (isRight(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"day\", false);\n\t\t} else if (isUp(e)) {\n\t\t\tthis._modifyTimestampBy(-7, \"day\", false);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(7, \"day\", false);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"month\");\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"month\");\n\t\t} else if (isPageUpShift(e) || isPageUpAlt(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"year\");\n\t\t} else if (isPageDownShift(e) || isPageDownAlt(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"year\");\n\t\t} else if (isPageUpShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(-10, \"year\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(10, \"year\");\n\t\t} else if (isHome(e) || isEnd(e)) {\n\t\t\tthis._onHomeOrEnd(isHome(e));\n\t\t} else if (isHomeCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setDate(1); // Set the first day of the month\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(tempDate.getMonth() + 1);\n\t\t\ttempDate.setDate(0); // Set the last day of the month (0th day of next month)\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\t// Even if Space+Shift was pressed, ignore the shift unless in Multiple selection\n\t\tif (isSpace(e) || (isSpaceShift(e) && this.selectionMode !== CalendarSelectionMode.Multiple)) {\n\t\t\tthis._selectDate(e, false);\n\t\t} else if (isSpaceShift(e)) {\n\t\t\tthis._selectWeek();\n\t\t}\n\t}\n\n\t/**\n\t * Click is the same as \"Enter\".\n\t * **Note:** \"Click+Shift\" has the same effect as \"Enter+Shift\".\n\t * @param e\n\t * @private\n\t */\n\t_onclick(e: MouseEvent) {\n\t\tthis._selectDate(e, e.shiftKey);\n\t}\n\n\t/**\n\t * Called upon \"Home\" or \"End\" - moves the focus to the first or last item in the row.\n\t * @param homePressed\n\t * @private\n\t */\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._weeks.forEach(week => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex(item => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst index = homePressed ? 1 : 7; // select the first (if Home) or last (if End) day of the week\n\t\t\t\tthis._setTimestamp(parseInt(_week[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._minDate.getMonth() && this._calendarDate.getYear() === this._minDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._maxDate.getMonth() && this._calendarDate.getYear() === this._maxDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-1, \"month\", false);\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(1, \"month\", false);\n\t}\n\n\t/**\n\t * Modifies the timestamp by a certain amount of days/months/years.\n\t * @param amount\n\t * @param unit\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number, unit: string, preserveDate?: boolean) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, unit, preserveDate);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value.\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value: number) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis._updateSecondTimestamp();\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * During range selection, when the user is navigating with the keyboard,\n\t * the currently focused day is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\tget _specialCalendarDates() {\n\t\treturn this.specialCalendarDates;\n\t}\n\n\tget shouldHideWeekNumbers() {\n\t\tif (this._primaryCalendarType !== CalendarType.Gregorian) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.hideWeekNumbers;\n\t}\n\n\t_isWeekend(oDate: CalendarDate): boolean {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\n\t\tconst iWeekDay = oDate.getDay(),\n\t\t\tiWeekendStart = localeData.getWeekendStart(),\n\t\t\tiWeekendEnd = localeData.getWeekendEnd();\n\n\t\treturn (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)\n\t\t\t|| (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));\n\t}\n\n\t/**\n\t * Checks if a given date is enabled (selectable).\n\t * A date is considered disabled if:\n\t * - It falls outside the min/max date range defined by the component\n\t * - It matches a single disabled date\n\t * - It falls within a disabled date range (exclusive of start and end dates)\n\t * @param date - The date to check\n\t * @returns `true` if the date is enabled (selectable), `false` if disabled\n\t * @private\n\t */\n\t_isDateEnabled(date: CalendarDate): boolean {\n\t\tif ((this._minDate && date.isBefore(this._minDate))\n\t\t\t|| (this._maxDate && date.isAfter(this._maxDate))) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst dateTimestamp = date.valueOf() / 1000;\n\n\t\treturn !this.disabledDates.some(range => {\n\t\t\tconst startTimestamp = this._getTimestampFromDateValue(range.startValue);\n\t\t\tconst endTimestamp = this._getTimestampFromDateValue(range.endValue);\n\n\t\t\tif (endTimestamp) {\n\t\t\t\treturn dateTimestamp > startTimestamp && dateTimestamp < endTimestamp;\n\t\t\t}\n\n\t\t\treturn startTimestamp && dateTimestamp === startTimestamp;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a date value string to a timestamp.\n\t * @param dateValue - Date string to convert\n\t * @returns timestamp in seconds, or 0 if invalid\n\t * @private\n\t */\n\t_getTimestampFromDateValue(dateValue?: string): number {\n\t\tif (!dateValue) {\n\t\t\treturn 0;\n\t\t}\n\n\t\ttry {\n\t\t\tconst jsDate = this.getValueFormat().parse(dateValue) as Date;\n\t\t\tconst calendarDate = CalendarDate.fromLocalJSDate(\n\t\t\t\tjsDate,\n\t\t\t\tthis._primaryCalendarType,\n\t\t\t);\n\t\t\treturn calendarDate.valueOf() / 1000;\n\t\t} catch {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\t_isDayPressed(target: HTMLElement): boolean {\n\t\tconst targetParent = target.parentNode as HTMLElement;\n\t\treturn (target.className.indexOf(\"ui5-dp-item\") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains(\"ui5-dp-item\"));\n\t}\n\n\t_isDefaultCalendarLegendType(type: string): boolean {\n\t\treturn [\"NonWorking\", \"Working\", \"Today\", \"Selected\", \"None\"].includes(type);\n\t}\n\n\t_getSecondaryDay(tempDate: CalendarDate): CalendarDate {\n\t\treturn new CalendarDate(tempDate, this.secondaryCalendarType);\n\t}\n\n\t_getFirstDay(): CalendarDate {\n\t\tlet daysFromPreviousMonth;\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\n\t\t// determine weekday of first day in month\n\t\tconst firstDay = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\tfirstDay.setDate(1);\n\n\t\tdaysFromPreviousMonth = firstDay.getDay() - firstDayOfWeek;\n\n\t\tif (daysFromPreviousMonth < 0) {\n\t\t\tdaysFromPreviousMonth = 7 + daysFromPreviousMonth;\n\t\t}\n\n\t\tif (daysFromPreviousMonth > 0) {\n\t\t\tfirstDay.setDate(1 - daysFromPreviousMonth);\n\t\t}\n\n\t\treturn firstDay;\n\t}\n\n\t_getFirstDayOfWeek(): number {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tlet firstDayOfWeek;\n\t\tconst configurationFirstDayOfWeek = getFirstDayOfWeek();\n\n\t\tif (configurationFirstDayOfWeek !== undefined) {\n\t\t\tfirstDayOfWeek = configurationFirstDayOfWeek;\n\t\t} else {\n\t\t\tfirstDayOfWeek = localeData.getFirstDayOfWeek();\n\t\t}\n\n\t\tconst result = CalendarUtils.getWeekConfigurationValues(this.calendarWeekNumbering);\n\n\t\tif (result?.firstDayOfWeek !== undefined && this.calendarWeekNumbering !== \"Default\") {\n\t\t\treturn result.firstDayOfWeek;\n\t\t}\n\n\t\treturn firstDayOfWeek;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\tdisplay: this._hidden ? \"none\" : \"flex\",\n\t\t\t\t\"justify-content\": \"center\",\n\t\t\t},\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoledescription() {\n\t\treturn this.hasSecondaryCalendarType\n\t\t\t? `${this._primaryCalendarType} calendar with secondary ${this.secondaryCalendarType as string} calendar`\n\t\t\t: `${this._primaryCalendarType} calendar`;\n\t}\n}\n\nDayPicker.define();\n\nexport default DayPicker;\nexport type {\n\tDayPickerNavigateEventDetail,\n\tDayPickerChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"DayPicker.js","sourceRoot":"","sources":["../src/DayPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type LocaleData from \"@ui5/webcomponents-localization/dist/LocaleData.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceShift,\n\tisEnter,\n\tisEnterShift,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageUpAlt,\n\tisPageUpShiftCtrl,\n\tisPageDownShift,\n\tisPageDownAlt,\n\tisPageDownShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFirstDayOfWeek } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport CalendarUtils from \"@ui5/webcomponents-localization/dist/CalendarUtils.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type {\n\tDisabledDateRangeT,\n\tICalendarPicker,\n\tSpecialCalendarDateT,\n} from \"./Calendar.js\";\n\nimport {\n\tDAY_PICKER_WEEK_NUMBER_TEXT,\n\tDAY_PICKER_NON_WORKING_DAY,\n\tDAY_PICKER_TODAY,\n\tLIST_ITEM_SELECTED,\n\tDAY_PICKER_SELECTED_RANGE_START,\n\tDAY_PICKER_SELECTED_RANGE_END,\n\tDAY_PICKER_SELECTED_RANGE_BETWEEN,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DayPickerTemplate from \"./DayPickerTemplate.js\";\n\n// Styles\nimport dayPickerCSS from \"./generated/themes/DayPicker.css.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\nconst DAYS_IN_WEEK = 7;\n\ntype DayName = {\n\tname: string,\n\tclasses: string,\n\tultraShortName?: string,\n}\n\ntype Day = {\n\ttimestamp: string,\n\tday: number,\n\tfocusRef: boolean,\n\t_tabIndex: number,\n\tselected: boolean,\n\t_isSecondaryCalendarType: boolean,\n\tclasses: string,\n\ttooltip?: string,\n\tariaLabel: string,\n\tariaSelected: boolean,\n\tariaDisabled: boolean | undefined,\n\tdisabled: boolean,\n\tsecondDay?: number,\n\tweekNum?: number,\n\tisHidden?: boolean,\n\ttype?: string,\n\tparts: string,\n}\n\ntype WeekNumber = {\n\tweekNum: number,\n\tisHidden: boolean,\n}\n\ntype Week = Array<Day | WeekNumber>;\n\ntype DayPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp?: number,\n}\n\ntype DayPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Represents the days inside a single month view of the `ui5-calendar` component.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-daypicker\",\n\tstyles: dayPickerCSS,\n\ttemplate: DayPickerTemplate,\n})\n/**\n * Fired when the selected date(s) change\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes (user navigates with the keyboard) or clicks with the mouse\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass DayPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": DayPickerChangeEventDetail,\n\t\t\"navigate\": DayPickerNavigateEventDetail,\n\t};\n\n\t/**\n\t * An array of UTC timestamps representing the selected date or dates depending on the capabilities of the picker component.\n\t * @default []\n\t */\n\t@property({ type: Array, noAttribute: true })\n\tselectedDates: Array<number> = [];\n\n\t/**\n\t * Defines the type of selection used in the day picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables a single date selection.(default value)\n\t * - `CalendarSelectionMode.Range` - enables selection of a date range.\n\t * - `CalendarSelectionMode.Multiple` - enables selection of multiple dates.\n\t * @default \"Single\"\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the visibility of the week numbers column.\n\t *\n\t * **Note:** For calendars other than Gregorian,\n\t * the week numbers are not displayed regardless of what is set.\n\t * @default false\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thideWeekNumbers = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\t_weeks: Array<Week> = [];\n\n\t@property({ type: Array, noAttribute: true })\n\t_dayNames: Array<DayName> = [];\n\n\t/**\n\t * When set, the component will skip all work in onBeforeRendering and will not automatically set the focus on itself\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * 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\n\t * @private\n\t */\n\t @property({ type: Number, noAttribute: true })\n\t_secondTimestamp?: number;\n\n\t/**\n\t * Array of special calendar dates (if such are passed) from the calendar.\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\tspecialCalendarDates: Array<SpecialCalendarDateT> = [];\n\n\t/**\n\t * Array of disabled date ranges that cannot be selected.\n\t * Each range can have a start and/or end date value.\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\tdisabledDates: Array<DisabledDateRangeT> = [];\n\n\t@query(\"[data-sap-focus-ref]\")\n\t_focusableDay!: HTMLElement;\n\n\t_autoFocus?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tthis._buildWeeks(localeData);\n\t\tthis._buildDayNames(localeData);\n\t}\n\n\t/**\n\t * Builds the \"_weeks\" object that represents the month.\n\t * @param localeData\n\t * @private\n\t */\n\t_buildWeeks(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tthis._weeks = [];\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\t\tconst specialCalendarDates = this._specialCalendarDates;\n\t\tconst monthsNames = localeData.getMonths(\"wide\", this._primaryCalendarType);\n\t\tconst secondaryMonthsNames = this.hasSecondaryCalendarType ? localeData.getMonths(\"wide\", this.secondaryCalendarType) : [];\n\t\tconst nonWorkingDayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_NON_WORKING_DAY);\n\t\tconst todayLabel = DayPicker.i18nBundle.getText(DAY_PICKER_TODAY);\n\t\tconst tempDate = this._getFirstDay(); // date that will be changed by 1 day 42 times\n\t\tconst todayDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(), this._primaryCalendarType); // current day date - calculate once\n\t\tconst calendarDate = this._calendarDate; // store the _calendarDate value as this getter is expensive and degrades IE11 perf\n\n\t\tconst minDate = this._minDate;\n\t\tconst maxDate = this._maxDate;\n\t\tconst precomputedDisabledDates = this._precomputeDisabledDates();\n\n\t\tconst tempSecondDate = this.hasSecondaryCalendarType ? this._getSecondaryDay(tempDate) : undefined;\n\n\t\tlet week: Week = [];\n\t\tfor (let i = 0; i < DAYS_IN_WEEK * 6; i++) { // always show 6 weeks total, 42 days to avoid jumping\n\t\t\tconst timestamp = tempDate.valueOf() / 1000; // no need to round because CalendarDate does it\n\n\t\t\tlet dayOfTheWeek = tempDate.getDay() - firstDayOfWeek;\n\t\t\tif (dayOfTheWeek < 0) {\n\t\t\t\tdayOfTheWeek += DAYS_IN_WEEK;\n\t\t\t}\n\n\t\t\tconst specialCalendarDate = specialCalendarDates.find(specialDate => specialDate.specialDateTimestamp === timestamp);\n\t\t\tconst specialDayType = specialCalendarDate ? specialCalendarDate.type : \"\";\n\t\t\tconst specialDayTooltip = specialCalendarDate ? specialCalendarDate.tooltip : \"\";\n\t\t\tconst unnamedCalendarTypeLabel = specialDayTooltip && !this._isDefaultCalendarLegendType(specialDayType) ? specialDayTooltip : \"\";\n\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth() && tempDate.getDate() === calendarDate.getDate();\n\t\t\tconst isSelected = this._isDaySelected(timestamp);\n\t\t\tconst isSelectedBetween = this._isDayInsideSelectionRange(timestamp);\n\t\t\tconst isOtherMonth = tempDate.getMonth() !== calendarDate.getMonth();\n\t\t\tconst isWeekend = this._isWeekend(tempDate);\n\t\t\tconst isDisabled = !this._isDateEnabled(tempDate, minDate, maxDate, precomputedDisabledDates);\n\t\t\tconst isToday = tempDate.isSame(todayDate);\n\t\t\tconst isFirstDayOfWeek = tempDate.getDay() === firstDayOfWeek;\n\n\t\t\tconst nonWorkingAriaLabel = (isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\"\n\t\t\t\t? `${nonWorkingDayLabel} `\n\t\t\t\t: \"\";\n\t\t\tconst todayAriaLabel = isToday ? `${todayLabel} ` : \"\";\n\n\t\t\tconst tempSecondDateNumber = tempSecondDate ? tempSecondDate.getDate() : \"\";\n\t\t\tconst tempSecondYearNumber = tempSecondDate ? tempSecondDate.getYear() : \"\";\n\t\t\tconst secondaryMonthsNamesString = secondaryMonthsNames.length > 0 ? secondaryMonthsNames[tempSecondDate!.getMonth()] : \"\";\n\n\t\t\tconst tooltip = `${todayAriaLabel}${nonWorkingAriaLabel}${unnamedCalendarTypeLabel}`.trim();\n\n\t\t\tlet ariaLabel = this.hasSecondaryCalendarType\n\t\t\t\t? `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()}; ${secondaryMonthsNamesString} ${tempSecondDateNumber}, ${tempSecondYearNumber} ${tooltip}`.trim()\n\t\t\t\t: `${monthsNames[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getYear()} ${tooltip}`.trim();\n\n\t\t\tif (this.selectionMode === CalendarSelectionMode.Range) {\n\t\t\t\tif (isSelected && this._isRangeEndDate(timestamp)) {\n\t\t\t\t\tariaLabel = DayPicker.i18nBundle.getText(DAY_PICKER_SELECTED_RANGE_END, ariaLabel);\n\t\t\t\t} else if (isSelected && this._isRangeStartDate(timestamp)) {\n\t\t\t\t\tariaLabel = DayPicker.i18nBundle.getText(DAY_PICKER_SELECTED_RANGE_START, ariaLabel);\n\t\t\t\t} else if (isSelectedBetween) {\n\t\t\t\t\tariaLabel = DayPicker.i18nBundle.getText(DAY_PICKER_SELECTED_RANGE_BETWEEN, ariaLabel);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst day: Day = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tday: tempDate.getDate(),\n\t\t\t\tsecondDay: this.hasSecondaryCalendarType ? (tempSecondDate as CalendarDate).getDate() : undefined,\n\t\t\t\t_isSecondaryCalendarType: this.hasSecondaryCalendarType,\n\t\t\t\tclasses: `ui5-dp-item ui5-dp-wday${dayOfTheWeek}`,\n\t\t\t\ttooltip,\n\t\t\t\tariaLabel,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tariaDisabled: isDisabled || isOtherMonth,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\ttype: specialDayType,\n\t\t\t\tparts: \"day-cell\",\n\t\t\t};\n\n\t\t\tif (isFirstDayOfWeek) {\n\t\t\t\tday.classes += \" ui5-dp-firstday\";\n\t\t\t}\n\n\t\t\tif (isSelected) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected\";\n\t\t\t\tday.parts += \" day-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tday.classes += \" ui5-dp-item--selected-between\";\n\t\t\t\tday.parts += \" day-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isToday) {\n\t\t\t\tday.classes += \" ui5-dp-item--now\";\n\t\t\t}\n\n\t\t\tif (isOtherMonth) {\n\t\t\t\tday.classes += \" ui5-dp-item--othermonth\";\n\t\t\t}\n\n\t\t\tif ((isWeekend || specialDayType === \"NonWorking\") && specialDayType !== \"Working\") {\n\t\t\t\tday.classes += \" ui5-dp-item--weekend\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tday.classes += \" ui5-dp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tday.classes += \" ui5-dp-item--withsecondtype\";\n\t\t\t}\n\n\t\t\tweek.push(day);\n\n\t\t\tif (dayOfTheWeek === DAYS_IN_WEEK - 1) { // 0-indexed so 6 is the last day of the week\n\t\t\t\tconst weekNumber = this._calculateWeekNumber(tempDate.toLocalJSDate());\n\n\t\t\t\tweek.unshift({\n\t\t\t\t\tweekNum: weekNumber,\n\t\t\t\t\tisHidden: this.shouldHideWeekNumbers,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (week.length === DAYS_IN_WEEK + 1) { // 7 entries for each day + 1 for the week numbers\n\t\t\t\tthis._weeks.push(week);\n\t\t\t\tweek = [];\n\t\t\t}\n\n\t\t\ttempDate.setDate(tempDate.getDate() + 1);\n\t\t\tif (this.hasSecondaryCalendarType && tempSecondDate) {\n\t\t\t\ttempSecondDate.setDate(tempSecondDate.getDate() + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t_calculateWeekNumber(date: Date): number {\n\t\tconst oDateFormat = DateFormat.getDateInstance({ pattern: \"w\", calendarType: this.primaryCalendarType, calendarWeekNumbering: this.calendarWeekNumbering });\n\t\tconst weekNumber = oDateFormat.format(date);\n\n\t\treturn Number(weekNumber);\n\t}\n\n\t/**\n\t * Builds the dayNames object (header of the month).\n\t * @param localeData\n\t * @private\n\t */\n\t_buildDayNames(localeData: LocaleData) {\n\t\tif (this._hidden) {\n\t\t\treturn; // Optimization to not do any work unless the current picker\n\t\t}\n\n\t\tlet dayOfTheWeek;\n\n\t\tconst aDayNamesWide = localeData.getDays(\"wide\", this._primaryCalendarType);\n\t\tlet aDayNamesAbbreviated = localeData.getDays(\"abbreviated\", this._primaryCalendarType);\n\t\tlet dayName;\n\n\t\tif (this.namesTooLong(aDayNamesAbbreviated)) {\n\t\t\taDayNamesAbbreviated = localeData.getDays(\"narrow\", this._primaryCalendarType);\n\t\t}\n\n\t\tthis._dayNames = [];\n\t\tthis._dayNames.push({\n\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\tname: DayPicker.i18nBundle.getText(DAY_PICKER_WEEK_NUMBER_TEXT),\n\t\t});\n\t\tfor (let i = 0; i < DAYS_IN_WEEK; i++) {\n\t\t\tdayOfTheWeek = i + this._getFirstDayOfWeek();\n\t\t\tif (dayOfTheWeek > DAYS_IN_WEEK - 1) { // 0-indexed so index of 6 is the maximum allowed\n\t\t\t\tdayOfTheWeek -= DAYS_IN_WEEK;\n\t\t\t}\n\t\t\tdayName = {\n\t\t\t\tname: aDayNamesWide[dayOfTheWeek],\n\t\t\t\tultraShortName: aDayNamesAbbreviated[dayOfTheWeek],\n\t\t\t\tclasses: \"ui5-dp-dayname\",\n\t\t\t};\n\t\t\tthis._dayNames.push(dayName);\n\t\t}\n\t\tthis._dayNames[1].classes += \" ui5-dp-firstday\";\n\t\tif (this.shouldHideWeekNumbers) {\n\t\t\tthis._dayNames.shift();\n\t\t}\n\t}\n\n\t/**\n\t * Tells if any of the days is more than 4 characters(too long to render).\n\t * @param dayNames\n\t * @private\n\t */\n\tnamesTooLong(dayNames: Array<string>): boolean {\n\t\treturn dayNames.some(dayName => dayName.length > 4);\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._autoFocus && !this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_focusCorrectDay() {\n\t\tif (this._shouldFocusDay) {\n\t\t\tthis._focusableDay.focus();\n\t\t}\n\t}\n\n\tget _shouldFocusDay() {\n\t\treturn document.activeElement !== this._focusableDay && this._specialCalendarDates.length === 0;\n\t}\n\n\t_onfocusin() {\n\t\tthis._autoFocus = true;\n\t\tthis._focusCorrectDay();\n\t}\n\n\t_onfocusout() {\n\t\tthis._autoFocus = false;\n\t}\n\n\t/**\n\t * Tells if the day is selected (dark blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDaySelected(timestamp: number): boolean {\n\t\tif (this.selectionMode === CalendarSelectionMode.Single) {\n\t\t\treturn timestamp === this.selectedDates[0];\n\t\t}\n\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\treturn this.selectedDates.includes(timestamp);\n\t\t}\n\n\t\treturn timestamp === this.selectedDates[0] || timestamp === this.selectedDates[this.selectedDates.length - 1];\n\t}\n\n\t_isRangeEndDate(timestamp: number): boolean {\n\t\treturn this.selectionMode === CalendarSelectionMode.Range && timestamp === this.selectedDates[1];\n\t}\n\n\t_isRangeStartDate(timestamp: number): boolean {\n\t\treturn this.selectionMode === CalendarSelectionMode.Range && timestamp === this.selectedDates[0];\n\t}\n\n\t/**\n\t * Tells if the day is inside a selection range (light blue).\n\t * @param timestamp\n\t * @private\n\t */\n\t_isDayInsideSelectionRange(timestamp: number): boolean {\n\t\t// No selection at all (or not in range selection mode)\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - the user is hovering with the mouse or navigating with the keyboard to select the second one\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\t// Two dates selected - stable range\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[this.selectedDates.length - 1]);\n\t}\n\n\t/**\n\t * Selects/deselects a day.\n\t * @param e\n\t * @param isShift true if the user did Click+Shift or Enter+Shift (but not Space+Shift)\n\t * @private\n\t */\n\t_selectDate(e: Event, isShift: boolean) {\n\t\tlet target = e.target as HTMLElement;\n\n\t\tif (!target.hasAttribute(\"data-sap-timestamp\")) {\n\t\t\ttarget = target.parentNode as HTMLElement;\n\t\t}\n\n\t\tif (!this._isDayPressed(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp, isShift);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number, isShift: boolean) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Multiple) {\n\t\t\tif (this.selectedDates.length > 0 && isShift) {\n\t\t\t\tthis._multipleSelection(timestamp);\n\t\t\t} else {\n\t\t\t\tthis._toggleTimestampInSelection(timestamp);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Selects/deselects the whole row (week).\n\t * @private\n\t */\n\t_selectWeek() {\n\t\tthis._weeks.forEach((week: Week) => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex((item: Day) => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst notAllDaysOfThisWeekSelected = _week.some(item => item.timestamp && !this.selectedDates.includes(parseInt(item.timestamp)));\n\t\t\t\tif (notAllDaysOfThisWeekSelected) { // even if one day is not selected, select the whole week\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._addTimestampToSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t} else { // only if all days of this week are selected, deselect them\n\t\t\t\t\t_week.filter(item => item.timestamp).forEach(item => {\n\t\t\t\t\t\tthis._removeTimestampFromSelection(parseInt(item.timestamp));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_toggleTimestampInSelection(timestamp: number) {\n\t\tif (this.selectedDates.includes(timestamp)) {\n\t\t\tthis._removeTimestampFromSelection(timestamp);\n\t\t} else {\n\t\t\tthis._addTimestampToSelection(timestamp);\n\t\t\tannounce(DayPicker.i18nBundle.getText(LIST_ITEM_SELECTED), InvisibleMessageMode.Assertive);\n\t\t}\n\t}\n\n\t_addTimestampToSelection(timestamp: number) {\n\t\tif (!this.selectedDates.includes(timestamp)) {\n\t\t\tthis.selectedDates = [...this.selectedDates, timestamp];\n\t\t}\n\t}\n\n\t_removeTimestampFromSelection(timestamp: number) {\n\t\tthis.selectedDates = this.selectedDates.filter(value => value !== timestamp);\n\t}\n\n\t/**\n\t * Called when at least one day is selected and the user presses \"Shift\".\n\t * @param timestamp\n\t * @private\n\t */\n\t_multipleSelection(timestamp: number) {\n\t\tconst min = Math.min(...this.selectedDates);\n\t\tconst max = Math.max(...this.selectedDates);\n\t\tlet start;\n\t\tlet end;\n\t\tlet toggle = false;\n\n\t\tif (timestamp < min) {\n\t\t\tstart = timestamp;\n\t\t\tend = min;\n\t\t} else if (timestamp >= min && timestamp <= max) { // inside the current range - toggle all between the selected and focused\n\t\t\tconst distanceToMin = Math.abs(timestamp - min);\n\t\t\tconst distanceToMax = Math.abs(timestamp - max);\n\n\t\t\tif (distanceToMin < distanceToMax) {\n\t\t\t\tstart = timestamp;\n\t\t\t\tend = max;\n\t\t\t} else {\n\t\t\t\tstart = min;\n\t\t\t\tend = timestamp;\n\t\t\t}\n\t\t\ttoggle = true;\n\t\t} else {\n\t\t\tstart = max;\n\t\t\tend = timestamp;\n\t\t}\n\n\t\tconst startDate = CalendarDate.fromTimestamp(start * 1000);\n\t\tconst endDate = CalendarDate.fromTimestamp(end * 1000);\n\n\t\twhile (startDate.valueOf() <= endDate.valueOf()) {\n\t\t\tthis[toggle ? \"_toggleTimestampInSelection\" : \"_addTimestampToSelection\"](startDate.valueOf() / 1000);\n\t\t\tstartDate.setDate(startDate.getDate() + 1);\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-dp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(e) || isEnterShift(e)) {\n\t\t\tthis._selectDate(e, isEnterShift(e));\n\t\t} else if (isSpace(e) || isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isLeft(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"day\", false);\n\t\t} else if (isRight(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"day\", false);\n\t\t} else if (isUp(e)) {\n\t\t\tthis._modifyTimestampBy(-7, \"day\", false);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(7, \"day\", false);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"month\");\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"month\");\n\t\t} else if (isPageUpShift(e) || isPageUpAlt(e)) {\n\t\t\tthis._modifyTimestampBy(-1, \"year\");\n\t\t} else if (isPageDownShift(e) || isPageDownAlt(e)) {\n\t\t\tthis._modifyTimestampBy(1, \"year\");\n\t\t} else if (isPageUpShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(-10, \"year\");\n\t\t} else if (isPageDownShiftCtrl(e)) {\n\t\t\tthis._modifyTimestampBy(10, \"year\");\n\t\t} else if (isHome(e) || isEnd(e)) {\n\t\t\tthis._onHomeOrEnd(isHome(e));\n\t\t} else if (isHomeCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setDate(1); // Set the first day of the month\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tconst tempDate = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(tempDate.getMonth() + 1);\n\t\t\ttempDate.setDate(0); // Set the last day of the month (0th day of next month)\n\t\t\tthis._setTimestamp(tempDate.valueOf() / 1000);\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\t// Even if Space+Shift was pressed, ignore the shift unless in Multiple selection\n\t\tif (isSpace(e) || (isSpaceShift(e) && this.selectionMode !== CalendarSelectionMode.Multiple)) {\n\t\t\tthis._selectDate(e, false);\n\t\t} else if (isSpaceShift(e)) {\n\t\t\tthis._selectWeek();\n\t\t}\n\t}\n\n\t/**\n\t * Click is the same as \"Enter\".\n\t * **Note:** \"Click+Shift\" has the same effect as \"Enter+Shift\".\n\t * @param e\n\t * @private\n\t */\n\t_onclick(e: MouseEvent) {\n\t\tthis._selectDate(e, e.shiftKey);\n\t}\n\n\t/**\n\t * Called upon \"Home\" or \"End\" - moves the focus to the first or last item in the row.\n\t * @param homePressed\n\t * @private\n\t */\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._weeks.forEach(week => {\n\t\t\tconst _week = week as Array<Day>;\n\t\t\tconst dayInThisWeek = _week.findIndex(item => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000);\n\t\t\t\treturn date.getMonth() === this._calendarDate.getMonth() && date.getDate() === this._calendarDate.getDate();\n\t\t\t}) !== -1;\n\t\t\tif (dayInThisWeek) { // The current day is in this week\n\t\t\t\tconst index = homePressed ? 1 : 7; // select the first (if Home) or last (if End) day of the week\n\t\t\t\tthis._setTimestamp(parseInt(_week[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._minDate.getMonth() && this._calendarDate.getYear() === this._minDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn !(this._calendarDate.getMonth() === this._maxDate.getMonth() && this._calendarDate.getYear() === this._maxDate.getYear());\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-1, \"month\", false);\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(1, \"month\", false);\n\t}\n\n\t/**\n\t * Modifies the timestamp by a certain amount of days/months/years.\n\t * @param amount\n\t * @param unit\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number, unit: string, preserveDate?: boolean) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, unit, preserveDate);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value.\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value: number) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis._updateSecondTimestamp();\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * During range selection, when the user is navigating with the keyboard,\n\t * the currently focused day is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\tget _specialCalendarDates() {\n\t\treturn this.specialCalendarDates;\n\t}\n\n\tget shouldHideWeekNumbers() {\n\t\tif (this._primaryCalendarType !== CalendarType.Gregorian) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.hideWeekNumbers;\n\t}\n\n\t_isWeekend(oDate: CalendarDate): boolean {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\n\t\tconst iWeekDay = oDate.getDay(),\n\t\t\tiWeekendStart = localeData.getWeekendStart(),\n\t\t\tiWeekendEnd = localeData.getWeekendEnd();\n\n\t\treturn (iWeekDay >= iWeekendStart && iWeekDay <= iWeekendEnd)\n\t\t\t|| (iWeekendEnd < iWeekendStart && (iWeekDay >= iWeekendStart || iWeekDay <= iWeekendEnd));\n\t}\n\n\t/**\n\t * Pre-computes disabled date range timestamps once before the rendering loop.\n\t * Avoids repeated date string parsing inside the per-cell _isDateEnabled check.\n\t * @private\n\t */\n\t_precomputeDisabledDates(): Array<{ startTimestamp: number, endTimestamp: number }> {\n\t\treturn this.disabledDates.map(range => ({\n\t\t\tstartTimestamp: this._getTimestampFromDateValue(range.startValue),\n\t\t\tendTimestamp: this._getTimestampFromDateValue(range.endValue),\n\t\t}));\n\t}\n\n\t/**\n\t * Checks if a given date is enabled (selectable).\n\t * A date is considered disabled if:\n\t * - It falls outside the min/max date range defined by the component\n\t * - It matches a single disabled date\n\t * - It falls within a disabled date range (exclusive of start and end dates)\n\t * @param date - The date to check\n\t * @param minDate - Pre-resolved min calendar date\n\t * @param maxDate - Pre-resolved max calendar date\n\t * @param precomputedDisabledDates - Pre-parsed disabled date range timestamps\n\t * @returns `true` if the date is enabled (selectable), `false` if disabled\n\t * @private\n\t */\n\t_isDateEnabled(date: CalendarDate, minDate?: CalendarDate, maxDate?: CalendarDate, precomputedDisabledDates?: Array<{ startTimestamp: number, endTimestamp: number }>): boolean {\n\t\tconst resolvedMin = minDate ?? this._minDate;\n\t\tconst resolvedMax = maxDate ?? this._maxDate;\n\n\t\tif ((resolvedMin && date.isBefore(resolvedMin))\n\t\t\t|| (resolvedMax && date.isAfter(resolvedMax))) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst dateTimestamp = date.valueOf() / 1000;\n\t\tconst disabledRanges = precomputedDisabledDates ?? this.disabledDates.map(range => ({\n\t\t\tstartTimestamp: this._getTimestampFromDateValue(range.startValue),\n\t\t\tendTimestamp: this._getTimestampFromDateValue(range.endValue),\n\t\t}));\n\n\t\treturn !disabledRanges.some(({ startTimestamp, endTimestamp }) => {\n\t\t\tif (endTimestamp) {\n\t\t\t\treturn dateTimestamp > startTimestamp && dateTimestamp < endTimestamp;\n\t\t\t}\n\n\t\t\treturn startTimestamp && dateTimestamp === startTimestamp;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a date value string to a timestamp.\n\t * @param dateValue - Date string to convert\n\t * @returns timestamp in seconds, or 0 if invalid\n\t * @private\n\t */\n\t_getTimestampFromDateValue(dateValue?: string): number {\n\t\tif (!dateValue) {\n\t\t\treturn 0;\n\t\t}\n\n\t\ttry {\n\t\t\tconst jsDate = this.getValueFormat().parse(dateValue) as Date;\n\t\t\tconst calendarDate = CalendarDate.fromLocalJSDate(\n\t\t\t\tjsDate,\n\t\t\t\tthis._primaryCalendarType,\n\t\t\t);\n\t\t\treturn calendarDate.valueOf() / 1000;\n\t\t} catch {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\t_isDayPressed(target: HTMLElement): boolean {\n\t\tconst targetParent = target.parentNode as HTMLElement;\n\t\treturn (target.className.indexOf(\"ui5-dp-item\") > -1) || (targetParent && targetParent.classList && targetParent.classList.contains(\"ui5-dp-item\"));\n\t}\n\n\t_isDefaultCalendarLegendType(type: string): boolean {\n\t\treturn [\"NonWorking\", \"Working\", \"Today\", \"Selected\", \"None\"].includes(type);\n\t}\n\n\t_getSecondaryDay(tempDate: CalendarDate): CalendarDate {\n\t\treturn new CalendarDate(tempDate, this.secondaryCalendarType);\n\t}\n\n\t_getFirstDay(): CalendarDate {\n\t\tlet daysFromPreviousMonth;\n\n\t\tconst firstDayOfWeek = this._getFirstDayOfWeek();\n\n\t\t// determine weekday of first day in month\n\t\tconst firstDay = new CalendarDate(this._calendarDate, this._primaryCalendarType);\n\t\tfirstDay.setDate(1);\n\n\t\tdaysFromPreviousMonth = firstDay.getDay() - firstDayOfWeek;\n\n\t\tif (daysFromPreviousMonth < 0) {\n\t\t\tdaysFromPreviousMonth = 7 + daysFromPreviousMonth;\n\t\t}\n\n\t\tif (daysFromPreviousMonth > 0) {\n\t\t\tfirstDay.setDate(1 - daysFromPreviousMonth);\n\t\t}\n\n\t\treturn firstDay;\n\t}\n\n\t_getFirstDayOfWeek(): number {\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tlet firstDayOfWeek;\n\t\tconst configurationFirstDayOfWeek = getFirstDayOfWeek();\n\n\t\tif (configurationFirstDayOfWeek !== undefined) {\n\t\t\tfirstDayOfWeek = configurationFirstDayOfWeek;\n\t\t} else {\n\t\t\tfirstDayOfWeek = localeData.getFirstDayOfWeek();\n\t\t}\n\n\t\tconst result = CalendarUtils.getWeekConfigurationValues(this.calendarWeekNumbering);\n\n\t\tif (result?.firstDayOfWeek !== undefined && this.calendarWeekNumbering !== \"Default\") {\n\t\t\treturn result.firstDayOfWeek;\n\t\t}\n\n\t\treturn firstDayOfWeek;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\tdisplay: this._hidden ? \"none\" : \"flex\",\n\t\t\t\t\"justify-content\": \"center\",\n\t\t\t},\n\t\t\tmain: {\n\t\t\t\twidth: \"100%\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaRoledescription() {\n\t\treturn this.hasSecondaryCalendarType\n\t\t\t? `${this._primaryCalendarType} calendar with secondary ${this.secondaryCalendarType as string} calendar`\n\t\t\t: `${this._primaryCalendarType} calendar`;\n\t}\n}\n\nDayPicker.define();\n\nexport default DayPicker;\nexport type {\n\tDayPickerNavigateEventDetail,\n\tDayPickerChangeEventDetail,\n};\n"]}
package/dist/Form.d.ts CHANGED
@@ -63,10 +63,10 @@ type ItemsInfo = {
63
63
  *
64
64
  * The Form component reacts and changes its layout on predefined breakpoints.
65
65
  * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:
66
- * - **S** (< 600px) – 1 column is recommended (default: 1)
67
- * - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)
68
- * - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)
69
- * - **XL** (> 1439px) – up to 6 columns are recommended (default: 3)
66
+ * - **S** (0 - 599px) – 1 column is recommended (default: 1)
67
+ * - **M** (600px - 1023px) – up to 2 columns are recommended (default: 1)
68
+ * - **L** (1024px - 1439px) - up to 3 columns are recommended (default: 2)
69
+ * - **XL** (>= 1440px) – up to 6 columns are recommended (default: 3)
70
70
  *
71
71
  * To change the layout, use the `layout` property - f.e. layout="S1 M2 L3 XL6".
72
72
  *