@ng-nest/ui 17.0.12 → 18.0.1

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 (923) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.component.d.ts +0 -2
  3. package/affix/affix.property.d.ts +12 -7
  4. package/alert/alert.component.d.ts +12 -11
  5. package/alert/alert.property.d.ts +36 -35
  6. package/anchor/anchor.component.d.ts +15 -18
  7. package/anchor/anchor.property.d.ts +17 -8
  8. package/api/api.component.d.ts +2 -7
  9. package/auto-complete/auto-complete-portal.component.d.ts +20 -25
  10. package/auto-complete/auto-complete.component.d.ts +17 -34
  11. package/auto-complete/auto-complete.property.d.ts +282 -20
  12. package/avatar/avatar.component.d.ts +29 -19
  13. package/avatar/avatar.property.d.ts +78 -12
  14. package/back-top/back-top.component.d.ts +12 -17
  15. package/back-top/back-top.property.d.ts +12 -8
  16. package/badge/badge.component.d.ts +9 -16
  17. package/badge/badge.property.d.ts +95 -13
  18. package/base-form/base-form.component.d.ts +53 -26
  19. package/base-form/base-form.module.d.ts +1 -2
  20. package/base-form/base-form.property.d.ts +173 -45
  21. package/button/button.component.d.ts +16 -14
  22. package/button/button.property.d.ts +242 -100
  23. package/button/buttons.component.d.ts +8 -10
  24. package/calendar/calendar.component.d.ts +41 -27
  25. package/calendar/calendar.property.d.ts +69 -10
  26. package/card/card.component.d.ts +4 -6
  27. package/card/card.property.d.ts +50 -9
  28. package/carousel/carousel-panel.component.d.ts +15 -14
  29. package/carousel/carousel.component.d.ts +18 -19
  30. package/carousel/carousel.property.d.ts +168 -28
  31. package/cascade/cascade-portal.component.d.ts +28 -28
  32. package/cascade/cascade.component.d.ts +24 -30
  33. package/cascade/cascade.property.d.ts +292 -20
  34. package/checkbox/checkbox.component.d.ts +17 -17
  35. package/checkbox/checkbox.property.d.ts +274 -35
  36. package/collapse/collapse-panel.component.d.ts +5 -2
  37. package/collapse/collapse.component.d.ts +3 -7
  38. package/collapse/collapse.property.d.ts +113 -20
  39. package/color/color.component.d.ts +4 -9
  40. package/color/color.property.d.ts +36 -8
  41. package/color-picker/color-picker-portal.component.d.ts +40 -52
  42. package/color-picker/color-picker.component.d.ts +19 -28
  43. package/color-picker/color-picker.property.d.ts +260 -10
  44. package/comment/comment-reply.component.d.ts +1 -8
  45. package/comment/comment.component.d.ts +4 -14
  46. package/comment/comment.property.d.ts +21 -15
  47. package/container/aside.component.d.ts +3 -8
  48. package/container/container.component.d.ts +5 -9
  49. package/container/container.property.d.ts +33 -19
  50. package/container/footer.component.d.ts +2 -5
  51. package/container/header.component.d.ts +2 -5
  52. package/container/main.component.d.ts +2 -7
  53. package/core/animation/badge.d.ts +8 -0
  54. package/core/animation/connect.d.ts +8 -1
  55. package/core/animation/consts.d.ts +4 -0
  56. package/core/animation/drop.d.ts +4 -0
  57. package/core/animation/fade.d.ts +4 -0
  58. package/core/animation/move.d.ts +4 -0
  59. package/core/animation/opacity.d.ts +4 -0
  60. package/core/animation/slide.d.ts +4 -1
  61. package/core/config/config.d.ts +174 -108
  62. package/core/config/config.service.d.ts +5 -5
  63. package/core/config/index.d.ts +1 -0
  64. package/core/functions/chunk.d.ts +12 -1
  65. package/core/functions/clone-deep.d.ts +16 -0
  66. package/core/functions/convert.d.ts +77 -4
  67. package/core/functions/csspx.d.ts +5 -0
  68. package/core/functions/date.d.ts +59 -3
  69. package/core/functions/drop.d.ts +13 -1
  70. package/core/functions/flex.d.ts +4 -0
  71. package/core/functions/group-by.d.ts +5 -1
  72. package/core/functions/guid.d.ts +2 -1
  73. package/core/functions/has-in.d.ts +4 -0
  74. package/core/functions/order-by.d.ts +5 -1
  75. package/core/functions/parent-path.d.ts +8 -0
  76. package/core/functions/property.d.ts +12 -6
  77. package/core/functions/public-api.d.ts +1 -0
  78. package/core/functions/remove.d.ts +5 -1
  79. package/core/functions/resize.d.ts +13 -1
  80. package/core/interfaces/data.type.d.ts +172 -3
  81. package/core/interfaces/identify.type.d.ts +60 -0
  82. package/core/interfaces/layout.type.d.ts +88 -37
  83. package/core/interfaces/result-list.type.d.ts +91 -3
  84. package/core/services/http.service.d.ts +0 -22
  85. package/core/services/repository.service.d.ts +1 -1
  86. package/core/services/reuse-strategy.service.d.ts +0 -22
  87. package/core/services/storage.service.d.ts +0 -21
  88. package/core/theme/theme.d.ts +45 -1
  89. package/core/theme/theme.service.d.ts +46 -11
  90. package/core/util/animation.d.ts +1 -1
  91. package/core/util/camel-to-kebab.d.ts +13 -0
  92. package/core/util/check.d.ts +10 -2
  93. package/core/util/computed-style.d.ts +8 -0
  94. package/core/util/host.d.ts +3 -2
  95. package/core/util/html.d.ts +3 -2
  96. package/core/util/kebab-to-camel.d.ts +13 -0
  97. package/core/util/log.d.ts +10 -2
  98. package/core/util/option.d.ts +3 -4
  99. package/core/util/public-api.d.ts +2 -0
  100. package/crumb/crumb.component.d.ts +1 -10
  101. package/crumb/crumb.property.d.ts +12 -8
  102. package/date-picker/date-picker-portal.component.d.ts +80 -33
  103. package/date-picker/date-picker.component.d.ts +74 -32
  104. package/date-picker/date-picker.property.d.ts +662 -214
  105. package/date-picker/date-range-portal.component.d.ts +102 -49
  106. package/date-picker/date-range.component.d.ts +87 -43
  107. package/date-picker/picker-date.component.d.ts +63 -17
  108. package/date-picker/picker-month.component.d.ts +59 -13
  109. package/date-picker/picker-quarter.component.d.ts +61 -15
  110. package/date-picker/picker-year.component.d.ts +8 -11
  111. package/description/description-item.component.d.ts +1 -1
  112. package/description/description.component.d.ts +6 -10
  113. package/description/description.property.d.ts +135 -16
  114. package/dialog/dialog-portal.component.d.ts +5 -6
  115. package/dialog/dialog-portal.directives.d.ts +1 -1
  116. package/dialog/dialog.component.d.ts +30 -23
  117. package/dialog/dialog.property.d.ts +77 -134
  118. package/doc/doc.component.d.ts +2 -5
  119. package/drag/drag.directive.d.ts +1 -1
  120. package/drag/drag.property.d.ts +4 -5
  121. package/drawer/drawer-container.component.d.ts +1 -1
  122. package/drawer/drawer-portal.component.d.ts +1 -1
  123. package/drawer/drawer.component.d.ts +15 -14
  124. package/drawer/drawer.property.d.ts +26 -18
  125. package/dropdown/dropdown-portal.component.d.ts +36 -45
  126. package/dropdown/dropdown.component.d.ts +17 -21
  127. package/dropdown/dropdown.property.d.ts +24 -21
  128. package/empty/empty.component.d.ts +0 -7
  129. package/empty/empty.property.d.ts +27 -4
  130. package/esm2022/affix/affix.component.mjs +6 -11
  131. package/esm2022/affix/affix.module.mjs +5 -5
  132. package/esm2022/affix/affix.property.mjs +22 -20
  133. package/esm2022/alert/alert.component.mjs +39 -44
  134. package/esm2022/alert/alert.module.mjs +5 -5
  135. package/esm2022/alert/alert.property.mjs +102 -107
  136. package/esm2022/anchor/anchor-inner.component.mjs +4 -4
  137. package/esm2022/anchor/anchor.component.mjs +73 -95
  138. package/esm2022/anchor/anchor.module.mjs +5 -5
  139. package/esm2022/anchor/anchor.property.mjs +45 -35
  140. package/esm2022/api/api.component.mjs +11 -14
  141. package/esm2022/api/api.module.mjs +5 -5
  142. package/esm2022/auto-complete/auto-complete-portal.component.mjs +36 -47
  143. package/esm2022/auto-complete/auto-complete.component.mjs +122 -162
  144. package/esm2022/auto-complete/auto-complete.module.mjs +5 -5
  145. package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
  146. package/esm2022/avatar/avatar-group.component.mjs +4 -4
  147. package/esm2022/avatar/avatar.component.mjs +75 -81
  148. package/esm2022/avatar/avatar.module.mjs +5 -5
  149. package/esm2022/avatar/avatar.property.mjs +116 -45
  150. package/esm2022/back-top/back-top.component.mjs +57 -73
  151. package/esm2022/back-top/back-top.module.mjs +5 -5
  152. package/esm2022/back-top/back-top.property.mjs +37 -29
  153. package/esm2022/badge/badge.component.mjs +51 -59
  154. package/esm2022/badge/badge.module.mjs +5 -5
  155. package/esm2022/badge/badge.property.mjs +111 -38
  156. package/esm2022/base-form/base-form.component.mjs +89 -81
  157. package/esm2022/base-form/base-form.module.mjs +7 -8
  158. package/esm2022/base-form/base-form.property.mjs +200 -89
  159. package/esm2022/button/button.component.mjs +50 -59
  160. package/esm2022/button/button.module.mjs +5 -5
  161. package/esm2022/button/button.property.mjs +293 -98
  162. package/esm2022/button/buttons.component.mjs +35 -21
  163. package/esm2022/calendar/calendar.component.mjs +56 -84
  164. package/esm2022/calendar/calendar.module.mjs +5 -5
  165. package/esm2022/calendar/calendar.property.mjs +78 -24
  166. package/esm2022/card/card.component.mjs +10 -14
  167. package/esm2022/card/card.module.mjs +5 -5
  168. package/esm2022/card/card.property.mjs +57 -22
  169. package/esm2022/carousel/carousel-panel.component.mjs +98 -76
  170. package/esm2022/carousel/carousel.component.mjs +55 -65
  171. package/esm2022/carousel/carousel.module.mjs +5 -5
  172. package/esm2022/carousel/carousel.property.mjs +215 -85
  173. package/esm2022/cascade/cascade-portal.component.mjs +77 -69
  174. package/esm2022/cascade/cascade.component.mjs +107 -135
  175. package/esm2022/cascade/cascade.module.mjs +5 -5
  176. package/esm2022/cascade/cascade.property.mjs +137 -48
  177. package/esm2022/checkbox/checkbox.component.mjs +68 -83
  178. package/esm2022/checkbox/checkbox.module.mjs +5 -5
  179. package/esm2022/checkbox/checkbox.property.mjs +136 -73
  180. package/esm2022/collapse/collapse-panel.component.mjs +31 -21
  181. package/esm2022/collapse/collapse.component.mjs +16 -21
  182. package/esm2022/collapse/collapse.module.mjs +5 -5
  183. package/esm2022/collapse/collapse.property.mjs +156 -66
  184. package/esm2022/color/color.component.mjs +25 -26
  185. package/esm2022/color/color.module.mjs +5 -5
  186. package/esm2022/color/color.property.mjs +47 -27
  187. package/esm2022/color-picker/color-picker-portal.component.mjs +120 -130
  188. package/esm2022/color-picker/color-picker.component.mjs +76 -117
  189. package/esm2022/color-picker/color-picker.module.mjs +5 -5
  190. package/esm2022/color-picker/color-picker.property.mjs +123 -27
  191. package/esm2022/comment/comment-reply.component.mjs +9 -24
  192. package/esm2022/comment/comment.component.mjs +11 -40
  193. package/esm2022/comment/comment.module.mjs +5 -5
  194. package/esm2022/comment/comment.property.mjs +27 -50
  195. package/esm2022/container/aside.component.mjs +12 -15
  196. package/esm2022/container/container.component.mjs +21 -24
  197. package/esm2022/container/container.module.mjs +5 -5
  198. package/esm2022/container/container.property.mjs +55 -51
  199. package/esm2022/container/footer.component.mjs +14 -16
  200. package/esm2022/container/header.component.mjs +14 -16
  201. package/esm2022/container/main.component.mjs +10 -13
  202. package/esm2022/core/animation/badge.mjs +17 -3
  203. package/esm2022/core/animation/connect.mjs +17 -99
  204. package/esm2022/core/animation/consts.mjs +5 -1
  205. package/esm2022/core/animation/drop.mjs +5 -1
  206. package/esm2022/core/animation/fade.mjs +13 -3
  207. package/esm2022/core/animation/move.mjs +5 -1
  208. package/esm2022/core/animation/opacity.mjs +5 -1
  209. package/esm2022/core/animation/slide.mjs +5 -23
  210. package/esm2022/core/config/config.mjs +1 -1
  211. package/esm2022/core/config/config.service.mjs +11 -59
  212. package/esm2022/core/config/index.mjs +2 -0
  213. package/esm2022/core/functions/chunk.mjs +12 -1
  214. package/esm2022/core/functions/clone-deep.mjs +17 -1
  215. package/esm2022/core/functions/convert.mjs +110 -13
  216. package/esm2022/core/functions/csspx.mjs +17 -0
  217. package/esm2022/core/functions/date.mjs +80 -4
  218. package/esm2022/core/functions/drop.mjs +13 -1
  219. package/esm2022/core/functions/flex.mjs +5 -1
  220. package/esm2022/core/functions/group-by.mjs +5 -1
  221. package/esm2022/core/functions/guid.mjs +3 -2
  222. package/esm2022/core/functions/has-in.mjs +5 -1
  223. package/esm2022/core/functions/order-by.mjs +5 -1
  224. package/esm2022/core/functions/parent-path.mjs +9 -1
  225. package/esm2022/core/functions/property.mjs +16 -8
  226. package/esm2022/core/functions/public-api.mjs +2 -1
  227. package/esm2022/core/functions/remove.mjs +5 -1
  228. package/esm2022/core/functions/resize.mjs +7 -5
  229. package/esm2022/core/interfaces/data.type.mjs +97 -8
  230. package/esm2022/core/interfaces/identify.type.mjs +5 -2
  231. package/esm2022/core/interfaces/layout.type.mjs +1 -1
  232. package/esm2022/core/interfaces/result-list.type.mjs +1 -1
  233. package/esm2022/core/services/http.service.mjs +4 -33
  234. package/esm2022/core/services/preloading-strategy.service.mjs +4 -6
  235. package/esm2022/core/services/repository.service.mjs +1 -1
  236. package/esm2022/core/services/reuse-strategy.service.mjs +1 -26
  237. package/esm2022/core/services/storage.service.mjs +4 -26
  238. package/esm2022/core/theme/theme.mjs +55 -11
  239. package/esm2022/core/theme/theme.service.mjs +92 -20
  240. package/esm2022/core/util/animation.mjs +2 -23
  241. package/esm2022/core/util/camel-to-kebab.mjs +16 -0
  242. package/esm2022/core/util/check.mjs +11 -3
  243. package/esm2022/core/util/computed-style.mjs +9 -1
  244. package/esm2022/core/util/host.mjs +4 -3
  245. package/esm2022/core/util/html.mjs +5 -4
  246. package/esm2022/core/util/kebab-to-camel.mjs +16 -0
  247. package/esm2022/core/util/log.mjs +11 -3
  248. package/esm2022/core/util/option.mjs +4 -5
  249. package/esm2022/core/util/public-api.mjs +3 -1
  250. package/esm2022/crumb/crumb.component.mjs +6 -29
  251. package/esm2022/crumb/crumb.module.mjs +5 -5
  252. package/esm2022/crumb/crumb.property.mjs +21 -26
  253. package/esm2022/date-picker/date-picker-portal.component.mjs +86 -102
  254. package/esm2022/date-picker/date-picker.component.mjs +157 -191
  255. package/esm2022/date-picker/date-picker.module.mjs +5 -5
  256. package/esm2022/date-picker/date-picker.property.mjs +440 -462
  257. package/esm2022/date-picker/date-quarter.pipe.mjs +4 -4
  258. package/esm2022/date-picker/date-range-portal.component.mjs +172 -186
  259. package/esm2022/date-picker/date-range.component.mjs +224 -266
  260. package/esm2022/date-picker/picker-date.component.mjs +150 -150
  261. package/esm2022/date-picker/picker-month.component.mjs +115 -118
  262. package/esm2022/date-picker/picker-quarter.component.mjs +120 -119
  263. package/esm2022/date-picker/picker-year.component.mjs +121 -108
  264. package/esm2022/description/description-item.component.mjs +12 -11
  265. package/esm2022/description/description.component.mjs +33 -48
  266. package/esm2022/description/description.module.mjs +5 -5
  267. package/esm2022/description/description.property.mjs +175 -52
  268. package/esm2022/dialog/dialog-container.component.mjs +4 -4
  269. package/esm2022/dialog/dialog-portal.component.mjs +29 -35
  270. package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
  271. package/esm2022/dialog/dialog-ref.mjs +3 -3
  272. package/esm2022/dialog/dialog.component.mjs +119 -133
  273. package/esm2022/dialog/dialog.module.mjs +5 -5
  274. package/esm2022/dialog/dialog.property.mjs +149 -139
  275. package/esm2022/dialog/dialog.service.mjs +8 -8
  276. package/esm2022/doc/doc.component.mjs +11 -12
  277. package/esm2022/doc/doc.module.mjs +5 -5
  278. package/esm2022/drag/drag.directive.mjs +8 -21
  279. package/esm2022/drag/drag.module.mjs +5 -5
  280. package/esm2022/drag/drag.property.mjs +10 -16
  281. package/esm2022/drawer/drawer-container.component.mjs +9 -9
  282. package/esm2022/drawer/drawer-portal.component.mjs +11 -13
  283. package/esm2022/drawer/drawer-portal.directives.mjs +10 -10
  284. package/esm2022/drawer/drawer.component.mjs +40 -59
  285. package/esm2022/drawer/drawer.module.mjs +5 -5
  286. package/esm2022/drawer/drawer.property.mjs +47 -54
  287. package/esm2022/drawer/drawer.service.mjs +6 -6
  288. package/esm2022/dropdown/dropdown-portal.component.mjs +90 -91
  289. package/esm2022/dropdown/dropdown.component.mjs +75 -91
  290. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  291. package/esm2022/dropdown/dropdown.property.mjs +62 -59
  292. package/esm2022/empty/empty.component.mjs +6 -26
  293. package/esm2022/empty/empty.module.mjs +5 -5
  294. package/esm2022/empty/empty.property.mjs +41 -20
  295. package/esm2022/examples/examples.component.mjs +11 -12
  296. package/esm2022/examples/examples.module.mjs +5 -5
  297. package/esm2022/find/find.component.mjs +188 -232
  298. package/esm2022/find/find.module.mjs +5 -5
  299. package/esm2022/find/find.property.mjs +234 -193
  300. package/esm2022/form/control.component.mjs +136 -114
  301. package/esm2022/form/form.component.mjs +28 -36
  302. package/esm2022/form/form.module.mjs +5 -5
  303. package/esm2022/form/form.property.mjs +57 -55
  304. package/esm2022/highlight/highlight.component.mjs +54 -59
  305. package/esm2022/highlight/highlight.module.mjs +5 -5
  306. package/esm2022/highlight/highlight.property.mjs +25 -21
  307. package/esm2022/highlight/highlight.service.mjs +17 -0
  308. package/esm2022/highlight/public-api.mjs +2 -1
  309. package/esm2022/i18n/i18n.directive.mjs +17 -31
  310. package/esm2022/i18n/i18n.module.mjs +5 -5
  311. package/esm2022/i18n/i18n.pipe.mjs +4 -4
  312. package/esm2022/i18n/i18n.property.mjs +2 -2
  313. package/esm2022/i18n/i18n.service.mjs +4 -4
  314. package/esm2022/i18n/languages/ar_EG.mjs +122 -77
  315. package/esm2022/i18n/languages/bg_BG.mjs +135 -87
  316. package/esm2022/i18n/languages/ca_ES.mjs +130 -82
  317. package/esm2022/i18n/languages/cs_CZ.mjs +127 -79
  318. package/esm2022/i18n/languages/da_DK.mjs +129 -81
  319. package/esm2022/i18n/languages/de_DE.mjs +125 -77
  320. package/esm2022/i18n/languages/el_GR.mjs +132 -84
  321. package/esm2022/i18n/languages/en_GB.mjs +5 -2
  322. package/esm2022/i18n/languages/en_US.mjs +5 -2
  323. package/esm2022/i18n/languages/es_ES.mjs +131 -83
  324. package/esm2022/i18n/languages/et_EE.mjs +130 -82
  325. package/esm2022/i18n/languages/fa_IR.mjs +109 -61
  326. package/esm2022/i18n/languages/fi_FI.mjs +134 -86
  327. package/esm2022/i18n/languages/fr_BE.mjs +128 -80
  328. package/esm2022/i18n/languages/fr_FR.mjs +127 -79
  329. package/esm2022/i18n/languages/he_IL.mjs +119 -74
  330. package/esm2022/i18n/languages/hi_IN.mjs +104 -56
  331. package/esm2022/i18n/languages/hr_HR.mjs +133 -85
  332. package/esm2022/i18n/languages/hu_HU.mjs +132 -84
  333. package/esm2022/i18n/languages/hy_AM.mjs +133 -85
  334. package/esm2022/i18n/languages/id_ID.mjs +119 -71
  335. package/esm2022/i18n/languages/is_IS.mjs +125 -77
  336. package/esm2022/i18n/languages/it_IT.mjs +127 -79
  337. package/esm2022/i18n/languages/ja_JP.mjs +95 -47
  338. package/esm2022/i18n/languages/ka_GE.mjs +106 -58
  339. package/esm2022/i18n/languages/kn_IN.mjs +110 -62
  340. package/esm2022/i18n/languages/ko_KR.mjs +126 -70
  341. package/esm2022/i18n/languages/ku_IQ.mjs +117 -85
  342. package/esm2022/i18n/languages/lv_LV.mjs +128 -72
  343. package/esm2022/i18n/languages/mn_MN.mjs +138 -82
  344. package/esm2022/i18n/languages/ms_MY.mjs +124 -68
  345. package/esm2022/i18n/languages/nb_NO.mjs +133 -77
  346. package/esm2022/i18n/languages/ne_NP.mjs +117 -61
  347. package/esm2022/i18n/languages/nl_BE.mjs +134 -78
  348. package/esm2022/i18n/languages/nl_NL.mjs +134 -78
  349. package/esm2022/i18n/languages/pl_PL.mjs +132 -76
  350. package/esm2022/i18n/languages/pt_BR.mjs +133 -77
  351. package/esm2022/i18n/languages/pt_PT.mjs +133 -77
  352. package/esm2022/i18n/languages/ro_RO.mjs +130 -74
  353. package/esm2022/i18n/languages/ru_RU.mjs +131 -75
  354. package/esm2022/i18n/languages/sk_SK.mjs +130 -83
  355. package/esm2022/i18n/languages/sl_SI.mjs +121 -73
  356. package/esm2022/i18n/languages/sr_RS.mjs +138 -90
  357. package/esm2022/i18n/languages/sv_SE.mjs +132 -84
  358. package/esm2022/i18n/languages/ta_IN.mjs +117 -61
  359. package/esm2022/i18n/languages/th_TH.mjs +99 -43
  360. package/esm2022/i18n/languages/tr_TR.mjs +126 -70
  361. package/esm2022/i18n/languages/uk_UA.mjs +124 -68
  362. package/esm2022/i18n/languages/vi_VN.mjs +133 -77
  363. package/esm2022/i18n/languages/zh_CN.mjs +5 -2
  364. package/esm2022/i18n/languages/zh_TW.mjs +5 -2
  365. package/esm2022/icon/icon.component.mjs +48 -77
  366. package/esm2022/icon/icon.module.mjs +5 -5
  367. package/esm2022/icon/icon.property.mjs +52 -30
  368. package/esm2022/icon/icon.service.mjs +15 -14
  369. package/esm2022/image/image-group.component.mjs +15 -15
  370. package/esm2022/image/image-preview.component.mjs +47 -46
  371. package/esm2022/image/image.component.mjs +34 -53
  372. package/esm2022/image/image.module.mjs +5 -5
  373. package/esm2022/image/image.property.mjs +152 -38
  374. package/esm2022/index.mjs +1 -3
  375. package/esm2022/inner/inner.component.mjs +15 -20
  376. package/esm2022/inner/inner.module.mjs +5 -5
  377. package/esm2022/inner/inner.property.mjs +17 -15
  378. package/esm2022/input/input-group.component.mjs +5 -7
  379. package/esm2022/input/input.component.mjs +130 -143
  380. package/esm2022/input/input.module.mjs +5 -5
  381. package/esm2022/input/input.property.mjs +205 -143
  382. package/esm2022/input-number/input-number.component.mjs +68 -86
  383. package/esm2022/input-number/input-number.module.mjs +5 -5
  384. package/esm2022/input-number/input-number.property.mjs +130 -60
  385. package/esm2022/keyword/keyword.directive.mjs +46 -54
  386. package/esm2022/keyword/keyword.module.mjs +5 -5
  387. package/esm2022/keyword/keyword.property.mjs +32 -28
  388. package/esm2022/layout/col.component.mjs +48 -51
  389. package/esm2022/layout/layout.module.mjs +5 -5
  390. package/esm2022/layout/layout.property.mjs +125 -63
  391. package/esm2022/layout/row.component.mjs +36 -27
  392. package/esm2022/link/link.component.mjs +18 -45
  393. package/esm2022/link/link.module.mjs +5 -5
  394. package/esm2022/link/link.property.mjs +101 -41
  395. package/esm2022/list/list-drop-group.directive.mjs +9 -18
  396. package/esm2022/list/list-option.component.mjs +16 -33
  397. package/esm2022/list/list.component.mjs +160 -164
  398. package/esm2022/list/list.module.mjs +5 -5
  399. package/esm2022/list/list.property.mjs +195 -188
  400. package/esm2022/loading/loading.component.mjs +44 -45
  401. package/esm2022/loading/loading.module.mjs +5 -5
  402. package/esm2022/loading/loading.property.mjs +50 -52
  403. package/esm2022/menu/menu-node.component.mjs +21 -21
  404. package/esm2022/menu/menu.component.mjs +57 -76
  405. package/esm2022/menu/menu.module.mjs +5 -5
  406. package/esm2022/menu/menu.property.mjs +56 -73
  407. package/esm2022/message/message.component.mjs +8 -8
  408. package/esm2022/message/message.module.mjs +5 -5
  409. package/esm2022/message/message.property.mjs +1 -1
  410. package/esm2022/message/message.service.mjs +7 -7
  411. package/esm2022/message-box/message-box.component.mjs +5 -5
  412. package/esm2022/message-box/message-box.module.mjs +5 -5
  413. package/esm2022/message-box/message-box.service.mjs +6 -6
  414. package/esm2022/notification/notification.component.mjs +8 -8
  415. package/esm2022/notification/notification.module.mjs +5 -5
  416. package/esm2022/notification/notification.property.mjs +1 -1
  417. package/esm2022/notification/notification.service.mjs +8 -8
  418. package/esm2022/outlet/outlet.directive.mjs +12 -14
  419. package/esm2022/outlet/outlet.module.mjs +5 -5
  420. package/esm2022/outlet/outlet.property.mjs +2 -2
  421. package/esm2022/page-header/page-header.component.mjs +12 -28
  422. package/esm2022/page-header/page-header.module.mjs +5 -5
  423. package/esm2022/page-header/page-header.property.mjs +31 -27
  424. package/esm2022/pagination/pagination.component.mjs +74 -100
  425. package/esm2022/pagination/pagination.module.mjs +5 -5
  426. package/esm2022/pagination/pagination.property.mjs +99 -136
  427. package/esm2022/pattern/pattern.component.mjs +12 -13
  428. package/esm2022/pattern/pattern.module.mjs +5 -5
  429. package/esm2022/pattern/pattern.property.mjs +2 -2
  430. package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
  431. package/esm2022/popconfirm/popconfirm.module.mjs +5 -5
  432. package/esm2022/popconfirm/popconfirm.property.mjs +76 -62
  433. package/esm2022/popover/popover-portal.component.mjs +24 -75
  434. package/esm2022/popover/popover.directive.mjs +70 -86
  435. package/esm2022/popover/popover.module.mjs +5 -5
  436. package/esm2022/popover/popover.property.mjs +71 -58
  437. package/esm2022/portal/portal.module.mjs +5 -5
  438. package/esm2022/portal/portal.property.mjs +3 -3
  439. package/esm2022/portal/portal.service.mjs +4 -4
  440. package/esm2022/progress/progress.component.mjs +173 -167
  441. package/esm2022/progress/progress.module.mjs +5 -5
  442. package/esm2022/progress/progress.property.mjs +67 -71
  443. package/esm2022/radio/radio.component.mjs +45 -61
  444. package/esm2022/radio/radio.module.mjs +5 -5
  445. package/esm2022/radio/radio.property.mjs +139 -66
  446. package/esm2022/rate/rate.component.mjs +61 -79
  447. package/esm2022/rate/rate.module.mjs +5 -5
  448. package/esm2022/rate/rate.property.mjs +121 -29
  449. package/esm2022/resizable/resizable.directive.mjs +30 -45
  450. package/esm2022/resizable/resizable.module.mjs +5 -5
  451. package/esm2022/resizable/resizable.property.mjs +16 -46
  452. package/esm2022/result/result.component.mjs +13 -17
  453. package/esm2022/result/result.module.mjs +5 -5
  454. package/esm2022/result/result.property.mjs +25 -17
  455. package/esm2022/ripple/ripple.directive.mjs +40 -27
  456. package/esm2022/ripple/ripple.module.mjs +5 -5
  457. package/esm2022/ripple/ripple.property.mjs +27 -20
  458. package/esm2022/select/select-portal.component.mjs +52 -67
  459. package/esm2022/select/select.component.mjs +301 -289
  460. package/esm2022/select/select.module.mjs +5 -5
  461. package/esm2022/select/select.property.mjs +195 -102
  462. package/esm2022/skeleton/skeleton.component.mjs +12 -23
  463. package/esm2022/skeleton/skeleton.module.mjs +5 -5
  464. package/esm2022/skeleton/skeleton.property.mjs +31 -28
  465. package/esm2022/slider/slider.component.mjs +103 -149
  466. package/esm2022/slider/slider.module.mjs +5 -5
  467. package/esm2022/slider/slider.property.mjs +60 -79
  468. package/esm2022/slider-select/slider-select.component.mjs +201 -220
  469. package/esm2022/slider-select/slider-select.module.mjs +5 -5
  470. package/esm2022/slider-select/slider-select.property.mjs +143 -70
  471. package/esm2022/statistic/countdown.component.mjs +13 -16
  472. package/esm2022/statistic/statistic.component.mjs +23 -21
  473. package/esm2022/statistic/statistic.module.mjs +5 -5
  474. package/esm2022/statistic/statistic.property.mjs +68 -34
  475. package/esm2022/steps/steps.component.mjs +33 -63
  476. package/esm2022/steps/steps.module.mjs +5 -5
  477. package/esm2022/steps/steps.property.mjs +28 -39
  478. package/esm2022/switch/switch.component.mjs +22 -37
  479. package/esm2022/switch/switch.module.mjs +5 -5
  480. package/esm2022/switch/switch.property.mjs +122 -32
  481. package/esm2022/table/table-body.component.mjs +134 -139
  482. package/esm2022/table/table-foot.component.mjs +15 -18
  483. package/esm2022/table/table-head.component.mjs +60 -91
  484. package/esm2022/table/table.component.mjs +192 -222
  485. package/esm2022/table/table.module.mjs +5 -5
  486. package/esm2022/table/table.property.mjs +396 -341
  487. package/esm2022/tabs/tab-content.component.mjs +13 -16
  488. package/esm2022/tabs/tab-link.directive.mjs +7 -7
  489. package/esm2022/tabs/tab.component.mjs +9 -17
  490. package/esm2022/tabs/tabs.component.mjs +83 -135
  491. package/esm2022/tabs/tabs.module.mjs +5 -5
  492. package/esm2022/tabs/tabs.property.mjs +80 -91
  493. package/esm2022/tag/tag.component.mjs +19 -33
  494. package/esm2022/tag/tag.module.mjs +5 -5
  495. package/esm2022/tag/tag.property.mjs +44 -68
  496. package/esm2022/text-retract/text-retract.component.mjs +29 -46
  497. package/esm2022/text-retract/text-retract.module.mjs +5 -5
  498. package/esm2022/text-retract/text-retract.property.mjs +22 -18
  499. package/esm2022/textarea/textarea.component.mjs +49 -79
  500. package/esm2022/textarea/textarea.module.mjs +5 -5
  501. package/esm2022/textarea/textarea.property.mjs +124 -47
  502. package/esm2022/theme/theme.component.mjs +86 -81
  503. package/esm2022/theme/theme.module.mjs +5 -5
  504. package/esm2022/theme/theme.property.mjs +35 -46
  505. package/esm2022/time-ago/time-ago.module.mjs +5 -5
  506. package/esm2022/time-ago/time-ago.pipe.mjs +12 -11
  507. package/esm2022/time-ago/time-ago.property.mjs +2 -2
  508. package/esm2022/time-picker/time-picker-frame.component.mjs +173 -188
  509. package/esm2022/time-picker/time-picker-portal.component.mjs +35 -42
  510. package/esm2022/time-picker/time-picker.component.mjs +139 -170
  511. package/esm2022/time-picker/time-picker.module.mjs +5 -5
  512. package/esm2022/time-picker/time-picker.property.mjs +158 -70
  513. package/esm2022/time-range/time-range.module.mjs +5 -5
  514. package/esm2022/time-range/time-range.pipe.mjs +10 -10
  515. package/esm2022/time-range/time-range.property.mjs +2 -2
  516. package/esm2022/timeline/timeline.component.mjs +14 -38
  517. package/esm2022/timeline/timeline.module.mjs +5 -5
  518. package/esm2022/timeline/timeline.property.mjs +30 -30
  519. package/esm2022/tooltip/tooltip-portal.component.mjs +51 -65
  520. package/esm2022/tooltip/tooltip.directive.mjs +65 -62
  521. package/esm2022/tooltip/tooltip.module.mjs +5 -5
  522. package/esm2022/tooltip/tooltip.property.mjs +53 -47
  523. package/esm2022/transfer/transfer.component.mjs +225 -184
  524. package/esm2022/transfer/transfer.module.mjs +5 -5
  525. package/esm2022/transfer/transfer.property.mjs +84 -76
  526. package/esm2022/tree/tree-node.component.mjs +142 -132
  527. package/esm2022/tree/tree.component.mjs +236 -232
  528. package/esm2022/tree/tree.module.mjs +5 -5
  529. package/esm2022/tree/tree.property.mjs +228 -226
  530. package/esm2022/tree/tree.service.mjs +4 -4
  531. package/esm2022/tree-file/tree-file.component.mjs +34 -43
  532. package/esm2022/tree-file/tree-file.module.mjs +5 -5
  533. package/esm2022/tree-file/tree-file.property.mjs +45 -56
  534. package/esm2022/tree-select/tree-select-portal.component.mjs +45 -78
  535. package/esm2022/tree-select/tree-select.component.mjs +283 -296
  536. package/esm2022/tree-select/tree-select.module.mjs +5 -5
  537. package/esm2022/tree-select/tree-select.property.mjs +203 -125
  538. package/esm2022/typography/typography.component.mjs +13 -10
  539. package/esm2022/typography/typography.module.mjs +5 -5
  540. package/esm2022/typography/typography.property.mjs +12 -11
  541. package/esm2022/upload/upload-portal.component.mjs +54 -57
  542. package/esm2022/upload/upload.component.mjs +79 -98
  543. package/esm2022/upload/upload.module.mjs +5 -5
  544. package/esm2022/upload/upload.property.mjs +73 -68
  545. package/examples/examples.component.d.ts +2 -5
  546. package/fesm2022/ng-nest-ui-affix.mjs +30 -32
  547. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  548. package/fesm2022/ng-nest-ui-alert.mjs +142 -152
  549. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  550. package/fesm2022/ng-nest-ui-anchor.mjs +121 -133
  551. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  552. package/fesm2022/ng-nest-ui-api.mjs +14 -17
  553. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  554. package/fesm2022/ng-nest-ui-auto-complete.mjs +296 -260
  555. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  556. package/fesm2022/ng-nest-ui-avatar.mjs +195 -130
  557. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  558. package/fesm2022/ng-nest-ui-back-top.mjs +95 -103
  559. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  560. package/fesm2022/ng-nest-ui-badge.mjs +161 -96
  561. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  562. package/fesm2022/ng-nest-ui-base-form.mjs +286 -166
  563. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  564. package/fesm2022/ng-nest-ui-button.mjs +376 -175
  565. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  566. package/fesm2022/ng-nest-ui-calendar.mjs +134 -108
  567. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  568. package/fesm2022/ng-nest-ui-card.mjs +67 -36
  569. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  570. package/fesm2022/ng-nest-ui-carousel.mjs +365 -223
  571. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  572. package/fesm2022/ng-nest-ui-cascade.mjs +318 -249
  573. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  574. package/fesm2022/ng-nest-ui-checkbox.mjs +203 -155
  575. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  576. package/fesm2022/ng-nest-ui-collapse.mjs +202 -106
  577. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  578. package/fesm2022/ng-nest-ui-color-picker.mjs +316 -270
  579. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  580. package/fesm2022/ng-nest-ui-color.mjs +73 -54
  581. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  582. package/fesm2022/ng-nest-ui-comment.mjs +44 -108
  583. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  584. package/fesm2022/ng-nest-ui-container.mjs +119 -123
  585. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  586. package/fesm2022/ng-nest-ui-core.mjs +985 -664
  587. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  588. package/fesm2022/ng-nest-ui-crumb.mjs +28 -55
  589. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  590. package/fesm2022/ng-nest-ui-date-picker.mjs +1552 -1671
  591. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  592. package/fesm2022/ng-nest-ui-description.mjs +218 -109
  593. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  594. package/fesm2022/ng-nest-ui-dialog.mjs +325 -334
  595. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  596. package/fesm2022/ng-nest-ui-doc.mjs +14 -15
  597. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  598. package/fesm2022/ng-nest-ui-drag.mjs +20 -39
  599. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  600. package/fesm2022/ng-nest-ui-drawer.mjs +116 -145
  601. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  602. package/fesm2022/ng-nest-ui-dropdown.mjs +223 -238
  603. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  604. package/fesm2022/ng-nest-ui-empty.mjs +49 -46
  605. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  606. package/fesm2022/ng-nest-ui-examples.mjs +14 -15
  607. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  608. package/fesm2022/ng-nest-ui-find.mjs +422 -425
  609. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  610. package/fesm2022/ng-nest-ui-form.mjs +216 -201
  611. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  612. package/fesm2022/ng-nest-ui-highlight.mjs +93 -81
  613. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  614. package/fesm2022/ng-nest-ui-i18n.mjs +5892 -3516
  615. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  616. package/fesm2022/ng-nest-ui-icon.mjs +114 -120
  617. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  618. package/fesm2022/ng-nest-ui-image.mjs +244 -147
  619. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  620. package/fesm2022/ng-nest-ui-inner.mjs +33 -35
  621. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  622. package/fesm2022/ng-nest-ui-input-number.mjs +198 -146
  623. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  624. package/fesm2022/ng-nest-ui-input.mjs +340 -292
  625. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  626. package/fesm2022/ng-nest-ui-keyword.mjs +78 -82
  627. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  628. package/fesm2022/ng-nest-ui-layout.mjs +205 -140
  629. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  630. package/fesm2022/ng-nest-ui-link.mjs +119 -86
  631. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  632. package/fesm2022/ng-nest-ui-list.mjs +376 -400
  633. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  634. package/fesm2022/ng-nest-ui-loading.mjs +94 -97
  635. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  636. package/fesm2022/ng-nest-ui-menu.mjs +131 -167
  637. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  638. package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
  639. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  640. package/fesm2022/ng-nest-ui-message.mjs +17 -17
  641. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  642. package/fesm2022/ng-nest-ui-notification.mjs +18 -18
  643. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  644. package/fesm2022/ng-nest-ui-outlet.mjs +16 -18
  645. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  646. package/fesm2022/ng-nest-ui-page-header.mjs +44 -55
  647. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  648. package/fesm2022/ng-nest-ui-pagination.mjs +173 -236
  649. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  650. package/fesm2022/ng-nest-ui-pattern.mjs +16 -17
  651. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  652. package/fesm2022/ng-nest-ui-popconfirm.mjs +110 -107
  653. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  654. package/fesm2022/ng-nest-ui-popover.mjs +163 -215
  655. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  656. package/fesm2022/ng-nest-ui-portal.mjs +10 -10
  657. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  658. package/fesm2022/ng-nest-ui-progress.mjs +240 -238
  659. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  660. package/fesm2022/ng-nest-ui-radio.mjs +184 -127
  661. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  662. package/fesm2022/ng-nest-ui-rate.mjs +182 -108
  663. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  664. package/fesm2022/ng-nest-ui-resizable.mjs +46 -91
  665. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  666. package/fesm2022/ng-nest-ui-result.mjs +38 -34
  667. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  668. package/fesm2022/ng-nest-ui-ripple.mjs +68 -48
  669. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  670. package/fesm2022/ng-nest-ui-select.mjs +547 -459
  671. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  672. package/fesm2022/ng-nest-ui-skeleton.mjs +44 -52
  673. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  674. package/fesm2022/ng-nest-ui-slider-select.mjs +344 -290
  675. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  676. package/fesm2022/ng-nest-ui-slider.mjs +163 -228
  677. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  678. package/fesm2022/ng-nest-ui-statistic.mjs +102 -68
  679. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  680. package/fesm2022/ng-nest-ui-steps.mjs +61 -102
  681. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  682. package/fesm2022/ng-nest-ui-switch.mjs +145 -69
  683. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  684. package/fesm2022/ng-nest-ui-table.mjs +784 -800
  685. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  686. package/fesm2022/ng-nest-ui-tabs.mjs +185 -259
  687. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  688. package/fesm2022/ng-nest-ui-tag.mjs +63 -101
  689. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  690. package/fesm2022/ng-nest-ui-text-retract.mjs +52 -64
  691. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  692. package/fesm2022/ng-nest-ui-textarea.mjs +173 -126
  693. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  694. package/fesm2022/ng-nest-ui-theme.mjs +123 -129
  695. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  696. package/fesm2022/ng-nest-ui-time-ago.mjs +16 -15
  697. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  698. package/fesm2022/ng-nest-ui-time-picker.mjs +498 -463
  699. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  700. package/fesm2022/ng-nest-ui-time-range.mjs +14 -14
  701. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  702. package/fesm2022/ng-nest-ui-timeline.mjs +44 -68
  703. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  704. package/fesm2022/ng-nest-ui-tooltip.mjs +168 -170
  705. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  706. package/fesm2022/ng-nest-ui-transfer.mjs +311 -262
  707. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  708. package/fesm2022/ng-nest-ui-tree-file.mjs +80 -99
  709. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  710. package/fesm2022/ng-nest-ui-tree-select.mjs +527 -495
  711. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  712. package/fesm2022/ng-nest-ui-tree.mjs +601 -587
  713. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  714. package/fesm2022/ng-nest-ui-typography.mjs +26 -22
  715. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  716. package/fesm2022/ng-nest-ui-upload.mjs +204 -220
  717. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  718. package/fesm2022/ng-nest-ui.mjs +0 -2
  719. package/fesm2022/ng-nest-ui.mjs.map +1 -1
  720. package/find/find.component.d.ts +30 -34
  721. package/find/find.property.d.ts +321 -108
  722. package/form/control.component.d.ts +37 -18
  723. package/form/form.component.d.ts +8 -10
  724. package/form/form.property.d.ts +111 -27
  725. package/highlight/highlight.component.d.ts +10 -17
  726. package/highlight/highlight.property.d.ts +40 -11
  727. package/highlight/highlight.service.d.ts +8 -0
  728. package/highlight/public-api.d.ts +1 -0
  729. package/i18n/i18n.directive.d.ts +6 -9
  730. package/i18n/i18n.property.d.ts +6 -2
  731. package/i18n/i18n.service.d.ts +2 -2
  732. package/i18n/languages/ar_EG.d.ts +56 -0
  733. package/i18n/languages/bg_BG.d.ts +56 -0
  734. package/i18n/languages/ca_ES.d.ts +56 -0
  735. package/i18n/languages/cs_CZ.d.ts +56 -0
  736. package/i18n/languages/da_DK.d.ts +56 -0
  737. package/i18n/languages/de_DE.d.ts +56 -0
  738. package/i18n/languages/el_GR.d.ts +56 -0
  739. package/i18n/languages/en_GB.d.ts +3 -0
  740. package/i18n/languages/en_US.d.ts +3 -0
  741. package/i18n/languages/es_ES.d.ts +56 -0
  742. package/i18n/languages/et_EE.d.ts +56 -0
  743. package/i18n/languages/fa_IR.d.ts +56 -0
  744. package/i18n/languages/fi_FI.d.ts +56 -0
  745. package/i18n/languages/fr_BE.d.ts +60 -4
  746. package/i18n/languages/fr_FR.d.ts +56 -0
  747. package/i18n/languages/he_IL.d.ts +56 -0
  748. package/i18n/languages/hi_IN.d.ts +56 -0
  749. package/i18n/languages/hr_HR.d.ts +56 -0
  750. package/i18n/languages/hu_HU.d.ts +56 -0
  751. package/i18n/languages/hy_AM.d.ts +56 -0
  752. package/i18n/languages/id_ID.d.ts +56 -0
  753. package/i18n/languages/is_IS.d.ts +56 -0
  754. package/i18n/languages/it_IT.d.ts +56 -0
  755. package/i18n/languages/ja_JP.d.ts +56 -0
  756. package/i18n/languages/ka_GE.d.ts +56 -0
  757. package/i18n/languages/kn_IN.d.ts +56 -0
  758. package/i18n/languages/ko_KR.d.ts +56 -0
  759. package/i18n/languages/ku_IQ.d.ts +32 -0
  760. package/i18n/languages/lv_LV.d.ts +56 -0
  761. package/i18n/languages/mn_MN.d.ts +56 -0
  762. package/i18n/languages/ms_MY.d.ts +56 -0
  763. package/i18n/languages/nb_NO.d.ts +56 -0
  764. package/i18n/languages/ne_NP.d.ts +56 -0
  765. package/i18n/languages/nl_BE.d.ts +56 -0
  766. package/i18n/languages/nl_NL.d.ts +56 -0
  767. package/i18n/languages/pl_PL.d.ts +56 -0
  768. package/i18n/languages/pt_BR.d.ts +56 -0
  769. package/i18n/languages/pt_PT.d.ts +56 -0
  770. package/i18n/languages/ro_RO.d.ts +56 -0
  771. package/i18n/languages/ru_RU.d.ts +56 -0
  772. package/i18n/languages/sk_SK.d.ts +56 -1
  773. package/i18n/languages/sl_SI.d.ts +56 -0
  774. package/i18n/languages/sr_RS.d.ts +56 -0
  775. package/i18n/languages/sv_SE.d.ts +56 -0
  776. package/i18n/languages/ta_IN.d.ts +56 -0
  777. package/i18n/languages/th_TH.d.ts +56 -0
  778. package/i18n/languages/tr_TR.d.ts +56 -0
  779. package/i18n/languages/uk_UA.d.ts +56 -0
  780. package/i18n/languages/vi_VN.d.ts +56 -0
  781. package/i18n/languages/zh_CN.d.ts +3 -0
  782. package/i18n/languages/zh_TW.d.ts +3 -0
  783. package/icon/icon.component.d.ts +8 -14
  784. package/icon/icon.property.d.ts +31 -13
  785. package/icon/icon.service.d.ts +1 -1
  786. package/image/image-group.component.d.ts +1 -3
  787. package/image/image-preview.component.d.ts +11 -13
  788. package/image/image.component.d.ts +10 -11
  789. package/image/image.property.d.ts +117 -16
  790. package/index.d.ts +0 -2
  791. package/inner/inner.component.d.ts +3 -10
  792. package/inner/inner.property.d.ts +8 -4
  793. package/input/input-group.component.d.ts +0 -2
  794. package/input/input.component.d.ts +32 -30
  795. package/input/input.property.d.ts +347 -65
  796. package/input-number/input-number.component.d.ts +14 -19
  797. package/input-number/input-number.property.d.ts +292 -26
  798. package/keyword/keyword.directive.d.ts +4 -12
  799. package/keyword/keyword.property.d.ts +11 -7
  800. package/layout/col.component.d.ts +8 -11
  801. package/layout/layout.property.d.ts +79 -18
  802. package/layout/row.component.d.ts +7 -8
  803. package/link/link.component.d.ts +7 -13
  804. package/link/link.property.d.ts +64 -11
  805. package/list/list-drop-group.directive.d.ts +3 -5
  806. package/list/list-option.component.d.ts +7 -9
  807. package/list/list.component.d.ts +35 -30
  808. package/list/list.property.d.ts +126 -61
  809. package/loading/loading.component.d.ts +12 -12
  810. package/loading/loading.property.d.ts +20 -11
  811. package/menu/menu-node.component.d.ts +11 -8
  812. package/menu/menu.component.d.ts +18 -19
  813. package/menu/menu.property.d.ts +23 -28
  814. package/message/message.property.d.ts +1 -1
  815. package/notification/notification.property.d.ts +1 -1
  816. package/outlet/outlet.directive.d.ts +4 -4
  817. package/outlet/outlet.property.d.ts +1 -1
  818. package/package.json +117 -123
  819. package/page-header/page-header.component.d.ts +4 -8
  820. package/page-header/page-header.property.d.ts +11 -8
  821. package/pagination/pagination.component.d.ts +15 -22
  822. package/pagination/pagination.property.d.ts +34 -66
  823. package/pattern/pattern.component.d.ts +2 -5
  824. package/pattern/pattern.property.d.ts +1 -1
  825. package/popconfirm/popconfirm.component.d.ts +12 -14
  826. package/popconfirm/popconfirm.property.d.ts +32 -19
  827. package/popover/popover-portal.component.d.ts +16 -33
  828. package/popover/popover.directive.d.ts +6 -12
  829. package/popover/popover.property.d.ts +31 -22
  830. package/portal/portal.property.d.ts +4 -4
  831. package/portal/portal.service.d.ts +2 -2
  832. package/progress/progress.component.d.ts +25 -30
  833. package/progress/progress.property.d.ts +29 -20
  834. package/radio/radio.component.d.ts +14 -15
  835. package/radio/radio.property.d.ts +271 -31
  836. package/rate/rate.component.d.ts +14 -17
  837. package/rate/rate.property.d.ts +259 -12
  838. package/resizable/resizable.directive.d.ts +5 -5
  839. package/resizable/resizable.property.d.ts +14 -14
  840. package/result/result.component.d.ts +5 -7
  841. package/result/result.property.d.ts +11 -7
  842. package/ripple/ripple.directive.d.ts +5 -4
  843. package/ripple/ripple.property.d.ts +14 -5
  844. package/select/select-portal.component.d.ts +39 -43
  845. package/select/select.component.d.ts +53 -56
  846. package/select/select.property.d.ts +317 -37
  847. package/skeleton/skeleton.component.d.ts +4 -8
  848. package/skeleton/skeleton.property.d.ts +17 -8
  849. package/slider/slider.component.d.ts +34 -31
  850. package/slider/slider.property.d.ts +26 -22
  851. package/slider-select/slider-select.component.d.ts +38 -38
  852. package/slider-select/slider-select.property.d.ts +302 -28
  853. package/statistic/countdown.component.d.ts +2 -5
  854. package/statistic/statistic.component.d.ts +3 -8
  855. package/statistic/statistic.property.d.ts +44 -13
  856. package/steps/steps.component.d.ts +6 -16
  857. package/steps/steps.property.d.ts +15 -10
  858. package/style/core/index.css +0 -38
  859. package/style/core/index.css.map +1 -1
  860. package/style/core/var.scss +0 -4
  861. package/style/mixins/compatibility.scss +0 -1
  862. package/style/mixins/form.scss +8 -2
  863. package/style/params/index.scss +0 -1
  864. package/style/params/primary.scss +7 -28
  865. package/switch/switch.component.d.ts +9 -10
  866. package/switch/switch.property.d.ts +265 -16
  867. package/table/table-body.component.d.ts +21 -20
  868. package/table/table-foot.component.d.ts +7 -5
  869. package/table/table-head.component.d.ts +17 -19
  870. package/table/table.component.d.ts +62 -50
  871. package/table/table.property.d.ts +180 -178
  872. package/tabs/tab-content.component.d.ts +6 -8
  873. package/tabs/tab.component.d.ts +3 -5
  874. package/tabs/tabs.component.d.ts +17 -24
  875. package/tabs/tabs.property.d.ts +28 -24
  876. package/tag/tag.component.d.ts +7 -8
  877. package/tag/tag.property.d.ts +19 -21
  878. package/text-retract/text-retract.component.d.ts +4 -14
  879. package/text-retract/text-retract.property.d.ts +9 -5
  880. package/textarea/textarea.component.d.ts +17 -20
  881. package/textarea/textarea.property.d.ts +266 -30
  882. package/theme/theme.component.d.ts +24 -13
  883. package/theme/theme.property.d.ts +67 -16
  884. package/time-ago/time-ago.pipe.d.ts +7 -3
  885. package/time-ago/time-ago.property.d.ts +1 -1
  886. package/time-picker/time-picker-frame.component.d.ts +52 -39
  887. package/time-picker/time-picker-portal.component.d.ts +29 -29
  888. package/time-picker/time-picker.component.d.ts +29 -30
  889. package/time-picker/time-picker.property.d.ts +314 -23
  890. package/time-range/time-range.property.d.ts +1 -1
  891. package/timeline/timeline.component.d.ts +5 -13
  892. package/timeline/timeline.property.d.ts +12 -8
  893. package/tooltip/tooltip-portal.component.d.ts +23 -29
  894. package/tooltip/tooltip.directive.d.ts +10 -9
  895. package/tooltip/tooltip.property.d.ts +18 -14
  896. package/transfer/transfer.component.d.ts +23 -20
  897. package/transfer/transfer.property.d.ts +81 -25
  898. package/tree/tree-node.component.d.ts +21 -21
  899. package/tree/tree.component.d.ts +29 -28
  900. package/tree/tree.property.d.ts +129 -79
  901. package/tree-file/tree-file.component.d.ts +7 -9
  902. package/tree-file/tree-file.property.d.ts +40 -16
  903. package/tree-select/tree-select-portal.component.d.ts +38 -49
  904. package/tree-select/tree-select.component.d.ts +50 -53
  905. package/tree-select/tree-select.property.d.ts +328 -39
  906. package/typography/typography.component.d.ts +1 -1
  907. package/typography/typography.property.d.ts +3 -3
  908. package/upload/upload-portal.component.d.ts +14 -14
  909. package/upload/upload.component.d.ts +18 -17
  910. package/upload/upload.property.d.ts +73 -24
  911. package/border/border.component.d.ts +0 -11
  912. package/border/border.module.d.ts +0 -7
  913. package/border/border.property.d.ts +0 -6
  914. package/border/index.d.ts +0 -5
  915. package/border/public-api.d.ts +0 -3
  916. package/esm2022/border/border.component.mjs +0 -21
  917. package/esm2022/border/border.module.mjs +0 -16
  918. package/esm2022/border/border.property.mjs +0 -7
  919. package/esm2022/border/ng-nest-ui-border.mjs +0 -5
  920. package/esm2022/border/public-api.mjs +0 -4
  921. package/fesm2022/ng-nest-ui-border.mjs +0 -47
  922. package/fesm2022/ng-nest-ui-border.mjs.map +0 -1
  923. package/style/params/colors.scss +0 -38
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-date-picker.mjs","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.html","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.html","../../../../lib/ng-nest/ui/date-picker/date-quarter.pipe.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.html","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.html","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-range.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XProperty,\r\n XBoolean,\r\n XCorner,\r\n XWithConfig,\r\n XSize,\r\n XTemplate,\r\n XDataConvert,\r\n XData,\r\n XIdentityProperty\r\n} from '@ng-nest/ui/core';\r\nimport { Input, EventEmitter, Output, TemplateRef, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ selector: `${XDatePickerPrefix}-property`, template: '' })\r\nexport class XDatePickerProperty extends XControlValueAccessor<any> implements XDatePickerOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n @Input() @XDataConvert() preset: XData<XDatePickerPreset> = [];\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n @Input() extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n @Input() disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n * @undocument true\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Choose a type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: XBoolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * DateRange\r\n * @selector x-date-range\r\n * @decorator component\r\n */\r\nexport const XDateRangePrefix = 'x-date-range';\r\nconst X_CONFIG_RANGE_NAME = 'dateRange';\r\n\r\n/**\r\n * DateRange Property\r\n */\r\n@Component({ selector: `${XDateRangePrefix}-property`, template: '' })\r\nexport class XDateRangeProperty extends XControlValueAccessor<any> implements XDateRangeOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_RANGE_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_RANGE_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_RANGE_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_RANGE_NAME, 'medium') size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n @Input() @XDataConvert() preset: XData<XDateRangePreset> = [];\r\n /**\r\n * @zh_CN 日期提示信息\r\n * @en_US Placeholder of date input\r\n */\r\n @Input() override placeholder?: string[];\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n @Input() extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n @Input() disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number[]>();\r\n}\r\n\r\n/**\r\n * DateRange Option\r\n * @undocument true\r\n */\r\nexport interface XDateRangeOption extends XFormOption {\r\n /**\r\n * @zh_CN tab 键控制次序\r\n * @en_US Tab key control order\r\n */\r\n tabindex?: number;\r\n /**\r\n * @zh_CN 日期提示信息\r\n * @en_US Placeholder of date input\r\n */\r\n placeholder?: string[];\r\n}\r\n\r\n/**\r\n * @zh_CN 禁用日期的自定义类型\r\n * @en_US 禁用日期的自定义类型\r\n */\r\nexport type XDatePickerDisabledDate = (current: Date) => boolean;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义类型\r\n * @en_US 禁用时间的自定义类型\r\n */\r\nexport type XDatePickerDisabledTime = (type?: XDatePickerRangType) => XDatePickerDisabledTimeFn;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义函数\r\n * @en_US 禁用时间的自定义函数\r\n */\r\nexport type XDatePickerDisabledTimeFn = {\r\n /**\r\n * @zh_CN 禁用小时的自定义函数\r\n * @en_US 禁用小时的自定义函数\r\n */\r\n disabledHours?: () => number[];\r\n /**\r\n * @zh_CN 禁用分钟的自定义函数\r\n * @en_US 禁用分钟的自定义函数\r\n */\r\n disabledMinutes?: () => number[];\r\n /**\r\n * @zh_CN 禁用秒的自定义函数\r\n * @en_US 禁用秒的自定义函数\r\n */\r\n disabledSeconds?: () => number[];\r\n};\r\n\r\n/**\r\n * @zh_CN 快捷选择按钮\r\n * @en_US Quick selection button\r\n */\r\nexport interface XDatePickerPreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date;\r\n}\r\n\r\n/**\r\n * @zh_CN 快捷范围选择按钮\r\n * @en_US Quick range selection button\r\n */\r\nexport interface XDateRangePreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date[];\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType =\r\n | 'date'\r\n | 'week'\r\n | 'month'\r\n | 'quarter'\r\n | 'year'\r\n | 'date-time'\r\n | 'date-hour'\r\n | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * DateRange Portal\r\n * @selector x-date-range-portal\r\n * @decorator component\r\n */\r\nexport const XDateRangePortalPrefix = 'x-date-range-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ selector: `${XPickerDatePrefix}-property`, template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n @Input() dateTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Last month\r\n */\r\n @Input() @XInputBoolean() lastMonthBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Next month\r\n */\r\n @Input() @XInputBoolean() nextMonthBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围 hover 效果\r\n * @en_US Range hover style\r\n */\r\n @Input() @XInputBoolean() rangeHover: XBoolean = true;\r\n /**\r\n * @zh_CN 范围日期\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示日期事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围日期 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围日期 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的日期点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * @zh_CN 单个日期数据对象\r\n * @en_US 单个日期数据对象\r\n */\r\nexport interface XDateCell {\r\n /**\r\n * @zh_CN 日期\r\n * @en_US Date\r\n */\r\n date?: Date;\r\n /**\r\n * @zh_CN 上个月或下个月的日期\r\n * @en_US Date of the previous or next month\r\n */\r\n isLastOrNext?: boolean;\r\n /**\r\n * @zh_CN 当天\r\n * @en_US Same day\r\n */\r\n isNow?: boolean;\r\n /**\r\n * @zh_CN 当月第一天\r\n * @en_US The first day of the month\r\n */\r\n isFirstDay?: boolean;\r\n /**\r\n * @zh_CN 当月最后一天\r\n * @en_US The last day of the month\r\n */\r\n isLastDay?: boolean;\r\n /**\r\n * @zh_CN 范围内日期\r\n * @en_US 范围内日期\r\n */\r\n isInRange?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 选中\r\n * @en_US 范围内 hover 选中\r\n */\r\n isInRangeHover?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期左边\r\n * @en_US 范围内 hover 当前日期左边\r\n */\r\n isInRangeHoverLeft?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期右边\r\n * @en_US 范围内 hover 当前日期右边\r\n */\r\n isInRangeHoverRight?: boolean;\r\n /**\r\n * @zh_CN 选中开始左边\r\n * @en_US Range start left\r\n */\r\n isRangeStartLeft?: boolean;\r\n /**\r\n * @zh_CN 选中开始右边\r\n * @en_US Range start right\r\n */\r\n isRangeStartRight?: boolean;\r\n /**\r\n * @zh_CN 选中结束左边\r\n * @en_US Range start left\r\n */\r\n isRangeEndLeft?: boolean;\r\n /**\r\n * @zh_CN 选中结束右边\r\n * @en_US Range start right\r\n */\r\n isRangeEndRight?: boolean;\r\n /**\r\n * @zh_CN 范围 hover\r\n * @en_US Range hover\r\n */\r\n isRangeHover?: boolean;\r\n /**\r\n * @zh_CN hover 当前开始\r\n * @en_US Range hover start\r\n */\r\n isRangeHoverStart?: boolean;\r\n /**\r\n * @zh_CN hover 当前结束\r\n * @en_US End date\r\n */\r\n isRangeHoverEnd?: boolean;\r\n /**\r\n * @zh_CN hover 开始左边\r\n * @en_US Range hover start left\r\n */\r\n isRangeHoverStartLeft?: boolean;\r\n /**\r\n * @zh_CN hover 开始右边\r\n * @en_US Range hover start right\r\n */\r\n isRangeHoverStartRight?: boolean;\r\n /**\r\n * @zh_CN hover 结束左边\r\n * @en_US Range hover end left\r\n */\r\n isRangeHoverEndLeft?: boolean;\r\n /**\r\n * @zh_CN hover 结束右边\r\n * @en_US Range hover end right\r\n */\r\n isRangeHoverEndRight?: boolean;\r\n /**\r\n * @zh_CN 当前选中日期\r\n * @en_US Current selected date\r\n */\r\n isActive?: boolean;\r\n /**\r\n * @zh_CN 禁用日期\r\n * @en_US Disabled date\r\n */\r\n isDisabled?: boolean;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 第几周\r\n * @en_US Week\r\n */\r\n week?: number;\r\n}\r\n\r\n/**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\nexport type XDatePickerRangType = 'start' | 'end';\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ selector: `${XPickerMonthPrefix}-property`, template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() monthTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示月份事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的月份点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * PickerQuarter\r\n * @selector x-picker-quarter\r\n * @decorator component\r\n */\r\nexport const XPickerQuarterPrefix = 'x-picker-quarter';\r\n\r\n/**\r\n * PickerQuarter Property\r\n */\r\n@Component({ selector: `${XPickerQuarterPrefix}-property`, template: '' })\r\nexport class XPickerQuarterProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 季度显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() quarterTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示季度事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围季度 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围季度 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的季度点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * DateQuarter\r\n * @selector xDateQuarter\r\n * @decorator pipe\r\n */\r\nexport const XDateQuarterPrefix = 'xDateQuarter';\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ selector: `${XPickerYearPrefix}-property`, template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 年份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() yearTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围年份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n @Output() startChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示月份事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的月份点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction, XDateWeek, XDateYearWeek } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nDatePicker, XI18nPipe, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XI18nPipe],\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n titles = [\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ];\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n weekDates: XDateCell[][] = [];\r\n clickCell?: XDateCell;\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n get isWeek() {\r\n return this.type === 'week';\r\n }\r\n\r\n get isWeekRange() {\r\n return this.type === 'week' && this.rangePicker;\r\n }\r\n\r\n get isNotWeekRange() {\r\n return this.type !== 'week' && this.rangePicker;\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display);\r\n }\r\n\r\n isWeekActive(week: XDateCell[]) {\r\n if (week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.model!);\r\n }\r\n return false;\r\n }\r\n\r\n isStartWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue[0]!);\r\n }\r\n return false;\r\n }\r\n\r\n isEndWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue[1]!);\r\n }\r\n return false;\r\n }\r\n\r\n isInRangeWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0]) && !XIsNull(this.rangeValue[1]) && week.length > 1) {\r\n let time = week[1].date?.getTime()!;\r\n return time > this.rangeValue[0]! && time < this.rangeValue[1]!;\r\n }\r\n return false;\r\n }\r\n\r\n isStartDate(date: Date) {\r\n if (this.type === 'week' || !this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n isEndDate(date: Date) {\r\n if (this.type === 'week' || !this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n setTitles() {\r\n if (this.type === 'week') {\r\n this.titles = ['datePicker.week', ...this.titles];\r\n }\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: XDateCell[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n const cell = { date: new Date(year, month, index) };\r\n dates = [this.setDayState(cell), ...dates];\r\n day = cell.date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n const cell: XDateCell = {\r\n date: new Date(year, month, index),\r\n isFirstDay: index === 1,\r\n isLastDay: index === lastDate\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n const cell = { date: new Date(year, month + 1, index) };\r\n dates = [...dates, this.setDayState(cell)];\r\n day = cell.date.getDay();\r\n }\r\n\r\n this.dates = dates;\r\n this.weekDates = XChunk(dates, 7);\r\n\r\n if (this.type === 'week') {\r\n for (let item of this.dates) {\r\n item.week = XDateWeek(item.date!);\r\n }\r\n for (let week of this.weekDates) {\r\n week.unshift({ type: 'week', week: week[0].week! });\r\n }\r\n }\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');\r\n const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fdisplaym = this.datePipe.transform(this.display, 'yyyyMM');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');\r\n cell.isLastOrNext = fdatem !== fdisplaym;\r\n cell.isNow = fdate === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start!, 'yyyyMMdd');\r\n cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end!, 'yyyyMMdd');\r\n }\r\n return cell;\r\n }\r\n\r\n dateClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setDays(this.display);\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.monthChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n @if (showHeader) {\r\n <div class=\"x-picker-date-header\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date: 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n @for (title of titles; track title) {\r\n <th>{{ title | xI18n }}</th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (weeks of weekDates; track weeks) {\r\n <tr\r\n [class.x-date-week-active]=\"!rangePicker && isWeek && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange && isInRangeWeek(weeks)\"\r\n >\r\n @for (week of weeks; track week) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker && week.type !== 'week' && (week.date | date: 'yyyyMMdd') === (model | date: 'yyyyMMdd')\r\n \"\r\n title=\"{{ week.date | date: 'yyyy-MM-dd' }}\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseenter(week)\r\n \"\r\n (mouseleave)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseleave(week)\r\n \"\r\n >\r\n @if (dateTemp) {\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n @switch (week.type) {\r\n @case ('week') {\r\n {{ week.week }}\r\n }\r\n @default {\r\n {{ week.date | date: 'd' }}\r\n }\r\n }\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths(this.display);\r\n }\r\n\r\n isStartMonth(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndMonth(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setMonths(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fmonthy = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fmonthy !== fdisplayy;\r\n cell.isNow = fmonth === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n monthClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setMonths(this.display);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByMonth(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n @if (showHeader) {\r\n <div class=\"x-picker-month-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date: 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (months of chunkDates; track months) {\r\n <tr>\r\n @for (month of months; track month) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date: 'yyyyMM') === (model | date: 'yyyyMM')\"\r\n title=\"{{ month.date | date: 'yyyy-MM' }}\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker && onTdMouseleave(month)\"\r\n >\r\n @if (monthTemp) {\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XDate, XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';\r\nimport { XDateQuarterPrefix } from './date-picker.property';\r\n\r\n@Pipe({ name: `${XDateQuarterPrefix}`, standalone: true })\r\nexport class XDateQuarterPipe implements PipeTransform {\r\n constructor() {}\r\n transform(input?: XDate, includeYear = false): string {\r\n if (!input) return '';\r\n return !includeYear ? XDateQuarter(input)! : XDateYearQuarter(input)!;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n OnInit\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: 'x-picker-quarter',\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XDateQuarterPipe],\r\n templateUrl: './picker-quarter.component.html',\r\n styleUrls: ['./picker-quarter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe, XDateQuarterPipe]\r\n})\r\nexport class XPickerQuarterComponent extends XPickerQuarterProperty implements OnInit, OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private datePipe = inject(DatePipe);\r\n private dateQuarterPipe = inject(XDateQuarterPipe);\r\n private i18n = inject(XI18nService);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setQuarters(this.display);\r\n }\r\n\r\n isStartQuarter(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndQuarter(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setQuarters(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 4; i++) {\r\n const cell = { date: new Date(year, i * 3, 1), isFirstDay: i === 0, isLastDay: i === 3 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fquarter = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fquartery = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fquartery !== fdisplayy;\r\n cell.isNow = fquarter === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fquarter === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fquarter === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n quarterClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleQuarter(date: Date) {\r\n return this.dateQuarterPipe.transform(date);\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setQuarters(this.display);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByQuarter(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n @if (showHeader) {\r\n <div class=\"x-picker-quarter-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date: 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (quarters of chunkDates; track quarters) {\r\n <tr>\r\n @for (quarter of quarters; track quarter) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date: 'yyyyMM') === (model | date: 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter: true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n @if (quarterTemp) {\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n start!: number;\r\n end!: number;\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private datePipe = inject(DatePipe);\r\n configService = inject(XConfigService);\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears(this.display);\r\n }\r\n\r\n isStartYear(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n isEndYear(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setYears(date: Date) {\r\n let year = date.getFullYear();\r\n this.start = Math.floor(year / 10) * 10;\r\n this.end = this.start + 9;\r\n let dates: XDateCell[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n const dt = new Date(this.start + i, 1, 1);\r\n const cell: XDateCell = {\r\n date: dt,\r\n isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),\r\n isLastOrNext: i < 0 || i > 9,\r\n isFirstDay: i === 0,\r\n isLastDay: i === 9\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n this.startChange.emit(this.start);\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fyear = this.datePipe.transform(cell.date, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyy');\r\n cell.isNow = fyear === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start!, 'yyyy');\r\n cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end!, 'yyyy');\r\n }\r\n return cell;\r\n }\r\n\r\n yearClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start}` || yearStr > `${this.end}`;\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setYears(this.display);\r\n }\r\n\r\n nextYears(num: number) {\r\n this.start += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.start);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByYear(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-year\">\r\n @if (showHeader) {\r\n <div class=\"x-picker-year-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (years of chunkDates; track years) {\r\n <tr>\r\n @for (year of years; track year) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date: 'yyyy') === (model | date: 'yyyy')\"\r\n title=\"{{ year.date | date: 'yyyy' }}\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker && onTdMouseleave(year)\"\r\n >\r\n @if (yearTemp) {\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ year.date | date: 'yyyy' }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n inject\r\n} from '@angular/core';\r\nimport {\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime,\r\n XDatePickerPortalPrefix,\r\n XDatePickerPreset,\r\n XDatePickerType\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XConnectBaseAnimation,\r\n XPositionTopBottom,\r\n XAddDays,\r\n XTemplate,\r\n XIsUndefined\r\n} from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('timePickerFrame') timePickerFrame?: XTimePickerFrameComponent;\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n nodeEmit!: (date: Date, sure?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number | null;\r\n preset: XDatePickerPreset[] = [];\r\n extraFooter?: XTemplate;\r\n inputCom!: XInputComponent;\r\n disabledDate!: XDatePickerDisabledDate;\r\n disabledTime!: XDatePickerDisabledTime;\r\n private _type!: XDatePickerType;\r\n private _unSubject = new Subject<void>();\r\n\r\n get isDatePicker() {\r\n return ['date', 'month', 'year'].includes(this.type);\r\n }\r\n\r\n get sureDisabled() {\r\n let res = XIsUndefined(this.time);\r\n if (this.timePickerFrame && !XIsUndefined(this.time)) {\r\n const dt = new Date(this.time!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame.setDisabled('hours', hours) ||\r\n this.timePickerFrame.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n }\r\n return res;\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private i18n = inject(XI18nService);\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n }\r\n this._type = this.type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = date;\r\n this.time = this.model.getTime();\r\n this.setDisplay(this.model);\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model = date;\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type)) {\r\n let time = new Date();\r\n if (['date-hour', 'date-minute'].includes(this.type)) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n if (!this.time) {\r\n this.time = time.getTime();\r\n }\r\n this.setModelTime(this.model, new Date(this.time!));\r\n this.nodeEmit(this.model, false);\r\n } else {\r\n this.nodeEmit(this.model);\r\n }\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'month') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n quarterChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'quarter') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'year') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = 'month';\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onToday() {\r\n this.dateChange(new Date());\r\n }\r\n\r\n onYesterday() {\r\n this.dateChange(XAddDays(new Date(), -1));\r\n }\r\n\r\n onTomorrow() {\r\n this.dateChange(XAddDays(new Date(), 1));\r\n }\r\n\r\n onPresetFunc(item: XDatePickerPreset) {\r\n this.dateChange(item.func());\r\n }\r\n\r\n selectTime(time: Date) {\r\n if (!this.model) {\r\n this.model = new Date();\r\n }\r\n this.time = time.getTime();\r\n this.nodeEmit(this.setModelTime(this.model, time), false);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setModelTime(date: Date, time: Date) {\r\n this.model = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n );\r\n return this.model;\r\n }\r\n}\r\n","<div class=\"x-date-picker-portal {{ type }}\" (click)=\"inputCom.inputFocus()\">\r\n @switch (type) {\r\n @case ('date') {\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n @case ('month') {}\r\n }\r\n @if (isDatePicker) {\r\n @if (extraFooter) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker && extraFooter) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n @if (!isDatePicker && preset) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{\r\n locale.sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset) {\r\n <div class=\"x-date-picker-portal-preset\">\r\n @for (item of preset; track item.id) {\r\n @switch (item.id) {\r\n @case ('yesterday') {\r\n <x-link (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n }\r\n @case ('today') {\r\n <x-link (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n }\r\n @case ('tomorrow') {\r\n <x-link (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport {\r\n XDatePickerPrefix,\r\n XDatePickerProperty,\r\n XDatePickerModelType\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XClearClass,\r\n XIsString,\r\n XConfigService,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n standalone: true,\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n @ViewChild('datePicker', { static: true }) datePicker!: ElementRef<HTMLElement>;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: number | string;\r\n isInput = false;\r\n\r\n override writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType = 'date';\r\n this.numberValue = value.getTime();\r\n } else if (XIsNumber(value)) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value)) {\r\n this.modelType = 'string';\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue = !isNaN(valueTime) ? valueTime : '';\r\n } else if (XIsEmpty(value) || XIsNull(value)) {\r\n this.numberValue = '';\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n document = inject(DOCUMENT);\r\n\r\n get getPlaceholder() {\r\n if (this.placeholder) return this.placeholder;\r\n if (this.type === 'month') {\r\n return this.locale.selectMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.selectQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.selectYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.selectWeek;\r\n } else {\r\n return this.locale.selectDate;\r\n }\r\n }\r\n\r\n private renderer = inject(Renderer2);\r\n configService = inject(XConfigService);\r\n override cdr = inject(ChangeDetectorRef);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private i18n = inject(XI18nService);\r\n private elementRef = inject(ElementRef);\r\n private overlay = inject(Overlay);\r\n\r\n ngOnInit() {\r\n this.setFlex(\r\n this.datePicker.nativeElement,\r\n this.renderer,\r\n this.justify,\r\n this.align,\r\n this.direction\r\n );\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n setFormat() {\r\n if (this.format !== 'yyyy-MM-dd') return;\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'quarter') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!this.clearable) return;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.inputClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (!this.clearable) return;\r\n if (this.inputClearable) {\r\n this.icon = 'fto-calendar';\r\n this.inputClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = null;\r\n this.numberValue = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n this.formControlValidator();\r\n }\r\n\r\n getValue() {\r\n if (this.numberValue === '') return null;\r\n return ['date', 'string'].includes(this.modelType)\r\n ? new Date(this.numberValue)\r\n : this.numberValue;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n preset: this.preset,\r\n extraFooter: this.extraFooter,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n inputCom: this.inputCom,\r\n disabledDate: this.disabledDate,\r\n disabledTime: this.disabledTime,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date, sure = true) => this.onNodeClick(node, sure),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput = false;\r\n if (sure) {\r\n this.numberValue = date.getTime();\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(this.numberValue);\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (\r\n this.isInput &&\r\n isNaN(this.displayValue) &&\r\n !isNaN(Date.parse(this.displayValue)) &&\r\n !['week', 'quarter'].includes(this.type)\r\n ) {\r\n this.displayValue = this.datePipe.transform(this.displayValue, this.format);\r\n this.numberValue = new Date(this.displayValue).getTime();\r\n this.value = this.getValue();\r\n this.modelChange();\r\n this.isInput = false;\r\n } else {\r\n if (this.type === 'week') {\r\n this.displayValue = XDateYearWeek(dateNumber);\r\n } else if (this.type === 'quarter') {\r\n this.displayValue = XDateYearQuarter(dateNumber);\r\n } else {\r\n this.displayValue = this.datePipe.transform(dateNumber, this.format);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n XDateRangePortalPrefix,\r\n XDatePickerType,\r\n XDateCell,\r\n XDateRangePreset,\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XConnectBaseAnimation,\r\n XPositionTopBottom,\r\n XAddMonths,\r\n XAddYears,\r\n XIsNull,\r\n XTemplate,\r\n XIsArray,\r\n XIsNumber,\r\n XIsString,\r\n XAddDays\r\n} from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XDateRangePortalPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerYearComponent,\r\n XPickerQuarterComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-range-portal.component.html',\r\n styleUrls: ['./date-range-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDateRangePortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('startPicker') startPicker!: XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent;\r\n @ViewChild('endPicker') endPicker!: XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent;\r\n @ViewChild('timePickerFrame') timePickerFrame?: XTimePickerFrameComponent;\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n startModel!: Date | null;\r\n endModel!: Date | null;\r\n startYear!: number;\r\n startDisplay: Date = new Date();\r\n endDisplay: Date = XAddMonths(this.startDisplay, 1);\r\n value: (number | null)[] = [];\r\n valueChange!: Subject<number[]>;\r\n positionChange!: Subject<any>;\r\n activeTypeChange!: Subject<'start' | 'end'>;\r\n activeType!: 'start' | 'end';\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n disabledDate!: XDatePickerDisabledDate;\r\n disabledTime!: XDatePickerDisabledTime;\r\n nodeEmit!: (date: Date[], close?: boolean) => void;\r\n startNodeEmit!: (date: Date | null, close?: boolean, isDatePicker?: boolean) => void;\r\n endNodeEmit!: (date: Date | null, close?: boolean, isDatePicker?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number | null;\r\n timeDisplay: Date = new Date();\r\n timeModel!: Date | null;\r\n timeHover = false;\r\n nodeClickCount = 0;\r\n preset: XDateRangePreset[] = [];\r\n extraFooter?: XTemplate;\r\n private _unSubject = new Subject<void>();\r\n\r\n get isDatePicker() {\r\n return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type);\r\n }\r\n\r\n get sureDisabled() {\r\n if (this.timePickerFrame && !XIsEmpty(this.time)) {\r\n const dt = new Date(this.time!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame.setDisabled('hours', hours) ||\r\n this.timePickerFrame.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n constructor(\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public i18n: XI18nService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.activeTypeChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.activeType = x;\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.value = [null, null];\r\n this.model = this.display;\r\n this.startModel = this.model;\r\n this.endModel = this.setModelByType(this.model, this.isDatePicker ? 1 : 0);\r\n this.setDisplay(this.model);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setModelByType(byModel: Date, num: number = 1) {\r\n if (['month', 'quarter'].includes(this.type)) {\r\n return XAddYears(byModel!, num);\r\n } else if (this.type === 'year') {\r\n return XAddYears(byModel!, 10 * num);\r\n } else {\r\n return XAddMonths(byModel!, num);\r\n }\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n if (this.type === 'week') return;\r\n this.startPicker?.setDatesState(cell);\r\n this.endPicker?.setDatesState(cell);\r\n }\r\n\r\n setDefault() {\r\n const type = this.activeType || 'start';\r\n this.timeHover = !this.value.every((x) => x === null);\r\n if (type === 'start') {\r\n this.startModel = new Date(this.value[0]!);\r\n this.startDisplay = this.startModel;\r\n this.endModel = this.setModelByType(this.startModel, this.isDatePicker ? 1 : 0);\r\n this.endDisplay = this.endModel!;\r\n this.timeModel = this.startModel;\r\n this.timeDisplay = this.startDisplay;\r\n this.time = this.startModel.getTime();\r\n } else if (type === 'end') {\r\n this.endModel = new Date(this.value[1]!);\r\n this.endDisplay = this.endModel;\r\n this.startModel = this.setModelByType(this.endModel, this.isDatePicker ? -1 : 0);\r\n this.startDisplay = this.startModel!;\r\n this.timeModel = this.endModel;\r\n this.timeDisplay = this.endDisplay;\r\n this.time = this.endModel.getTime();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.startDisplay = this.display;\r\n this.endDisplay = this.setModelByType(this.display, this.isDatePicker ? 1 : 0);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.nodeClickCount++;\r\n let close = this.nodeClickCount === 2;\r\n let time = this.setDateChangeTime(date);\r\n date = new Date(time);\r\n if (this.activeType === 'start') {\r\n this.value[0] = time;\r\n if (!XIsNull(this.value[1]) && time > this.value[1]!) {\r\n if (this.nodeClickCount === 2) {\r\n this.nodeClickCount--;\r\n }\r\n close = false;\r\n this.endModel = null;\r\n this.value[1] = null;\r\n if (!this.isDatePicker) {\r\n this.timeHover = false;\r\n }\r\n this.endNodeEmit(null, close, this.isDatePicker);\r\n }\r\n this.startNodeEmit(date, close, this.isDatePicker);\r\n } else if (this.activeType === 'end') {\r\n this.value[1] = time;\r\n if (!XIsNull(this.value[0]) && time < this.value[0]!) {\r\n if (this.nodeClickCount === 2) {\r\n this.nodeClickCount--;\r\n }\r\n close = false;\r\n this.startModel = null;\r\n this.value[0] = null;\r\n if (!this.isDatePicker) {\r\n this.timeHover = false;\r\n }\r\n this.startNodeEmit(null, close, this.isDatePicker);\r\n }\r\n this.endNodeEmit(date, close, this.isDatePicker);\r\n }\r\n if (!this.value.includes(null) && this.isDatePicker) {\r\n this.nodeEmit(\r\n this.value.map((x) => new Date(x!)),\r\n close\r\n );\r\n }\r\n }\r\n\r\n setDateChangeTime(date: Date) {\r\n if (this.isDatePicker) {\r\n return date.getTime();\r\n } else {\r\n let time = new Date();\r\n if (this.time) {\r\n time = new Date(this.time);\r\n } else {\r\n this.time = time.getTime();\r\n }\r\n if (['date-hour', 'date-minute'].includes(this.type)) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n ).getTime();\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear = number;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.startYear);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time = time.getTime();\r\n if (XIsEmpty(this.timeModel)) {\r\n this.timeModel = new Date();\r\n }\r\n this.timeModel?.setHours(time.getHours());\r\n this.timeModel?.setMinutes(time.getMinutes());\r\n this.timeModel?.setSeconds(time.getSeconds());\r\n this.dateChange(this.timeModel!);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n sureTime() {\r\n if (this.sureDisabled) return;\r\n const [start, end] = this.value;\r\n if (XIsNull(start) && !XIsNull(end)) {\r\n this.time = null;\r\n this.timeHover = true;\r\n this.endNodeEmit(new Date(end!), false, true);\r\n } else if (!XIsNull(start) && XIsNull(end)) {\r\n this.time = null;\r\n this.timeHover = true;\r\n this.startNodeEmit(new Date(start!), false, true);\r\n } else {\r\n this.nodeEmit(\r\n this.value.map((x) => new Date(x!)),\r\n true\r\n );\r\n }\r\n }\r\n\r\n yearChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay = XAddYears(this.endDisplay, num);\r\n } else if (type === 'end') {\r\n this.startDisplay = XAddYears(this.startDisplay, num);\r\n }\r\n }\r\n\r\n monthChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay = XAddMonths(this.endDisplay, num);\r\n } else if (type === 'end') {\r\n this.startDisplay = XAddMonths(this.startDisplay, num);\r\n }\r\n }\r\n\r\n onPreset(type: 'week' | 'month' | 'year', num = 0) {\r\n let now = new Date();\r\n if (type === 'week') {\r\n now = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n const week = now.getDay();\r\n const weekList = [1, 2, 3, 4, 5, 6, 7];\r\n const index = weekList.indexOf(week);\r\n this.nodeEmit(\r\n [XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)],\r\n true\r\n );\r\n } else if (type === 'month') {\r\n const month = XAddMonths(now, num);\r\n const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);\r\n const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);\r\n this.nodeEmit([firstDay, lastDay], true);\r\n } else if (type === 'year') {\r\n let year = XAddYears(now, num);\r\n let firstDay = new Date(year.getFullYear(), 0, 1);\r\n let lastDay = XAddDays(XAddYears(firstDay, 1), -1);\r\n this.nodeEmit([firstDay, lastDay], true);\r\n }\r\n }\r\n\r\n onPresetFunc(item: XDateRangePreset) {\r\n let value = item.func();\r\n if (XIsArray(value) && value.length > 1) {\r\n if (XIsNumber(value[0]) || XIsString(value[0])) {\r\n value = value.map((x) => new Date(x));\r\n }\r\n this.nodeEmit(value, true);\r\n }\r\n }\r\n}\r\n","<div class=\"x-date-range-portal {{ type }}\">\r\n <div class=\"x-date-range-portal-body\">\r\n @switch (type) {\r\n @case ('date') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type=\"week\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type=\"week\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n }\r\n </div>\r\n @if (isDatePicker) {\r\n @if (extraFooter) {\r\n <div class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker && extraFooter) {\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n }\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n @if (!isDatePicker) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && sureTime()\" size=\"small\" [disabled]=\"sureDisabled\">{{\r\n locale.sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset) {\r\n <div class=\"x-date-range-portal-preset\">\r\n @for (item of preset; track item.id) {\r\n @switch (item.id) {\r\n @case ('thisWeek') {\r\n <x-link (click)=\"onPreset('week', 0)\">{{ locale.thisWeek }}</x-link>\r\n }\r\n @case ('lastWeek') {\r\n <x-link (click)=\"onPreset('week', -1)\">{{ locale.lastWeek }}</x-link>\r\n }\r\n @case ('nextWeek') {\r\n <x-link (click)=\"onPreset('week', 1)\">{{ locale.nextWeek }}</x-link>\r\n }\r\n @case ('thisMonth') {\r\n <x-link (click)=\"onPreset('month', 0)\">{{ locale.thisMonth }}</x-link>\r\n }\r\n @case ('lastMonth') {\r\n <x-link (click)=\"onPreset('month', -1)\">{{ locale.lastMonth }}</x-link>\r\n }\r\n @case ('nextMonth') {\r\n <x-link (click)=\"onPreset('month', 1)\">{{ locale.nextMonth }}</x-link>\r\n }\r\n @case ('thisYear') {\r\n <x-link (click)=\"onPreset('year', 0)\">{{ locale.thisYear }}</x-link>\r\n }\r\n @case ('lastYear') {\r\n <x-link (click)=\"onPreset('year', -1)\">{{ locale.lastYear }}</x-link>\r\n }\r\n @case ('nextYear') {\r\n <x-link (click)=\"onPreset('year', 1)\">{{ locale.nextYear }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges,\r\n inject,\r\n OnDestroy,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { XDatePickerModelType, XDateRangePrefix, XDateRangeProperty } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XClearClass,\r\n XIsString,\r\n XConfigService,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe, NgClass } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XDateRangePrefix}`,\r\n standalone: true,\r\n imports: [NgClass, FormsModule, XInputComponent, XInputGroupComponent],\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDateRangeComponent), DatePipe]\r\n})\r\nexport class XDateRangeComponent extends XDateRangeProperty implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n @ViewChild('dateRange', { static: true }) dateRange!: ElementRef<HTMLElement>;\r\n @ViewChild('inputGroup', { static: true }) inputGroup!: XInputGroupComponent;\r\n @ViewChild('inputStartCom', { static: true }) inputStartCom!: XInputComponent;\r\n @ViewChild('inputEndCom', { static: true }) inputEndCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: (number | null)[];\r\n isInput = false;\r\n showClearable: boolean = false;\r\n\r\n get getStartPlaceholder() {\r\n if (this.placeholder && this.placeholder.length > 0) return this.placeholder[0];\r\n if (this.type === 'month') {\r\n return this.locale.startMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.startQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.startYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.startWeek;\r\n } else {\r\n return this.locale.startDate;\r\n }\r\n }\r\n\r\n get getEndPlaceholder() {\r\n if (this.placeholder && this.placeholder.length > 1) return this.placeholder[1];\r\n if (this.type === 'month') {\r\n return this.locale.endMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.endQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.endYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.endWeek;\r\n } else {\r\n return this.locale.endDate;\r\n }\r\n }\r\n\r\n override get requiredIsEmpty() {\r\n return this.validator && this.required && XIsEmpty(this.value);\r\n }\r\n\r\n override writeValue(value: any) {\r\n if (XIsEmpty(value)) {\r\n value = [];\r\n this.numberValue = [];\r\n }\r\n if (value.length > 0) {\r\n if (XIsDate(value[0])) {\r\n this.modelType = 'date';\r\n this.numberValue = value.map((x: Date) => x.getTime());\r\n } else if (XIsNumber(value[0])) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value[0])) {\r\n this.modelType = 'string';\r\n const valueTime = value.map((x: string) => new Date(x).getTime());\r\n this.numberValue = !isNaN(valueTime[0]) ? valueTime : [];\r\n }\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: string[] = [];\r\n portal!: XPortalOverlayRef<XDateRangePortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n activeTypeChange = new Subject<'start' | 'end'>();\r\n startDisplay: string | number = '';\r\n endDisplay: string | number = '';\r\n activeType?: 'start' | 'end';\r\n flexClass: string[] = [];\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n private document = inject(DOCUMENT);\r\n private renderer = inject(Renderer2);\r\n private elementRef = inject(ElementRef);\r\n override cdr = inject(ChangeDetectorRef);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private overlay = inject(Overlay);\r\n private i18n = inject(XI18nService);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setHostTypeClass();\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type, justify, align, direction, size, labelAlign } = changes;\r\n XIsChange(size, labelAlign) && this.setClassMap();\r\n XIsChange(justify, align, direction) && this.setFlexClass();\r\n if (XIsChange(type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n setFlexClass() {\r\n if (this.flexClass.length > 0) {\r\n for (let cls of this.flexClass) {\r\n this.renderer.removeClass(this.dateRange.nativeElement, cls);\r\n }\r\n }\r\n this.flexClass = this.setFlex(\r\n this.dateRange.nativeElement,\r\n this.renderer,\r\n this.justify,\r\n this.align,\r\n this.direction\r\n );\r\n }\r\n\r\n setHostTypeClass() {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-date-range-${this.type}`);\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n setFormat() {\r\n if (this.format !== 'yyyy-MM-dd') return;\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.showClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-calendar';\r\n this.showClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = [];\r\n this.numberValue = [];\r\n this.startDisplay = '';\r\n this.endDisplay = '';\r\n this.mleave();\r\n this.valueChange.next(this.numberValue);\r\n this.formControlValidator();\r\n this.modelChange();\r\n this.inputStartCom.inputFocus();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onIconClick(event: Event) {\r\n if (this.icon === 'fto-x') {\r\n this.clearEmit();\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.modelType === 'date'\r\n ? this.numberValue.map((x) => new Date(x!))\r\n : this.modelType === 'string'\r\n ? this.numberValue.map((x) => this.datePipe.transform(x, this.format))\r\n : this.numberValue;\r\n }\r\n\r\n getNumberValue() {\r\n return this.modelType === 'date'\r\n ? this.value.map((x: Date) => x.getTime())\r\n : this.modelType === 'string'\r\n ? this.value.map((x: string) => new Date(x).getTime())\r\n : this.value;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.closeReduction();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n closeReduction() {\r\n if (!this.numberValue || this.numberValue.length === 0 || this.numberValue.includes(null)) {\r\n if (!this.value || this.value.length === 0) {\r\n this.startDisplay = '';\r\n this.endDisplay = '';\r\n this.numberValue = [];\r\n } else {\r\n this.numberValue = this.getNumberValue();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n if (!this.numberValue.includes(null) && this.value && !this.value.includes(null)) {\r\n let numberValue = this.getNumberValue();\r\n if (this.numberValue[0] !== numberValue[0] || this.numberValue[1] !== numberValue[1]) {\r\n this.numberValue = numberValue;\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal($event: Event, type?: 'start' | 'end') {\r\n type && $event.stopPropagation();\r\n if (this.disabled || this.animating) return;\r\n this.activeType = type || 'start';\r\n this.activeTypeChange.next(this.activeType);\r\n if (this.active) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDateRangePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe((event: MouseEvent) => {\r\n const clickTarget = event.target as HTMLElement;\r\n if (\r\n clickTarget !== this.inputStartCom.inputRef.nativeElement &&\r\n clickTarget !== this.inputEndCom.inputRef.nativeElement\r\n ) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n activeType: this.activeType,\r\n extraFooter: this.extraFooter,\r\n preset: this.preset,\r\n activeTypeChange: this.activeTypeChange,\r\n disabledDate: this.disabledDate,\r\n disabledTime: this.disabledTime,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (dates: Date[], close = true) => this.onNodeClick(dates, close),\r\n startNodeEmit: (node: Date, close = false, isDatePicker: boolean = true) =>\r\n this.startNodeClick(node, close, isDatePicker),\r\n endNodeEmit: (node: Date, close = false, isDatePicker: boolean = true) =>\r\n this.endNodeClick(node, close, isDatePicker),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n startNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.startDisplay = !node\r\n ? ''\r\n : this.type === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.format)!;\r\n if (!close && isDatePicker) {\r\n this.inputEndCom.inputFocus('after');\r\n this.activeTypeChange.next('end');\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n endNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.endDisplay = !node\r\n ? ''\r\n : this.type === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.format)!;\r\n if (!close && isDatePicker) {\r\n this.inputStartCom.inputFocus('after');\r\n this.activeTypeChange.next('start');\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onNodeClick(dates: Date[], close = true) {\r\n this.isInput = false;\r\n this.numberValue = dates.map((x) => x.getTime());\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.formControlValidator();\r\n if (close) {\r\n this.closeSubject.next();\r\n }\r\n this.modelChange();\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n onFocus(type: 'start' | 'end') {\r\n this.activeType = type;\r\n this.activeChange.next(this.activeType);\r\n }\r\n\r\n setDisplayValue(dateNumber: (number | null)[]) {\r\n if (!dateNumber) return;\r\n if (!XIsNull(dateNumber[0])) {\r\n if (this.type === 'week') {\r\n this.startDisplay = XDateYearWeek(dateNumber[0]!)!;\r\n } else if (this.type === 'quarter') {\r\n this.startDisplay = XDateYearQuarter(dateNumber[0]!)!;\r\n } else {\r\n this.startDisplay = this.datePipe.transform(dateNumber[0], this.format) as string;\r\n }\r\n }\r\n if (!XIsNull(dateNumber[1])) {\r\n if (this.type === 'week') {\r\n this.endDisplay = XDateYearWeek(dateNumber[1]!)!;\r\n } else if (this.type === 'quarter') {\r\n this.endDisplay = XDateYearQuarter(dateNumber[1]!)!;\r\n } else {\r\n this.endDisplay = this.datePipe.transform(dateNumber[1], this.format) as string;\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputGroup.elementRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-range-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XDateRangePrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-date-range-bordered]=\"bordered\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n @if (label) {\r\n <label [class.x-date-range-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{\r\n label\r\n }}</label>\r\n }\r\n <div class=\"x-date-range-row\">\r\n <x-input-group\r\n #inputGroup\r\n class=\"x-date-range-group\"\r\n (mouseenter)=\"menter()\"\r\n (mouseleave)=\"mleave()\"\r\n (click)=\"showPortal($event)\"\r\n >\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getStartPlaceholder\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-data-range-input x-data-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getEndPlaceholder\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable\"\r\n ></x-input>\r\n @if (active) {\r\n <div class=\"x-date-range-active-bar\"></div>\r\n }\r\n </x-input-group>\r\n @if (invalid) {\r\n <span class=\"x-date-range-error-message\">{{ invalidMessage }}</span>\r\n }\r\n @if (requiredIsEmpty || invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDateRangeComponent } from './date-range.component';\r\n\r\n@NgModule({\r\n exports: [XDatePickerComponent, XDateRangeComponent],\r\n imports: [XDatePickerComponent, XDateRangeComponent]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3"],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-date-picker.mjs","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.html","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.html","../../../../lib/ng-nest/ui/date-picker/date-quarter.pipe.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.html","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.html","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-range.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import { XProperty, XToBoolean, XToCssPixelValue, XToDataConvert } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, model, output } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XBoolean,\r\n XCorner,\r\n XSize,\r\n XTemplate,\r\n XData,\r\n XIdentityProperty,\r\n XDirection,\r\n XAlign,\r\n XJustify,\r\n XNumber\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_DATA_PICKER_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ selector: `${XDatePickerPrefix}-property`, template: '' })\r\nexport class XDatePickerProperty extends XFormControlFunction(X_DATA_PICKER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = input<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'yyyy-MM-dd');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n readonly preset = input<XData<XDatePickerPreset>, XData<XDatePickerPreset>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n readonly extraFooter = input<XTemplate>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n readonly disabledTime = input<XDatePickerDisabledTime>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<string>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n preset?: XData<XDatePickerPreset>;\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * DateRange\r\n * @selector x-date-range\r\n * @decorator component\r\n */\r\nexport const XDateRangePrefix = 'x-date-range';\r\nconst X_DATA_RANGE_CONFIG_NAME = 'dateRange';\r\n\r\n/**\r\n * DateRange Property\r\n */\r\n@Component({ selector: `${XDateRangePrefix}-property`, template: '' })\r\nexport class XDateRangeProperty extends XFormControlFunction(X_DATA_RANGE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = input<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'yyyy-MM-dd');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n readonly preset = input<XData<XDateRangePreset>, XData<XDateRangePreset>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n readonly extraFooter = input<XTemplate>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n readonly disabledTime = input<XDatePickerDisabledTime>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<string>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<number[]>();\r\n}\r\n\r\n/**\r\n * DateRange Option\r\n */\r\nexport interface XDateRangeOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n preset?: XData<XDateRangePreset>;\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string | string[];\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit: (value: number[]) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 禁用日期的自定义类型\r\n * @en_US Custom type of disabled date\r\n */\r\nexport type XDatePickerDisabledDate = (current: Date) => boolean;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义类型\r\n * @en_US Custom type of disable time\r\n */\r\nexport type XDatePickerDisabledTime = (type?: XDatePickerRangType) => XDatePickerDisabledTimeFn;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义函数\r\n * @en_US Custom function of disable time\r\n */\r\nexport type XDatePickerDisabledTimeFn = {\r\n /**\r\n * @zh_CN 禁用小时的自定义函数\r\n * @en_US Disable hour custom function\r\n */\r\n disabledHours?: () => number[];\r\n /**\r\n * @zh_CN 禁用分钟的自定义函数\r\n * @en_US Disable the custom function of the minute\r\n */\r\n disabledMinutes?: () => number[];\r\n /**\r\n * @zh_CN 禁用秒的自定义函数\r\n * @en_US Custom function of disable seconds\r\n */\r\n disabledSeconds?: () => number[];\r\n};\r\n\r\n/**\r\n * @zh_CN 快捷选择按钮\r\n * @en_US Quick selection button\r\n */\r\nexport interface XDatePickerPreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date;\r\n}\r\n\r\n/**\r\n * @zh_CN 快捷范围选择按钮\r\n * @en_US Quick range selection button\r\n */\r\nexport interface XDateRangePreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date[];\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType =\r\n | 'date'\r\n | 'week'\r\n | 'month'\r\n | 'quarter'\r\n | 'year'\r\n | 'date-time'\r\n | 'date-hour'\r\n | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * DateRange Portal\r\n * @selector x-date-range-portal\r\n * @decorator component\r\n */\r\nexport const XDateRangePortalPrefix = 'x-date-range-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ selector: `${XPickerDatePrefix}-property`, template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n readonly dateTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Last month\r\n */\r\n readonly lastMonthBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Next month\r\n */\r\n readonly nextMonthBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围 hover 效果\r\n * @en_US Range hover style\r\n */\r\n readonly rangeHover = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围日期\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围日期 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围日期 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * @zh_CN 单个日期数据对象\r\n * @en_US 单个日期数据对象\r\n */\r\nexport interface XDateCell {\r\n /**\r\n * @zh_CN 日期\r\n * @en_US Date\r\n */\r\n date?: Date;\r\n /**\r\n * @zh_CN 上个月或下个月的日期\r\n * @en_US Date of the previous or next month\r\n */\r\n isLastOrNext?: boolean;\r\n /**\r\n * @zh_CN 当天\r\n * @en_US Same day\r\n */\r\n isNow?: boolean;\r\n /**\r\n * @zh_CN 当月第一天\r\n * @en_US The first day of the month\r\n */\r\n isFirstDay?: boolean;\r\n /**\r\n * @zh_CN 当月最后一天\r\n * @en_US The last day of the month\r\n */\r\n isLastDay?: boolean;\r\n /**\r\n * @zh_CN 范围内日期\r\n * @en_US 范围内日期\r\n */\r\n isInRange?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 选中\r\n * @en_US 范围内 hover 选中\r\n */\r\n isInRangeHover?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期左边\r\n * @en_US 范围内 hover 当前日期左边\r\n */\r\n isInRangeHoverLeft?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期右边\r\n * @en_US 范围内 hover 当前日期右边\r\n */\r\n isInRangeHoverRight?: boolean;\r\n /**\r\n * @zh_CN 选中开始左边\r\n * @en_US Range start left\r\n */\r\n isRangeStartLeft?: boolean;\r\n /**\r\n * @zh_CN 选中开始右边\r\n * @en_US Range start right\r\n */\r\n isRangeStartRight?: boolean;\r\n /**\r\n * @zh_CN 选中结束左边\r\n * @en_US Range start left\r\n */\r\n isRangeEndLeft?: boolean;\r\n /**\r\n * @zh_CN 选中结束右边\r\n * @en_US Range start right\r\n */\r\n isRangeEndRight?: boolean;\r\n /**\r\n * @zh_CN 范围 hover\r\n * @en_US Range hover\r\n */\r\n isRangeHover?: boolean;\r\n /**\r\n * @zh_CN hover 当前开始\r\n * @en_US Range hover start\r\n */\r\n isRangeHoverStart?: boolean;\r\n /**\r\n * @zh_CN hover 当前结束\r\n * @en_US End date\r\n */\r\n isRangeHoverEnd?: boolean;\r\n /**\r\n * @zh_CN hover 开始左边\r\n * @en_US Range hover start left\r\n */\r\n isRangeHoverStartLeft?: boolean;\r\n /**\r\n * @zh_CN hover 开始右边\r\n * @en_US Range hover start right\r\n */\r\n isRangeHoverStartRight?: boolean;\r\n /**\r\n * @zh_CN hover 结束左边\r\n * @en_US Range hover end left\r\n */\r\n isRangeHoverEndLeft?: boolean;\r\n /**\r\n * @zh_CN hover 结束右边\r\n * @en_US Range hover end right\r\n */\r\n isRangeHoverEndRight?: boolean;\r\n /**\r\n * @zh_CN 当前选中日期\r\n * @en_US Current selected date\r\n */\r\n isActive?: boolean;\r\n /**\r\n * @zh_CN 禁用日期\r\n * @en_US Disabled date\r\n */\r\n isDisabled?: boolean;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 第几周\r\n * @en_US Week\r\n */\r\n week?: number;\r\n}\r\n\r\n/**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\nexport type XDatePickerRangType = 'start' | 'end';\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ selector: `${XPickerMonthPrefix}-property`, template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n readonly monthTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * PickerQuarter\r\n * @selector x-picker-quarter\r\n * @decorator component\r\n */\r\nexport const XPickerQuarterPrefix = 'x-picker-quarter';\r\n\r\n/**\r\n * PickerQuarter Property\r\n */\r\n@Component({ selector: `${XPickerQuarterPrefix}-property`, template: '' })\r\nexport class XPickerQuarterProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 季度显示模板\r\n * @en_US Month display template\r\n */\r\n readonly quarterTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围季度 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围季度 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * DateQuarter\r\n * @selector xDateQuarter\r\n * @decorator pipe\r\n */\r\nexport const XDateQuarterPrefix = 'xDateQuarter';\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ selector: `${XPickerYearPrefix}-property`, template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 年份显示模板\r\n * @en_US Month display template\r\n */\r\n readonly yearTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围年份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n readonly startChange = output<number>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction, XDateWeek, XDateYearWeek } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { XI18nDatePicker, XI18nPipe, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XI18nPipe],\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n titles = signal([\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ]);\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n weekDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isWeek = computed(() => {\r\n return this.type() === 'week';\r\n });\r\n\r\n isWeekRange = computed(() => {\r\n return this.type() === 'week' && this.rangePicker();\r\n });\r\n\r\n isNotWeekRange = computed(() => {\r\n return this.type() !== 'week' && this.rangePicker();\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display());\r\n }\r\n\r\n isWeekActive(week: XDateCell[]) {\r\n if (week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.model()!);\r\n }\r\n return false;\r\n }\r\n\r\n isStartWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue()[0]!);\r\n }\r\n return false;\r\n }\r\n\r\n isEndWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue()[1]!);\r\n }\r\n return false;\r\n }\r\n\r\n isInRangeWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0]) && !XIsNull(this.rangeValue()[1]) && week.length > 1) {\r\n let time = week[1].date?.getTime()!;\r\n return time > this.rangeValue()[0]! && time < this.rangeValue()[1]!;\r\n }\r\n return false;\r\n }\r\n\r\n isStartDate(date: Date) {\r\n if (this.type() === 'week' || !this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n isEndDate(date: Date) {\r\n if (this.type() === 'week' || !this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n setTitles() {\r\n if (this.type() === 'week') {\r\n this.titles.update((x) => ['datePicker.week', ...x]);\r\n }\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: XDateCell[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n const cell = { date: new Date(year, month, index) };\r\n dates = [this.setDayState(cell), ...dates];\r\n day = cell.date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n const cell: XDateCell = {\r\n date: new Date(year, month, index),\r\n isFirstDay: index === 1,\r\n isLastDay: index === lastDate\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n const cell = { date: new Date(year, month + 1, index) };\r\n dates = [...dates, this.setDayState(cell)];\r\n day = cell.date.getDay();\r\n }\r\n\r\n this.dates.set(dates);\r\n this.weekDates.set(XChunk(dates, 7));\r\n\r\n if (this.type() === 'week') {\r\n for (let item of this.dates()) {\r\n item.week = XDateWeek(item.date!)!;\r\n }\r\n for (let week of this.weekDates()) {\r\n week.unshift({ type: 'week', week: week[0].week! });\r\n }\r\n }\r\n\r\n if (this.dates().length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');\r\n const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fdisplaym = this.datePipe.transform(this.display(), 'yyyyMM');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');\r\n cell.isLastOrNext = fdatem !== fdisplaym;\r\n cell.isNow = fdate === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start!, 'yyyyMMdd');\r\n cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end!, 'yyyyMMdd');\r\n }\r\n return cell;\r\n }\r\n\r\n dateClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setDays(this.display());\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display());\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.monthChange.emit(num);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-date-header\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn()\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn()\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display()) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn()\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn()\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n @for (title of titles(); track title) {\r\n <th>{{ title | xI18n }}</th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (weeks of weekDates(); track $index) {\r\n <tr\r\n [class.x-date-week-active]=\"!rangePicker() && isWeek() && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange() && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange() && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange() && isInRangeWeek(weeks)\"\r\n >\r\n @for (week of weeks; track week.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange() && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange() && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange() && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange() && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange() && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange() && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange() && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange() && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange() && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange() && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange() && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange() && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange() && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange() && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange() && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker() &&\r\n week.type !== 'week' &&\r\n (week.date | date: 'yyyyMMdd') === (model() | date: 'yyyyMMdd')\r\n \"\r\n [title]=\"week.date | date: 'yyyy-MM-dd'\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker() && rangeHover() && onTdMouseenter(week)\r\n \"\r\n (mouseleave)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker() && rangeHover() && onTdMouseleave(week)\r\n \"\r\n >\r\n @if (dateTemp()) {\r\n <ng-container *ngTemplateOutlet=\"dateTemp()!; context: { date$: week.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n @switch (week.type) {\r\n @case ('week') {\r\n {{ week.week }}\r\n }\r\n @default {\r\n {{ week.date | date: 'd' }}\r\n }\r\n }\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths(this.display());\r\n }\r\n\r\n isStartMonth(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndMonth(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setMonths(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fmonthy = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display(), 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fmonthy !== fdisplayy;\r\n cell.isNow = fmonth === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n monthClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.clearState(...this.dates());\r\n for (let item of this.dates()) {\r\n this.setDayState(item);\r\n }\r\n }\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setMonths(this.display());\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-month-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (months of chunkDates(); track $index) {\r\n <tr>\r\n @for (month of months; track month.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker() && (month.date | date: 'yyyyMM') === (model() | date: 'yyyyMM')\"\r\n [title]=\"month.date | date: 'yyyy-MM'\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker() && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker() && onTdMouseleave(month)\"\r\n >\r\n @if (monthTemp()) {\r\n <ng-container *ngTemplateOutlet=\"monthTemp()!; context: { date$: month.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XDate, XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';\r\nimport { XDateQuarterPrefix } from './date-picker.property';\r\n\r\n@Pipe({ name: `${XDateQuarterPrefix}`, standalone: true })\r\nexport class XDateQuarterPipe implements PipeTransform {\r\n constructor() {}\r\n transform(input?: XDate, includeYear = false): string {\r\n if (!input) return '';\r\n return !includeYear ? XDateQuarter(input)! : XDateYearQuarter(input)!;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-picker-quarter',\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XDateQuarterPipe],\r\n templateUrl: './picker-quarter.component.html',\r\n styleUrls: ['./picker-quarter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe, XDateQuarterPipe]\r\n})\r\nexport class XPickerQuarterComponent extends XPickerQuarterProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private dateQuarterPipe = inject(XDateQuarterPipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setQuarters(this.display());\r\n }\r\n\r\n isStartQuarter(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndQuarter(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setQuarters(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 4; i++) {\r\n const cell = { date: new Date(year, i * 3, 1), isFirstDay: i === 0, isLastDay: i === 3 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fquarter = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fquartery = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display(), 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fquartery !== fdisplayy;\r\n cell.isNow = fquarter === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fquarter === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fquarter === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n quarterClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n getLocaleQuarter(date: Date) {\r\n return this.dateQuarterPipe.transform(date);\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setQuarters(this.display());\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-quarter-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (quarters of chunkDates(); track $index) {\r\n <tr>\r\n @for (quarter of quarters; track quarter.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date: 'yyyyMM') === (model() | date: 'yyyyMM')\"\r\n [title]=\"quarter.date | xDateQuarter: true\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker() && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker() && onTdMouseleave(quarter)\"\r\n >\r\n @if (quarterTemp()) {\r\n <ng-container *ngTemplateOutlet=\"quarterTemp()!; context: { date$: quarter.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n standalone: true,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n start = signal<number | null>(null);\r\n end = signal<number | null>(null);\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears(this.display());\r\n }\r\n\r\n isStartYear(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n isEndYear(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setYears(date: Date) {\r\n let year = date.getFullYear();\r\n this.start.set(Math.floor(year / 10) * 10);\r\n this.end.set(this.start()! + 9);\r\n let dates: XDateCell[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n const dt = new Date(this.start()! + i, 1, 1);\r\n const cell: XDateCell = {\r\n date: dt,\r\n isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),\r\n isLastOrNext: i < 0 || i > 9,\r\n isFirstDay: i === 0,\r\n isLastDay: i === 9\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n this.startChange.emit(this.start()!);\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fyear = this.datePipe.transform(cell.date, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyy');\r\n cell.isNow = fyear === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start!, 'yyyy');\r\n cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end!, 'yyyy');\r\n }\r\n return cell;\r\n }\r\n\r\n yearClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start()}` || yearStr > `${this.end}`;\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setYears(this.display());\r\n }\r\n\r\n nextYears(num: number) {\r\n this.start.update((x) => x! + num);\r\n let date = new Date(this.display());\r\n date.setFullYear(this.start()!);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n}\r\n","<div class=\"x-picker-year\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-year-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start() }}</x-link> -\r\n <x-link>{{ end() }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (years of chunkDates(); track $index) {\r\n <tr>\r\n @for (year of years; track year.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker() && (year.date | date: 'yyyy') === (model() | date: 'yyyy')\"\r\n [title]=\"year.date | date: 'yyyy'\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker() && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker() && onTdMouseleave(year)\"\r\n >\r\n @if (yearTemp()) {\r\n <ng-container *ngTemplateOutlet=\"yearTemp()!; context: { date$: year.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ year.date | date: 'yyyy' }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n viewChild,\r\n computed,\r\n signal,\r\n model\r\n} from '@angular/core';\r\nimport {\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime,\r\n XDatePickerPortalPrefix,\r\n XDatePickerPreset,\r\n XDatePickerType\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XConnectBaseAnimation,\r\n XPositionTopBottom,\r\n XAddDays,\r\n XTemplate,\r\n XIsUndefined\r\n} from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public get getPlacement() {\r\n return this.placement();\r\n }\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: string }) {\r\n event.toState !== 'void' && this.animating.emit(false);\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: string }) {\r\n event.toState !== 'void' && this.animating.emit(true);\r\n }\r\n\r\n private i18n = inject(XI18nService);\r\n private _type = signal<XDatePickerType>('date');\r\n\r\n timePickerFrame = viewChild('timePickerFrame', { read: XTimePickerFrameComponent });\r\n value = input<any>();\r\n type = model<XDatePickerType>('date');\r\n preset = input<XDatePickerPreset[]>([]);\r\n extraFooter = input<XTemplate>();\r\n placement = input<XPositionTopBottom>();\r\n inputCom = input<XInputComponent>();\r\n disabledDate = input<XDatePickerDisabledDate>();\r\n disabledTime = input<XDatePickerDisabledTime>();\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ date: Date; sure?: boolean }>();\r\n\r\n display = signal(new Date());\r\n model = signal<Date | null>(null);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n time = signal<number | null>(null);\r\n\r\n isDatePicker = computed(() => {\r\n return ['date', 'month', 'year'].includes(this.type());\r\n });\r\n\r\n sureDisabled = computed(() => {\r\n let res = XIsUndefined(this.time());\r\n let timePickerFrame = this.timePickerFrame();\r\n if (timePickerFrame && !XIsUndefined(this.time())) {\r\n const dt = new Date(this.time()!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n timePickerFrame.setDisabled('hours', hours) ||\r\n timePickerFrame.setDisabled('minutes', minutes) ||\r\n timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n }\r\n return res;\r\n });\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n }\r\n this._type.set(this.type());\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value());\r\n this.model.set(date);\r\n this.time.set(this.model()!.getTime());\r\n this.setDisplay(this.model()!);\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model.set(date);\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type())) {\r\n let time = new Date();\r\n if (['date-hour', 'date-minute'].includes(this.type())) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type() === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n if (!this.time()) {\r\n this.time.set(time.getTime());\r\n }\r\n this.setModelTime(this.model()!, new Date(this.time()!));\r\n this.nodeClick.emit({ date: this.model()!, sure: false });\r\n } else {\r\n this.nodeClick.emit({ date: this.model()!, sure: true });\r\n }\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'month') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set(this._type()!);\r\n }\r\n }\r\n\r\n quarterChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'quarter') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set(this._type());\r\n }\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'year') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set('month');\r\n }\r\n }\r\n\r\n onToday() {\r\n this.dateChange(new Date());\r\n }\r\n\r\n onYesterday() {\r\n this.dateChange(XAddDays(new Date(), -1));\r\n }\r\n\r\n onTomorrow() {\r\n this.dateChange(XAddDays(new Date(), 1));\r\n }\r\n\r\n onPresetFunc(item: XDatePickerPreset) {\r\n this.dateChange(item.func());\r\n }\r\n\r\n selectTime(time: Date) {\r\n if (!this.model()) {\r\n this.model.set(new Date());\r\n }\r\n this.time.set(time.getTime());\r\n this.nodeClick.emit({ date: this.setModelTime(this.model()!, time), sure: false });\r\n }\r\n\r\n setModelTime(date: Date, time: Date) {\r\n this.model.set(\r\n new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n )\r\n );\r\n return this.model()!;\r\n }\r\n}\r\n","<div class=\"x-date-picker-portal {{ type() }}\" (click)=\"inputCom()?.inputFocus('focus')\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n @case ('month') {}\r\n }\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(type)]=\"type\"\r\n [(model)]=\"model\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrameD\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n @if (!isDatePicker() && preset()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button\r\n type=\"primary\"\r\n text\r\n (click)=\"!sureDisabled() && nodeClick.emit({ date: model()!, sure: true })\"\r\n size=\"small\"\r\n [disabled]=\"sureDisabled()\"\r\n >{{ locale().sure }}</x-button\r\n >\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-picker-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('yesterday') {\r\n <x-link (click)=\"onYesterday()\">{{ locale().yesterday }}</x-link>\r\n }\r\n @case ('today') {\r\n <x-link (click)=\"onToday()\">{{ locale().today }}</x-link>\r\n }\r\n @case ('tomorrow') {\r\n <x-link (click)=\"onTomorrow()\">{{ locale().tomorrow }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n inject,\r\n signal,\r\n computed,\r\n viewChild,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XIsString,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents,\r\n XPlacement\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n standalone: true,\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private i18n = inject(XI18nService);\r\n private elementRef = inject(ElementRef);\r\n private overlay = inject(Overlay);\r\n\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n\r\n modelType = signal<XDatePickerModelType>('date');\r\n numberValue = signal<number | string | null>(null);\r\n isInput = signal(false);\r\n\r\n override writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType.set('date');\r\n this.numberValue.set(value.getTime());\r\n } else if (XIsNumber(value)) {\r\n this.modelType.set('number');\r\n this.numberValue.set(value);\r\n } else if (XIsString(value)) {\r\n this.modelType.set('string');\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue.set(!isNaN(valueTime) ? valueTime : '');\r\n } else if (XIsEmpty(value) || XIsNull(value)) {\r\n this.numberValue.set('');\r\n }\r\n this.value.set(value);\r\n this.setDisplayValue(this.numberValue()!);\r\n }\r\n\r\n enter = signal(false);\r\n inputClearable = signal(false);\r\n animating = signal(false);\r\n displayValue = signal('');\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon = signal('fto-calendar');\r\n closeSubject: Subject<void> = new Subject();\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n document = inject(DOCUMENT);\r\n\r\n private unSubject = new Subject<void>();\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDatePickerPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n placeholderSignal = computed(() => {\r\n if (this.placeholder()) return this.placeholder();\r\n if (this.type() === 'month') {\r\n return this.locale().selectMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().selectQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().selectYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().selectWeek;\r\n } else {\r\n return this.locale().selectDate;\r\n }\r\n });\r\n\r\n formatSignal = computed(() => {\r\n if (this.format() !== 'yyyy-MM-dd') return this.format();\r\n if (this.type() === 'date') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'year') {\r\n return 'yyyy';\r\n } else if (this.type() === 'quarter') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'month') {\r\n return 'yyyy-MM';\r\n } else if (this.type() === 'date-time') {\r\n return 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type() === 'date-hour') {\r\n return 'yyyy-MM-dd HH';\r\n } else if (this.type() === 'date-minute') {\r\n return 'yyyy-MM-dd HH:mm';\r\n }\r\n return this.format();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.numberValue()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('type', this.type()));\r\n effect(() => this.portalComponent()?.setInput('preset', this.preset()));\r\n effect(() => this.portalComponent()?.setInput('extraFooter', this.extraFooter()));\r\n effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));\r\n effect(() => this.portalComponent()?.setInput('disabledDate', this.disabledDate()));\r\n effect(() => this.portalComponent()?.setInput('disabledTime', this.disabledTime()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setDisplayValue(this.numberValue()!);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!this.clearable()) return;\r\n if (!XIsEmpty(this.numberValue())) {\r\n this.icon.set('');\r\n this.inputClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (!this.clearable()) return;\r\n if (this.inputClearable()) {\r\n this.icon.set('fto-calendar');\r\n this.inputClearable.set(false);\r\n }\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set(null);\r\n this.numberValue.set(null);\r\n this.displayValue.set('');\r\n this.mleave();\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n this.formControlValidator();\r\n }\r\n\r\n getValue() {\r\n if (this.numberValue() === '') return null;\r\n return ['date', 'string'].includes(this.modelType()) ? new Date(this.numberValue()!) : this.numberValue();\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue()!);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, animating } = componentRef.instance;\r\n nodeClick.subscribe((x) => this.onNodeClick(x.date, x.sure));\r\n animating.subscribe((ing) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput.set(false);\r\n if (sure) {\r\n this.numberValue.set(date.getTime());\r\n this.value.set(this.getValue());\r\n this.setDisplayValue(this.numberValue()!);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(Number(this.numberValue()));\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput.set(true);\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput() && !isNaN(Date.parse(this.displayValue())) && !['week', 'quarter'].includes(this.type())) {\r\n this.displayValue.set(this.datePipe.transform(this.displayValue(), this.formatSignal())!);\r\n this.numberValue.set(new Date(this.displayValue()).getTime());\r\n this.value.set(this.getValue());\r\n this.modelChange();\r\n this.isInput.set(false);\r\n } else {\r\n if (this.type() === 'week') {\r\n this.displayValue.set(XDateYearWeek(dateNumber));\r\n } else if (this.type() === 'quarter') {\r\n this.displayValue.set(XDateYearQuarter(dateNumber));\r\n } else {\r\n this.displayValue.set(this.datePipe.transform(dateNumber, this.formatSignal())!);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n }\r\n}\r\n","<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n input,\r\n output,\r\n computed,\r\n viewChild,\r\n signal,\r\n inject,\r\n model\r\n} from '@angular/core';\r\nimport {\r\n XDateRangePortalPrefix,\r\n XDatePickerType,\r\n XDateCell,\r\n XDateRangePreset,\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XConnectBaseAnimation,\r\n XPositionTopBottom,\r\n XAddMonths,\r\n XAddYears,\r\n XIsNull,\r\n XTemplate,\r\n XIsArray,\r\n XIsNumber,\r\n XIsString,\r\n XAddDays\r\n} from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDateRangePortalPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerYearComponent,\r\n XPickerQuarterComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-range-portal.component.html',\r\n styleUrls: ['./date-range-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDateRangePortalComponent implements AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public get getPlacement() {\r\n return this.placement();\r\n }\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: string }) {\r\n event.toState !== 'void' && this.animating.emit(false);\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: string }) {\r\n event.toState !== 'void' && this.animating.emit(true);\r\n }\r\n\r\n datePipe = inject(DatePipe);\r\n lowerCasePipe = inject(LowerCasePipe);\r\n i18n = inject(XI18nService);\r\n\r\n startPicker = viewChild<XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent>('startPicker');\r\n endPicker = viewChild<XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent>('endPicker');\r\n timePickerFrame = viewChild<XTimePickerFrameComponent>('timePickerFrame');\r\n\r\n value = model<(number | null)[]>([]);\r\n placement = input<XPositionTopBottom>();\r\n type = model<XDatePickerType>('date');\r\n preset = input<XDateRangePreset[]>([]);\r\n extraFooter = input<XTemplate>();\r\n disabledDate = input<XDatePickerDisabledDate>();\r\n disabledTime = input<XDatePickerDisabledTime>();\r\n activeType = input<'start' | 'end'>('start');\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ date: Date[]; close?: boolean }>();\r\n startNodeChanged = output<{ date: Date | null; close?: boolean; isDatePicker?: boolean }>();\r\n endNodeChanged = output<{ date: Date | null; close?: boolean; isDatePicker?: boolean }>();\r\n\r\n display = signal(new Date());\r\n model = signal<Date | null>(null);\r\n startModel = signal<Date | null>(null);\r\n endModel = signal<Date | null>(null);\r\n startYear = signal<number | null>(null);\r\n startDisplay = signal(new Date());\r\n endDisplay = signal(XAddMonths(this.startDisplay(), 1));\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n time = signal<number | null>(null);\r\n timeDisplay = signal(new Date());\r\n timeModel = signal<Date | null>(null);\r\n timeHover = signal(false);\r\n nodeClickCount = signal(0);\r\n\r\n isDatePicker = computed(() => {\r\n return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type());\r\n });\r\n\r\n sureDisabled = computed(() => {\r\n if (this.timePickerFrame() && !XIsEmpty(this.time())) {\r\n const dt = new Date(this.time()!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame()?.setDisabled('hours', hours) ||\r\n this.timePickerFrame()?.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame()?.setDisabled('seconds', seconds)\r\n );\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n } else {\r\n this.value.set([null, null]);\r\n this.model.set(this.display());\r\n this.startModel.set(this.model());\r\n this.endModel.set(this.setModelByType(this.model()!, this.isDatePicker() ? 1 : 0));\r\n this.setDisplay(this.model()!);\r\n }\r\n }\r\n\r\n setModelByType(byModel: Date, num: number = 1) {\r\n if (['month', 'quarter'].includes(this.type())) {\r\n return XAddYears(byModel!, num);\r\n } else if (this.type() === 'year') {\r\n return XAddYears(byModel!, 10 * num);\r\n } else {\r\n return XAddMonths(byModel!, num);\r\n }\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n if (this.type() === 'week') return;\r\n this.startPicker()?.setDatesState(cell);\r\n this.endPicker()?.setDatesState(cell);\r\n }\r\n\r\n setDefault() {\r\n const type = this.activeType() || 'start';\r\n this.timeHover.set(!this.value().every((x) => x === null));\r\n if (type === 'start') {\r\n this.startModel.set(new Date(this.value()[0]!));\r\n this.startDisplay.set(this.startModel()!);\r\n this.endModel.set(this.setModelByType(this.startModel()!, this.isDatePicker() ? 1 : 0));\r\n this.endDisplay.set(this.endModel()!);\r\n this.timeModel.set(this.startModel());\r\n this.timeDisplay.set(this.startDisplay());\r\n this.time.set(this.startModel()!.getTime());\r\n } else if (type === 'end') {\r\n this.endModel.set(new Date(this.value()[1]!));\r\n this.endDisplay.set(this.endModel()!);\r\n this.startModel.set(this.setModelByType(this.endModel()!, this.isDatePicker() ? -1 : 0));\r\n this.startDisplay.set(this.startModel()!);\r\n this.timeModel.set(this.endModel());\r\n this.timeDisplay.set(this.endDisplay());\r\n this.time.set(this.endModel()!.getTime());\r\n }\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.startDisplay.set(this.display());\r\n this.endDisplay.set(this.setModelByType(this.display(), this.isDatePicker() ? 1 : 0));\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.nodeClickCount.update((x) => x + 1);\r\n let close = this.nodeClickCount() === 2;\r\n let time = this.setDateChangeTime(date);\r\n const isDatePicker = this.isDatePicker();\r\n date = new Date(time);\r\n if (this.activeType() === 'start') {\r\n this.value()[0] = time;\r\n if (!XIsNull(this.value()[1]) && time > this.value()[1]!) {\r\n if (this.nodeClickCount() === 2) {\r\n this.nodeClickCount.update((x) => x - 1);\r\n }\r\n close = false;\r\n this.endModel.set(null);\r\n this.value.update((x) => {\r\n x[1] = null;\r\n return [...x];\r\n });\r\n if (!isDatePicker) {\r\n this.timeHover.set(false);\r\n }\r\n this.endNodeChanged.emit({ date: null, close, isDatePicker });\r\n }\r\n this.startNodeChanged.emit({ date, close, isDatePicker });\r\n } else if (this.activeType() === 'end') {\r\n this.value()[1] = time;\r\n if (!XIsNull(this.value()[0]) && time < this.value()[0]!) {\r\n if (this.nodeClickCount() === 2) {\r\n this.nodeClickCount.update((x) => x - 1);\r\n }\r\n close = false;\r\n this.startModel.set(null);\r\n this.value.update((x) => {\r\n x[0] = null;\r\n return [...x];\r\n });\r\n if (!isDatePicker) {\r\n this.timeHover.set(false);\r\n }\r\n this.startNodeChanged.emit({ date: null, close, isDatePicker });\r\n }\r\n this.endNodeChanged.emit({ date, close, isDatePicker });\r\n }\r\n if (!this.value().includes(null) && isDatePicker) {\r\n this.nodeClick.emit({ date: this.value().map((x) => new Date(x!)), close });\r\n }\r\n }\r\n\r\n setDateChangeTime(date: Date) {\r\n if (this.isDatePicker()) {\r\n return date.getTime();\r\n } else {\r\n let time = new Date();\r\n if (this.time()) {\r\n time = new Date(this.time()!);\r\n } else {\r\n this.time.set(time.getTime());\r\n }\r\n if (['date-hour', 'date-minute'].includes(this.type())) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type() === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n ).getTime();\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear.set(number);\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display());\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear.update((x) => x! + num);\r\n let date = new Date(this.display());\r\n date.setFullYear(this.startYear()!);\r\n this.setDisplay(date);\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time.set(time.getTime());\r\n if (XIsEmpty(this.timeModel())) {\r\n this.timeModel.set(new Date());\r\n }\r\n this.timeModel()?.setHours(time.getHours());\r\n this.timeModel()?.setMinutes(time.getMinutes());\r\n this.timeModel()?.setSeconds(time.getSeconds());\r\n this.dateChange(this.timeModel()!);\r\n }\r\n\r\n sureTime() {\r\n if (this.sureDisabled()) return;\r\n const [start, end] = this.value();\r\n if (XIsNull(start) && !XIsNull(end)) {\r\n this.time.set(null);\r\n this.timeHover.set(true);\r\n this.endNodeChanged.emit({ date: new Date(end!), close: false, isDatePicker: true });\r\n } else if (!XIsNull(start) && XIsNull(end)) {\r\n this.time.set(null);\r\n this.timeHover.set(true);\r\n this.startNodeChanged.emit({ date: new Date(start!), close: false, isDatePicker: true });\r\n } else {\r\n this.nodeClick.emit({ date: this.value().map((x) => new Date(x!)), close: true });\r\n }\r\n }\r\n\r\n yearChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay.update((x) => XAddYears(x, num));\r\n } else if (type === 'end') {\r\n this.startDisplay.update((x) => XAddYears(x, num));\r\n }\r\n }\r\n\r\n monthChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay.update((x) => XAddMonths(x, num));\r\n } else if (type === 'end') {\r\n this.startDisplay.update((x) => XAddMonths(x, num));\r\n }\r\n }\r\n\r\n onPreset(type: 'week' | 'month' | 'year', num = 0) {\r\n let now = new Date();\r\n if (type === 'week') {\r\n now = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n const week = now.getDay();\r\n const weekList = [1, 2, 3, 4, 5, 6, 7];\r\n const index = weekList.indexOf(week);\r\n this.nodeClick.emit({\r\n date: [XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)],\r\n close: true\r\n });\r\n } else if (type === 'month') {\r\n const month = XAddMonths(now, num);\r\n const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);\r\n const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);\r\n this.nodeClick.emit({ date: [firstDay, lastDay], close: true });\r\n } else if (type === 'year') {\r\n let year = XAddYears(now, num);\r\n let firstDay = new Date(year.getFullYear(), 0, 1);\r\n let lastDay = XAddDays(XAddYears(firstDay, 1), -1);\r\n this.nodeClick.emit({ date: [firstDay, lastDay], close: true });\r\n }\r\n }\r\n\r\n onPresetFunc(item: XDateRangePreset) {\r\n let value = item.func();\r\n if (XIsArray(value) && value.length > 1) {\r\n if (XIsNumber(value[0]) || XIsString(value[0])) {\r\n value = value.map((x) => new Date(x));\r\n }\r\n this.nodeClick.emit({ date: value, close: true });\r\n }\r\n }\r\n}\r\n","<div class=\"x-date-range-portal {{ type() }}\">\r\n <div class=\"x-date-range-portal-body\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type=\"week\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type=\"week\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n }\r\n </div>\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType() === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover()\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType()\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n }\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n @if (!isDatePicker()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" text (click)=\"!sureDisabled() && sureTime()\" size=\"small\" [disabled]=\"sureDisabled()!\">{{\r\n locale().sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-range-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('thisWeek') {\r\n <x-link (click)=\"onPreset('week', 0)\">{{ locale().thisWeek }}</x-link>\r\n }\r\n @case ('lastWeek') {\r\n <x-link (click)=\"onPreset('week', -1)\">{{ locale().lastWeek }}</x-link>\r\n }\r\n @case ('nextWeek') {\r\n <x-link (click)=\"onPreset('week', 1)\">{{ locale().nextWeek }}</x-link>\r\n }\r\n @case ('thisMonth') {\r\n <x-link (click)=\"onPreset('month', 0)\">{{ locale().thisMonth }}</x-link>\r\n }\r\n @case ('lastMonth') {\r\n <x-link (click)=\"onPreset('month', -1)\">{{ locale().lastMonth }}</x-link>\r\n }\r\n @case ('nextMonth') {\r\n <x-link (click)=\"onPreset('month', 1)\">{{ locale().nextMonth }}</x-link>\r\n }\r\n @case ('thisYear') {\r\n <x-link (click)=\"onPreset('year', 0)\">{{ locale().thisYear }}</x-link>\r\n }\r\n @case ('lastYear') {\r\n <x-link (click)=\"onPreset('year', -1)\">{{ locale().lastYear }}</x-link>\r\n }\r\n @case ('nextYear') {\r\n <x-link (click)=\"onPreset('year', 1)\">{{ locale().nextYear }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n inject,\r\n OnDestroy,\r\n AfterViewInit,\r\n viewChild,\r\n signal,\r\n HostBinding,\r\n computed,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XDatePickerModelType, XDateRangePrefix, XDateRangeProperty } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XIsString,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents,\r\n XPlacement\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe, NgClass } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDateRangePrefix}`,\r\n standalone: true,\r\n imports: [NgClass, FormsModule, XInputComponent, XInputGroupComponent],\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDateRangeComponent), DatePipe]\r\n})\r\nexport class XDateRangeComponent extends XDateRangeProperty implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n @HostBinding('class') get className() {\r\n return `x-date-range-${this.type()}`;\r\n }\r\n dateRange = viewChild.required('dateRange', { read: ElementRef<HTMLElement> });\r\n inputGroup = viewChild.required('inputGroup', { read: XInputGroupComponent });\r\n inputStartCom = viewChild.required('inputStartCom', { read: XInputComponent });\r\n inputEndCom = viewChild.required('inputEndCom', { read: XInputComponent });\r\n\r\n modelType = signal<XDatePickerModelType>('date');\r\n numberValue = signal<(number | null)[]>([]);\r\n isInput = signal(false);\r\n showClearable = signal(false);\r\n\r\n startPlaceholder() {\r\n if (this.placeholder() && this.placeholder().length > 0) return this.placeholder()[0];\r\n if (this.type() === 'month') {\r\n return this.locale().startMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().startQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().startYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().startWeek;\r\n } else {\r\n return this.locale().startDate;\r\n }\r\n }\r\n\r\n endPlaceholder() {\r\n if (this.placeholder() && this.placeholder().length > 1) return this.placeholder()[1];\r\n if (this.type() === 'month') {\r\n return this.locale().endMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().endQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().endYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().endWeek;\r\n } else {\r\n return this.locale().endDate;\r\n }\r\n }\r\n\r\n override writeValue(value: any) {\r\n if (XIsEmpty(value)) {\r\n value = [];\r\n this.numberValue.set([]);\r\n }\r\n if (value.length > 0) {\r\n if (XIsDate(value[0])) {\r\n this.modelType.set('date');\r\n this.numberValue.set(value.map((x: Date) => x.getTime()));\r\n } else if (XIsNumber(value[0])) {\r\n this.modelType.set('number');\r\n this.numberValue.set(value);\r\n } else if (XIsString(value[0])) {\r\n this.modelType.set('string');\r\n const valueTime = value.map((x: string) => new Date(x).getTime());\r\n this.numberValue.set(!isNaN(valueTime[0]) ? valueTime : []);\r\n }\r\n }\r\n this.value.set(value);\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n\r\n enter = signal(false);\r\n inputClearable = signal(false);\r\n animating = signal(false);\r\n displayValue = signal<string[]>([]);\r\n portal!: XPortalOverlayRef<XDateRangePortalComponent>;\r\n icon = signal('fto-calendar');\r\n closeSubject: Subject<void> = new Subject();\r\n startDisplay = signal<string | number>('');\r\n endDisplay = signal<string | number>('');\r\n activeType = signal<'start' | 'end'>('start');\r\n private unSubject = new Subject<void>();\r\n private document = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private overlay = inject(Overlay);\r\n private i18n = inject(XI18nService);\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n classMap = computed(() => ({\r\n [`${XDateRangePrefix}-${this.size()}`]: !!this.size(),\r\n [`x-justify-${this.justify()}`]: !!this.justify(),\r\n [`x-align-${this.align()}`]: !!this.align(),\r\n [`x-direction-${this.direction()}`]: !!this.direction()\r\n }));\r\n labelMapSignal = computed(() => ({\r\n [`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()\r\n }));\r\n\r\n formatSignal = computed(() => {\r\n if (this.format() !== 'yyyy-MM-dd') return this.format();\r\n if (this.type() === 'date') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'year') {\r\n return 'yyyy';\r\n } else if (this.type() === 'month') {\r\n return 'yyyy-MM';\r\n } else if (this.type() === 'date-time') {\r\n return 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type() === 'date-hour') {\r\n return 'yyyy-MM-dd HH';\r\n } else if (this.type() === 'date-minute') {\r\n return 'yyyy-MM-dd HH:mm';\r\n }\r\n return this.format();\r\n });\r\n\r\n getValue = computed(() => {\r\n return this.modelType() === 'date'\r\n ? this.numberValue().map((x) => new Date(x!))\r\n : this.modelType() === 'string'\r\n ? this.numberValue().map((x) => this.datePipe.transform(x!, this.formatSignal()))\r\n : this.numberValue();\r\n });\r\n\r\n getNumberValue = computed(() => {\r\n return this.modelType() === 'date'\r\n ? this.value().map((x: Date) => x.getTime())\r\n : this.modelType() === 'string'\r\n ? this.value().map((x: string) => new Date(x).getTime())\r\n : this.value();\r\n });\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDateRangePortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.numberValue()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('activeType', this.activeType()));\r\n effect(() => this.portalComponent()?.setInput('type', this.type()));\r\n effect(() => this.portalComponent()?.setInput('preset', this.preset()));\r\n effect(() => this.portalComponent()?.setInput('extraFooter', this.extraFooter()));\r\n effect(() => this.portalComponent()?.setInput('disabledDate', this.disabledDate()));\r\n effect(() => this.portalComponent()?.setInput('disabledTime', this.disabledTime()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portalOverlayRef()?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed() || !this.clearable()) return;\r\n this.enter.set(true);\r\n if (!XIsEmpty(this.numberValue())) {\r\n this.icon.set('');\r\n this.showClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed() || !this.clearable()) return;\r\n this.enter.set(false);\r\n if (this.clearable()) {\r\n this.icon.set('fto-calendar');\r\n this.showClearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set([]);\r\n this.numberValue.set([]);\r\n this.startDisplay.set('');\r\n this.endDisplay.set('');\r\n this.mleave();\r\n this.formControlValidator();\r\n this.modelChange();\r\n this.inputStartCom().inputFocus('focus');\r\n }\r\n\r\n onIconClick(event: Event) {\r\n if (this.icon() === 'fto-x') {\r\n this.clearEmit();\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n this.closeReduction();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n closeReduction() {\r\n if (!this.numberValue() || this.numberValue().length === 0 || this.numberValue().includes(null)) {\r\n if (!this.value() || this.value().length === 0) {\r\n this.startDisplay.set('');\r\n this.endDisplay.set('');\r\n this.numberValue.set([]);\r\n } else {\r\n this.numberValue.set(this.getNumberValue());\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n if (!this.numberValue().includes(null) && this.value() && !this.value().includes(null)) {\r\n let numberValue = this.getNumberValue();\r\n if (this.numberValue()[0] !== numberValue[0] || this.numberValue()[1] !== numberValue[1]) {\r\n this.numberValue.set(numberValue);\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n }\r\n\r\n showPortal($event: Event, type?: 'start' | 'end') {\r\n type && $event.stopPropagation();\r\n if (this.disabled() || this.animating()) return;\r\n this.activeType.set(type || 'start');\r\n if (this.active()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDateRangePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((event: MouseEvent) => {\r\n const clickTarget = event.target as HTMLElement;\r\n if (\r\n clickTarget !== this.inputStartCom().inputRef().nativeElement &&\r\n clickTarget !== this.inputEndCom().inputRef().nativeElement\r\n ) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, startNodeChanged, endNodeChanged, animating } = componentRef.instance;\r\n nodeClick.subscribe((x) => this.onNodeClick(x.date, x.close));\r\n startNodeChanged.subscribe((x) => this.startNodeClick(x.date!, x.close, x.isDatePicker));\r\n endNodeChanged.subscribe((x) => this.endNodeClick(x.date!, x.close, x.isDatePicker));\r\n animating.subscribe((x) => this.animating.set(x));\r\n }\r\n\r\n startNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.startDisplay.set(\r\n !node\r\n ? ''\r\n : this.type() === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type() === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.formatSignal())!\r\n );\r\n if (!close && isDatePicker) {\r\n this.inputEndCom().inputFocus('focus');\r\n this.activeType.set('end');\r\n }\r\n }\r\n\r\n endNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.endDisplay.set(\r\n !node\r\n ? ''\r\n : this.type() === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type() === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.formatSignal())!\r\n );\r\n if (!close && isDatePicker) {\r\n this.inputStartCom().inputFocus('focus');\r\n this.activeType.set('start');\r\n }\r\n }\r\n\r\n onNodeClick(dates: Date[], close = true) {\r\n this.isInput.set(false);\r\n this.numberValue.set(dates.map((x) => x.getTime()));\r\n this.value.set(this.getValue());\r\n this.setDisplayValue(this.numberValue());\r\n this.formControlValidator();\r\n if (close) {\r\n this.closeSubject.next();\r\n }\r\n this.modelChange();\r\n }\r\n\r\n onInput() {\r\n this.isInput.set(true);\r\n }\r\n\r\n onFocus(type: 'start' | 'end') {\r\n this.activeType.set(type);\r\n }\r\n\r\n setDisplayValue(dateNumber: (number | null)[]) {\r\n if (!dateNumber) return;\r\n if (!XIsNull(dateNumber[0])) {\r\n if (this.type() === 'week') {\r\n this.startDisplay.set(XDateYearWeek(dateNumber[0]!)!);\r\n } else if (this.type() === 'quarter') {\r\n this.startDisplay.set(XDateYearQuarter(dateNumber[0]!)!);\r\n } else {\r\n this.startDisplay.set(this.datePipe.transform(dateNumber[0], this.formatSignal()) as string);\r\n }\r\n }\r\n if (!XIsNull(dateNumber[1])) {\r\n if (this.type() === 'week') {\r\n this.endDisplay.set(XDateYearWeek(dateNumber[1]!)!);\r\n } else if (this.type() === 'quarter') {\r\n this.endDisplay.set(XDateYearQuarter(dateNumber[1]!)!);\r\n } else {\r\n this.endDisplay.set(this.datePipe.transform(dateNumber[1], this.formatSignal()) as string);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputGroup().elementRef,\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-range-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n }\r\n}\r\n","<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-checked]=\"value()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-date-range-bordered]=\"bordered()\"\r\n [class.x-date-range-active]=\"active()\"\r\n [class.x-date-range-active-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType() === 'end'\"\r\n>\r\n @if (label()) {\r\n <label [class.x-date-range-label-required]=\"required()\" [style.width]=\"labelWidth()\" [ngClass]=\"labelMapSignal()\">{{\r\n label()\r\n }}</label>\r\n }\r\n <div class=\"x-date-range-row\">\r\n <x-input-group\r\n #inputGroup\r\n class=\"x-date-range-group\"\r\n (mouseenter)=\"menter()\"\r\n (mouseleave)=\"mleave()\"\r\n (click)=\"showPortal($event)\"\r\n >\r\n <x-input\r\n #inputStartCom\r\n class=\"x-date-range-input x-date-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabledComputed()\"\r\n [placeholder]=\"startPlaceholder()!\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-date-range-input x-date-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabledComputed()\"\r\n [placeholder]=\"endPlaceholder()!\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon()\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable()\"\r\n ></x-input>\r\n @if (active()) {\r\n <div class=\"x-date-range-active-bar\"></div>\r\n }\r\n </x-input-group>\r\n @if (invalid()) {\r\n <span class=\"x-date-range-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDateRangeComponent } from './date-range.component';\r\n\r\n@NgModule({\r\n exports: [XDatePickerComponent, XDateRangeComponent],\r\n imports: [XDatePickerComponent, XDateRangeComponent]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}