ngx-tethys 20.0.1 → 20.0.2

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 (239) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/action/index.d.ts +3 -3
  3. package/affix/index.d.ts +1 -1
  4. package/alert/index.d.ts +3 -3
  5. package/anchor/index.d.ts +3 -3
  6. package/arrow-switcher/index.d.ts +6 -6
  7. package/autocomplete/index.d.ts +7 -7
  8. package/avatar/index.d.ts +9 -9
  9. package/back-top/index.d.ts +3 -3
  10. package/badge/index.d.ts +6 -6
  11. package/breadcrumb/index.d.ts +7 -7
  12. package/button/index.d.ts +19 -19
  13. package/calendar/index.d.ts +8 -8
  14. package/card/index.d.ts +6 -6
  15. package/carousel/index.d.ts +4 -4
  16. package/cascader/index.d.ts +24 -24
  17. package/collapse/index.d.ts +4 -4
  18. package/color-picker/index.d.ts +16 -16
  19. package/comment/index.d.ts +3 -3
  20. package/copy/index.d.ts +2 -2
  21. package/core/index.d.ts +22 -22
  22. package/date-picker/index.d.ts +111 -111
  23. package/date-range/index.d.ts +5 -5
  24. package/dialog/index.d.ts +18 -18
  25. package/divider/index.d.ts +3 -3
  26. package/drag-drop/index.d.ts +7 -7
  27. package/dropdown/index.d.ts +10 -10
  28. package/empty/index.d.ts +12 -12
  29. package/fesm2022/ngx-tethys-action.mjs +14 -12
  30. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  32. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  34. package/fesm2022/ngx-tethys-anchor.mjs +11 -11
  35. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  37. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
  39. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-avatar.mjs +23 -22
  41. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  43. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  44. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  46. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-button.mjs +16 -16
  48. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  50. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-card.mjs +13 -13
  52. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  54. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-cascader.mjs +41 -34
  56. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  58. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  59. package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
  60. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  62. package/fesm2022/ngx-tethys-copy.mjs +10 -10
  63. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-core.mjs +30 -25
  65. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
  67. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-date-range.mjs +16 -16
  69. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-dialog.mjs +24 -24
  71. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  73. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  75. package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
  76. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
  78. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-empty.mjs +13 -13
  80. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  82. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-form.mjs +64 -61
  84. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
  86. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-grid.mjs +34 -33
  88. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-guider.mjs +25 -24
  90. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-i18n.mjs +3 -3
  92. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-icon.mjs +15 -13
  94. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-image.mjs +31 -29
  96. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-input-number.mjs +17 -10
  98. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-input.mjs +28 -27
  100. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-layout.mjs +63 -63
  102. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-list.mjs +21 -18
  104. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  106. package/fesm2022/ngx-tethys-mention.mjs +35 -31
  107. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-menu.mjs +26 -26
  109. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-message.mjs +24 -24
  111. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-nav.mjs +27 -27
  113. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  114. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  115. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-pagination.mjs +18 -18
  117. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-popover.mjs +22 -21
  119. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  121. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  123. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-property.mjs +12 -11
  125. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-radio.mjs +17 -17
  127. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-rate.mjs +12 -12
  129. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-resizable.mjs +21 -18
  131. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-result.mjs +11 -11
  133. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-segment.mjs +19 -16
  135. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-select.mjs +60 -38
  137. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-shared.mjs +82 -79
  139. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
  141. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-slide.mjs +37 -36
  143. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-slider.mjs +11 -11
  145. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-space.mjs +10 -10
  147. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  148. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  150. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  152. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  154. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-table.mjs +28 -28
  156. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  158. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  160. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-testing.mjs +1 -1
  162. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
  164. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  166. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
  168. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-transfer.mjs +15 -15
  170. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
  172. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-tree.mjs +50 -43
  174. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-typography.mjs +16 -16
  176. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-upload.mjs +26 -25
  178. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-util.mjs +11 -5
  180. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  182. package/fesm2022/ngx-tethys-watermark.mjs +18 -15
  183. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys.mjs +1 -1
  185. package/fesm2022/ngx-tethys.mjs.map +1 -1
  186. package/flexible-text/index.d.ts +5 -5
  187. package/form/index.d.ts +26 -22
  188. package/fullscreen/index.d.ts +4 -4
  189. package/grid/index.d.ts +12 -12
  190. package/guider/index.d.ts +10 -10
  191. package/i18n/index.d.ts +1 -1
  192. package/icon/index.d.ts +3 -3
  193. package/image/index.d.ts +12 -12
  194. package/input/index.d.ts +22 -22
  195. package/input-number/index.d.ts +4 -4
  196. package/layout/index.d.ts +16 -16
  197. package/list/index.d.ts +16 -15
  198. package/mention/index.d.ts +4 -4
  199. package/menu/index.d.ts +7 -7
  200. package/message/index.d.ts +5 -5
  201. package/nav/index.d.ts +12 -12
  202. package/notify/index.d.ts +1 -1
  203. package/package.json +1 -1
  204. package/pagination/index.d.ts +21 -17
  205. package/popover/index.d.ts +8 -8
  206. package/progress/index.d.ts +18 -18
  207. package/property/index.d.ts +6 -6
  208. package/property-operation/index.d.ts +3 -3
  209. package/radio/index.d.ts +6 -6
  210. package/rate/index.d.ts +5 -5
  211. package/resizable/index.d.ts +2 -2
  212. package/result/index.d.ts +8 -8
  213. package/schematics/testing/test-workspace.js +1 -0
  214. package/schematics/version.d.ts +1 -1
  215. package/schematics/version.js +1 -1
  216. package/segment/index.d.ts +9 -9
  217. package/select/index.d.ts +21 -21
  218. package/shared/index.d.ts +29 -29
  219. package/skeleton/index.d.ts +52 -52
  220. package/slide/index.d.ts +5 -5
  221. package/slider/index.d.ts +6 -6
  222. package/space/index.d.ts +1 -1
  223. package/statistic/index.d.ts +18 -18
  224. package/stepper/index.d.ts +8 -8
  225. package/switch/index.d.ts +2 -2
  226. package/table/index.d.ts +24 -24
  227. package/tabs/index.d.ts +6 -6
  228. package/testing/index.d.ts +1 -1
  229. package/time-picker/index.d.ts +21 -21
  230. package/timeline/index.d.ts +8 -8
  231. package/tooltip/index.d.ts +12 -12
  232. package/transfer/index.d.ts +16 -16
  233. package/tree/index.d.ts +28 -28
  234. package/tree-select/index.d.ts +13 -13
  235. package/typography/index.d.ts +3 -3
  236. package/upload/index.d.ts +4 -4
  237. package/util/index.d.ts +17 -7
  238. package/vote/index.d.ts +2 -2
  239. package/watermark/index.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-date-picker.mjs","sources":["../../../src/date-picker/date-helper.service.ts","../../../src/date-picker/lib/calendar/calendar-header.component.ts","../../../src/date-picker/lib/month/month-header.component.ts","../../../src/date-picker/lib/calendar/calendar-header.component.html","../../../src/date-picker/lib/calendar/calendar-footer.component.ts","../../../src/date-picker/lib/calendar/calendar-footer.component.html","../../../src/date-picker/date-picker.config.ts","../../../src/date-picker/date-picker.service.ts","../../../src/date-picker/picker.util.ts","../../../src/date-picker/picker.pipes.ts","../../../src/date-picker/lib/date-carousel/date-carousel.component.ts","../../../src/date-picker/lib/date-carousel/date-carousel.component.html","../../../src/date-picker/lib/date/date-header.component.ts","../../../src/date-picker/lib/calendar/calendar-table.component.ts","../../../src/date-picker/lib/date/date-table-cell.component.ts","../../../src/date-picker/lib/date/date-table-cell.component.html","../../../src/date-picker/lib/date/date-table.component.ts","../../../src/date-picker/lib/date/date-table.component.html","../../../src/date-picker/lib/decade/decade-header.component.ts","../../../src/date-picker/lib/decade/decade-table.component.ts","../../../src/date-picker/lib/decade/decade-table.component.html","../../../src/date-picker/lib/month/month-table.component.ts","../../../src/date-picker/lib/month/month-table.component.html","../../../src/date-picker/lib/quarter/quarter-table.component.ts","../../../src/date-picker/lib/quarter/quarter-table.component.html","../../../src/date-picker/lib/year/year-header.component.ts","../../../src/date-picker/lib/year/year-table.component.ts","../../../src/date-picker/lib/year/year-table.component.html","../../../src/date-picker/lib/popups/inner-popup.component.ts","../../../src/date-picker/lib/popups/inner-popup.component.html","../../../src/date-picker/lib/popups/date-popup.component.ts","../../../src/date-picker/lib/popups/date-popup.component.html","../../../src/date-picker/lib/lib-packer.module.ts","../../../src/date-picker/picker.component.ts","../../../src/date-picker/picker.component.html","../../../src/date-picker/abstract-picker.component.ts","../../../src/date-picker/base-picker.component.ts","../../../src/date-picker/date-picker.component.ts","../../../src/date-picker/base-picker.component.html","../../../src/date-picker/month-picker.component.ts","../../../src/date-picker/range-picker.component.ts","../../../src/date-picker/week-picker.component.ts","../../../src/date-picker/year-picker.component.ts","../../../src/date-picker/picker.validators.ts","../../../src/date-picker/abstract-picker.directive.ts","../../../src/date-picker/date-picker.directive.ts","../../../src/date-picker/range-picker.directive.ts","../../../src/date-picker/quarter-picker.component.ts","../../../src/date-picker/date-picker.module.ts","../../../src/date-picker/ngx-tethys-date-picker.ts"],"sourcesContent":["import { Injectable, Signal } from '@angular/core';\nimport { ThyI18nLocale, injectLocale } from 'ngx-tethys/i18n';\nimport { formatDate } from '@angular/common';\n\nexport function DATE_HELPER_SERVICE_FACTORY(): DateHelperService {\n return new DateHelperByDatePipe();\n}\n\n/**\n * @private\n */\n@Injectable({\n providedIn: 'root',\n useFactory: DATE_HELPER_SERVICE_FACTORY\n})\nexport abstract class DateHelperService {\n locale: Signal<ThyI18nLocale> = injectLocale();\n relyOnDatePipe: boolean = this instanceof DateHelperByDatePipe;\n abstract getISOWeek(date: Date): number;\n abstract format(date: Date, formatStr: string): string;\n}\n\nexport class DateHelperByDatePipe extends DateHelperService {\n getISOWeek(date: Date): number {\n return +this.format(date, 'w');\n }\n\n format(date: Date | null, formatStr: string): string {\n return date ? formatDate(date, formatStr, this.locale().id) : '';\n }\n\n transCompatFormat(format: string): string {\n return format && format.replace(/Y/g, 'y').replace(/D/g, 'd');\n }\n}\n","import { Directive, OnInit, Signal, effect, inject, input, model, output } from '@angular/core';\nimport { ThyPanelMode } from '../../standard-types';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\n\nexport interface PanelSelector {\n className: string;\n title?: string;\n label: string;\n onClick?(): void;\n}\n\n/**\n * @private\n */\n@Directive()\nexport abstract class CalendarHeader implements OnInit {\n protected dateHelper = inject(DateHelperService);\n\n protected locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly showSuperPreBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly showSuperNextBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly showPreBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly showNextBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly value = model<TinyDate>();\n\n readonly valueChange = output<TinyDate>();\n\n readonly panelModeChange = output<ThyPanelMode>();\n\n abstract getSelectors(): PanelSelector[];\n\n protected prefixCls = 'thy-calendar';\n\n protected selectors: PanelSelector[];\n\n constructor() {\n effect(() => {\n this.render();\n });\n }\n\n ngOnInit(): void {\n if (!this.value()) {\n this.value.set(new TinyDate());\n }\n }\n\n superPrevious(): void {\n this.gotoYear(-1);\n }\n\n superNext(): void {\n this.gotoYear(1);\n }\n\n previous(): void {\n this.gotoMonth(-1);\n }\n\n next(): void {\n this.gotoMonth(1);\n }\n\n changePanel(mode: ThyPanelMode, value?: TinyDate): void {\n this.panelModeChange.emit(mode);\n }\n\n selectorClick(event: Event, selector: PanelSelector) {\n event.stopPropagation();\n return selector ? selector.onClick() : null;\n }\n\n private render(): void {\n if (this.value()) {\n this.selectors = this.getSelectors();\n }\n }\n\n private gotoMonth(amount: number): void {\n this.changeValue(this.value().addMonths(amount));\n }\n\n private gotoYear(amount: number): void {\n this.changeValue(this.value().addYears(amount));\n }\n\n public changeValue(value: TinyDate): void {\n if (this.value() !== value) {\n this.value.set(value);\n this.valueChange.emit(value);\n }\n }\n\n formatDateTime(format: string): string {\n const date = this.value().nativeDate;\n return this.dateHelper.format(date, format);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'month-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class MonthHeader extends CalendarHeader {\n getSelectors(): PanelSelector[] {\n let yearFormat = this.locale().yearFormat;\n\n return [\n {\n className: `${this.prefixCls}-month-btn`,\n onClick: () => this.changePanel('year'),\n label: this.formatDateTime(yearFormat)\n }\n ];\n }\n}\n","<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n [title]=\"locale().previousYear\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-prev-month-btn\"\n [ngClass]=\"showPreBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"previous()\"\n [title]=\"locale().previousMonth\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a\n class=\"{{ prefixCls }}-next-month-btn\"\n [ngClass]=\"showNextBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"next()\"\n [title]=\"locale().nextMonth\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n [title]=\"locale().nextYear\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, model, effect, OnInit, output, signal, Signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInnerTimePicker } from 'ngx-tethys/time-picker';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'calendar-footer',\n exportAs: 'calendarFooter',\n templateUrl: 'calendar-footer.component.html',\n imports: [ThyIcon, ThyInnerTimePicker, FormsModule, ThyButton]\n})\nexport class CalendarFooter implements OnInit {\n /**\n * 是否支持设置时间 (时、分)\n */\n readonly showTime = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否展示时间 (时、分)\n */\n readonly mustShowTime = input(false, { transform: coerceBooleanProperty });\n\n readonly value = model<TinyDate>();\n\n readonly timeZone = input<string>();\n\n readonly disableTimeConfirm = input(false, { transform: coerceBooleanProperty });\n\n readonly selectTime = output<TinyDate>();\n\n readonly clickOk = output<void>();\n\n readonly clickRemove = output<void>();\n\n readonly showTimePickerChange = output<boolean>();\n\n readonly isShowTime = signal<boolean>(false);\n\n readonly isCanTime = signal<boolean>(false);\n\n readonly locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n constructor() {\n effect(() => {\n this.initTimeShowMode();\n });\n }\n\n ngOnInit() {\n this.initValue();\n }\n\n initValue(): void {\n if (!this.value()) {\n const defaultDate = new TinyDate(undefined, this.timeZone());\n this.value.set(defaultDate);\n }\n }\n\n onSelectTime(date: Date): void {\n this.selectTime.emit(new TinyDate(date, this.timeZone()));\n }\n\n onTimeOk() {\n if (this.disableTimeConfirm()) {\n return;\n }\n this.selectTime.emit(this.value());\n this.clickOk.emit();\n }\n\n onClear() {\n this.value.set(null);\n this.clickRemove.emit();\n }\n\n changeTimeShowMode(type: string) {\n this.isCanTime.set(type === 'can');\n this.isShowTime.set(type === 'show');\n\n this.showTimePickerChange.emit(this.isShowTime());\n }\n\n private initTimeShowMode() {\n if (this.mustShowTime()) {\n this.changeTimeShowMode('show');\n } else {\n if (this.showTime()) {\n this.changeTimeShowMode('can');\n }\n }\n }\n}\n","@let showTime = isShowTime();\n@let canTime = isCanTime();\n\n@if (showTime || canTime) {\n <div class=\"time-picker-section\" (click)=\"$event.stopPropagation()\">\n @if (canTime) {\n <a href=\"javascript:;\" class=\"link-has-icon time-picker-set-btn\" (click)=\"changeTimeShowMode('show')\">\n <thy-icon thyIconName=\"clock-circle\"></thy-icon>{{ locale().setTime }}\n </a>\n }\n @if (showTime) {\n <thy-inner-time-picker\n class=\"time-picker-wrap\"\n [showMeridian]=\"false\"\n [timeZone]=\"timeZone()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onSelectTime($event)\"></thy-inner-time-picker>\n }\n <div class=\"time-picker-btn-wrap\">\n @if (!canTime) {\n <button [disabled]=\"disableTimeConfirm()\" class=\"time-picker-ok-btn\" thyButton=\"primary\" thySize=\"sm\" (click)=\"onTimeOk()\">\n {{ locale().ok }}\n </button>\n }\n <button class=\"time-picker-clear-btn\" thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"onClear()\">{{ locale().clear }}</button>\n </div>\n </div>\n}\n","import { InjectionToken, Signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { injectLocale, ThyDatePickerLocale, ThyI18nService } from 'ngx-tethys/i18n';\nimport { addDays, addWeeks, startOfDay, startOfWeek, subDays, TinyDate, WeekDayIndex } from 'ngx-tethys/util';\nimport { CompatiblePresets, ThyShortcutPosition } from './standard-types';\n\nexport interface ThyDatePickerConfig {\n shortcutPosition: ThyShortcutPosition;\n shortcutDatePresets: CompatiblePresets;\n shortcutRangesPresets: CompatiblePresets;\n showShortcut: boolean;\n weekStartsOn: WeekDayIndex;\n separator: string;\n timestampPrecision: 'seconds' | 'milliseconds';\n dateCellRender?: (date: Date) => SafeHtml | undefined;\n}\n\n/**\n * @deprecated\n */\nexport const DEFAULT_DATE_PICKER_CONFIG: ThyDatePickerConfig = {\n shortcutPosition: 'left',\n showShortcut: false,\n weekStartsOn: 1,\n separator: '~',\n timestampPrecision: 'seconds',\n shortcutDatePresets: () => {\n return [\n {\n title: '今天',\n value: startOfDay(new TinyDate().getTime()).getTime()\n },\n {\n title: '明天',\n value: startOfDay(addDays(new TinyDate().getTime(), 1)).getTime()\n },\n {\n title: '下周',\n value: startOfWeek(addWeeks(new TinyDate().getTime(), 1), { weekStartsOn: 1 }).getTime()\n }\n ];\n },\n shortcutRangesPresets: () => {\n return [\n {\n title: '最近 7 天',\n value: [new TinyDate(subDays(new TinyDate().getTime(), 6)).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: '最近 30 天',\n value: [new TinyDate(subDays(new TinyDate().getTime(), 29)).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: '本周',\n value: [new TinyDate().startOfWeek({ weekStartsOn: 1 }).getTime(), new TinyDate().endOfWeek({ weekStartsOn: 1 }).getTime()]\n },\n {\n title: '本月',\n value: [new TinyDate().startOfMonth().getTime(), new TinyDate().endOfMonth().getTime()]\n }\n ];\n }\n};\n\nexport const QUARTER_FORMAT = \"'Q'q\";\n\nexport const THY_DATE_PICKER_CONFIG = new InjectionToken<ThyDatePickerConfig>('thy-date-picker-config');\n\nexport function useDatePickerDefaultConfig(): ThyDatePickerConfig {\n const locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n return {\n shortcutPosition: 'left',\n showShortcut: false,\n weekStartsOn: 1,\n separator: '~',\n timestampPrecision: 'seconds',\n shortcutDatePresets: () => {\n return [\n {\n title: locale().today,\n value: startOfDay(new TinyDate().nativeDate).getTime()\n },\n {\n title: locale().tomorrow,\n value: startOfDay(addDays(new TinyDate().nativeDate, 1)).getTime()\n },\n {\n title: locale().nextWeek,\n value: startOfWeek(addWeeks(new TinyDate().nativeDate, 1), { weekStartsOn: 1 }).getTime()\n }\n ];\n },\n shortcutRangesPresets: () => {\n return [\n {\n title: locale().lastSevenDays,\n value: [new TinyDate().subDays(6).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: locale().lastThirtyDays,\n value: [new TinyDate().subDays(29).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: locale().currentWeek,\n value: [\n new TinyDate().startOfWeek({ weekStartsOn: 1 }).getTime(),\n new TinyDate().endOfWeek({ weekStartsOn: 1 }).getTime()\n ]\n },\n {\n title: locale().currentMonth,\n value: [new TinyDate().startOfMonth().getTime(), new TinyDate().endOfMonth().getTime()]\n }\n ];\n }\n };\n}\n\nexport const THY_DATE_PICKER_CONFIG_PROVIDER = {\n provide: THY_DATE_PICKER_CONFIG,\n useFactory: useDatePickerDefaultConfig,\n deps: [ThyI18nService]\n};\n","import { Injectable, inject } from '@angular/core';\nimport { THY_DATE_PICKER_CONFIG, ThyDatePickerConfig, useDatePickerDefaultConfig } from './date-picker.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyDatePickerConfigService {\n config: ThyDatePickerConfig;\n\n constructor() {\n const datePickerConfig = inject(THY_DATE_PICKER_CONFIG, { optional: true })!;\n\n this.config = { ...useDatePickerDefaultConfig(), ...datePickerConfig };\n }\n\n get shortcutDatePresets() {\n return this.config.shortcutDatePresets;\n }\n\n get shortcutPosition() {\n return this.config.shortcutPosition;\n }\n\n get showShortcut() {\n return this.config.showShortcut;\n }\n get shortcutRangesPresets() {\n return this.config.shortcutRangesPresets;\n }\n\n get timestampPrecision() {\n return this.config.timestampPrecision;\n }\n\n get separator() {\n return this.config.separator.trim();\n }\n}\n","import { Signal } from '@angular/core';\nimport { ThyI18nLocale } from 'ngx-tethys/i18n';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceArray, helpers, TinyDate } from 'ngx-tethys/util';\nimport { CompatibleValue, RangeAdvancedValue } from './inner-types';\nimport { ThyCompatibleDate, DateEntry, ThyDateGranularity, ThyDateRangeEntry, ThyPanelMode, ThyShortcutValue } from './standard-types';\n\nexport function transformDateValue(\n value: ThyCompatibleDate | CompatibleValue | number | DateEntry | ThyDateRangeEntry | RangeAdvancedValue\n): {\n value: ThyCompatibleDate;\n withTime?: boolean;\n flexibleDateGranularity?: ThyDateGranularity;\n} {\n if (!value) {\n return { value: null };\n }\n let withTime, flexibleDateGranularity: ThyDateGranularity;\n if (value && typeof value === 'number') {\n value = convertDate(value);\n }\n if (value && instanceOfCompatibleValue(value as CompatibleValue)) {\n if (value instanceof TinyDate) {\n value = convertDate(value.nativeDate);\n } else {\n value[0] = convertDate(value[0].nativeDate);\n value[1] = convertDate(value[1].nativeDate);\n }\n }\n if (value && instanceOfDateEntry(value as DateEntry)) {\n const { date, with_time } = value as DateEntry;\n value = date ? convertDate(date) : null;\n withTime = !!with_time;\n }\n if (value && instanceOfRangeEntry(value as ThyDateRangeEntry)) {\n const rangeValue = value as ThyDateRangeEntry;\n value = [];\n if (rangeValue.begin && rangeValue.end) {\n value[0] = convertDate(rangeValue.begin);\n value[1] = convertDate(rangeValue.end);\n }\n if (rangeValue.granularity) {\n flexibleDateGranularity = rangeValue.granularity;\n }\n }\n\n if (value && instanceOfRangeAdvancedValue(value as RangeAdvancedValue)) {\n const rangeValue = value as RangeAdvancedValue;\n if (rangeValue.dateGranularity) {\n flexibleDateGranularity = rangeValue.dateGranularity;\n }\n value = [];\n if (rangeValue.begin && rangeValue.end) {\n value[0] = convertDate(rangeValue.begin.nativeDate);\n value[1] = convertDate(rangeValue.end.nativeDate);\n }\n }\n return { value: value as ThyCompatibleDate, withTime, flexibleDateGranularity };\n}\n\nexport function getFlexibleAdvancedReadableValue(\n tinyDates: TinyDate[],\n flexibleDateGranularity: ThyDateGranularity,\n separator: string,\n locale: Signal<ThyI18nLocale>\n) {\n let value = '';\n if (!tinyDates[0] || !tinyDates[1]) {\n return value;\n }\n switch (flexibleDateGranularity) {\n case 'year':\n const yearFormatStr = locale().datePicker.yearFormat;\n if (tinyDates[0].isSameYear(tinyDates[1])) {\n value = `${tinyDates[0].format(yearFormatStr)}`;\n } else {\n value = `${tinyDates[0].format(yearFormatStr)}${separator}${tinyDates[1].format(yearFormatStr)}`;\n }\n break;\n case 'quarter':\n const quarterFormatStr = locale().datePicker.yearQuarterFormat;\n if (tinyDates[0].isSameQuarter(tinyDates[1])) {\n value = `${tinyDates[0].format(quarterFormatStr)}`;\n } else {\n value = `${tinyDates[0].format(quarterFormatStr)}${separator}${tinyDates[1].format(quarterFormatStr)}`;\n }\n break;\n case 'month':\n const monthFormatStr = locale().datePicker.yearMonthFormat;\n if (tinyDates[0].isSameMonth(tinyDates[1])) {\n value = `${tinyDates[0].format(monthFormatStr)}`;\n } else {\n value = `${tinyDates[0].format(monthFormatStr)}${separator}${tinyDates[1].format(monthFormatStr)}`;\n }\n break;\n }\n return value;\n}\n\nexport function convertDate(date: Date | number | TinyDate): Date {\n if (typeof date === 'number') {\n if (date.toString().length < 13) {\n return TinyDate.fromUnixTime(date)?.nativeDate;\n } else {\n return new TinyDate(date)?.nativeDate;\n }\n } else if (date instanceof TinyDate) {\n return date?.nativeDate;\n } else {\n return new TinyDate(date)?.nativeDate;\n }\n}\n\nexport function hasValue(value: CompatibleValue): boolean {\n if (Array.isArray(value)) {\n return !!value[0] && !!value[1];\n } else {\n return !!value;\n }\n}\n\nexport function makeValue(\n value: ThyCompatibleDate | null,\n isRange: boolean = false,\n withTime: boolean,\n timeZone?: string\n): CompatibleValue {\n if (isRange) {\n return Array.isArray(value) ? (value as Date[]).map(val => new TinyDate(val, timeZone)) : [];\n } else {\n if (!value) {\n return null;\n }\n const date = new TinyDate(value as Date, timeZone);\n return withTime ? date.setSeconds(0) : date.startOfDay();\n }\n}\n\nexport function dateAddAmount(value: TinyDate, amount: number, mode: ThyPanelMode): TinyDate {\n let date: TinyDate;\n switch (mode) {\n case 'decade':\n date = value.addYears(amount * 10);\n break;\n case 'year':\n date = value.addYears(amount);\n break;\n case 'month':\n date = value.addMonths(amount);\n break;\n default:\n date = value.addMonths(amount);\n break;\n }\n return date;\n}\n\n// rightDate 超过 leftDate 一个月\nexport function isAfterMoreThanOneMonth(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n if (rightDate.getYear() < leftDate.getYear()) {\n return false;\n }\n\n if (rightDate.getYear() === leftDate.getYear() && leftDate.getMonth() + 1 >= rightDate.getMonth()) {\n return false;\n }\n\n // 处理rightDate(2020,1,1) 为leftDate(2020,12,1)后一年1月,同时leftDate日期为12月的特殊情况\n return !(rightDate.getYear() - leftDate.getYear() === 1 && rightDate.getMonth() === 0 && leftDate.getMonth() === 11);\n}\n\n// rightDate 超过 leftDate 不到一年\nexport function isAfterMoreThanLessOneYear(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n if (rightDate.getYear() <= leftDate.getYear()) {\n return false;\n }\n // 处理rightDate(2021,1,1)日期比leftDate(2020,12,1)日期大1年,同时rightDate日期月份小于leftDate日期月份的情况\n return !(rightDate.getYear() - leftDate.getYear() === 1 && rightDate.getMonth() <= leftDate.getMonth());\n}\n\n// rightDate 超过 leftDate 一年\nexport function isAfterMoreThanOneYear(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n if (leftDate.getYear() + 1 >= rightDate.getYear()) {\n return false;\n } else {\n return true;\n }\n}\n\nexport function isAfterMoreThanOneDecade(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n return rightDate.getYear() - leftDate.getYear() >= 20;\n}\n\nexport function instanceOfDateEntry(object: DateEntry): object is DateEntry {\n return isSupportDateType(object, 'date') && typeof object.with_time === 'number';\n}\n\nexport function instanceOfRangeEntry(object: ThyDateRangeEntry): object is ThyDateRangeEntry {\n return isSupportDateType(object, 'begin') && isSupportDateType(object, 'end');\n}\n\nexport function instanceOfCompatibleValue(object: CompatibleValue): object is CompatibleValue {\n return object instanceof TinyDate || object[0] instanceof TinyDate;\n}\n\nexport function instanceOfRangeAdvancedValue(object: RangeAdvancedValue): object is RangeAdvancedValue {\n return object['begin'] instanceof TinyDate && object['end'] instanceof TinyDate;\n}\n\nexport function isSupportDateType(object: DateEntry | ThyDateRangeEntry, key: string) {\n return typeof object[key] === 'number' || object[key] === null || object[key] instanceof Date;\n}\n\nexport function getShortcutValue(value: ThyShortcutValue): number | Date {\n return helpers.isFunction(value) ? value() : value;\n}\n\nexport function isValidStringDate(dateStr: string, timeZone?: string): boolean {\n const parseDate = parseStringDate(dateStr, timeZone).nativeDate.getTime();\n return !(parseDate < 0 || isNaN(parseDate));\n}\n\nexport function parseStringDate(dateStr: string, timeZone?: string): TinyDate {\n return hasTimeInStringDate(dateStr, timeZone)\n ? new TinyDate(fixStringDate(dateStr, timeZone), timeZone)\n : new TinyDate(fixStringDate(dateStr, timeZone), timeZone).startOfDay();\n}\n\nexport function hasTimeInStringDate(dateStr: string, timeZone?: string): boolean {\n const formatDate = fixStringDate(dateStr, timeZone);\n const timeRegex = /(\\d{1,2}:\\d{1,2}(:\\d{1,2})?)|(^\\d{1,2}时\\d{1,2}分(\\d{1,2}秒)?)$/;\n return timeRegex.test(formatDate);\n}\n\nfunction fixStringDate(dateStr: string, timeZone?: string) {\n let replacedStr = dateStr.replace(/[^0-9\\s.,:]/g, '-').replace('- ', ' ');\n const hasYear = /\\d{4}/.test(replacedStr);\n if (!hasYear || replacedStr.length < 'yyyy.M.d'.length) {\n replacedStr = `${new TinyDate(undefined, timeZone).getYear()}-${replacedStr}`;\n }\n return replacedStr;\n}\n\nexport function setValueByTimestampPrecision(\n date: ThyCompatibleDate | number | Date | DateEntry | ThyDateRangeEntry | SafeAny,\n isRange: boolean,\n timestampPrecision: 'seconds' | 'milliseconds',\n timeZone?: string\n): number | number[] {\n const { value } = transformDateValue(date);\n if (!value || (helpers.isArray(value) && !value?.length)) {\n return helpers.isArray(value) ? [null, null] : null;\n }\n if (timestampPrecision === 'milliseconds') {\n return isRange\n ? coerceArray(value).map(val => new TinyDate(val, timeZone).getTime())\n : new TinyDate(value as Date, timeZone).getTime();\n } else {\n return isRange\n ? coerceArray(value).map(val => new TinyDate(val, timeZone).getUnixTime())\n : new TinyDate(value as Date, timeZone)?.getUnixTime();\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { ThyI18nService } from 'ngx-tethys/i18n';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { DateHelperService } from './date-helper.service';\nimport { QUARTER_FORMAT } from './date-picker.config';\nimport { ThyDatePickerConfigService } from './date-picker.service';\nimport { AdvancedSelectableCell } from './inner-types';\nimport { getFlexibleAdvancedReadableValue, transformDateValue } from './picker.util';\nimport { ThyCompatibleDate, DateEntry, ThyDateGranularity, ThyDateRangeEntry } from './standard-types';\n\n/**\n * @private\n */\n@Pipe({\n name: 'thyDatePickerFormat'\n})\nexport class ThyDatePickerFormatPipe implements PipeTransform {\n private dateHelper = inject(DateHelperService);\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n private i18n = inject(ThyI18nService);\n\n transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry, formatStr?: string, separator?: string): string {\n const { value, withTime, flexibleDateGranularity } = transformDateValue(originalValue);\n\n if (!formatStr) {\n formatStr = withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n }\n const currentSeparator = ` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `;\n if (!Array.isArray(value)) {\n return this.dateHelper.format(value, formatStr);\n } else {\n if (flexibleDateGranularity && flexibleDateGranularity !== 'day') {\n const tinyDates = [new TinyDate(value[0]), new TinyDate(value[1])];\n return getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity, currentSeparator, this.i18n.getLocale());\n } else {\n return value.map(date => this.dateHelper.format(date, formatStr)).join(currentSeparator);\n }\n }\n }\n}\n\n@Pipe({\n name: 'thyQuarterPickerFormat'\n})\nexport class ThyQuarterPickerFormatPipe implements PipeTransform {\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry, formatStr?: string, separator?: string): string {\n const { value } = transformDateValue(originalValue);\n\n if (!formatStr) {\n formatStr = `yyyy-${QUARTER_FORMAT}`;\n }\n\n if (!value) {\n return;\n }\n\n if (!Array.isArray(value)) {\n const _value = new TinyDate(value);\n return _value.format(formatStr);\n } else {\n return value\n .map(date => {\n const _date = new TinyDate(date);\n return _date.format(formatStr);\n })\n .join(` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `);\n }\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'thyDatePickerFormatString'\n})\nexport class ThyDatePickerFormatStringPipe implements PipeTransform {\n transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry): string {\n const { withTime } = transformDateValue(originalValue);\n\n return withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'showYearTip'\n})\nexport class DatePickerAdvancedShowYearTipPipe implements PipeTransform {\n transform(value: AdvancedSelectableCell, type: ThyDateGranularity): boolean {\n return type !== 'year' && value.startValue.isSameDay(value.startValue.startOfYear());\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, inject, input, OnDestroy, OnInit, Signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { DateHelperService } from '../../date-helper.service';\nimport { AdvancedSelectableCell, RangeAdvancedValue } from '../../inner-types';\nimport { DatePickerAdvancedShowYearTipPipe } from '../../picker.pipes';\nimport { ThyDateGranularity } from '../../standard-types';\nimport { QUARTER_FORMAT } from '../../date-picker.config';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-carousel',\n templateUrl: './date-carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DateCarousel)\n }\n ],\n host: {\n class: 'thy-date-picker-advanced-carousel'\n },\n imports: [NgTemplateOutlet, ThyButton, ThyIcon, NgClass, DatePickerAdvancedShowYearTipPipe]\n})\nexport class DateCarousel implements OnInit, ControlValueAccessor, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n\n private dateHelper = inject(DateHelperService);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly activeDate = input<TinyDate>();\n\n set defaultValue(value: RangeAdvancedValue) {\n this.dateGranularity = value.dateGranularity;\n this.buildSelectableData(value.begin);\n\n if (value.begin && value.end) {\n const shouldBeSelectValue = this.getShouldBeToggleValue(value.begin, value.end);\n this.select(...shouldBeSelectValue);\n } else {\n this.clearSelect(true);\n }\n this.initialized = true;\n }\n\n selectableData: { year?: AdvancedSelectableCell[]; quarter?: AdvancedSelectableCell[]; month?: AdvancedSelectableCell[] } = {};\n\n dateGranularity: ThyDateGranularity;\n\n selectedValue: AdvancedSelectableCell[] = [];\n\n private initialized = false;\n\n private selectedValueChange$ = new Subject<RangeAdvancedValue>();\n\n private _onChange: (value: RangeAdvancedValue) => void;\n\n private _onTouched: (value: RangeAdvancedValue) => void;\n\n ngOnInit(): void {\n this.selectedValueChange$.subscribe(() => {\n if (this.selectedValue.length) {\n this.buildSelectableData(this.selectedValue[0]?.startValue, this.dateGranularity);\n }\n this.selectableData.year.forEach(item => (item.classMap = this.getClassMap(item)));\n this.selectableData.quarter.forEach(item => (item.classMap = this.getClassMap(item)));\n this.selectableData.month.forEach(item => (item.classMap = this.getClassMap(item)));\n if (this.initialized) {\n if (this.isSelectEmpty()) {\n this._onChange({\n dateGranularity: null,\n begin: null,\n end: null\n });\n } else {\n const selctedValue = this.selectedValue;\n this._onChange({\n dateGranularity: this.dateGranularity,\n begin: selctedValue[0]?.startValue,\n end: selctedValue[selctedValue.length - 1]?.endValue\n });\n }\n }\n });\n }\n\n writeValue(value: RangeAdvancedValue): void {\n if (value) {\n this.defaultValue = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n getClassMap(cell: AdvancedSelectableCell) {\n return {\n [`active`]: this.isSelected(cell),\n [`indeterminate`]: this.isCellIndeterminate(this.selectedValue, cell),\n [`type-active`]: this.isTypeActive(this.selectedValue, cell),\n ['in-hover-range']: cell.isInRange,\n ['out-range']: cell.isOutRange\n };\n }\n\n isTypeActive(originalValue: AdvancedSelectableCell[], value: AdvancedSelectableCell) {\n return originalValue?.length && originalValue[0].type === value.type;\n }\n\n isCellIndeterminate(originalValue: AdvancedSelectableCell[], value: AdvancedSelectableCell) {\n if (originalValue[0]?.type === value.type) {\n return false;\n } else {\n if (originalValue[0]?.type === 'year') {\n return !!originalValue.find(item => item.startValue.isSameYear(value.startValue));\n } else {\n return value.type === 'year'\n ? !!originalValue.find(item => item.startValue.isSameYear(value.startValue))\n : !!originalValue.find(item => item.startValue.isSameQuarter(value.startValue));\n }\n }\n }\n\n isSelected(value: AdvancedSelectableCell) {\n return this.selectedValue.find(item => item.startValue.isSameDay(value.startValue)) && this.dateGranularity === value.type;\n }\n\n isSelectEmpty() {\n return this.selectedValue.length == 0;\n }\n\n selectSort() {\n this.selectedValue.sort((a, b) => a.startValue.getTime() - b.startValue.getTime());\n }\n\n select(...value: AdvancedSelectableCell[]) {\n value.forEach(item => {\n if (!this.isSelected(item)) {\n this.selectedValue.push(...value);\n }\n });\n this.selectSort();\n this.selectedValueChange$.next(undefined);\n }\n\n deselect(...value: AdvancedSelectableCell[]) {\n value.forEach(item => {\n this.selectedValue = this.selectedValue.filter(selected => !selected.startValue.isSameDay(item.startValue));\n });\n this.selectSort();\n this.selectedValueChange$.next(undefined);\n }\n\n clearSelect(hidden?: boolean) {\n this.selectedValue = [];\n if (!hidden) {\n this.selectedValueChange$.next(undefined);\n }\n }\n\n getShouldBeToggleValue(begin: TinyDate, end: TinyDate) {\n let selectedValue: AdvancedSelectableCell[] = [];\n switch (this.dateGranularity) {\n case 'year':\n this.dateGranularity = 'year';\n if (begin.isSameYear(end)) {\n selectedValue.push(this.getSelectableYear(begin));\n } else {\n selectedValue.push(this.getSelectableYear(begin));\n while (!begin.isSameYear(end)) {\n begin = begin.addYears(1);\n selectedValue.push(this.getSelectableYear(begin));\n }\n }\n break;\n case 'month':\n this.dateGranularity = 'month';\n if (begin.isSameMonth(end)) {\n selectedValue.push(this.getSelectableMonth(begin));\n } else {\n selectedValue.push(this.getSelectableMonth(begin));\n while (!begin.isSameMonth(end)) {\n begin = begin.addMonths(1);\n selectedValue.push(this.getSelectableMonth(begin));\n }\n }\n break;\n case 'quarter':\n this.dateGranularity = 'quarter';\n if (begin.isSameQuarter(end)) {\n selectedValue.push(this.getSelectableQuarter(begin));\n } else {\n selectedValue.push(this.getSelectableQuarter(begin));\n while (!begin.isSameQuarter(end)) {\n begin = begin.addQuarters(1);\n selectedValue.push(this.getSelectableQuarter(begin));\n }\n }\n }\n return selectedValue;\n }\n\n buildSelectableData(startDate: TinyDate, excludeGranularity?: ThyDateGranularity) {\n const buildGranularity = ['year', 'month', 'quarter'].filter(item => item !== excludeGranularity);\n buildGranularity.forEach(granularity => {\n switch (granularity) {\n case 'year':\n this.selectableData.year = [...Array(3).keys()].map((item, index) => {\n return this.getSelectableYear(startDate, index);\n });\n break;\n case 'quarter':\n this.selectableData.quarter = [...Array(4).keys()].map((item, index) => {\n return this.getSelectableQuarter(startDate, index);\n });\n break;\n case 'month':\n this.selectableData.month = [...Array(4).keys()].map((item, index) => {\n return this.getSelectableMonth(startDate, index);\n });\n break;\n }\n });\n this.cdr.markForCheck();\n }\n\n getSelectableYear(currentDate: TinyDate, preOrNextcount: number = 0): AdvancedSelectableCell {\n currentDate = currentDate || this.activeDate() || new TinyDate().startOfYear();\n return {\n type: 'year',\n content: `${currentDate.addYears(preOrNextcount).getYear()}`,\n startValue: currentDate.addYears(preOrNextcount).startOfYear(),\n endValue: currentDate.addYears(preOrNextcount).endOfYear(),\n classMap: {}\n };\n }\n\n getSelectableQuarter(currentDate: TinyDate, preOrNextcount: number = 0): AdvancedSelectableCell {\n currentDate = currentDate || this.activeDate() || new TinyDate().startOfQuarter();\n return {\n type: 'quarter',\n content: `${currentDate.addQuarters(preOrNextcount).format(QUARTER_FORMAT)}`,\n startValue: currentDate.addQuarters(preOrNextcount).startOfQuarter(),\n endValue: currentDate.addQuarters(preOrNextcount).endOfQuarter(),\n classMap: {}\n };\n }\n\n getSelectableMonth(currentDate: TinyDate, preOrNextcount: number = 0): AdvancedSelectableCell {\n currentDate = currentDate || this.activeDate() || new TinyDate().startOfMonth();\n // Selectable months for advanced range selector\n const cell: AdvancedSelectableCell = {\n type: 'month',\n content: this.dateHelper.format(currentDate.addMonths(preOrNextcount).nativeDate, this.locale().monthFormat),\n startValue: currentDate.addMonths(preOrNextcount).startOfMonth(),\n endValue: currentDate.addMonths(preOrNextcount).endOfMonth(),\n classMap: {}\n };\n return cell;\n }\n\n prevClick(type: ThyDateGranularity) {\n switch (type) {\n case 'year':\n this.selectableData.year = this.selectableData.year.map(item => this.getSelectableYear(item.startValue, -1));\n break;\n case 'quarter':\n this.selectableData.quarter = this.selectableData.quarter.map(item => this.getSelectableQuarter(item.startValue, -2));\n break;\n case 'month':\n this.selectableData.month = this.selectableData.month.map(item => this.getSelectableMonth(item.startValue, -2));\n }\n this.selectableData[type].forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n nextClick(type: ThyDateGranularity) {\n switch (type) {\n case 'year':\n this.selectableData.year = this.selectableData.year.map(item => this.getSelectableYear(item.startValue, 1));\n break;\n case 'quarter':\n this.selectableData.quarter = this.selectableData.quarter.map(item => this.getSelectableQuarter(item.startValue, 2));\n break;\n case 'month':\n this.selectableData.month = this.selectableData.month.map(item => this.getSelectableMonth(item.startValue, 2));\n }\n this.selectableData[type].forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n selectDate(type: ThyDateGranularity, value: AdvancedSelectableCell) {\n this.selectableData[type].forEach(item => {\n item.isInRange = false;\n item.isOutRange = false;\n });\n\n if (this.isSelectEmpty()) {\n this.dateGranularity = type;\n this.select(value);\n // this.selectedValueChange$.next();\n return;\n }\n if (this.isSelected(value)) {\n this.toggleSelect(value);\n if (this.isSelectEmpty()) {\n this.dateGranularity = null;\n }\n return;\n }\n\n if (this.dateGranularity === value.type) {\n const { rangeStart, rangeEnd } = this.getActualStartAndEnd(value);\n const shouldBeSelectValue = this.getShouldBeToggleValue(rangeStart, rangeEnd);\n this.select(...shouldBeSelectValue);\n // this.selectedValueChange$.next();\n } else {\n this.dateGranularity = type;\n this.clearSelect(true);\n this.select(value);\n // this.selectedValueChange$.next();\n }\n }\n toggleSelect(value: AdvancedSelectableCell) {\n if (value.startValue.isSameDay(this.selectedValue[0].startValue)) {\n // only deselect first one\n this.deselect(value);\n } else {\n // deselect current and all after current\n const rangeStart = value.startValue;\n const rangeEnd = this.selectedValue[this.selectedValue.length - 1].endValue;\n const shouldBeDeselectValue = this.getShouldBeToggleValue(rangeStart, rangeEnd);\n this.deselect(...shouldBeDeselectValue);\n }\n }\n\n onMouseenter(event: Event, type: ThyDateGranularity, value: AdvancedSelectableCell) {\n if (this.isSelectEmpty() || this.dateGranularity !== type) {\n return;\n }\n if (this.isSelected(value)) {\n value.isInRange = true;\n if (value.startValue.isSameDay(this.selectedValue[0].startValue)) {\n value.isOutRange = true;\n } else {\n const rangeStart = value.startValue;\n const rangeEnd = this.selectedValue[this.selectedValue.length - 1].endValue;\n this.selectableData[type].forEach((item: AdvancedSelectableCell) => {\n if (item.startValue.getTime() >= rangeStart.getTime() && item.startValue.getTime() < rangeEnd.getTime()) {\n item.isOutRange = true;\n } else {\n item.isOutRange = false;\n }\n });\n }\n } else {\n const { rangeStart, rangeEnd } = this.getActualStartAndEnd(value);\n this.selectableData[type].forEach((item: AdvancedSelectableCell) => {\n if (item.startValue.getTime() >= rangeStart.getTime() && item.startValue.getTime() < rangeEnd.getTime()) {\n item.isInRange = true;\n } else {\n item.isInRange = false;\n }\n });\n }\n this.selectableData[type].forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n onMouseleave(event: Event, type: ThyDateGranularity, value: AdvancedSelectableCell) {\n if (value.isInRange) {\n this.selectableData[type].forEach(item => (item.isInRange = false));\n }\n if (value.isOutRange) {\n this.selectableData[type].forEach(item => (item.isOutRange = false));\n }\n this.selectableData[type].forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n getActualStartAndEnd(value: AdvancedSelectableCell) {\n const selectedStart = this.selectedValue[0].startValue;\n const selectedEnd = this.selectedValue[this.selectedValue.length - 1].endValue;\n let rangeStart: TinyDate, rangeEnd: TinyDate;\n if (value.startValue.isBeforeDay(selectedStart)) {\n rangeStart = value.startValue;\n rangeEnd = selectedStart;\n }\n if (value.startValue.isAfterDay(selectedEnd)) {\n rangeStart = selectedEnd;\n rangeEnd = value.endValue;\n }\n return { rangeStart, rangeEnd };\n }\n\n ngOnDestroy(): void {\n this.selectedValueChange$.complete();\n }\n}\n","<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: locale().yearText, type: 'year', selectableData: selectableData.year }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().quarterText, type: 'quarter', selectableData: selectableData.quarter }\n \"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().monthText, type: 'month', selectableData: selectableData.month }\n \"></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n @for (item of selectableData; track $index) {\n <div\n class=\"selectable-button right-space\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\">\n @if (item | showYearTip: type) {\n <span class=\"year-tip\">{{ item?.startValue?.getYear() }}</span>\n }\n @if (item.isInRange && isSelected(item)) {\n <thy-icon thyIconName=\"close\"></thy-icon>\n }\n @if (item.isInRange && !isSelected(item)) {\n <thy-icon thyIconName=\"plus\"></thy-icon>\n }\n @if (!item.isInRange) {\n <span>{{ item?.content }}</span>\n }\n </div>\n }\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class DateHeader extends CalendarHeader {\n getSelectors(): PanelSelector[] {\n const yearFormat = this.locale().yearFormat;\n const monthFormat = this.locale().monthFormat;\n\n return [\n {\n className: `${this.prefixCls}-year-btn`,\n title: '',\n onClick: () => this.changePanel('year'),\n label: this.formatDateTime(yearFormat)\n },\n {\n className: `${this.prefixCls}-month-btn`,\n title: '',\n onClick: () => this.changePanel('month'),\n label: this.formatDateTime(monthFormat)\n }\n ];\n }\n}\n","import { Directive, input, OnInit, Signal, SimpleChange, SimpleChanges, TemplateRef, model, output, OnChanges } from '@angular/core';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, FunctionProp, isTemplateRef, TinyDate } from 'ngx-tethys/util';\nimport { DateBodyRow, DateCell } from '../date/types';\nimport { DisabledDateFn } from '../../standard-types';\n\n/**\n * @private\n */\n@Directive()\nexport abstract class CalendarTable implements OnInit, OnChanges {\n protected locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n isTemplateRef = isTemplateRef;\n\n headRow: DateCell[] = [];\n\n bodyRows: DateBodyRow[] = [];\n\n MAX_ROW = 6;\n\n MAX_COL = 7;\n\n readonly prefixCls = input<string>('thy-calendar');\n\n readonly value = model<TinyDate>();\n\n readonly activeDate = model<TinyDate>(new TinyDate());\n\n readonly showWeek = input(false, { transform: coerceBooleanProperty });\n\n readonly selectedValue = input<TinyDate[]>([]);\n\n readonly hoverValue = input<TinyDate[]>([]);\n\n readonly timeZone = input<string>();\n\n readonly disabledDate = input<DisabledDateFn>();\n\n readonly cellRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly valueChange = output<TinyDate>();\n\n readonly cellHover = output<TinyDate>(); // Emitted when hover on a day by mouse enter\n\n protected render(): void {\n if (this.activeDate()) {\n this.headRow = this.makeHeadRow();\n this.bodyRows = this.makeBodyRows();\n }\n }\n\n trackByBodyRow(_index: number, item: DateBodyRow): SafeAny {\n return item.trackByIndex;\n }\n\n trackByBodyColumn(_index: number, item: DateCell): SafeAny {\n return item.trackByIndex;\n }\n\n hasRangeValue(): boolean {\n return this.selectedValue()?.length > 0 || this.hoverValue()?.length > 0;\n }\n\n abstract makeHeadRow(): DateCell[];\n\n abstract makeBodyRows(): DateBodyRow[];\n\n ngOnInit(): void {\n this.render();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.activeDate && !changes.activeDate.currentValue) {\n this.activeDate.set(new TinyDate(undefined, this.timeZone()));\n }\n\n if (\n changes.disabledDate ||\n changes.locale ||\n changes.showWeek ||\n this.isDateRealChange(changes.activeDate) ||\n this.isDateRealChange(changes.value) ||\n this.isDateRealChange(changes.selectedValue) ||\n this.isDateRealChange(changes.hoverValue)\n ) {\n this.render();\n }\n }\n\n private isDateRealChange(change: SimpleChange): boolean {\n if (change) {\n const previousValue: TinyDate | TinyDate[] = change.previousValue;\n const currentValue: TinyDate | TinyDate[] = change.currentValue;\n if (Array.isArray(currentValue)) {\n return (\n !Array.isArray(previousValue) ||\n currentValue.length !== previousValue.length ||\n currentValue.some((value, index) => {\n const previousCandyDate = previousValue[index];\n return previousCandyDate instanceof TinyDate ? previousCandyDate.isSameDay(value) : previousCandyDate !== value;\n })\n );\n } else {\n return !this.isSameDate(previousValue as TinyDate, currentValue);\n }\n }\n return false;\n }\n\n private isSameDate(left: TinyDate, right: TinyDate): boolean {\n return (!left && !right) || (left && right && right.isSameDay(left));\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { isEmpty, isFunction, isString, isTemplateRef, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { ThyDatePickerConfigService } from '../../date-picker.service';\nimport { DateCell } from './types';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[date-table-cell]',\n exportAs: 'dateTableCell',\n templateUrl: './date-table-cell.component.html',\n imports: [NgTemplateOutlet]\n})\nexport class DateTableCell {\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n isTemplateRef = isTemplateRef;\n\n readonly prefixCls = input<'thy-calendar' | 'thy-calendar-full'>();\n\n readonly cell = input<DateCell>();\n\n isNonEmptyString = (v: any) => isEmpty(v) && isString(v);\n\n readonly functionRenderResult = computed(() => {\n const renderFn = this.cellRender();\n if (!isFunction(renderFn)) {\n return false;\n }\n\n const result = renderFn(this.cell().value);\n return !isUndefinedOrNull(result);\n });\n\n cellRender = computed(() => {\n return this.cell()?.dateCellRender || this.datePickerConfigService.config?.dateCellRender;\n });\n\n cellClick(event: Event) {\n event.stopPropagation();\n this.cell().onClick();\n }\n}\n","@let prefixClass = prefixCls();\n@let dateCell = cell();\n@let dateCellRender = cellRender();\n\n@switch (prefixClass) {\n @case ('thy-calendar') {\n @switch (true) {\n @case (isTemplateRef(dateCellRender)) {\n <ng-container *ngTemplateOutlet=\"dateCellRender; context: { $implicit: dateCell.value }\"></ng-container>\n }\n @case (isNonEmptyString(dateCellRender)) {\n <span (click)=\"cellClick($event)\" [innerHTML]=\"dateCellRender\"></span>\n }\n @case (functionRenderResult()) {\n <span (click)=\"cellClick($event)\" [innerHTML]=\"$any(dateCellRender)(dateCell.value)\"></span>\n }\n @default {\n <div class=\"{{ prefixClass }}-date\" [attr.aria-selected]=\"dateCell.isSelected\" [attr.aria-disabled]=\"dateCell.isDisabled\">\n {{ dateCell.content }}\n </div>\n }\n }\n }\n @case ('thy-calendar-full') {\n <div\n tabindex=\"0\"\n class=\"{{ prefixClass }}-date thy-calendar-full-cell-inner\"\n [class.thy-calendar-full-calendar-date-today]=\"dateCell.isToday\">\n @if (isTemplateRef(dateCell.fullCellRender)) {\n <ng-container *ngTemplateOutlet=\"$any(dateCell.fullCellRender); context: { $implicit: dateCell.value }\"> </ng-container>\n } @else {\n <div class=\"{{ prefixClass }}-date-value\">\n <span class=\"{{ prefixClass }}-date-value-today-text\">\n <span class=\"{{ prefixClass }}-date-value-text\">{{ dateCell.content }}</span>\n </span>\n </div>\n <div class=\"{{ prefixClass }}-date-content\">\n @if (isTemplateRef(dateCellRender)) {\n <ng-container *ngTemplateOutlet=\"$any(dateCellRender); context: { $implicit: dateCell.value }\"> </ng-container>\n }\n </div>\n }\n </div>\n }\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, output } from '@angular/core';\nimport { TinyDate, valueFunctionProp } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { ThyDatePickerConfigService } from '../../date-picker.service';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateTableCell } from './date-table-cell.component';\nimport { DateBodyRow, DateCell } from './types';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-table',\n exportAs: 'dateTable',\n templateUrl: 'date-table.component.html',\n imports: [NgClass, DateTableCell]\n})\nexport class DateTable extends CalendarTable {\n private dateHelper = inject(DateHelperService);\n\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n readonly dayHover = output<TinyDate>(); // Emitted when hover on a day by mouse enter\n\n constructor() {\n super();\n }\n\n private chooseDate(value: TinyDate): void {\n // Only change date not change time\n const activeDate = this.activeDate();\n const timeZone = this.timeZone();\n const date = new TinyDate(\n TinyDate.createDateInTimeZone(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n activeDate?.getHours(),\n activeDate?.getMinutes(),\n activeDate?.getSeconds(),\n timeZone\n ),\n timeZone\n );\n this.activeDate.set(date.clone());\n this.valueChange.emit(date);\n }\n\n makeHeadRow(): DateCell[] {\n const weekDays: DateCell[] = [];\n const start = this.activeDate().calendarStart({ weekStartsOn: this.datePickerConfigService.config.weekStartsOn });\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const day = start.addDays(colIndex);\n weekDays[colIndex] = {\n title: this.dateHelper.format(day.nativeDate, this.dateHelper.relyOnDatePipe ? 'E' : 'ddd'),\n content: this.dateHelper.format(day.nativeDate, this.getVeryShortWeekFormat()),\n isSelected: false,\n isDisabled: false,\n onClick(): void {},\n onMouseEnter(): void {}\n };\n }\n return weekDays;\n }\n\n private getVeryShortWeekFormat(): string {\n if (this.dateHelper.relyOnDatePipe) {\n const locale = this.locale();\n const prefixCls = this.prefixCls();\n return prefixCls === 'thy-calendar-full' ? locale.fullWeekFormat : locale.weekFormat;\n }\n return 'dd';\n }\n\n makeBodyRows(): DateBodyRow[] {\n const dateRows: DateBodyRow[] = [];\n const firstDayOfMonth = this.activeDate().calendarStart({ weekStartsOn: this.datePickerConfigService.config.weekStartsOn });\n for (let week = 0; week < this.MAX_ROW; week++) {\n const weekStart = firstDayOfMonth.addDays(week * 7);\n const row: DateBodyRow = {\n isActive: false,\n isCurrent: false,\n dateCells: [],\n year: weekStart.getYear()\n };\n\n for (let day = 0; day < 7; day++) {\n const date = weekStart.addDays(day);\n const dateFormat = this.dateHelper.relyOnDatePipe ? 'longDate' : 'YYYY-MM-DD';\n const title = this.dateHelper.format(date.nativeDate, dateFormat);\n const label = this.dateHelper.format(date.nativeDate, this.dateHelper.relyOnDatePipe ? 'dd' : 'DD');\n\n const cell: DateCell = {\n value: date.nativeDate,\n label: label,\n isSelected: false,\n isDisabled: false,\n isToday: false,\n title: title,\n dateCellRender: valueFunctionProp(this.cellRender(), date),\n content: `${date.getDate()}`,\n onClick: () => this.chooseDate(date),\n onMouseEnter: () => this.dayHover.emit(date)\n };\n this.addCellProperty(cell, date);\n\n if (this.showWeek() && !row.weekNum) {\n row.weekNum = this.dateHelper.getISOWeek(date.nativeDate);\n }\n\n if (date.isToday()) {\n cell.isToday = true;\n row.isCurrent = true;\n }\n\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (date.isSameDay(startSelected)) {\n row.isActive = true;\n }\n if (date.isSameDay(endSelected)) {\n row.isActive = true;\n }\n } else if (date.isSameDay(this.value())) {\n row.isActive = true;\n }\n\n row.dateCells.push(cell);\n }\n\n const prefixCls = this.prefixCls();\n row.classMap = {\n [`${prefixCls}-current-week`]: row.isCurrent,\n [`${prefixCls}-active-week`]: row.isActive\n };\n\n dateRows.push(row);\n }\n\n return dateRows;\n }\n\n addCellProperty(cell: DateCell, date: TinyDate): void {\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (startSelected?.isSameDay(date)) {\n cell.isSelected = true;\n }\n if (endSelected?.isSameDay(date)) {\n cell.isSelected = true;\n }\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeDay(date) && date.isBeforeDay(endSelected);\n } else {\n cell.isSelected = date.isSameDay(this.value());\n }\n\n const activeDate = this.activeDate();\n cell.isLastMonthCell = date.isBeforeMonth(activeDate);\n cell.isNextMonthCell = date.isAfterMonth(activeDate);\n cell.isToday = date.isToday();\n cell.isDisabled = !!this.disabledDate()?.(date.nativeDate);\n cell.classMap = this.getClassMap(cell);\n }\n\n getClassMap(cell: DateCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-today`]: cell.isToday,\n [`${prefixCls}-last-month-cell`]: cell.isLastMonthCell,\n [`${prefixCls}-next-month-btn-day`]: cell.isNextMonthCell,\n [`${prefixCls}-selected-day`]: cell.isSelected,\n [`${prefixCls}-disabled-cell`]: cell.isDisabled,\n [`${prefixCls}-selected-start-date`]: !!cell.isSelectedStartDate,\n [`${prefixCls}-selected-end-date`]: !!cell.isSelectedEndDate,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-table\" cellSpacing=\"0\" role=\"grid\">\n <thead>\n <tr role=\"row\">\n @if (showWeek()) {\n <th role=\"columnheader\" [title]=\"locale().week\" class=\"{{ prefixClass }}-column-header {{ prefixClass }}-week-number-header\">\n <span class=\"{{ prefixClass }}-column-header-inner\">{{ locale().prefixWeek }}</span>\n </th>\n }\n @for (cell of headRow; track $index) {\n <th role=\"columnheader\" title=\"{{ cell.title }}\" class=\"{{ prefixClass }}-column-header\">\n @if (prefixClass === 'thy-calendar') {\n <span class=\"{{ prefixClass }}-column-header-inner\">{{ cell.content }}</span>\n }\n @if (prefixClass === 'thy-calendar-full') {\n <span class=\"{{ prefixClass }}-column-header-inner\">{{ cell.content }}</span>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody class=\"{{ prefixClass }}-tbody\">\n @for (row of bodyRows; track $index) {\n <tr [ngClass]=\"row.classMap\" role=\"row\">\n @if (row.weekNum) {\n <td role=\"gridcell\" class=\"{{ prefixClass }}-week-number-cell\">\n {{ row.weekNum }}\n </td>\n }\n @for (cell of row.dateCells; track $index) {\n <td\n role=\"gridcell\"\n [ngClass]=\"cell.classMap\"\n (click)=\"cell.isDisabled ? null : cell.onClick()\"\n date-table-cell\n [prefixCls]=\"prefixClass\"\n [cell]=\"cell\"></td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'decade-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class DecadeHeader extends CalendarHeader {\n readonly startYear = computed<number>(() => parseInt(`${this.value().getYear() / 100}`, 10) * 100);\n\n readonly endYear = computed<number>(() => this.startYear() + 99);\n\n superPrevious(): void {\n const newValue = this.value().addYears(-100);\n this.changeValue(newValue);\n }\n\n superNext(): void {\n const newValue = this.value().addYears(100);\n this.changeValue(newValue);\n }\n\n getSelectors(): PanelSelector[] {\n return [\n {\n className: `${this.prefixCls}-decade-btn`,\n title: '',\n onClick: () => {},\n label: `${this.startYear()}-${this.endYear()}`\n }\n ];\n }\n}\n","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DecadeCell, DateBodyRow } from '../date/types';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'decade-table',\n exportAs: 'decadeTable',\n templateUrl: 'decade-table.component.html',\n imports: [NgClass]\n})\nexport class DecadeTable extends CalendarTable {\n MAX_ROW = 4;\n\n MAX_COL = 3;\n\n readonly startYear = computed<number>(() => parseInt(`${this.activeDate().getYear() / 100}`, 10) * 100);\n\n readonly endYear = computed<number>(() => this.startYear() + 99);\n\n private chooseDecade(startYear: number): void {\n const newValue = (this.value() || new TinyDate()).setYear(startYear);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const decades: DateBodyRow[] = [];\n const currentYear = this.value() && this.value().getYear();\n const startYear = this.startYear();\n const endYear = this.endYear();\n const previousYear = startYear - 10;\n\n let index = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const start = previousYear + index * 10;\n const end = previousYear + index * 10 + 9;\n const content = `${start}-${end}`;\n\n const cell: DecadeCell = {\n content,\n title: content,\n isSelected: currentYear >= start && currentYear <= end,\n isLowerThanStart: end < startYear,\n isBiggerThanEnd: start > endYear,\n classMap: null,\n onClick: () => this.chooseDecade(start),\n onMouseEnter(): void {}\n };\n cell.classMap = this.getClassMap(cell);\n\n index++;\n row.dateCells.push(cell);\n }\n decades.push(row);\n }\n return decades;\n }\n\n getClassMap(cell: DecadeCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-decade-panel-cell`]: true,\n [`${prefixCls}-decade-panel-selected-cell`]: cell.isSelected,\n [`${prefixCls}-decade-panel-last-century-cell`]: cell.isLowerThanStart,\n [`${prefixCls}-decade-panel-next-century-cell`]: cell.isBiggerThanEnd\n };\n }\n\n cellClick(event: Event, cell: DecadeCell) {\n event.stopPropagation();\n cell.onClick();\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-decade-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-decade-panel-tbody\">\n @for (row of bodyRows; track $index) {\n <tr role=\"row\">\n @for (cell of row.dateCells; track $index) {\n <td role=\"gridcell\" title=\"{{ cell.title }}\" (click)=\"cellClick($event, cell)\" [ngClass]=\"cell.classMap\">\n <a class=\"{{ prefixClass }}-decade-panel-decade\">{{ cell.content }}</a>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DateBodyRow } from '../date/types';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'month-table',\n exportAs: 'monthTable',\n templateUrl: 'month-table.component.html',\n imports: [NgClass]\n})\nexport class MonthTable extends CalendarTable {\n private dateHelper = inject(DateHelperService);\n\n MAX_ROW = 4;\n\n MAX_COL = 3;\n\n constructor() {\n super();\n }\n\n private chooseMonth(month: number): void {\n const newValue = this.activeDate().setMonth(month);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.render();\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const months: DateBodyRow[] = [];\n let monthValue = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const month = this.activeDate().setMonth(monthValue);\n const monthFormat = this.locale().monthFormat;\n const isDisabled = this.disabledDate() ? this.disabledDate()(this.activeDate().setMonth(monthValue).nativeDate) : false;\n const content = this.dateHelper.format(month.nativeDate, monthFormat);\n const cell: DateCell = {\n trackByIndex: colIndex,\n value: month.nativeDate,\n isDisabled,\n content,\n title: content,\n classMap: null,\n isSelected: month.isSameMonth(this.value()),\n onClick: () => this.chooseMonth(cell.value.getMonth()),\n onMouseEnter: () => {}\n };\n this.addCellProperty(cell, month);\n row.dateCells.push(cell);\n monthValue++;\n }\n months.push(row);\n }\n return months;\n }\n\n private addCellProperty(cell: DateCell, month: TinyDate): void {\n if (this.selectedValue()?.length > 0) {\n const [startSelected, endSelected] = this.selectedValue();\n if (startSelected?.isSameMonth(month)) {\n cell.isSelectedStartDate = true;\n cell.isSelected = true;\n }\n\n if (endSelected?.isSameMonth(month)) {\n cell.isSelectedEndDate = true;\n cell.isSelected = true;\n }\n\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeMonth(month) && month?.isBeforeMonth(endSelected);\n } else if (month.isSameMonth(this.value())) {\n cell.isSelected = true;\n }\n cell.classMap = this.getClassMap(cell);\n }\n\n monthCellClick(event: Event, monthCell: DateCell) {\n event.stopPropagation();\n return monthCell.isDisabled ? null : monthCell.onClick();\n }\n\n getClassMap(cell: DateCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-month-panel-cell`]: true,\n [`${prefixCls}-month-panel-cell-disabled`]: cell.isDisabled,\n [`${prefixCls}-month-panel-selected-cell`]: cell.isSelected,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange,\n [`${prefixCls}-month-panel-current-cell`]:\n new TinyDate().getYear() === this.activeDate().getYear() && cell.value.getMonth() === new TinyDate().getMonth()\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-month-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-month-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (monthCell of row.dateCells; track trackByBodyColumn($index, monthCell)) {\n <td role=\"gridcell\" title=\"{{ monthCell.title }}\" (click)=\"monthCellClick($event, monthCell)\" [ngClass]=\"monthCell.classMap\">\n @switch (prefixClass) {\n @case ('thy-calendar') {\n <div class=\"{{ prefixClass }}-month-panel-month\">{{ monthCell.content }}</div>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DateBodyRow } from '../date/types';\nimport { NgClass } from '@angular/common';\nimport { QUARTER_FORMAT } from '../../date-picker.config';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'quarter-table',\n exportAs: 'quarterTable',\n templateUrl: 'quarter-table.component.html',\n imports: [NgClass]\n})\nexport class QuarterTable extends CalendarTable {\n MAX_ROW = 1;\n\n MAX_COL = 4;\n\n private chooseQuarter(quarter: number): void {\n const newValue = this.activeDate().setQuarter(quarter);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.render();\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const quarters: DateBodyRow[] = [];\n let quarterValue = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const quarter = this.activeDate().setQuarter(quarterValue + 1);\n const isDisabled = this.disabledDate() ? this.disabledDate()(quarter.nativeDate) : false;\n const content = `${quarter.format(QUARTER_FORMAT)}`;\n const cell: DateCell = {\n trackByIndex: colIndex,\n value: quarter.nativeDate,\n isDisabled,\n content,\n title: content,\n classMap: null,\n isSelected: quarter.isSameQuarter(this.value()),\n onClick: () => {\n this.chooseQuarter(quarter.getQuarter());\n },\n onMouseEnter: () => {}\n };\n this.addCellProperty(cell, quarter);\n row.dateCells.push(cell);\n quarterValue++;\n }\n quarters.push(row);\n }\n return quarters;\n }\n\n private addCellProperty(cell: DateCell, quarter: TinyDate): void {\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (startSelected?.isSameQuarter(quarter)) {\n cell.isSelectedStartDate = true;\n cell.isSelected = true;\n }\n\n if (endSelected?.isSameQuarter(quarter)) {\n cell.isSelectedEndDate = true;\n cell.isSelected = true;\n }\n\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeQuarter(quarter) && quarter?.isBeforeQuarter(endSelected);\n } else if (quarter.isSameQuarter(this.value())) {\n cell.isSelected = true;\n }\n cell.classMap = this.getClassMap(cell, quarter);\n }\n\n quarterCellClick(event: Event, quarterCell: DateCell) {\n event.stopPropagation();\n return quarterCell.isDisabled ? null : quarterCell.onClick();\n }\n\n getClassMap(cell: DateCell, quarter: TinyDate): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-quarter-panel-cell`]: true,\n [`${prefixCls}-quarter-panel-cell-disabled`]: cell.isDisabled,\n [`${prefixCls}-quarter-panel-selected-cell`]: cell.isSelected,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange,\n [`${prefixCls}-quarter-panel-current-cell`]:\n new TinyDate().getYear() === this.activeDate().getYear() && quarter.getQuarter() === new TinyDate().getQuarter()\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-quarter-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-quarter-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (quarterCell of row.dateCells; track trackByBodyColumn($index, quarterCell)) {\n <td\n role=\"gridcell\"\n title=\"{{ quarterCell.title }}\"\n (click)=\"quarterCellClick($event, quarterCell)\"\n [ngClass]=\"quarterCell.classMap\">\n <a class=\"{{ prefixClass }}-quarter-panel-quarter\">{{ quarterCell.content }}</a>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'year-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class YearHeader extends CalendarHeader {\n readonly startYear = computed<number>(() => parseInt(`${this.value().getYear() / 10}`, 10) * 10);\n\n readonly endYear = computed<number>(() => this.startYear() + 9);\n\n superPrevious(): void {\n const newValue = this.value().addYears(-10);\n this.changeValue(newValue);\n }\n\n superNext(): void {\n const newValue = this.value().addYears(10);\n this.changeValue(newValue);\n }\n\n getSelectors(): PanelSelector[] {\n return [\n {\n className: `${this.prefixCls}-year-btn`,\n title: '',\n onClick: () => this.changePanel('decade'),\n label: `${this.startYear()}-${this.endYear()}`\n }\n ];\n }\n}\n","import { ChangeDetectionStrategy, Component, output } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DateBodyRow, YearCell } from '../date/types';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'year-table',\n templateUrl: 'year-table.component.html',\n imports: [NgClass]\n})\nexport class YearTable extends CalendarTable {\n MAX_ROW = 4;\n\n MAX_COL = 3;\n\n readonly decadePanelShow = output<void>();\n\n private chooseYear(year: number): void {\n const newValue = this.activeDate().setYear(year);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.render();\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const years: DateBodyRow[] = [];\n const activeDate = this.activeDate();\n const currentYear = activeDate && activeDate.getYear();\n const startYear = parseInt(`${currentYear / 10}`, 10) * 10;\n const endYear = startYear + 9;\n const previousYear = startYear - 1;\n let yearValue = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const yearNum = previousYear + yearValue;\n const year = activeDate.setYear(yearNum);\n const content = String(yearNum);\n const disabledDate = this.disabledDate();\n const isDisabled = disabledDate ? disabledDate(year.nativeDate) : false;\n\n const value = this.value();\n const cell: YearCell = {\n trackByIndex: colIndex,\n isDisabled,\n content,\n value: year.nativeDate,\n title: content,\n isSelected: yearNum === (value && value.getYear()),\n isSameDecade: yearNum >= startYear && yearNum <= endYear,\n classMap: {},\n onClick: () => this.chooseYear(cell.value?.getFullYear()),\n onMouseEnter: () => {}\n };\n this.addCellProperty(cell, year);\n row.dateCells.push(cell);\n yearValue++;\n }\n years.push(row);\n }\n return years;\n }\n\n private addCellProperty(cell: DateCell, year: TinyDate): void {\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (startSelected?.isSameYear(year)) {\n cell.isSelected = true;\n }\n\n if (endSelected?.isSameYear(year)) {\n cell.isSelected = true;\n }\n\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeYear(year) && year?.isBeforeYear(endSelected);\n } else if (year.isSameYear(this.value())) {\n cell.isSelected = true;\n }\n cell.classMap = this.getClassMap(cell);\n }\n\n yearCellClick(event: Event, yearCell: DateCell) {\n event.stopPropagation();\n return yearCell.isDisabled ? null : yearCell.onClick();\n }\n\n getClassMap(cell: YearCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-year-panel-cell`]: true,\n [`${prefixCls}-year-panel-selected-cell`]: cell.isSelected,\n [`${prefixCls}-year-panel-cell-disabled`]: cell.isDisabled,\n [`${prefixCls}-year-panel-cell-in-view`]: cell.isSameDecade,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-year-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-year-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (yearCell of row.dateCells; track trackByBodyColumn($index, yearCell)) {\n <td role=\"gridcell\" title=\"{{ yearCell.title }}\" (click)=\"yearCellClick($event, yearCell)\" [ngClass]=\"yearCell.classMap\">\n <a class=\"{{ prefixClass }}-year-panel-year\">{{ yearCell.content }}</a>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, model, input, output, Signal, TemplateRef, inject, effect } from '@angular/core';\nimport { FunctionProp, TinyDate, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { RangePartType } from '../../inner-types';\nimport { isAfterMoreThanLessOneYear, isAfterMoreThanOneDecade, isAfterMoreThanOneMonth, isAfterMoreThanOneYear } from '../../picker.util';\nimport { DisabledDateFn, ThyPanelMode } from '../../standard-types';\nimport { DateHeader } from '../date/date-header.component';\nimport { DateTable } from '../date/date-table.component';\nimport { ThyDatePickerLocale, injectLocale } from 'ngx-tethys/i18n';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { DecadeHeader } from '../decade/decade-header.component';\nimport { DecadeTable } from '../decade/decade-table.component';\nimport { MonthHeader } from '../month/month-header.component';\nimport { MonthTable } from '../month/month-table.component';\nimport { QuarterTable } from '../quarter/quarter-table.component';\nimport { YearHeader } from '../year/year-header.component';\nimport { YearTable } from '../year/year-table.component';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'inner-popup',\n exportAs: 'innerPopup',\n templateUrl: 'inner-popup.component.html',\n imports: [\n ThyInputDirective,\n DecadeHeader,\n DecadeTable,\n YearHeader,\n YearTable,\n MonthHeader,\n MonthTable,\n QuarterTable,\n DateHeader,\n DateTable\n ],\n host: {\n class: 'thy-calendar-picker-inner-popup',\n '[class.thy-calendar-picker-inner-popup-with-range-input]': 'showDateRangeInput()'\n }\n})\nexport class InnerPopup {\n private dateHelper = inject(DateHelperService);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly showWeek = input(false, { transform: coerceBooleanProperty });\n\n readonly isRange = input(false, { transform: coerceBooleanProperty });\n\n readonly activeDate = model<TinyDate>();\n\n readonly rangeActiveDate = input<TinyDate[]>(); // Range ONLY\n\n readonly disabledDate = input<DisabledDateFn>();\n\n readonly dateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly selectedValue = input<TinyDate[]>(); // Range ONLY\n\n readonly hoverValue = input<TinyDate[]>(); // Range ONLY\n\n readonly panelMode = input(null, {\n transform: (value: ThyPanelMode | 'time') => {\n if (value === 'time') {\n return 'date';\n }\n return value;\n }\n });\n\n readonly timeZone = input<string>();\n\n readonly showDateRangeInput = input(false, { transform: coerceBooleanProperty });\n\n readonly partType = input<RangePartType>();\n\n readonly endPanelMode = input<ThyPanelMode>();\n\n readonly value = model<TinyDate>();\n\n readonly panelModeChange = output<ThyPanelMode>();\n\n readonly headerChange = output<TinyDate>();\n\n readonly selectDate = output<TinyDate>();\n\n readonly dayHover = output<TinyDate>();\n\n prefixCls = 'thy-calendar';\n\n constructor() {\n effect(() => {\n if (!this.activeDate()) {\n this.activeDate.set(new TinyDate(undefined, this.timeZone()));\n }\n });\n }\n\n getReadableValue(value: TinyDate) {\n return value ? this.dateHelper.format(value.nativeDate, 'yyyy-MM-dd') : '';\n }\n\n onSelectDate(date: TinyDate): void {\n const value = date instanceof TinyDate ? date : new TinyDate(date, this.timeZone());\n this.selectDate.emit(value);\n }\n\n onChooseMonth(value: TinyDate): void {\n const activeDate = this.activeDate().setMonth(value.getMonth());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'month') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit(endPanelMode);\n }\n }\n\n onChooseQuarter(value: TinyDate): void {\n const activeDate = this.activeDate().setQuarter(value.getQuarter());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'quarter') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit(endPanelMode);\n }\n }\n\n onChooseYear(value: TinyDate): void {\n const activeDate = this.activeDate().setYear(value.getYear());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'year') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit(endPanelMode);\n }\n }\n\n onChooseDecade(value: TinyDate): void {\n const activeDate = this.activeDate().setYear(value.getYear());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'decade') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit('year');\n }\n }\n\n enablePrevNext(direction: 'prev' | 'next', mode: ThyPanelMode): boolean {\n if (this.isRange()) {\n const partType = this.partType();\n if ((partType === 'left' && direction === 'next') || (partType === 'right' && direction === 'prev')) {\n const [headerLeftDate, headerRightDate] = this.rangeActiveDate();\n return isAfterMoreThanOneMonth(headerRightDate, headerLeftDate);\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n\n enableSuperPrevNext(direction: 'prev' | 'next', panelMode: ThyPanelMode) {\n if (this.isRange()) {\n const partType = this.partType();\n if ((partType === 'left' && direction === 'next') || (partType === 'right' && direction === 'prev')) {\n const [headerLeftDate, headerRightDate] = this.rangeActiveDate();\n if (panelMode === 'date') {\n return isAfterMoreThanLessOneYear(headerRightDate, headerLeftDate);\n } else if (panelMode === 'month' || panelMode === 'quarter') {\n return isAfterMoreThanOneYear(headerRightDate, headerLeftDate);\n } else if (panelMode === 'year') {\n return isAfterMoreThanOneDecade(headerRightDate, headerLeftDate);\n }\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n}\n","@if (showDateRangeInput()) {\n <div class=\"{{ prefixCls }}-picker-inner-popup-range-input\">\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue()[0])\" [placeholder]=\"locale().startDate\" />\n <span class=\"split\"></span>\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue()[1])\" [placeholder]=\"locale().endDate\" />\n </div>\n}\n@switch (panelMode()) {\n @case ('decade') {\n <div class=\"{{ prefixCls }}-decade\">\n <decade-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'decade')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'decade')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </decade-header>\n <div class=\"{{ prefixCls }}-body\">\n <decade-table [value]=\"value()\" [activeDate]=\"activeDate()\" (valueChange)=\"onChooseDecade($event)\"></decade-table>\n </div>\n </div>\n }\n @case ('year') {\n <div class=\"{{ prefixCls }}-year\">\n <year-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'year')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'year')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </year-header>\n <div class=\"{{ prefixCls }}-body\">\n <year-table\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n [disabledDate]=\"disabledDate()\"\n (valueChange)=\"onChooseYear($event)\"\n [selectedValue]=\"selectedValue()\">\n </year-table>\n </div>\n </div>\n }\n @case ('month') {\n <div class=\"{{ prefixCls }}-month\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <month-table\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n [disabledDate]=\"disabledDate()\"\n (valueChange)=\"onChooseMonth($event)\"\n [selectedValue]=\"selectedValue()\">\n </month-table>\n </div>\n </div>\n }\n @case ('quarter') {\n <div class=\"{{ prefixCls }}-quarter\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <quarter-table\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n [disabledDate]=\"disabledDate()\"\n (valueChange)=\"onChooseQuarter($event)\"\n [selectedValue]=\"selectedValue()\">\n </quarter-table>\n </div>\n </div>\n }\n @default {\n <date-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'date')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'date')\"\n [showPreBtn]=\"enablePrevNext('prev', 'date')\"\n [showNextBtn]=\"enablePrevNext('next', 'date')\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\"></date-header>\n <div class=\"{{ prefixCls }}-body\">\n <date-table\n [showWeek]=\"showWeek()\"\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n (valueChange)=\"onSelectDate($event)\"\n showWeekNumber=\"false\"\n [disabledDate]=\"disabledDate()\"\n [cellRender]=\"dateRender()\"\n [selectedValue]=\"selectedValue()\"\n [hoverValue]=\"hoverValue()\"\n [timeZone]=\"timeZone()\"\n (dayHover)=\"dayHover.emit($event)\"></date-table>\n </div>\n }\n}\n","import {\n coerceBooleanProperty,\n endOfDay,\n FunctionProp,\n helpers,\n isFunction,\n isUndefinedOrNull,\n sortRangeValue,\n startOfDay,\n TinyDate,\n TinyDateCompareGrain\n} from 'ngx-tethys/util';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n model,\n OnInit,\n output,\n Signal,\n SimpleChanges,\n TemplateRef,\n signal,\n OutputEmitterRef,\n OnChanges\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { ThyDatePickerConfigService } from '../../date-picker.service';\nimport { CompatibleValue, DatePickerFlexibleTab, RangeAdvancedValue, RangePartType } from '../../inner-types';\nimport { dateAddAmount, getShortcutValue, hasValue, makeValue, setValueByTimestampPrecision, transformDateValue } from '../../picker.util';\nimport {\n ThyCompatibleDate,\n CompatiblePresets,\n DisabledDateFn,\n SupportTimeOptions,\n ThyDateChangeEvent,\n ThyDateGranularity,\n ThyPanelMode,\n ThyShortcutPosition,\n ThyShortcutPreset,\n ThyShortcutValue\n} from '../../standard-types';\nimport { CalendarFooter } from '../calendar/calendar-footer.component';\nimport { DateCarousel } from '../date-carousel/date-carousel.component';\nimport { InnerPopup } from './inner-popup.component';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-popup',\n exportAs: 'datePopup',\n templateUrl: './date-popup.component.html',\n imports: [ThyNav, ThyNavItemDirective, ThyButtonIcon, DateCarousel, FormsModule, NgTemplateOutlet, InnerPopup, CalendarFooter]\n})\nexport class DatePopup implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly isRange = input(false, { transform: coerceBooleanProperty });\n\n readonly showWeek = input(false, { transform: coerceBooleanProperty });\n\n readonly format = input<string>();\n\n readonly disabledDate = model<DisabledDateFn>();\n\n readonly minDate = input<Date | number>();\n\n readonly maxDate = input<Date | number>();\n\n readonly showToday = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否支持设置时间(时、分)\n */\n readonly showTime = input<SupportTimeOptions | boolean>();\n\n /**\n * 是否展示时间(时、分)\n */\n readonly mustShowTime = input(false, { transform: coerceBooleanProperty });\n\n readonly dateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly className = input<string>();\n\n readonly panelMode = model<ThyPanelMode | ThyPanelMode[]>(undefined);\n\n readonly value = model<CompatibleValue>();\n\n readonly defaultPickerValue = input<ThyCompatibleDate | number>();\n\n readonly showShortcut = model<boolean>();\n\n readonly shortcutPresets = model<CompatiblePresets>();\n\n readonly shortcutPosition = input<ThyShortcutPosition>();\n\n readonly flexible = input(false, { transform: coerceBooleanProperty });\n\n readonly flexibleDateGranularity = model<ThyDateGranularity>();\n\n readonly timestampPrecision = input<'seconds' | 'milliseconds'>();\n\n readonly timeZone = input<string>();\n\n readonly panelModeChange = output<ThyPanelMode | ThyPanelMode[]>();\n\n readonly calendarChange = output<CompatibleValue>();\n\n readonly valueChange: OutputEmitterRef<CompatibleValue | RangeAdvancedValue> = output();\n\n readonly resultOk = output<void>(); // Emitted when done with date selecting\n\n readonly showTimePickerChange = output<boolean>();\n\n readonly dateValueChange = output<ThyDateChangeEvent>();\n\n prefixCls = 'thy-calendar';\n\n showTimePicker = false;\n\n timeOptions: SupportTimeOptions | SupportTimeOptions[] | null;\n\n activeDate: TinyDate | TinyDate[];\n\n selectedValue: TinyDate[] = []; // Range ONLY\n\n hoverValue: TinyDate[] = []; // Range ONLY\n\n advancedSelectedValue: RangeAdvancedValue; // advanced ONLY\n\n flexibleActiveTab: DatePickerFlexibleTab = 'advanced';\n\n private partTypeMap: { [key: string]: number } = { left: 0, right: 1 };\n\n [property: string]: any;\n\n readonly endPanelMode = signal<ThyPanelMode | ThyPanelMode[]>(undefined);\n\n innerShortcutPresets: ThyShortcutPreset[];\n\n readonly disableTimeConfirm = signal(false);\n\n setProperty<T extends keyof DatePopup>(key: T, value: this[T]): void {\n this[key] = value;\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n this.initShortcutPresets();\n this.initPanelMode();\n if (this.flexible() && this.flexibleDateGranularity() === 'day') {\n this.flexibleActiveTab = 'custom';\n }\n if (this.defaultPickerValue() && !hasValue(this.value())) {\n this.value.set(this.getDefaultPickerValue());\n }\n this.updateActiveDate();\n this.initDisabledDate();\n if (this.isRange() && this.flexible() && this.value()) {\n this.advancedSelectedValue = {\n begin: (this.value() as TinyDate[])[0],\n end: (this.value() as TinyDate[])[1],\n dateGranularity: this.flexibleDateGranularity()\n };\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.panelMode) {\n if (helpers.isArray(this.panelMode())) {\n this.endPanelMode.set([...(this.panelMode() as ThyPanelMode[])]);\n } else {\n this.endPanelMode.set(this.panelMode());\n }\n }\n if (changes.defaultPickerValue) {\n this.updateActiveDate();\n }\n if (changes.value && changes.value.currentValue) {\n this.updateActiveDate();\n }\n }\n\n initShortcutPresets(): void {\n const { shortcutRangesPresets, shortcutDatePresets, showShortcut } = this.datePickerConfigService;\n\n this.showShortcut.set(\n ['date', 'date,date'].includes(this.panelMode().toString()) && isUndefinedOrNull(this.showShortcut())\n ? showShortcut\n : this.showShortcut()\n );\n\n if (this.showShortcut()) {\n if (!this.shortcutPresets()) {\n this.shortcutPresets.set(this.isRange() ? shortcutRangesPresets : shortcutDatePresets);\n }\n\n this.innerShortcutPresets = isFunction(this.shortcutPresets())\n ? (this.shortcutPresets() as () => ThyShortcutPreset[])()\n : (this.shortcutPresets() as ThyShortcutPreset[]);\n if (this.innerShortcutPresets.length) {\n const minDate: TinyDate = this.getMinTinyDate();\n const maxDate: TinyDate = this.getMaxTinyDate();\n\n const minTime = minDate ? minDate.getTime() : null;\n const maxTime = maxDate ? maxDate.getTime() : null;\n\n if (this.isRange()) {\n this.innerShortcutPresets.forEach((preset: ThyShortcutPreset) => {\n const begin: number | Date = getShortcutValue((preset.value as [ThyShortcutValue, ThyShortcutValue])[0]);\n const beginTime: number = new TinyDate(startOfDay(begin), this.timeZone()).getTime();\n\n const end: number | Date = getShortcutValue((preset.value as [ThyShortcutValue, ThyShortcutValue])[1]);\n const endTime: number = new TinyDate(endOfDay(end), this.timeZone()).getTime();\n\n if ((minDate && endTime < minTime) || (maxDate && beginTime > maxTime)) {\n preset.disabled = true;\n } else {\n preset.disabled = false;\n }\n });\n } else {\n this.innerShortcutPresets.forEach((preset: ThyShortcutPreset) => {\n const singleValue: number | Date = getShortcutValue(preset.value as ThyShortcutValue);\n const singleTime: number = new TinyDate(singleValue, this.timeZone()).getTime();\n\n if ((minDate && singleTime < minTime) || (maxDate && singleTime > maxTime)) {\n preset.disabled = true;\n } else {\n preset.disabled = false;\n }\n });\n }\n }\n }\n }\n\n updateActiveDate() {\n this.clearHoverValue();\n if (!this.value()) {\n this.value.set(this.getDefaultPickerValue());\n }\n if (this.isRange()) {\n if (!this.flexible() || this.flexibleDateGranularity() === 'day') {\n this.selectedValue = this.value() as TinyDate[];\n }\n this.activeDate = this.normalizeRangeValue(this.value() as TinyDate[], this.getPanelMode(this.endPanelMode()) as ThyPanelMode);\n } else {\n this.activeDate = this.value() as TinyDate;\n }\n this.isDisableTimeConfirm();\n }\n\n private getDefaultPickerValue() {\n const { value } = transformDateValue(this.defaultPickerValue());\n return makeValue(value, this.isRange(), true, this.timeZone());\n }\n\n initPanelMode() {\n if (!this.endPanelMode()) {\n if (helpers.isArray(this.panelMode())) {\n this.endPanelMode.set([...(this.panelMode() as ThyPanelMode[])]);\n } else {\n this.endPanelMode.set(this.panelMode());\n }\n } else {\n if (helpers.isArray(this.endPanelMode())) {\n this.panelMode.set([...(this.endPanelMode() as ThyPanelMode[])]);\n } else {\n this.panelMode.set(this.endPanelMode());\n }\n }\n }\n\n initDisabledDate(): void {\n let minDate: TinyDate;\n let maxDate: TinyDate;\n let disabledDateFn: DisabledDateFn;\n if (this.minDate()) {\n const { value } = transformDateValue(this.minDate());\n minDate = new TinyDate(value as Date, this.timeZone());\n }\n if (this.maxDate()) {\n const { value } = transformDateValue(this.maxDate());\n maxDate = new TinyDate(value as Date, this.timeZone());\n }\n if (this.disabledDate()) {\n disabledDateFn = this.disabledDate();\n }\n this.disabledDate.set(d => {\n let expression = false;\n if (minDate) {\n expression = d < minDate.startOfDay().nativeDate;\n }\n if (maxDate && !expression) {\n expression = d > maxDate.endOfDay().nativeDate;\n }\n if (disabledDateFn && typeof disabledDateFn === 'function' && !expression) {\n expression = disabledDateFn(d);\n }\n return expression;\n });\n }\n\n onShowTimePickerChange(show: boolean): void {\n this.showTimePicker = show;\n this.showTimePickerChange.emit(show);\n }\n\n onClickOk(): void {\n this.setValue(this.value());\n this.valueChange.emit(this.value());\n this.resultOk.emit();\n }\n\n onClickRemove(): void {\n this.value.set(this.isRange() ? [] : null);\n this.valueChange.emit(this.value());\n }\n\n onDayHover(value: TinyDate): void {\n if (this.isRange() && this.selectedValue[0] && !this.selectedValue[1]) {\n // When right value is selected, don't do hover\n const base = this.selectedValue[0]; // Use the left of selected value as the base to decide later hoverValue\n if (base.isBeforeDay(value)) {\n this.hoverValue = [base, value];\n } else {\n this.hoverValue = [value, base];\n }\n }\n }\n\n onPanelModeChange(mode: ThyPanelMode, partType?: RangePartType): void {\n if (this.isRange()) {\n (this.panelMode() as ThyPanelMode[])[this.getPartTypeIndex(partType)] = mode;\n } else {\n this.panelMode.set(mode);\n }\n this.panelModeChange.emit(this.panelMode());\n }\n\n onHeaderChange(value: TinyDate, partType?: RangePartType): void {\n if (this.isRange()) {\n (this.activeDate as TinyDate[])[this.getPartTypeIndex(partType)] = value;\n this.activeDate = this.normalizeRangeValue(\n this.activeDate as TinyDate[],\n this.getPanelMode(this.endPanelMode(), partType) as ThyPanelMode\n );\n } else {\n this.activeDate = value;\n }\n }\n\n onSelectTime(value: TinyDate, partType?: RangePartType): void {\n if (this.isRange()) {\n // TODO:range picker set time\n } else {\n this.setValue(new TinyDate(value.nativeDate, this.timeZone()));\n }\n }\n\n selectTab(active: DatePickerFlexibleTab) {\n this.flexibleActiveTab = active;\n }\n\n clearFlexibleValue() {\n this.flexibleDateGranularity.set(null);\n if (this.flexibleActiveTab === 'advanced') {\n this.advancedSelectedValue = {};\n } else {\n this.selectedValue = [];\n }\n this.valueChange.emit({ begin: null, end: null, dateGranularity: this.flexibleDateGranularity() });\n }\n\n changeValueFromAdvancedSelect(value: RangeAdvancedValue) {\n this.valueChange.emit(value);\n // clear custom date when select a advanced date\n this.selectedValue = [];\n this.dateValueChange.emit({ value: [value.begin, value.end] });\n }\n\n changeValueFromSelect(value: TinyDate, partType?: RangePartType): void {\n if (this.isRange()) {\n // clear advanced date when select a custom date\n this.advancedSelectedValue = {};\n\n const [left, right] = this.selectedValue as TinyDate[];\n\n if ((!left && !right) || (left && right)) {\n // If totally full or empty, clean up && re-assign left first\n this.hoverValue = this.selectedValue = [value];\n this.selectedValue = [this.selectedValue[0].startOfDay()];\n this.calendarChange.emit([this.selectedValue[0].clone()]);\n } else if (left && !right) {\n // If one of them is empty, assign the other one and sort, then set the final values\n this.clearHoverValue(); // Clean up\n this.setRangeValue('right', value);\n this.selectedValue = sortRangeValue(this.selectedValue); // Sort\n this.selectedValue = this.getSelectedRangeValueByMode(this.selectedValue);\n this.activeDate = this.normalizeRangeValue(\n this.selectedValue,\n this.getPanelMode(this.endPanelMode(), partType) as ThyPanelMode\n );\n this.setValue(this.cloneRangeDate(this.selectedValue));\n this.calendarChange.emit(this.cloneRangeDate(this.selectedValue));\n this.dateValueChange.emit({ value: this.cloneRangeDate(this.selectedValue) });\n }\n } else {\n const updatedValue = this.updateHourMinute(value);\n this.setValue(updatedValue);\n this.dateValueChange.emit({ value: updatedValue });\n }\n }\n\n private getSelectedRangeValueByMode(value: TinyDate[]): TinyDate[] {\n const panelMode = this.getPanelMode(this.endPanelMode());\n if (panelMode === 'year') {\n return [value[0].startOfYear(), value[1].endOfYear()];\n } else if (panelMode === 'quarter') {\n return [value[0].startOfQuarter(), value[1].endOfQuarter()];\n } else if (panelMode === 'month') {\n return [value[0].startOfMonth(), value[1].endOfMonth()];\n } else if (panelMode === 'week') {\n return [value[0].startOfISOWeek(), value[1].endOfISOWeek()];\n } else {\n return [value[0].startOfDay(), value[1].endOfDay()];\n }\n }\n\n private updateHourMinute(value: TinyDate): TinyDate {\n if (!this.value()) {\n return value;\n }\n const originDate = this.value() as TinyDate;\n const dateTime = [value.getHours(), value.getMinutes(), value.getSeconds()];\n const originDateTime = [originDate.getHours(), originDate.getMinutes(), originDate.getSeconds()];\n\n const isEqualTime = dateTime.toString() === originDateTime.toString();\n if (isEqualTime) {\n return value;\n } else {\n return value.setHms(originDateTime[0], originDateTime[1], originDateTime[2]);\n }\n }\n\n enablePrevNext(direction: 'prev' | 'next', partType?: RangePartType): boolean {\n if (this.isRange() && this.panelMode() === this.endPanelMode()) {\n const [start, end] = this.activeDate as TinyDate[];\n const showMiddle = !start.addMonths(1).isSame(end, 'month'); // One month diff then don't show middle prev/next\n if ((partType === 'left' && direction === 'next') || (partType === 'right' && direction === 'prev')) {\n return showMiddle;\n }\n return true;\n } else {\n return true;\n }\n }\n\n getPanelMode(panelMode: ThyPanelMode | ThyPanelMode[], partType?: RangePartType): ThyPanelMode {\n if (this.isRange()) {\n return panelMode[this.getPartTypeIndex(partType)] as ThyPanelMode;\n } else {\n return panelMode as ThyPanelMode;\n }\n }\n\n getValueBySelector(partType?: RangePartType): TinyDate {\n if (this.isRange()) {\n const valueShow = this.selectedValue; // Use the real time value that without decorations when timepicker is shown up\n return (valueShow as TinyDate[])[this.getPartTypeIndex(partType)];\n } else {\n return this.value() as TinyDate;\n }\n }\n\n getActiveDate(partType?: RangePartType): TinyDate {\n if (this.isRange()) {\n return (this.activeDate as TinyDate[])[this.getPartTypeIndex(partType)];\n } else {\n return this.activeDate as TinyDate;\n }\n }\n\n getPartTypeIndex(partType: RangePartType = 'left'): number {\n return this.partTypeMap[partType];\n }\n\n private getMinTinyDate() {\n return this.minDate() ? new TinyDate(transformDateValue(this.minDate()).value as Date, this.timeZone()) : null;\n }\n\n private getMaxTinyDate() {\n return this.maxDate() ? new TinyDate(transformDateValue(this.maxDate()).value as Date, this.timeZone()) : null;\n }\n\n private clearHoverValue(): void {\n this.hoverValue = [];\n }\n\n private setValue(value: CompatibleValue): void {\n this.value.set(value);\n if (this.isRange() && this.flexible()) {\n this.flexibleDateGranularity.set('day');\n this.valueChange.emit({\n begin: (value as TinyDate[])[0],\n end: (value as TinyDate[])[1],\n dateGranularity: this.flexibleDateGranularity()\n });\n } else {\n if (!this.showTime() || !this.showTimePicker) {\n this.valueChange.emit(this.value());\n }\n }\n this.isDisableTimeConfirm();\n }\n\n private normalizeRangeValue(value: TinyDate[], mode: ThyPanelMode = 'month'): TinyDate[] {\n const headerModes: { [key in ThyPanelMode]?: ThyPanelMode } = {\n week: 'month',\n date: 'month',\n month: 'year',\n quarter: 'year',\n year: 'decade'\n };\n const headerMode = headerModes[mode];\n const [start, end] = value;\n const newStart = start || new TinyDate(undefined, this.timeZone());\n let newEnd = end;\n if (!newEnd || newStart.isSame(end, headerMode as TinyDateCompareGrain)) {\n newEnd = dateAddAmount(newStart, 1, headerMode);\n }\n return [newStart, newEnd];\n }\n\n private setRangeValue(partType: RangePartType, value: TinyDate): void {\n const ref = (this.selectedValue = this.cloneRangeDate(this.selectedValue as TinyDate[]));\n ref[this.getPartTypeIndex(partType)] = value;\n }\n\n private cloneRangeDate(value: TinyDate[]): TinyDate[] {\n return [value[0] && value[0].clone(), value[1] && value[1].clone()] as TinyDate[];\n }\n\n private isDisableTimeConfirm() {\n if (this.isRange() || !this.showTime()) {\n return;\n }\n\n const date: TinyDate = this.value() ? (this.value() as TinyDate) : new TinyDate(undefined, this.timeZone());\n const minDate: TinyDate = this.getMinTinyDate();\n const maxDate: TinyDate = this.getMaxTinyDate();\n\n if ((minDate && date.getTime() < minDate.getTime()) || (maxDate && date.getTime() > maxDate.getTime())) {\n this.disableTimeConfirm.set(true);\n } else {\n this.disableTimeConfirm.set(false);\n }\n }\n\n private getSelectedShortcutPreset(date: CompatibleValue): CompatibleValue {\n const minDate: TinyDate = this.getMinTinyDate();\n const maxDate: TinyDate = this.getMaxTinyDate();\n\n const minTime: number = (minDate && minDate.getTime()) || null;\n const maxTime: number = (maxDate && maxDate.getTime()) || null;\n\n if (helpers.isArray(date)) {\n const startDate: TinyDate = date[0];\n const endDate: TinyDate = date[1];\n\n const startTime: number = startDate.getTime();\n const endTime: number = endDate.getTime();\n\n if ((maxDate && startTime > maxTime) || (minDate && endTime < minTime)) {\n return [];\n }\n\n if (minDate && startTime < minTime && maxDate && endTime > maxTime) {\n return [minDate, maxDate];\n }\n\n if (minDate && startTime < minTime) {\n return [minDate, endDate];\n }\n\n if (maxDate && endTime > maxTime) {\n return [startDate, maxDate];\n }\n\n return date;\n } else {\n const singleTime: number = date.getTime();\n\n if ((minDate && singleTime < minTime) || (maxDate && singleTime > maxTime)) {\n return null;\n }\n\n return date;\n }\n }\n\n shortcutSetValue(shortcutPresets: ThyShortcutPreset) {\n if (shortcutPresets.disabled) {\n return;\n }\n\n const { value } = shortcutPresets;\n if (!value) {\n return;\n }\n\n let selectedPresetValue: CompatibleValue;\n if (helpers.isArray(value)) {\n const begin: number | Date = getShortcutValue(value[0]);\n const end: number | Date = getShortcutValue(value[1]);\n\n if (begin && end) {\n this.selectedValue = this.getSelectedShortcutPreset([\n new TinyDate(begin, this.timeZone()).startOfDay(),\n new TinyDate(end, this.timeZone()).endOfDay()\n ]) as TinyDate[];\n selectedPresetValue = this.cloneRangeDate(this.selectedValue);\n }\n } else {\n const originDate = this.value() as TinyDate;\n const zonedTime = this.createInZoneTime(\n new TinyDate(getShortcutValue(value), this.timeZone()),\n originDate?.getHours() ?? 0,\n originDate?.getMinutes() ?? 0,\n originDate?.getSeconds() ?? 0\n );\n const singleTinyDate: TinyDate = this.updateHourMinute(new TinyDate(zonedTime, this.timeZone()));\n selectedPresetValue = this.getSelectedShortcutPreset(singleTinyDate) as TinyDate;\n }\n this.setValue(selectedPresetValue);\n const shortcutPresetsValue = setValueByTimestampPrecision(\n shortcutPresets?.value,\n this.isRange(),\n this.timestampPrecision(),\n this.timeZone()\n ) as number;\n this.dateValueChange.emit({\n value: helpers.isArray(value) ? this.selectedValue : selectedPresetValue,\n triggerPreset: Object.assign({}, shortcutPresets, { value: shortcutPresetsValue })\n });\n if (!helpers.isArray(value) && this.showTime() && this.showTimePicker) {\n this.updateActiveDate();\n }\n }\n\n private createInZoneTime(date: TinyDate, hours?: number, minutes?: number, seconds?: number): Date {\n return TinyDate.createDateInTimeZone(date.getYear(), date.getMonth(), date.getDate(), hours, minutes, seconds, this.timeZone());\n }\n}\n","<div class=\"{{ prefixCls }}-picker-container {{ className() }}\">\n <div\n class=\"{{ prefixCls }} {{ showWeek() ? prefixCls + '-week-number' : '' }}\n {{ isRange() ? prefixCls + '-range' : '' }} {{ prefixCls }}-picker-shortcut-{{ shortcutPosition() === 'left' ? 'left' : 'bottom' }}\">\n @if (showShortcut()) {\n <div class=\"{{ prefixCls }}-picker-shortcut\">\n @for (item of innerShortcutPresets; track $index) {\n <div class=\"{{ prefixCls }}-picker-shortcut-item\" [class.disabled]=\"item.disabled\" (click)=\"shortcutSetValue(item)\">\n {{ item.title }}\n </div>\n }\n </div>\n }\n <div class=\"{{ prefixCls }}-panel\">\n <div class=\"{{ prefixCls }}-date-panel\">\n @if (flexible()) {\n <div class=\"{{ prefixCls }}-date-panel-flexible\">\n <div class=\"{{ prefixCls }}-date-panel-flexible-tab\">\n <thy-nav thyType=\"pulled\" thySize=\"sm\">\n <a href=\"javascript:;\" thyNavLink [thyNavLinkActive]=\"flexibleActiveTab === 'advanced'\" (click)=\"selectTab('advanced')\">{{\n locale().advance\n }}</a>\n <a href=\"javascript:;\" thyNavLink [thyNavLinkActive]=\"flexibleActiveTab === 'custom'\" (click)=\"selectTab('custom')\">{{\n locale().custom\n }}</a>\n </thy-nav>\n <button thyButtonIcon=\"sweep\" thySize=\"sm\" class=\"clear-date-button\" (click)=\"clearFlexibleValue()\"></button>\n </div>\n <ng-container>\n <div class=\"{{ prefixCls }}-date-panel-advanced\" [hidden]=\"flexibleActiveTab !== 'advanced'\">\n <date-carousel\n name=\"dateCarousel\"\n (ngModelChange)=\"changeValueFromAdvancedSelect($event)\"\n [(ngModel)]=\"advancedSelectedValue\"\n [activeDate]=\"selectedValue[0]\"></date-carousel>\n </div>\n </ng-container>\n <div [hidden]=\"flexibleActiveTab !== 'custom'\">\n <ng-container *ngTemplateOutlet=\"tplInnerPopup\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isRange()) {\n <ng-container *ngTemplateOutlet=\"tplRangePart; context: { partType: 'left' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tplRangePart; context: { partType: 'right' }\"></ng-container>\n } @else {\n <div>\n <ng-container *ngTemplateOutlet=\"tplInnerPopup\"></ng-container>\n </div>\n }\n @if (!isRange()) {\n <ng-container *ngTemplateOutlet=\"tplFooter\"></ng-container>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplInnerPopup let-partType=\"partType\">\n <inner-popup\n [showWeek]=\"showWeek()\"\n [isRange]=\"isRange()\"\n [panelMode]=\"getPanelMode(panelMode(), partType)\"\n [endPanelMode]=\"getPanelMode(endPanelMode(), partType)\"\n [partType]=\"partType\"\n [showDateRangeInput]=\"flexible() && flexibleActiveTab === 'custom'\"\n (panelModeChange)=\"onPanelModeChange($event, partType)\"\n [value]=\"getValueBySelector(partType)\"\n [selectedValue]=\"selectedValue\"\n [activeDate]=\"getActiveDate(partType)\"\n [rangeActiveDate]=\"activeDate\"\n [disabledDate]=\"disabledDate()\"\n [dateRender]=\"dateRender()\"\n [hoverValue]=\"hoverValue\"\n [timeZone]=\"timeZone()\"\n (dayHover)=\"onDayHover($event)\"\n (selectDate)=\"changeValueFromSelect($event, partType)\"\n (headerChange)=\"onHeaderChange($event, partType)\"></inner-popup>\n</ng-template>\n\n<ng-template #tplFooter>\n <calendar-footer\n [showTime]=\"showTime()\"\n [mustShowTime]=\"mustShowTime()\"\n [value]=\"value()\"\n [timeZone]=\"timeZone()\"\n [disableTimeConfirm]=\"disableTimeConfirm()\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n (selectTime)=\"onSelectTime($event)\"\n (clickOk)=\"onClickOk()\"\n (clickRemove)=\"onClickRemove()\"></calendar-footer>\n</ng-template>\n\n<!-- Single ONLY -->\n\n<!-- Range ONLY -->\n<ng-template #tplRangePart let-partType=\"partType\">\n <div class=\"{{ prefixCls }}-range-part {{ prefixCls }}-range-{{ partType }}\">\n <div style=\"outline: none\">\n <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: partType }\"></ng-container>\n </div>\n </div>\n</ng-template>\n","import { MonthHeader } from './month/month-header.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CalendarFooter } from './calendar/calendar-footer.component';\nimport { DatePopup } from './popups/date-popup.component';\nimport { InnerPopup } from './popups/inner-popup.component';\nimport { MonthTable } from './month/month-table.component';\nimport { DateTable } from './date/date-table.component';\nimport { DateTableCell } from './date/date-table-cell.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTimePickerModule } from 'ngx-tethys/time-picker';\nimport { YearTable } from './year/year-table.component';\nimport { YearHeader } from './year/year-header.component';\nimport { DecadeHeader } from './decade/decade-header.component';\nimport { DecadeTable } from './decade/decade-table.component';\nimport { DateHeader } from './date/date-header.component';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { DateCarousel } from './date-carousel/date-carousel.component';\nimport { DatePickerAdvancedShowYearTipPipe } from '../picker.pipes';\nimport { QuarterTable } from './quarter/quarter-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThyButtonModule,\n ThyIconModule,\n ThyTimePickerModule,\n ThyNavModule,\n ThyInputModule,\n CalendarFooter,\n DateTable,\n DateHeader,\n YearTable,\n YearHeader,\n MonthTable,\n MonthHeader,\n QuarterTable,\n DecadeHeader,\n DecadeTable,\n InnerPopup,\n DatePopup,\n DateTableCell,\n DateCarousel,\n DatePickerAdvancedShowYearTipPipe\n ],\n exports: [\n CalendarFooter,\n DateTable,\n DateHeader,\n YearTable,\n YearHeader,\n MonthTable,\n MonthHeader,\n QuarterTable,\n DecadeHeader,\n DecadeTable,\n InnerPopup,\n DatePopup,\n DateTableCell,\n DateCarousel\n ]\n})\nexport class LibPackerModule {}\n","import { getFlexiblePositions, ThyPlacement } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input,\n effect,\n OnChanges,\n output,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\nimport { ThyI18nService } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyEnterDirective } from 'ngx-tethys/shared';\nimport { DateHelperService } from './date-helper.service';\nimport { CompatibleValue, RangePartType } from './inner-types';\nimport { getFlexibleAdvancedReadableValue } from './picker.util';\nimport { ThyDateGranularity } from './standard-types';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-picker',\n exportAs: 'thyPicker',\n templateUrl: './picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkOverlayOrigin, ThyInputDirective, ThyEnterDirective, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay],\n animations: [scaleXMotion, scaleYMotion, scaleMotion]\n})\nexport class ThyPicker implements AfterViewInit {\n private changeDetector = inject(ChangeDetectorRef);\n\n private dateHelper = inject(DateHelperService);\n\n private i18n = inject(ThyI18nService);\n\n readonly isRange = input(false, { transform: coerceBooleanProperty });\n\n readonly opened = input<boolean | undefined>(undefined);\n\n readonly disabled = input(false, { transform: coerceBooleanProperty });\n\n readonly placeholder = input<string | string[]>();\n\n readonly readonly = input(false, { transform: coerceBooleanProperty });\n\n readonly allowClear = input(false, { transform: coerceBooleanProperty });\n\n readonly autoFocus = input(false, { transform: coerceBooleanProperty });\n\n readonly className = input<string>();\n\n readonly size = input<'sm' | 'xs' | 'lg' | 'md' | 'default'>();\n\n readonly suffixIcon = input<string>();\n\n readonly placement = input<ThyPlacement>('bottomLeft');\n\n readonly flexible = input(false, { transform: coerceBooleanProperty });\n\n readonly mode = input<string>();\n\n readonly hasBackdrop = input(false, { transform: coerceBooleanProperty });\n\n readonly separator = input<string>();\n\n readonly timeZone = input<string>();\n\n readonly blur = output<Event>();\n\n readonly valueChange = output<TinyDate | TinyDate[] | null>();\n\n readonly openChange = output<boolean>(); // Emitted when overlay's open state change\n\n readonly inputChange = output<string>();\n\n readonly origin = viewChild<CdkOverlayOrigin>('origin');\n\n readonly cdkConnectedOverlay = viewChild<CdkConnectedOverlay>(CdkConnectedOverlay);\n\n readonly pickerInput = viewChild<ElementRef>('pickerInput');\n\n readonly overlayContainer = viewChild<ElementRef<HTMLElement>>('overlayContainer');\n\n readonly format = input<string>();\n\n readonly flexibleDateGranularity = input<ThyDateGranularity>();\n\n readonly value = input<TinyDate | TinyDate[] | null>();\n\n private innerflexibleDateGranularity: ThyDateGranularity;\n\n private innerFormat: string;\n\n private innerValue: TinyDate | TinyDate[] | null;\n\n entering = false;\n\n prefixCls = 'thy-calendar';\n\n isShowDatePopup = false;\n\n overlayOpen = false; // Available when \"open\"=undefined\n\n overlayPositions: ConnectionPositionPair[] = getFlexiblePositions(this.placement(), 4);\n\n get realOpenState(): boolean {\n // The value that really decide the open state of overlay\n return this.isOpenHandledByUser() ? !!this.opened() : this.overlayOpen;\n }\n\n get readonlyState(): boolean {\n return this.isRange() || this.readonly() || this.mode() !== 'date';\n }\n\n constructor() {\n effect(() => {\n this.innerValue = this.value();\n if (!this.entering) {\n this.updateReadableDate(this.innerValue);\n }\n });\n\n effect(() => {\n this.innerFormat = this.format();\n if (this.innerFormat) {\n this.updateReadableDate(this.innerValue);\n }\n });\n\n effect(() => {\n this.innerflexibleDateGranularity = this.flexibleDateGranularity();\n if (this.innerflexibleDateGranularity) {\n this.updateReadableDate(this.innerValue);\n }\n });\n\n effect(() => {\n if (this.timeZone()) {\n this.formatDate(this.innerValue as TinyDate);\n }\n });\n\n effect(() => {\n const openedState = this.opened();\n if (openedState != undefined) {\n if (openedState) {\n this.showDatePopup();\n } else {\n this.closeDatePopup();\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.overlayPositions = getFlexiblePositions(this.placement(), 4);\n if (this.autoFocus()) {\n this.focus();\n }\n }\n\n focus(): void {\n this.pickerInput()?.nativeElement.focus();\n }\n\n onBlur(event: FocusEvent) {\n this.blur.emit(event);\n if (this.entering) {\n this.valueChange.emit(this.pickerInput()?.nativeElement.value);\n }\n this.entering = false;\n }\n\n onInput(event: InputEvent) {\n this.entering = true;\n const inputValue = (event.target as HTMLElement)['value'];\n this.inputChange.emit(inputValue);\n }\n\n onEnter() {\n if (this.readonlyState) {\n return;\n }\n this.valueChange.emit(this.pickerInput()?.nativeElement.value || this.getReadableValue(new TinyDate(undefined, this.timeZone())));\n this.entering = false;\n }\n\n showOverlay(): void {\n if (!this.realOpenState) {\n this.overlayOpen = true;\n this.showDatePopup();\n\n this.openChange.emit(this.overlayOpen);\n setTimeout(() => {\n if (this.cdkConnectedOverlay() && this.cdkConnectedOverlay()?.overlayRef) {\n this.cdkConnectedOverlay()?.overlayRef.updatePosition();\n }\n });\n }\n }\n\n hideOverlay(): void {\n if (this.realOpenState) {\n this.overlayOpen = false;\n this.closeDatePopup();\n\n this.openChange.emit(this.overlayOpen);\n this.focus();\n }\n }\n\n showDatePopup() {\n this.isShowDatePopup = true;\n this.changeDetector.markForCheck();\n }\n\n closeDatePopup() {\n // Delay 200ms before destroying the date-popup, otherwise you will not see the closing animation.\n setTimeout(() => {\n this.isShowDatePopup = false;\n this.changeDetector.markForCheck();\n }, 200);\n }\n\n onClickInputBox(): void {\n if (!this.disabled() && !this.readonly() && !this.isOpenHandledByUser()) {\n this.showOverlay();\n }\n }\n\n onClickBackdrop(): void {\n this.hideOverlay();\n }\n\n onOverlayDetach(): void {\n this.hideOverlay();\n }\n\n onPositionChange(position: ConnectedOverlayPositionChange): void {\n this.changeDetector.detectChanges();\n }\n\n onClickClear(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.innerValue = this.isRange() ? [] : null;\n this.valueChange.emit(this.innerValue);\n }\n\n getPartTypeIndex(partType: RangePartType): number {\n return { left: 0, right: 1 }[partType];\n }\n\n isEmptyValue(value: CompatibleValue | null): boolean {\n if (value === null) {\n return true;\n } else if (this.isRange()) {\n return !value || !Array.isArray(value) || value.every(val => !val);\n } else {\n return !value;\n }\n }\n\n // Whether open state is permanently controlled by user himself\n isOpenHandledByUser(): boolean {\n return this.opened() !== undefined;\n }\n\n getReadableValue(tinyDate: TinyDate | TinyDate[]): string | null {\n let value: TinyDate;\n if (this.isRange()) {\n if (this.flexible() && this.innerflexibleDateGranularity !== 'day') {\n return getFlexibleAdvancedReadableValue(\n tinyDate as TinyDate[],\n this.innerflexibleDateGranularity,\n this.separator(),\n this.i18n.getLocale()\n );\n } else {\n const start = tinyDate[0] ? this.formatDate(tinyDate[0]) : '';\n const end = tinyDate[1] ? this.formatDate(tinyDate[1]) : '';\n return start && end ? `${start}${this.separator()}${end}` : null;\n }\n } else {\n value = tinyDate as TinyDate;\n return value ? this.formatDate(value) : null;\n }\n }\n\n formatDate(value: TinyDate) {\n // dateHelper.format() 使用的是 angular 的 format,不支持季度,修改的话,改动比较大。\n // 此处通过对 innerFormat 做下判断,如果是季度的 format,使用 date-fns 的 format()\n if (this.innerFormat && (this.innerFormat.includes('q') || this.innerFormat.includes('Q'))) {\n return value.format(this.innerFormat);\n } else {\n return this.dateHelper.format(value?.nativeDate, this.innerFormat);\n }\n }\n\n getPlaceholder(): string {\n return this.isRange() && this.placeholder() && Array.isArray(this.placeholder())\n ? (this.placeholder() as string[]).join(this.separator())\n : (this.placeholder() as string);\n }\n\n private updateReadableDate(setValue: TinyDate | TinyDate[] | null) {\n const readableValue = this.getReadableValue(setValue);\n if (readableValue === this.pickerInput()?.nativeElement['value']) {\n return;\n }\n\n this.pickerInput().nativeElement.value = readableValue;\n }\n}\n","<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size() ? prefixCls + '-picker-' + size() : '' }} {{ className() }}\"\n (click)=\"onClickInputBox()\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size() }} form-control {{ prefixCls }}-picker-input\"\n [ngClass]=\"{ 'panel-is-opened': realOpenState }\"\n [thySize]=\"size()\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled()\"\n [class.thy-input-readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonlyState\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n placeholder=\"{{ getPlaceholder() }}\"\n thyEnter\n (thyEnter)=\"onEnter()\" />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n @if (!disabled() && !isEmptyValue(value()) && allowClear() && !readonly()) {\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size() }}\"></thy-icon>\n }\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon()\" ngClass=\"remove-link-{{ size() ? size() : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n class=\"thy-picker-container\"\n [@scaleXMotion]=\"placement() === 'left' || placement() === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"placement() === 'top' || placement() === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n placement() !== 'left' && placement() !== 'right' && placement() !== 'top' && placement() !== 'bottom' ? 'enter' : 'void'\n \">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport {\n ChangeDetectorRef,\n computed,\n Directive,\n inject,\n Input,\n input,\n signal,\n effect,\n OnChanges,\n OnInit,\n output,\n Signal,\n SimpleChanges,\n viewChild,\n model,\n DestroyRef,\n linkedSignal\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyDatePickerConfigService } from './date-picker.service';\nimport { CompatibleValue, RangeAdvancedValue } from './inner-types';\nimport { ThyPicker } from './picker.component';\nimport { makeValue, setValueByTimestampPrecision, transformDateValue } from './picker.util';\nimport {\n ThyCompatibleDate,\n CompatiblePresets,\n DateEntry,\n DisabledDateFn,\n ThyDateChangeEvent,\n ThyDateGranularity,\n ThyDateRangeEntry,\n ThyPanelMode,\n ThyShortcutPosition\n} from './standard-types';\n\n/**\n * @private\n */\n@Directive()\nexport abstract class AbstractPickerComponent\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, OnChanges, ControlValueAccessor\n{\n protected destroyRef = inject(DestroyRef);\n\n cdr = inject(ChangeDetectorRef);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n thyValue: CompatibleValue | null;\n\n panelMode: ThyPanelMode | ThyPanelMode[];\n\n _panelMode: ThyPanelMode = 'date';\n\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n /**\n * 模式\n * @type decade | year | month | date | week | flexible\n */\n @Input() set thyMode(value: ThyPanelMode) {\n this._panelMode = value ?? 'date';\n }\n\n get thyMode() {\n return this._panelMode;\n }\n\n /**\n * 是否显示清除按钮\n */\n readonly thyAllowClear = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 是否自动获取焦点\n */\n readonly thyAutoFocus = input(false, { transform: coerceBooleanProperty });\n\n readonly thyOpen = input(undefined, { transform: coerceBooleanProperty });\n\n readonly opened = linkedSignal(this.thyOpen);\n\n readonly thyDisabledDate = input<DisabledDateFn>();\n\n /**\n * 最小值\n */\n readonly thyMinDate = input<Date | number>();\n\n /**\n * 最大值\n */\n readonly thyMaxDate = input<Date | number>();\n\n /**\n * 输入框提示文字\n * @type string | string[]\n */\n readonly thyPlaceHolder = input<string | string[]>(undefined);\n\n readonly placeholder = signal<string | string[]>(undefined);\n\n /**\n * 是否只读\n */\n readonly thyReadonly = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 选择器 className\n */\n readonly thyOriginClassName = input<string>();\n\n /**\n * 弹出层 className\n */\n readonly thyPanelClassName = input<string>();\n\n /**\n * 输入框的大小\n */\n readonly thySize = input<'lg' | 'md' | 'sm' | 'xs' | 'default'>('default');\n\n /**\n * 设置时间戳精度\n * @default seconds 10位\n */\n readonly thyTimestampPrecision = input<'seconds' | 'milliseconds'>(\n this.datePickerConfigService.config?.timestampPrecision || 'seconds'\n );\n\n /**\n * 展示的日期格式\n * @default yyyy-MM-dd\n */\n readonly thyFormat = model<string>();\n\n /**\n * 区间分隔符,不传值默认为 \"~\"\n */\n readonly thySeparator = input<string>(this.datePickerConfigService.config?.separator);\n\n readonly separator: Signal<string> = computed(() => {\n return ` ${this.thySeparator()?.trim()} `;\n });\n\n /**\n * @description.en-us only for range picker, Whether to automatically take the beginning and ending unixTime of the day\n * @description.zh-cn 是否取值开始日期的00:00以及截止日期的24:00\n * @default false\n */\n readonly thyAutoStartAndEnd = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 面板默认日期\n */\n readonly thyDefaultPickerValue = input<ThyCompatibleDate | number | null>(null);\n\n /**\n * 自定义的后缀图标\n */\n readonly thySuffixIcon = input('calendar');\n\n /**\n * 是否展示快捷选项面板\n * @default false\n */\n readonly thyShowShortcut = input(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 快捷选项面板的显示位置\n * @type left | bottom\n */\n readonly thyShortcutPosition = input('left', { transform: (value: ThyShortcutPosition) => value || 'left' });\n\n /**\n * 自定义快捷选项\n * @type ThyShortcutPreset[]\n */\n readonly thyShortcutPresets = input<CompatiblePresets>();\n\n /**\n * 是否支持选择时间\n */\n readonly thyShowTime = input(false, {\n transform: (value: object | boolean) => (typeof value === 'object' ? value : coerceBooleanProperty(value))\n });\n\n /**\n * 是否展示时间(时、分)\n */\n readonly thyMustShowTime = input(false, { transform: coerceBooleanProperty });\n\n readonly showWeek = computed<boolean>(() => this.thyMode === 'week');\n\n readonly flexible = computed<boolean>(() => this.thyMode === 'flexible');\n\n /**\n * 日期变化的回调\n */\n readonly thyDateChange = output<ThyDateChangeEvent>();\n\n readonly thyOpenChange = output<boolean>();\n\n readonly picker = viewChild<ThyPicker>(ThyPicker);\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n get thyDisabled(): boolean {\n return this.disabled;\n }\n\n /**\n * 时区,不传使用默认时区\n */\n readonly thyTimeZone = input<string>();\n\n disabled = false;\n\n isRange: boolean;\n\n withTime: boolean;\n\n flexibleDateGranularity: ThyDateGranularity;\n\n protected isCustomPlaceHolder = false;\n\n private onlyEmitDate = false;\n\n protected innerValue: ThyCompatibleDate;\n\n get realOpenState(): boolean {\n return this.picker().realOpenState;\n }\n\n get isShowDatePopup(): boolean {\n return this.picker().isShowDatePopup;\n }\n\n initValue(): void {\n this.thyValue = this.isRange ? [] : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this.isCustomPlaceHolder) {\n this.placeholder.set(this.thyPlaceHolder());\n }\n });\n\n effect(() => {\n if (this.thyTimeZone()) {\n this.setValue(this.innerValue);\n }\n });\n }\n\n ngOnInit(): void {\n this.setDefaultPlaceHolder();\n this.setDefaultTimePickerState();\n this.initValue();\n }\n\n onDateValueChange(event: ThyDateChangeEvent) {\n this.thyDateChange.emit(event);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyPlaceHolder && changes.thyPlaceHolder.firstChange && typeof changes.thyPlaceHolder.currentValue !== 'undefined') {\n this.isCustomPlaceHolder = true;\n }\n }\n\n closeOverlay(): void {\n this.picker().hideOverlay();\n }\n\n getAutoStartAndEndValue(begin: TinyDate, end: TinyDate) {\n let value: { begin: number; end: number };\n switch (this.thyMode) {\n case 'date':\n value = { begin: begin.startOfDay().getUnixTime(), end: end.endOfDay().getUnixTime() };\n break;\n case 'week':\n value = { begin: begin.startOfWeek().getUnixTime(), end: end.endOfWeek().getUnixTime() };\n break;\n case 'month':\n value = { begin: begin.startOfMonth().getUnixTime(), end: end.endOfMonth().getUnixTime() };\n break;\n case 'year':\n value = { begin: begin.startOfYear().getUnixTime(), end: end.endOfYear().getUnixTime() };\n break;\n default:\n value = { begin: begin.startOfDay().getUnixTime(), end: end.endOfDay().getUnixTime() };\n break;\n }\n return value;\n }\n\n onValueChange(originalValue: CompatibleValue | RangeAdvancedValue): void {\n this.setFormatRule();\n const { value, flexibleDateGranularity } = transformDateValue(originalValue);\n this.flexibleDateGranularity = flexibleDateGranularity;\n this.setValue(value);\n if (this.isRange) {\n const vAsRange: any = this.thyValue;\n let value = { begin: null, end: null } as ThyDateRangeEntry;\n if (vAsRange.length) {\n const [begin, end] = vAsRange as TinyDate[];\n if (this.thyAutoStartAndEnd()) {\n value = this.getAutoStartAndEndValue(begin, end);\n } else {\n value = { begin: begin.getUnixTime(), end: end.getUnixTime() };\n }\n }\n const [beginUnixTime, endUnixTime] = this.setValueByPrecision(value) as number[];\n this.onChangeFn(\n Object.assign({ begin: beginUnixTime, end: endUnixTime }, this.flexible() ? { granularity: flexibleDateGranularity } : {})\n );\n } else {\n const value = { date: null, with_time: this.withTime ? 1 : 0 } as DateEntry;\n if (this.thyValue) {\n value.date = (this.thyValue as TinyDate).getUnixTime();\n }\n if (this.onlyEmitDate) {\n this.onChangeFn(this.setValueByPrecision(value.date) as number);\n } else {\n this.onChangeFn(Object.assign(value, { date: this.setValueByPrecision(value.date) as number }));\n }\n }\n }\n\n setFormatRule() {\n if (!this.thyFormat()) {\n if (this.withTime) {\n this.thyFormat.set('yyyy-MM-dd HH:mm');\n } else {\n if (!this.onlyEmitDate) {\n this.thyFormat.set('yyyy-MM-dd');\n }\n }\n }\n }\n\n onOpenChange(open: boolean): void {\n this.opened.set(open);\n this.thyOpenChange.emit(open);\n }\n\n onChangeFn: (val: ThyCompatibleDate | DateEntry | ThyDateRangeEntry | number | null) => void = () => void 0;\n\n writeValue(originalValue: ThyCompatibleDate | ThyDateRangeEntry): void {\n const { value, withTime, flexibleDateGranularity } = transformDateValue(originalValue);\n this.flexibleDateGranularity = flexibleDateGranularity;\n this.innerValue = value;\n if (this.flexible() && value && (value as Date[]).length) {\n if (!this.flexibleDateGranularity) {\n this.flexibleDateGranularity = 'day';\n }\n }\n\n this.onlyEmitDate = typeof withTime === 'undefined';\n this.setTimePickerState(this.onlyEmitDate ? value && !!this.thyShowTime() : withTime);\n this.setValue(value);\n this.setFormatRule();\n this.cdr.markForCheck();\n }\n\n setTimePickerState(withTime: boolean): void {\n this.withTime = !!withTime;\n }\n\n // Displays the time directly when the time must be displayed by default\n setDefaultTimePickerState() {\n this.withTime = this.thyMustShowTime();\n }\n\n // Restore after clearing time to select whether the original picker time is displayed or not\n restoreTimePickerState(value: CompatibleValue | null) {\n if (!value) {\n this.withTime = this.thyMustShowTime();\n } else if (this.onlyEmitDate) {\n this.withTime = !!this.thyShowTime();\n }\n }\n\n setPanelMode() {\n const mode = this.thyMode ?? 'date';\n if (this.isRange) {\n this.panelMode = this.flexible() ? ['date', 'date'] : [mode, mode];\n } else {\n this.panelMode = mode;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.thyDisabled = disabled;\n this.cdr.markForCheck();\n }\n\n private setDefaultPlaceHolder(): void {\n if (!this.isCustomPlaceHolder) {\n const placeholder = this.isRange ? [this.locale().startDate, this.locale().endDate] : this.locale().placeholder;\n this.placeholder.set(placeholder);\n }\n }\n\n public setValue(value: ThyCompatibleDate): void {\n this.thyValue = makeValue(value, this.isRange, this.withTime, this.thyTimeZone());\n }\n\n private setValueByPrecision(value: ThyCompatibleDate | number | Date | DateEntry | ThyDateRangeEntry | SafeAny): number | number[] {\n return setValueByTimestampPrecision(value, this.isRange, this.thyTimestampPrecision(), this.thyTimeZone());\n }\n}\n","import { ThyClickDispatcher, ThyPlacement } from 'ngx-tethys/core';\nimport { elementMatchClosest, FunctionProp, TinyDate } from 'ngx-tethys/util';\nimport {\n Component,\n ElementRef,\n inject,\n input,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n output,\n PLATFORM_ID,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractPickerComponent } from './abstract-picker.component';\nimport { CompatibleValue, RangeAdvancedValue } from './inner-types';\nimport { ThyPicker } from './picker.component';\nimport { hasTimeInStringDate, isValidStringDate, parseStringDate, transformDateValue } from './picker.util';\nimport { ThyCompatibleDate, ThyPanelMode } from './standard-types';\nimport { QUARTER_FORMAT } from './date-picker.config';\n\n/**\n * @private\n */\n@Component({\n template: ``,\n host: {\n '[attr.tabindex]': `tabIndex`,\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)'\n }\n})\nexport class BasePicker extends AbstractPickerComponent implements OnInit, OnChanges {\n protected element = inject(ElementRef);\n\n initialized: boolean;\n\n private innerPreviousDate: string;\n\n private thyPicker = viewChild<ThyPicker>('thyPicker');\n\n readonly thyDateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n @Input() set thyMode(value: ThyPanelMode) {\n this._panelMode = value ?? 'date';\n if (this.initialized) {\n this.setPanelMode();\n this.setFormat();\n }\n }\n\n get thyMode() {\n return this._panelMode;\n }\n\n /**\n * 是否有幕布\n */\n readonly thyHasBackdrop = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 弹出位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n readonly thyPlacement = input<ThyPlacement>('bottomLeft');\n\n readonly thyOnPanelChange = output<ThyPanelMode | ThyPanelMode[]>();\n\n readonly thyOnCalendarChange = output<Date[]>();\n\n readonly thyOnOk = output<ThyCompatibleDate | null>();\n\n thyClickDispatcher = inject(ThyClickDispatcher);\n\n platformId = inject(PLATFORM_ID);\n\n ngZone = inject(NgZone);\n\n open() {\n this.thyPicker().focus();\n this.thyPicker().onClickInputBox();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.setPanelMode();\n this.setFormat();\n this.initialized = true;\n\n if (isPlatformBrowser(this.platformId)) {\n this.thyClickDispatcher\n .clicked(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n if (\n !this.element.nativeElement.contains(event.target) &&\n !this.thyPicker()\n ?.overlayContainer()\n ?.nativeElement.contains(event.target as Node) &&\n this.realOpenState\n ) {\n this.ngZone.run(() => {\n this.closeOverlay();\n this.cdr.markForCheck();\n });\n }\n });\n }\n }\n\n onValueChange(value: CompatibleValue | RangeAdvancedValue): void {\n this.thyPicker().entering = false;\n this.restoreTimePickerState(value as CompatibleValue);\n super.onValueChange(value);\n if (!this.flexible()) {\n this.closeOverlay();\n }\n this.innerPreviousDate = this.thyPicker().getReadableValue(this.thyValue);\n }\n\n onInputValueChange(formatDate: string | null | Array<null>) {\n if (!formatDate || !formatDate.length) {\n const compatibleValue = formatDate ? (formatDate as CompatibleValue) : null;\n this.restoreTimePickerState(compatibleValue);\n super.onValueChange(compatibleValue);\n return;\n }\n let value = formatDate as string;\n const valueValid = isValidStringDate(value, this.thyTimeZone());\n const valueLimitValid = valueValid ? this.isValidDateLimit(parseStringDate(value, this.thyTimeZone())) : false;\n if (valueValid && valueLimitValid) {\n this.innerPreviousDate = value;\n } else {\n value = this.innerPreviousDate;\n }\n const tinyDate = value\n ? this.thyShowTime()\n ? parseStringDate(value, this.thyTimeZone())\n : parseStringDate(value, this.thyTimeZone()).startOfDay()\n : null;\n this.restoreTimePickerState(tinyDate);\n super.onValueChange(tinyDate);\n }\n\n setFormat() {\n if (!this.thyFormat()) {\n const inputFormats: { [key in ThyPanelMode]?: string } = {\n year: 'yyyy',\n quarter: `yyyy-${QUARTER_FORMAT}`,\n month: 'yyyy-MM',\n week: this.locale().weekThFormat,\n date: this.thyShowTime() ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd'\n };\n this.thyFormat.set(this.flexible() ? inputFormats['date'] : inputFormats[this.thyMode]);\n }\n }\n\n // Emit thyOnCalendarChange when select date by thy-range-picker\n onCalendarChange(value: TinyDate[]): void {\n if (this.isRange) {\n const rangeValue = value.map(x => x.nativeDate);\n this.thyOnCalendarChange.emit(rangeValue);\n }\n }\n\n onShowTimePickerChange(show: boolean): void {\n this.withTime = show;\n }\n\n onResultOk(): void {\n if (this.isRange) {\n const value = this.thyValue as TinyDate[];\n if (value.length) {\n this.thyOnOk.emit([value[0].nativeDate, value[1].nativeDate]);\n } else {\n this.thyOnOk.emit([]);\n }\n } else {\n if (this.thyValue) {\n this.thyOnOk.emit((this.thyValue as TinyDate).nativeDate);\n } else {\n this.thyOnOk.emit(null);\n }\n }\n this.closeOverlay();\n }\n\n onOpenChange(open: boolean): void {\n this.thyOpenChange.emit(open);\n if (!open) {\n this.onTouchedFn();\n }\n }\n\n onFocus(event: Event) {\n this.picker().focus();\n }\n\n onBlur(event?: FocusEvent) {\n // Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn\n if (elementMatchClosest(event?.relatedTarget as HTMLElement, ['date-popup', 'thy-picker'])) {\n return;\n }\n this.onTouchedFn();\n }\n\n onInputDate(value: string) {\n if (value && isValidStringDate(value, this.thyTimeZone())) {\n if (this.thyShowTime()) {\n this.withTime = hasTimeInStringDate(value, this.thyTimeZone());\n }\n this.thyValue = parseStringDate(value, this.thyTimeZone());\n }\n }\n\n private isValidDateLimit(date: TinyDate): boolean {\n let disable = false;\n if (this.thyDisabledDate() !== undefined) {\n disable = this.thyDisabledDate()(date.nativeDate);\n }\n const minDate = this.thyMinDate() ? new TinyDate(transformDateValue(this.thyMinDate()).value as Date, this.thyTimeZone()) : null;\n const maxDate = this.thyMaxDate() ? new TinyDate(transformDateValue(this.thyMaxDate()).value as Date, this.thyTimeZone()) : null;\n return (\n (!minDate || date.startOfDay().nativeDate >= minDate.startOfDay().nativeDate) &&\n (!maxDate || date.startOfDay().nativeDate <= maxDate.startOfDay().nativeDate) &&\n !disable\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 日期选择组件\n * @name thy-date-picker\n * @order 10\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-date-picker',\n exportAs: 'thyDatePicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyDatePicker)\n }\n ],\n imports: [ThyPicker, DatePopup],\n host: {\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyDatePicker extends BasePicker implements OnInit {\n isRange = false;\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n this.hostRenderer.addClass('thy-calendar-picker');\n }\n}\n","<thy-picker\n #thyPicker\n [isRange]=\"isRange\"\n [value]=\"thyValue\"\n [flexible]=\"flexible()\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n (valueChange)=\"onInputValueChange($event)\"\n [opened]=\"opened()\"\n [disabled]=\"thyDisabled\"\n [format]=\"thyFormat()\"\n [separator]=\"separator()\"\n [mode]=\"thyMode\"\n [allowClear]=\"thyAllowClear()\"\n [className]=\"thyOriginClassName()\"\n [autoFocus]=\"thyAutoFocus()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"thyReadonly()\"\n [size]=\"thySize()\"\n [timeZone]=\"thyTimeZone()\"\n [suffixIcon]=\"thySuffixIcon()\"\n [placement]=\"thyPlacement()\"\n [hasBackdrop]=\"thyHasBackdrop()\"\n (openChange)=\"onOpenChange($event)\"\n (blur)=\"onBlur($event)\"\n (inputChange)=\"onInputDate($event)\">\n @if (isShowDatePopup) {\n <date-popup\n [attr.tabindex]=\"-1\"\n [isRange]=\"isRange\"\n [showWeek]=\"showWeek()\"\n [panelMode]=\"panelMode\"\n [flexible]=\"flexible()\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n [defaultPickerValue]=\"thyDefaultPickerValue()\"\n (panelModeChange)=\"thyOnPanelChange.emit($event)\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n [value]=\"thyValue\"\n (valueChange)=\"onValueChange($event)\"\n (calendarChange)=\"onCalendarChange($event)\"\n [showTime]=\"thyShowTime()\"\n [mustShowTime]=\"withTime\"\n [format]=\"thyFormat()\"\n [dateRender]=\"thyDateRender()\"\n [disabledDate]=\"thyDisabledDate()\"\n [minDate]=\"thyMinDate()\"\n [maxDate]=\"thyMaxDate()\"\n [showShortcut]=\"thyShowShortcut()\"\n [shortcutPresets]=\"thyShortcutPresets()\"\n [shortcutPosition]=\"thyShortcutPosition()\"\n [timestampPrecision]=\"thyTimestampPrecision()\"\n (dateValueChange)=\"onDateValueChange($event)\"\n [className]=\"thyPanelClassName()\"\n (resultOk)=\"onResultOk()\"\n [timeZone]=\"thyTimeZone()\"></date-popup>\n }\n</thy-picker>\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, model } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 月份选择组件\n * @name thy-month-picker\n * @order 40\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-month-picker',\n exportAs: 'thyMonthPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyMonthPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyMonthPicker extends BasePicker {\n protected element: ElementRef;\n\n /**\n * 展示的月份格式\n */\n readonly thyFormat = model<string>('yyyy-MM');\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'month';\n }\n}\n","import { forwardRef, ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 日期范围选择组件\n * @name thy-range-picker\n * @order 70\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-range-picker',\n exportAs: 'thyRangePicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyRangePicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyRangePicker extends BasePicker implements OnInit {\n protected elementRef: ElementRef;\n\n isRange = true;\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 周选择组件\n * @name thy-week-picker\n * @order 30\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-week-picker',\n exportAs: 'thyWeekPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyWeekPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyWeekPicker extends BasePicker {\n protected elementRef: ElementRef;\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'week';\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, model } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\nimport { ThyPanelMode } from './standard-types';\n\n/**\n * 年份选择组件\n * @name thy-year-picker\n * @order 50\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-year-picker',\n exportAs: 'thyYearPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyYearPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyYearPicker extends BasePicker {\n protected elementRef: ElementRef;\n\n /**\n * 展示的年份格式\n */\n readonly thyFormat = model<string>('yyyy');\n\n isRange = false;\n\n endPanelMode: ThyPanelMode = 'year';\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'year';\n }\n}\n","import { Directive, StaticProvider, forwardRef, input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { instanceOfDateEntry, instanceOfRangeEntry } from './picker.util';\nimport { DateEntry, ThyDateRangeEntry } from './standard-types';\n\nconst DATE_PICKER_REQUIRED_VALIDATOR: StaticProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatePickerRequiredValidator),\n multi: true\n};\n\n/**\n * @private\n */\n@Directive({\n selector:\n '[thyDatePicker][required][formControlName],[thyDatePicker][required][formControl],[thyDatePicker][required][ngModel],thy-date-picker[required][formControlName],thy-date-picker[required][formControl],thy-date-picker[required][ngModel]',\n providers: [DATE_PICKER_REQUIRED_VALIDATOR]\n})\nexport class DatePickerRequiredValidator implements Validator {\n readonly required = input(false, {\n transform: (value: boolean | string) => {\n return value != null && value !== false && `${value}` !== 'false';\n }\n });\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.required() ? this.validateRequired(control) : null;\n }\n\n private validateRequired(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputDateValue(control.value) ? { required: true } : null;\n }\n}\n\nconst RANGE_PICKER_REQUIRED_VALIDATOR: StaticProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangePickerRequiredValidator),\n multi: true\n};\n\n/**\n * @private\n */\n@Directive({\n selector:\n '[thyRangePicker][required][formControlName],[thyRangePicker][required][formControl],[thyRangePicker][required][ngModel],thy-range-picker[required][formControlName],thy-range-picker[required][formControl],thy-range-picker[required][ngModel]',\n providers: [RANGE_PICKER_REQUIRED_VALIDATOR]\n})\nexport class RangePickerRequiredValidator implements Validator {\n readonly required = input(false, {\n transform: (value: boolean | string) => {\n return value != null && value !== false && `${value}` !== 'false';\n }\n });\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.required() ? this.validateRequired(control) : null;\n }\n\n private validateRequired(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputRangeValue(control.value) ? { required: true } : null;\n }\n}\n\nfunction isEmptyInputRangeValue(value: ThyDateRangeEntry): boolean {\n return value == null || (instanceOfRangeEntry(value) && (value.begin == null || value.end == null));\n}\n\nfunction isEmptyInputDateValue(value: DateEntry): boolean {\n return value == null || (instanceOfDateEntry(value) && value.date == null);\n}\n","import { ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { FunctionProp, warnDeprecation } from 'ngx-tethys/util';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, mapTo, tap } from 'rxjs/operators';\nimport { coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n OnChanges,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n numberAttribute,\n inject,\n OutputRefSubscription,\n input,\n OnDestroy\n} from '@angular/core';\nimport { AbstractPickerComponent } from './abstract-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyDateChangeEvent, ThyPanelMode } from './standard-types';\nimport { CompatibleValue } from './inner-types';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * @private\n */\n@Directive()\nexport abstract class PickerDirective extends AbstractPickerComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n elementRef = inject(ElementRef);\n\n cdr = inject(ChangeDetectorRef);\n\n private thyPopover = inject(ThyPopover);\n\n readonly thyDateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly thyOnPanelChange = output<ThyPanelMode | ThyPanelMode[]>();\n\n readonly thyOnCalendarChange = output<Date[]>();\n\n /**\n * 弹出位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n readonly thyPlacement = input<ThyPlacement>('bottom');\n\n /**\n * 弹出 DatePicker 的偏移量\n */\n readonly thyOffset = input(4, {\n transform: (value: number) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation(`thyOffset parameter will be deprecated, please use thyPopoverOptions instead.`);\n }\n return numberAttribute(value);\n }\n });\n\n /**\n * 是否有幕布\n */\n readonly thyHasBackdrop = input(true, {\n transform: (value: boolean) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation(`thyOffset parameter will be deprecated, please use thyPopoverOptions instead.`);\n }\n return coerceBooleanProperty(value);\n }\n });\n\n /**\n * popover 的其它参数\n */\n readonly thyPopoverOptions = input<ThyPopoverConfig>();\n\n /**\n * 是否阻止冒泡\n */\n readonly thyStopPropagation = input(true, { transform: coerceBooleanProperty });\n\n private el: HTMLElement = this.elementRef.nativeElement;\n\n readonly $click: Observable<boolean> = fromEvent(this.el, 'click').pipe(\n tap(e => {\n if (this.thyStopPropagation()) {\n e.stopPropagation();\n }\n }),\n mapTo(true)\n );\n\n private valueChangeSubscription: OutputRefSubscription;\n\n private calendarChangeSubscription: OutputRefSubscription;\n\n private showTimePickerChangeSubscription: OutputRefSubscription;\n\n private dateValueChangeSubscription: OutputRefSubscription;\n\n ngOnInit() {\n this.setPanelMode();\n }\n\n private openOverlay(): void {\n this.setPanelMode();\n const popoverRef = this.thyPopover.open(\n DatePopup,\n Object.assign(\n {\n origin: this.el,\n hasBackdrop: this.thyHasBackdrop(),\n backdropClass: 'thy-overlay-transparent-backdrop',\n offset: this.thyOffset(),\n outsideClosable: true,\n initialState: {\n isRange: this.isRange,\n panelMode: this.panelMode,\n showWeek: this.showWeek(),\n value: this.thyValue,\n showTime: this.thyShowTime(),\n mustShowTime: this.withTime,\n format: this.thyFormat(),\n dateRender: this.thyDateRender(),\n disabledDate: this.thyDisabledDate(),\n placeholder: this.placeholder(),\n className: this.thyPanelClassName(),\n defaultPickerValue: this.thyDefaultPickerValue(),\n minDate: this.thyMinDate(),\n maxDate: this.thyMaxDate(),\n showShortcut: this.thyShowShortcut(),\n shortcutPresets: this.thyShortcutPresets(),\n shortcutPosition: this.thyShortcutPosition(),\n flexible: this.flexible(),\n flexibleDateGranularity: this.flexibleDateGranularity,\n timestampPrecision: this.thyTimestampPrecision()\n },\n placement: this.thyPlacement()\n },\n this.thyPopoverOptions()\n )\n );\n if (popoverRef) {\n const componentInstance = popoverRef.componentInstance;\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n this.valueChangeSubscription = componentInstance.valueChange?.subscribe((event: CompatibleValue) => this.onValueChange(event));\n\n if (this.calendarChangeSubscription) {\n this.calendarChangeSubscription.unsubscribe();\n }\n this.calendarChangeSubscription = componentInstance.calendarChange?.subscribe((event: CompatibleValue) => {\n const rangeValue = coerceArray(event).map(x => x.nativeDate);\n this.thyOnCalendarChange.emit(rangeValue);\n });\n\n if (this.showTimePickerChangeSubscription) {\n this.showTimePickerChangeSubscription.unsubscribe();\n }\n this.showTimePickerChangeSubscription = componentInstance.showTimePickerChange?.subscribe((event: boolean) =>\n this.onShowTimePickerChange(event)\n );\n\n // eslint-disable-next-line max-len\n componentInstance.ngOnChanges({ value: {} as SimpleChange }); // dynamically created components don't call ngOnChanges, manual call\n\n if (this.dateValueChangeSubscription) {\n this.dateValueChangeSubscription.unsubscribe();\n }\n this.dateValueChangeSubscription = componentInstance.dateValueChange?.subscribe((event: ThyDateChangeEvent) => {\n this.thyDateChange.emit(event);\n });\n\n popoverRef\n .afterOpened()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.thyOpenChange.emit(true));\n popoverRef\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.thyOpenChange.emit(false));\n }\n }\n\n closeOverlay(): void {\n this.thyPopover.close();\n }\n\n initActionSubscribe(): void {\n this.$click.pipe(debounceTime(50), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (!this.thyDisabled && !this.thyReadonly()) {\n this.openOverlay();\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initActionSubscribe();\n }\n\n ngOnDestroy(): void {\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n if (this.calendarChangeSubscription) {\n this.calendarChangeSubscription.unsubscribe();\n }\n if (this.showTimePickerChangeSubscription) {\n this.showTimePickerChangeSubscription.unsubscribe();\n }\n if (this.dateValueChangeSubscription) {\n this.dateValueChangeSubscription.unsubscribe();\n }\n }\n\n onValueChange(value: CompatibleValue): void {\n this.restoreTimePickerState(value);\n super.onValueChange(value);\n if (!this.flexible()) {\n this.closeOverlay();\n }\n }\n\n onShowTimePickerChange(show: boolean): void {\n this.withTime = show;\n }\n}\n","import { forwardRef, OnInit, Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PickerDirective } from './abstract-picker.directive';\n\n/**\n * 日期选择指令\n * @name thyDatePicker\n * @order 20\n */\n@Directive({\n selector: '[thyDatePicker]',\n exportAs: 'thyDatePicker',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyDatePickerDirective)\n }\n ]\n})\nexport class ThyDatePickerDirective extends PickerDirective implements OnInit {\n isRange = false;\n}\n","import { forwardRef, OnInit, Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PickerDirective } from './abstract-picker.directive';\n\n/**\n * 日期范围选择指令\n * @name thyRangePicker\n * @order 80\n */\n@Directive({\n selector: '[thyRangePicker]',\n exportAs: 'thyRangePicker',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyRangePickerDirective)\n }\n ]\n})\nexport class ThyRangePickerDirective extends PickerDirective implements OnInit {\n isRange = true;\n\n constructor() {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, model } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\nimport { ThyPanelMode } from './standard-types';\nimport { QUARTER_FORMAT } from './date-picker.config';\n\n/**\n * 季度选择组件\n * @name thy-quarter-picker\n * @order 60\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-quarter-picker',\n exportAs: 'thyQuarterPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyQuarterPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyQuarterPicker extends BasePicker {\n protected elementRef: ElementRef;\n\n /**\n * 展示的季度格式\n */\n readonly thyFormat = model<string>(`yyyy-${QUARTER_FORMAT}`);\n\n isRange = false;\n\n endPanelMode: ThyPanelMode = 'quarter';\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'quarter';\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule, registerLocaleData } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport localeZhHans from '@angular/common/locales/zh-Hans';\n\nimport { LibPackerModule } from './lib/lib-packer.module';\n\nimport { BasePicker } from './base-picker.component';\nimport { ThyDatePicker } from './date-picker.component';\nimport { ThyMonthPicker } from './month-picker.component';\nimport { ThyRangePicker } from './range-picker.component';\nimport { ThyWeekPicker } from './week-picker.component';\nimport { ThyYearPicker } from './year-picker.component';\nimport { ThyPicker } from './picker.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { DatePickerRequiredValidator, RangePickerRequiredValidator } from './picker.validators';\nimport { ThyDatePickerFormatPipe, ThyDatePickerFormatStringPipe, ThyQuarterPickerFormatPipe } from './picker.pipes';\nimport { ThyDatePickerDirective } from './date-picker.directive';\nimport { ThyRangePickerDirective } from './range-picker.directive';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyDatePickerConfigService } from './date-picker.service';\nimport { ThyQuarterPicker } from './quarter-picker.component';\n\nregisterLocaleData(localeZhHans, 'zh-Hans');\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n LibPackerModule,\n ThyIconModule,\n ThyInputModule,\n ThyPopoverModule,\n BasePicker,\n ThyPicker,\n ThyDatePicker,\n ThyMonthPicker,\n ThyYearPicker,\n ThyQuarterPicker,\n ThyWeekPicker,\n ThyRangePicker,\n DatePickerRequiredValidator,\n RangePickerRequiredValidator,\n ThyDatePickerFormatPipe,\n ThyQuarterPickerFormatPipe,\n ThyDatePickerFormatStringPipe,\n ThyDatePickerDirective,\n ThyRangePickerDirective\n ],\n exports: [\n ThyDatePicker,\n ThyRangePicker,\n ThyMonthPicker,\n ThyYearPicker,\n ThyQuarterPicker,\n ThyWeekPicker,\n DatePickerRequiredValidator,\n RangePickerRequiredValidator,\n ThyDatePickerFormatPipe,\n ThyQuarterPickerFormatPipe,\n ThyDatePickerFormatStringPipe,\n ThyDatePickerDirective,\n ThyRangePickerDirective\n ],\n providers: [ThyDatePickerConfigService]\n})\nexport class ThyDatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty","coerceArray"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-date-picker.mjs","sources":["../../../src/date-picker/date-helper.service.ts","../../../src/date-picker/lib/calendar/calendar-header.component.ts","../../../src/date-picker/lib/month/month-header.component.ts","../../../src/date-picker/lib/calendar/calendar-header.component.html","../../../src/date-picker/lib/calendar/calendar-footer.component.ts","../../../src/date-picker/lib/calendar/calendar-footer.component.html","../../../src/date-picker/date-picker.config.ts","../../../src/date-picker/date-picker.service.ts","../../../src/date-picker/picker.util.ts","../../../src/date-picker/picker.pipes.ts","../../../src/date-picker/lib/date-carousel/date-carousel.component.ts","../../../src/date-picker/lib/date-carousel/date-carousel.component.html","../../../src/date-picker/lib/date/date-header.component.ts","../../../src/date-picker/lib/calendar/calendar-table.component.ts","../../../src/date-picker/lib/date/date-table-cell.component.ts","../../../src/date-picker/lib/date/date-table-cell.component.html","../../../src/date-picker/lib/date/date-table.component.ts","../../../src/date-picker/lib/date/date-table.component.html","../../../src/date-picker/lib/decade/decade-header.component.ts","../../../src/date-picker/lib/decade/decade-table.component.ts","../../../src/date-picker/lib/decade/decade-table.component.html","../../../src/date-picker/lib/month/month-table.component.ts","../../../src/date-picker/lib/month/month-table.component.html","../../../src/date-picker/lib/quarter/quarter-table.component.ts","../../../src/date-picker/lib/quarter/quarter-table.component.html","../../../src/date-picker/lib/year/year-header.component.ts","../../../src/date-picker/lib/year/year-table.component.ts","../../../src/date-picker/lib/year/year-table.component.html","../../../src/date-picker/lib/popups/inner-popup.component.ts","../../../src/date-picker/lib/popups/inner-popup.component.html","../../../src/date-picker/lib/popups/date-popup.component.ts","../../../src/date-picker/lib/popups/date-popup.component.html","../../../src/date-picker/lib/lib-packer.module.ts","../../../src/date-picker/picker.component.ts","../../../src/date-picker/picker.component.html","../../../src/date-picker/abstract-picker.component.ts","../../../src/date-picker/base-picker.component.ts","../../../src/date-picker/date-picker.component.ts","../../../src/date-picker/base-picker.component.html","../../../src/date-picker/month-picker.component.ts","../../../src/date-picker/range-picker.component.ts","../../../src/date-picker/week-picker.component.ts","../../../src/date-picker/year-picker.component.ts","../../../src/date-picker/picker.validators.ts","../../../src/date-picker/abstract-picker.directive.ts","../../../src/date-picker/date-picker.directive.ts","../../../src/date-picker/range-picker.directive.ts","../../../src/date-picker/quarter-picker.component.ts","../../../src/date-picker/date-picker.module.ts","../../../src/date-picker/ngx-tethys-date-picker.ts"],"sourcesContent":["import { Injectable, Signal } from '@angular/core';\nimport { ThyI18nLocale, injectLocale } from 'ngx-tethys/i18n';\nimport { formatDate } from '@angular/common';\n\nexport function DATE_HELPER_SERVICE_FACTORY(): DateHelperService {\n return new DateHelperByDatePipe();\n}\n\n/**\n * @private\n */\n@Injectable({\n providedIn: 'root',\n useFactory: DATE_HELPER_SERVICE_FACTORY\n})\nexport abstract class DateHelperService {\n locale: Signal<ThyI18nLocale> = injectLocale();\n relyOnDatePipe: boolean = this instanceof DateHelperByDatePipe;\n abstract getISOWeek(date: Date): number;\n abstract format(date: Date, formatStr: string): string;\n}\n\nexport class DateHelperByDatePipe extends DateHelperService {\n getISOWeek(date: Date): number {\n return +this.format(date, 'w');\n }\n\n format(date: Date | null, formatStr: string): string {\n return date ? formatDate(date, formatStr, this.locale().id) : '';\n }\n\n transCompatFormat(format: string): string {\n return format && format.replace(/Y/g, 'y').replace(/D/g, 'd');\n }\n}\n","import { Directive, OnInit, Signal, effect, inject, input, model, output } from '@angular/core';\nimport { ThyPanelMode } from '../../standard-types';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\n\nexport interface PanelSelector {\n className: string;\n title?: string;\n label: string;\n onClick(): void;\n}\n\n/**\n * @private\n */\n@Directive()\nexport abstract class CalendarHeader implements OnInit {\n protected dateHelper = inject(DateHelperService);\n\n protected locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly showSuperPreBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly showSuperNextBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly showPreBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly showNextBtn = input(true, { transform: coerceBooleanProperty });\n\n readonly value = model<TinyDate>();\n\n readonly valueChange = output<TinyDate>();\n\n readonly panelModeChange = output<ThyPanelMode>();\n\n abstract getSelectors(): PanelSelector[];\n\n protected prefixCls = 'thy-calendar';\n\n protected selectors: PanelSelector[] | null = null;\n\n constructor() {\n effect(() => {\n this.render();\n });\n }\n\n ngOnInit(): void {\n if (!this.value()) {\n this.value.set(new TinyDate());\n }\n }\n\n superPrevious(): void {\n this.gotoYear(-1);\n }\n\n superNext(): void {\n this.gotoYear(1);\n }\n\n previous(): void {\n this.gotoMonth(-1);\n }\n\n next(): void {\n this.gotoMonth(1);\n }\n\n changePanel(mode: ThyPanelMode, value?: TinyDate): void {\n this.panelModeChange.emit(mode);\n }\n\n selectorClick(event: Event, selector: PanelSelector) {\n event.stopPropagation();\n return selector ? selector.onClick() : null;\n }\n\n private render(): void {\n if (this.value()) {\n this.selectors = this.getSelectors();\n }\n }\n\n private gotoMonth(amount: number): void {\n this.changeValue(this.value()!.addMonths(amount));\n }\n\n private gotoYear(amount: number): void {\n this.changeValue(this.value()!.addYears(amount));\n }\n\n public changeValue(value: TinyDate): void {\n if (this.value() !== value) {\n this.value.set(value);\n this.valueChange.emit(value);\n }\n }\n\n formatDateTime(format: string): string {\n const date = this.value()!.nativeDate;\n return this.dateHelper.format(date, format);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'month-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class MonthHeader extends CalendarHeader {\n getSelectors(): PanelSelector[] {\n const yearFormat = this.locale().yearFormat;\n\n return [\n {\n className: `${this.prefixCls}-month-btn`,\n onClick: () => this.changePanel('year'),\n label: this.formatDateTime(yearFormat)\n }\n ];\n }\n}\n","<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n [title]=\"locale().previousYear\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-prev-month-btn\"\n [ngClass]=\"showPreBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"previous()\"\n [title]=\"locale().previousMonth\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a\n class=\"{{ prefixCls }}-next-month-btn\"\n [ngClass]=\"showNextBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"next()\"\n [title]=\"locale().nextMonth\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn() ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n [title]=\"locale().nextYear\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, model, effect, OnInit, output, signal, Signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInnerTimePicker } from 'ngx-tethys/time-picker';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'calendar-footer',\n exportAs: 'calendarFooter',\n templateUrl: 'calendar-footer.component.html',\n imports: [ThyIcon, ThyInnerTimePicker, FormsModule, ThyButton]\n})\nexport class CalendarFooter implements OnInit {\n /**\n * 是否支持设置时间 (时、分)\n */\n readonly showTime = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否展示时间 (时、分)\n */\n readonly mustShowTime = input(false, { transform: coerceBooleanProperty });\n\n readonly value = model<TinyDate | null>();\n\n readonly timeZone = input<string>();\n\n readonly disableTimeConfirm = input(false, { transform: coerceBooleanProperty });\n\n readonly selectTime = output<TinyDate>();\n\n readonly clickOk = output<void>();\n\n readonly clickRemove = output<void>();\n\n readonly showTimePickerChange = output<boolean>();\n\n readonly isShowTime = signal<boolean>(false);\n\n readonly isCanTime = signal<boolean>(false);\n\n readonly locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n constructor() {\n effect(() => {\n this.initTimeShowMode();\n });\n }\n\n ngOnInit() {\n this.initValue();\n }\n\n initValue(): void {\n if (!this.value()) {\n const defaultDate = new TinyDate(undefined, this.timeZone());\n this.value.set(defaultDate);\n }\n }\n\n onSelectTime(date: Date): void {\n this.selectTime.emit(new TinyDate(date, this.timeZone()));\n }\n\n onTimeOk() {\n if (this.disableTimeConfirm()) {\n return;\n }\n this.selectTime.emit(this.value()!);\n this.clickOk.emit();\n }\n\n onClear() {\n this.value.set(null);\n this.clickRemove.emit();\n }\n\n changeTimeShowMode(type: string) {\n this.isCanTime.set(type === 'can');\n this.isShowTime.set(type === 'show');\n\n this.showTimePickerChange.emit(this.isShowTime());\n }\n\n private initTimeShowMode() {\n if (this.mustShowTime()) {\n this.changeTimeShowMode('show');\n } else {\n if (this.showTime()) {\n this.changeTimeShowMode('can');\n }\n }\n }\n}\n","@let showTime = isShowTime();\n@let canTime = isCanTime();\n\n@if (showTime || canTime) {\n <div class=\"time-picker-section\" (click)=\"$event.stopPropagation()\">\n @if (canTime) {\n <a href=\"javascript:;\" class=\"link-has-icon time-picker-set-btn\" (click)=\"changeTimeShowMode('show')\">\n <thy-icon thyIconName=\"clock-circle\"></thy-icon>{{ locale().setTime }}\n </a>\n }\n @if (showTime) {\n <thy-inner-time-picker\n class=\"time-picker-wrap\"\n [showMeridian]=\"false\"\n [timeZone]=\"timeZone()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onSelectTime($event)\"></thy-inner-time-picker>\n }\n <div class=\"time-picker-btn-wrap\">\n @if (!canTime) {\n <button [disabled]=\"disableTimeConfirm()\" class=\"time-picker-ok-btn\" thyButton=\"primary\" thySize=\"sm\" (click)=\"onTimeOk()\">\n {{ locale().ok }}\n </button>\n }\n <button class=\"time-picker-clear-btn\" thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"onClear()\">{{ locale().clear }}</button>\n </div>\n </div>\n}\n","import { InjectionToken, Signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { injectLocale, ThyDatePickerLocale, ThyI18nService } from 'ngx-tethys/i18n';\nimport { addDays, addWeeks, startOfDay, startOfWeek, subDays, TinyDate, WeekDayIndex } from 'ngx-tethys/util';\nimport { CompatiblePresets, ThyShortcutPosition } from './standard-types';\n\nexport interface ThyDatePickerConfig {\n shortcutPosition: ThyShortcutPosition;\n shortcutDatePresets: CompatiblePresets;\n shortcutRangesPresets: CompatiblePresets;\n showShortcut: boolean;\n weekStartsOn: WeekDayIndex;\n separator: string;\n timestampPrecision: 'seconds' | 'milliseconds';\n dateCellRender?: (date: Date) => SafeHtml | undefined;\n}\n\n/**\n * @deprecated\n */\nexport const DEFAULT_DATE_PICKER_CONFIG: ThyDatePickerConfig = {\n shortcutPosition: 'left',\n showShortcut: false,\n weekStartsOn: 1,\n separator: '~',\n timestampPrecision: 'seconds',\n shortcutDatePresets: () => {\n return [\n {\n title: '今天',\n value: startOfDay(new TinyDate().getTime()).getTime()\n },\n {\n title: '明天',\n value: startOfDay(addDays(new TinyDate().getTime(), 1)).getTime()\n },\n {\n title: '下周',\n value: startOfWeek(addWeeks(new TinyDate().getTime(), 1), { weekStartsOn: 1 }).getTime()\n }\n ];\n },\n shortcutRangesPresets: () => {\n return [\n {\n title: '最近 7 天',\n value: [new TinyDate(subDays(new TinyDate().getTime(), 6)).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: '最近 30 天',\n value: [new TinyDate(subDays(new TinyDate().getTime(), 29)).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: '本周',\n value: [new TinyDate().startOfWeek({ weekStartsOn: 1 }).getTime(), new TinyDate().endOfWeek({ weekStartsOn: 1 }).getTime()]\n },\n {\n title: '本月',\n value: [new TinyDate().startOfMonth().getTime(), new TinyDate().endOfMonth().getTime()]\n }\n ];\n }\n};\n\nexport const QUARTER_FORMAT = \"'Q'q\";\n\nexport const THY_DATE_PICKER_CONFIG = new InjectionToken<ThyDatePickerConfig>('thy-date-picker-config');\n\nexport function useDatePickerDefaultConfig(): ThyDatePickerConfig {\n const locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n return {\n shortcutPosition: 'left',\n showShortcut: false,\n weekStartsOn: 1,\n separator: '~',\n timestampPrecision: 'seconds',\n shortcutDatePresets: () => {\n return [\n {\n title: locale().today,\n value: startOfDay(new TinyDate().nativeDate).getTime()\n },\n {\n title: locale().tomorrow,\n value: startOfDay(addDays(new TinyDate().nativeDate, 1)).getTime()\n },\n {\n title: locale().nextWeek,\n value: startOfWeek(addWeeks(new TinyDate().nativeDate, 1), { weekStartsOn: 1 }).getTime()\n }\n ];\n },\n shortcutRangesPresets: () => {\n return [\n {\n title: locale().lastSevenDays,\n value: [new TinyDate().subDays(6).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: locale().lastThirtyDays,\n value: [new TinyDate().subDays(29).getTime(), new TinyDate().endOfDay().getTime()]\n },\n {\n title: locale().currentWeek,\n value: [\n new TinyDate().startOfWeek({ weekStartsOn: 1 }).getTime(),\n new TinyDate().endOfWeek({ weekStartsOn: 1 }).getTime()\n ]\n },\n {\n title: locale().currentMonth,\n value: [new TinyDate().startOfMonth().getTime(), new TinyDate().endOfMonth().getTime()]\n }\n ];\n }\n };\n}\n\nexport const THY_DATE_PICKER_CONFIG_PROVIDER = {\n provide: THY_DATE_PICKER_CONFIG,\n useFactory: useDatePickerDefaultConfig,\n deps: [ThyI18nService]\n};\n","import { Injectable, inject } from '@angular/core';\nimport { THY_DATE_PICKER_CONFIG, ThyDatePickerConfig, useDatePickerDefaultConfig } from './date-picker.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyDatePickerConfigService {\n config!: ThyDatePickerConfig;\n\n constructor() {\n const datePickerConfig = inject(THY_DATE_PICKER_CONFIG, { optional: true })!;\n\n this.config = { ...useDatePickerDefaultConfig(), ...datePickerConfig };\n }\n\n get shortcutDatePresets() {\n return this.config.shortcutDatePresets;\n }\n\n get shortcutPosition() {\n return this.config.shortcutPosition;\n }\n\n get showShortcut() {\n return this.config.showShortcut;\n }\n get shortcutRangesPresets() {\n return this.config.shortcutRangesPresets;\n }\n\n get timestampPrecision() {\n return this.config.timestampPrecision;\n }\n\n get separator() {\n return this.config.separator.trim();\n }\n}\n","import { Signal } from '@angular/core';\nimport { ThyI18nLocale } from 'ngx-tethys/i18n';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceArray, helpers, TinyDate } from 'ngx-tethys/util';\nimport { CompatibleValue, RangeAdvancedValue } from './inner-types';\nimport { ThyCompatibleDate, DateEntry, ThyDateGranularity, ThyDateRangeEntry, ThyPanelMode, ThyShortcutValue } from './standard-types';\n\nexport function transformDateValue(\n value: ThyCompatibleDate | CompatibleValue | number | DateEntry | ThyDateRangeEntry | RangeAdvancedValue | null\n): {\n value: ThyCompatibleDate | null;\n withTime?: boolean;\n flexibleDateGranularity?: ThyDateGranularity;\n} {\n if (!value) {\n return { value: null };\n }\n let withTime;\n let flexibleDateGranularity: ThyDateGranularity | undefined = undefined;\n if (value && typeof value === 'number') {\n value = convertDate(value);\n }\n if (value && instanceOfCompatibleValue(value as CompatibleValue)) {\n if (value instanceof TinyDate) {\n value = convertDate(value.nativeDate);\n } else {\n (value as SafeAny)[0] = convertDate((value as SafeAny)[0].nativeDate);\n (value as SafeAny)[1] = convertDate((value as SafeAny)[1].nativeDate);\n }\n }\n if (value && instanceOfDateEntry(value as DateEntry)) {\n const { date, with_time } = value as DateEntry;\n value = date ? convertDate(date) : null;\n withTime = !!with_time;\n }\n if (value && instanceOfRangeEntry(value as ThyDateRangeEntry)) {\n const rangeValue = value as ThyDateRangeEntry;\n value = [];\n if (rangeValue.begin && rangeValue.end) {\n value[0] = convertDate(rangeValue.begin);\n value[1] = convertDate(rangeValue.end);\n }\n if (rangeValue.granularity) {\n flexibleDateGranularity = rangeValue.granularity;\n }\n }\n\n if (value && instanceOfRangeAdvancedValue(value as RangeAdvancedValue)) {\n const rangeValue = value as RangeAdvancedValue;\n if (rangeValue.dateGranularity) {\n flexibleDateGranularity = rangeValue.dateGranularity;\n }\n value = [];\n if (rangeValue.begin && rangeValue.end) {\n value[0] = convertDate(rangeValue.begin.nativeDate);\n value[1] = convertDate(rangeValue.end.nativeDate);\n }\n }\n return { value: value as ThyCompatibleDate, withTime, flexibleDateGranularity };\n}\n\nexport function getFlexibleAdvancedReadableValue(\n tinyDates: TinyDate[],\n flexibleDateGranularity: ThyDateGranularity,\n separator: string,\n locale: Signal<ThyI18nLocale>\n) {\n let value = '';\n if (!tinyDates[0] || !tinyDates[1]) {\n return value;\n }\n switch (flexibleDateGranularity) {\n case 'year': {\n const yearFormatStr = locale().datePicker.yearFormat;\n if (tinyDates[0].isSameYear(tinyDates[1])) {\n value = `${tinyDates[0].format(yearFormatStr)}`;\n } else {\n value = `${tinyDates[0].format(yearFormatStr)}${separator}${tinyDates[1].format(yearFormatStr)}`;\n }\n break;\n }\n case 'quarter': {\n const quarterFormatStr = locale().datePicker.yearQuarterFormat;\n if (tinyDates[0].isSameQuarter(tinyDates[1])) {\n value = `${tinyDates[0].format(quarterFormatStr)}`;\n } else {\n value = `${tinyDates[0].format(quarterFormatStr)}${separator}${tinyDates[1].format(quarterFormatStr)}`;\n }\n break;\n }\n case 'month': {\n const monthFormatStr = locale().datePicker.yearMonthFormat;\n if (tinyDates[0].isSameMonth(tinyDates[1])) {\n value = `${tinyDates[0].format(monthFormatStr)}`;\n } else {\n value = `${tinyDates[0].format(monthFormatStr)}${separator}${tinyDates[1].format(monthFormatStr)}`;\n }\n break;\n }\n }\n return value;\n}\n\nexport function convertDate(date: Date | number | TinyDate): Date {\n if (typeof date === 'number') {\n if (date.toString().length < 13) {\n return TinyDate.fromUnixTime(date)?.nativeDate;\n } else {\n return new TinyDate(date)?.nativeDate;\n }\n } else if (date instanceof TinyDate) {\n return date?.nativeDate;\n } else {\n return new TinyDate(date)?.nativeDate;\n }\n}\n\nexport function hasValue(value: CompatibleValue): boolean {\n if (Array.isArray(value)) {\n return !!value[0] && !!value[1];\n } else {\n return !!value;\n }\n}\n\nexport function makeValue(\n value: ThyCompatibleDate | null,\n isRange: boolean = false,\n withTime: boolean,\n timeZone?: string\n): CompatibleValue | null {\n if (isRange) {\n return Array.isArray(value) ? (value as Date[]).map(val => new TinyDate(val, timeZone)) : [];\n } else {\n if (!value) {\n return null;\n }\n const date = new TinyDate(value as Date, timeZone);\n return withTime ? date.setSeconds(0) : date.startOfDay();\n }\n}\n\nexport function dateAddAmount(value: TinyDate, amount: number, mode: ThyPanelMode): TinyDate {\n let date!: TinyDate;\n switch (mode) {\n case 'decade':\n date = value.addYears(amount * 10);\n break;\n case 'year':\n date = value.addYears(amount);\n break;\n case 'month':\n date = value.addMonths(amount);\n break;\n default:\n date = value.addMonths(amount);\n break;\n }\n return date;\n}\n\n// rightDate 超过 leftDate 一个月\nexport function isAfterMoreThanOneMonth(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n if (rightDate.getYear() < leftDate.getYear()) {\n return false;\n }\n\n if (rightDate.getYear() === leftDate.getYear() && leftDate.getMonth() + 1 >= rightDate.getMonth()) {\n return false;\n }\n\n // 处理rightDate(2020,1,1) 为leftDate(2020,12,1)后一年1月,同时leftDate日期为12月的特殊情况\n return !(rightDate.getYear() - leftDate.getYear() === 1 && rightDate.getMonth() === 0 && leftDate.getMonth() === 11);\n}\n\n// rightDate 超过 leftDate 不到一年\nexport function isAfterMoreThanLessOneYear(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n if (rightDate.getYear() <= leftDate.getYear()) {\n return false;\n }\n // 处理rightDate(2021,1,1)日期比leftDate(2020,12,1)日期大1年,同时rightDate日期月份小于leftDate日期月份的情况\n return !(rightDate.getYear() - leftDate.getYear() === 1 && rightDate.getMonth() <= leftDate.getMonth());\n}\n\n// rightDate 超过 leftDate 一年\nexport function isAfterMoreThanOneYear(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n if (leftDate.getYear() + 1 >= rightDate.getYear()) {\n return false;\n } else {\n return true;\n }\n}\n\nexport function isAfterMoreThanOneDecade(rightDate: TinyDate, leftDate: TinyDate) {\n rightDate = rightDate ? rightDate : leftDate ? leftDate : new TinyDate();\n leftDate = leftDate ? leftDate : rightDate;\n return rightDate.getYear() - leftDate.getYear() >= 20;\n}\n\nexport function instanceOfDateEntry(object: DateEntry): object is DateEntry {\n return isSupportDateType(object, 'date') && typeof object.with_time === 'number';\n}\n\nexport function instanceOfRangeEntry(object: ThyDateRangeEntry): object is ThyDateRangeEntry {\n return isSupportDateType(object, 'begin') && isSupportDateType(object, 'end');\n}\n\nexport function instanceOfCompatibleValue(object: CompatibleValue): object is CompatibleValue {\n return object instanceof TinyDate || object[0] instanceof TinyDate;\n}\n\nexport function instanceOfRangeAdvancedValue(object: RangeAdvancedValue): object is RangeAdvancedValue {\n return object['begin'] instanceof TinyDate && object['end'] instanceof TinyDate;\n}\n\nexport function isSupportDateType(object: DateEntry | ThyDateRangeEntry, key: keyof DateEntry | keyof ThyDateRangeEntry) {\n // @ts-ignore\n return typeof object[key] === 'number' || object[key] === null || object[key] instanceof Date;\n}\n\nexport function getShortcutValue(value: ThyShortcutValue): number | Date {\n return helpers.isFunction(value) ? value() : value;\n}\n\nexport function isValidStringDate(dateStr: string, timeZone?: string): boolean {\n const parseDate = parseStringDate(dateStr, timeZone).nativeDate.getTime();\n return !(parseDate < 0 || isNaN(parseDate));\n}\n\nexport function parseStringDate(dateStr: string, timeZone?: string): TinyDate {\n return hasTimeInStringDate(dateStr, timeZone)\n ? new TinyDate(fixStringDate(dateStr, timeZone), timeZone)\n : new TinyDate(fixStringDate(dateStr, timeZone), timeZone).startOfDay();\n}\n\nexport function hasTimeInStringDate(dateStr: string, timeZone?: string): boolean {\n const formatDate = fixStringDate(dateStr, timeZone);\n const timeRegex = /(\\d{1,2}:\\d{1,2}(:\\d{1,2})?)|(^\\d{1,2}时\\d{1,2}分(\\d{1,2}秒)?)$/;\n return timeRegex.test(formatDate);\n}\n\nfunction fixStringDate(dateStr: string, timeZone?: string) {\n let replacedStr = dateStr.replace(/[^0-9\\s.,:]/g, '-').replace('- ', ' ');\n const hasYear = /\\d{4}/.test(replacedStr);\n if (!hasYear || replacedStr.length < 'yyyy.M.d'.length) {\n replacedStr = `${new TinyDate(undefined, timeZone).getYear()}-${replacedStr}`;\n }\n return replacedStr;\n}\n\nexport function setValueByTimestampPrecision(\n date: ThyCompatibleDate | number | Date | DateEntry | ThyDateRangeEntry | SafeAny,\n isRange: boolean,\n timestampPrecision: 'seconds' | 'milliseconds',\n timeZone?: string\n): number | number[] | null[] | null {\n const { value } = transformDateValue(date);\n if (!value || (helpers.isArray(value) && !value?.length)) {\n return helpers.isArray(value) ? [null, null] : null;\n }\n if (timestampPrecision === 'milliseconds') {\n return isRange\n ? coerceArray(value).map(val => new TinyDate(val, timeZone).getTime())\n : new TinyDate(value as Date, timeZone).getTime();\n } else {\n return isRange\n ? coerceArray(value).map(val => new TinyDate(val, timeZone).getUnixTime())\n : new TinyDate(value as Date, timeZone)?.getUnixTime();\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { ThyI18nService } from 'ngx-tethys/i18n';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { DateHelperService } from './date-helper.service';\nimport { QUARTER_FORMAT } from './date-picker.config';\nimport { ThyDatePickerConfigService } from './date-picker.service';\nimport { AdvancedSelectableCell } from './inner-types';\nimport { getFlexibleAdvancedReadableValue, transformDateValue } from './picker.util';\nimport { ThyCompatibleDate, DateEntry, ThyDateGranularity, ThyDateRangeEntry } from './standard-types';\n\n/**\n * @private\n */\n@Pipe({\n name: 'thyDatePickerFormat'\n})\nexport class ThyDatePickerFormatPipe implements PipeTransform {\n private dateHelper = inject(DateHelperService);\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n private i18n = inject(ThyI18nService);\n\n transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry, formatStr?: string, separator?: string): string {\n const { value, withTime, flexibleDateGranularity } = transformDateValue(originalValue);\n\n if (!formatStr) {\n formatStr = withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n }\n const currentSeparator = ` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `;\n if (!Array.isArray(value)) {\n return this.dateHelper.format(value!, formatStr);\n } else {\n if (flexibleDateGranularity && flexibleDateGranularity !== 'day') {\n const tinyDates = [new TinyDate(value[0]), new TinyDate(value[1])];\n return getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity, currentSeparator, this.i18n.getLocale());\n } else {\n return value.map(date => this.dateHelper.format(date, formatStr)).join(currentSeparator);\n }\n }\n }\n}\n\n@Pipe({\n name: 'thyQuarterPickerFormat'\n})\nexport class ThyQuarterPickerFormatPipe implements PipeTransform {\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry, formatStr?: string, separator?: string): string | undefined {\n const { value } = transformDateValue(originalValue);\n\n if (!formatStr) {\n formatStr = `yyyy-${QUARTER_FORMAT}`;\n }\n\n if (!value) {\n return;\n }\n\n if (!Array.isArray(value)) {\n const _value = new TinyDate(value);\n return _value.format(formatStr);\n } else {\n return value\n .map(date => {\n const _date = new TinyDate(date);\n return _date.format(formatStr);\n })\n .join(` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `);\n }\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'thyDatePickerFormatString'\n})\nexport class ThyDatePickerFormatStringPipe implements PipeTransform {\n transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry): string {\n const { withTime } = transformDateValue(originalValue);\n\n return withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'showYearTip'\n})\nexport class DatePickerAdvancedShowYearTipPipe implements PipeTransform {\n transform(value: AdvancedSelectableCell, type: ThyDateGranularity): boolean {\n return type !== 'year' && value.startValue!.isSameDay(value.startValue!.startOfYear());\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, inject, input, OnDestroy, OnInit, Signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { DateHelperService } from '../../date-helper.service';\nimport { AdvancedSelectableCell, RangeAdvancedValue } from '../../inner-types';\nimport { DatePickerAdvancedShowYearTipPipe } from '../../picker.pipes';\nimport { ThyDateGranularity } from '../../standard-types';\nimport { QUARTER_FORMAT } from '../../date-picker.config';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-carousel',\n templateUrl: './date-carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DateCarousel)\n }\n ],\n host: {\n class: 'thy-date-picker-advanced-carousel'\n },\n imports: [NgTemplateOutlet, ThyButton, ThyIcon, NgClass, DatePickerAdvancedShowYearTipPipe]\n})\nexport class DateCarousel implements OnInit, ControlValueAccessor, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n\n private dateHelper = inject(DateHelperService);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly activeDate = input<TinyDate>();\n\n set defaultValue(value: RangeAdvancedValue) {\n this.dateGranularity = value.dateGranularity;\n this.buildSelectableData(value.begin!);\n\n if (value.begin && value.end) {\n const shouldBeSelectValue = this.getShouldBeToggleValue(value.begin, value.end);\n this.select(...shouldBeSelectValue);\n } else {\n this.clearSelect(true);\n }\n this.initialized = true;\n }\n\n selectableData: { year?: AdvancedSelectableCell[]; quarter?: AdvancedSelectableCell[]; month?: AdvancedSelectableCell[] } = {};\n\n dateGranularity?: ThyDateGranularity;\n\n selectedValue: AdvancedSelectableCell[] = [];\n\n private initialized = false;\n\n private selectedValueChange$ = new Subject<RangeAdvancedValue | undefined>();\n\n private _onChange!: (value: RangeAdvancedValue) => void;\n\n private _onTouched!: (value: RangeAdvancedValue) => void;\n\n ngOnInit(): void {\n this.selectedValueChange$.subscribe(() => {\n if (this.selectedValue.length) {\n this.buildSelectableData(this.selectedValue[0].startValue!, this.dateGranularity);\n }\n this.selectableData.year?.forEach(item => (item.classMap = this.getClassMap(item)));\n this.selectableData.quarter?.forEach(item => (item.classMap = this.getClassMap(item)));\n this.selectableData.month?.forEach(item => (item.classMap = this.getClassMap(item)));\n if (this.initialized) {\n if (this.isSelectEmpty()) {\n this._onChange({\n dateGranularity: undefined,\n begin: undefined,\n end: undefined\n });\n } else {\n const selctedValue = this.selectedValue;\n this._onChange({\n dateGranularity: this.dateGranularity,\n begin: selctedValue[0]?.startValue,\n end: selctedValue[selctedValue.length - 1]?.endValue\n });\n }\n }\n });\n }\n\n writeValue(value: RangeAdvancedValue): void {\n if (value) {\n this.defaultValue = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n getClassMap(cell: AdvancedSelectableCell) {\n return {\n [`active`]: this.isSelected(cell),\n [`indeterminate`]: this.isCellIndeterminate(this.selectedValue, cell),\n [`type-active`]: this.isTypeActive(this.selectedValue, cell),\n ['in-hover-range']: cell.isInRange,\n ['out-range']: cell.isOutRange\n };\n }\n\n isTypeActive(originalValue: AdvancedSelectableCell[], value: AdvancedSelectableCell) {\n return originalValue?.length && originalValue[0].type === value.type;\n }\n\n isCellIndeterminate(originalValue: AdvancedSelectableCell[], value: AdvancedSelectableCell) {\n if (originalValue[0]?.type === value.type) {\n return false;\n } else {\n if (originalValue[0]?.type === 'year') {\n return !!originalValue.find(item => item.startValue!.isSameYear(value.startValue!));\n } else {\n return value.type === 'year'\n ? !!originalValue.find(item => item.startValue!.isSameYear(value.startValue!))\n : !!originalValue.find(item => item.startValue!.isSameQuarter(value.startValue!));\n }\n }\n }\n\n isSelected(value: AdvancedSelectableCell) {\n return this.selectedValue.find(item => item.startValue!.isSameDay(value.startValue!)) && this.dateGranularity === value.type;\n }\n\n isSelectEmpty() {\n return this.selectedValue.length == 0;\n }\n\n selectSort() {\n this.selectedValue.sort((a, b) => a.startValue!.getTime() - b.startValue!.getTime());\n }\n\n select(...value: AdvancedSelectableCell[]) {\n value.forEach(item => {\n if (!this.isSelected(item)) {\n this.selectedValue.push(...value);\n }\n });\n this.selectSort();\n this.selectedValueChange$.next(undefined);\n }\n\n deselect(...value: AdvancedSelectableCell[]) {\n value.forEach(item => {\n this.selectedValue = this.selectedValue.filter(selected => !selected.startValue?.isSameDay(item.startValue!));\n });\n this.selectSort();\n this.selectedValueChange$.next(undefined);\n }\n\n clearSelect(hidden?: boolean) {\n this.selectedValue = [];\n if (!hidden) {\n this.selectedValueChange$.next(undefined);\n }\n }\n\n getShouldBeToggleValue(begin: TinyDate, end: TinyDate) {\n const selectedValue: AdvancedSelectableCell[] = [];\n switch (this.dateGranularity) {\n case 'year':\n this.dateGranularity = 'year';\n if (begin.isSameYear(end)) {\n selectedValue.push(this.getSelectableYear(begin));\n } else {\n selectedValue.push(this.getSelectableYear(begin));\n while (!begin.isSameYear(end)) {\n begin = begin.addYears(1);\n selectedValue.push(this.getSelectableYear(begin));\n }\n }\n break;\n case 'month':\n this.dateGranularity = 'month';\n if (begin.isSameMonth(end)) {\n selectedValue.push(this.getSelectableMonth(begin));\n } else {\n selectedValue.push(this.getSelectableMonth(begin));\n while (!begin.isSameMonth(end)) {\n begin = begin.addMonths(1);\n selectedValue.push(this.getSelectableMonth(begin));\n }\n }\n break;\n case 'quarter':\n this.dateGranularity = 'quarter';\n if (begin.isSameQuarter(end)) {\n selectedValue.push(this.getSelectableQuarter(begin));\n } else {\n selectedValue.push(this.getSelectableQuarter(begin));\n while (!begin.isSameQuarter(end)) {\n begin = begin.addQuarters(1);\n selectedValue.push(this.getSelectableQuarter(begin));\n }\n }\n }\n return selectedValue;\n }\n\n buildSelectableData(startDate: TinyDate, excludeGranularity?: ThyDateGranularity) {\n const buildGranularity = ['year', 'month', 'quarter'].filter(item => item !== excludeGranularity);\n buildGranularity.forEach(granularity => {\n switch (granularity) {\n case 'year':\n this.selectableData.year = [...Array(3).keys()].map((item, index) => {\n return this.getSelectableYear(startDate, index);\n });\n break;\n case 'quarter':\n this.selectableData.quarter = [...Array(4).keys()].map((item, index) => {\n return this.getSelectableQuarter(startDate, index);\n });\n break;\n case 'month':\n this.selectableData.month = [...Array(4).keys()].map((item, index) => {\n return this.getSelectableMonth(startDate, index);\n });\n break;\n }\n });\n this.cdr.markForCheck();\n }\n\n getSelectableYear(currentDate: TinyDate, preOrNextcount: number = 0): AdvancedSelectableCell {\n currentDate = currentDate || this.activeDate() || new TinyDate().startOfYear();\n return {\n type: 'year',\n content: `${currentDate.addYears(preOrNextcount).getYear()}`,\n startValue: currentDate.addYears(preOrNextcount).startOfYear(),\n endValue: currentDate.addYears(preOrNextcount).endOfYear(),\n classMap: {}\n };\n }\n\n getSelectableQuarter(currentDate: TinyDate, preOrNextcount: number = 0): AdvancedSelectableCell {\n currentDate = currentDate || this.activeDate() || new TinyDate().startOfQuarter();\n return {\n type: 'quarter',\n content: `${currentDate.addQuarters(preOrNextcount).format(QUARTER_FORMAT)}`,\n startValue: currentDate.addQuarters(preOrNextcount).startOfQuarter(),\n endValue: currentDate.addQuarters(preOrNextcount).endOfQuarter(),\n classMap: {}\n };\n }\n\n getSelectableMonth(currentDate: TinyDate, preOrNextcount: number = 0): AdvancedSelectableCell {\n currentDate = currentDate || this.activeDate() || new TinyDate().startOfMonth();\n // Selectable months for advanced range selector\n const cell: AdvancedSelectableCell = {\n type: 'month',\n content: this.dateHelper.format(currentDate.addMonths(preOrNextcount).nativeDate, this.locale().monthFormat),\n startValue: currentDate.addMonths(preOrNextcount).startOfMonth(),\n endValue: currentDate.addMonths(preOrNextcount).endOfMonth(),\n classMap: {}\n };\n return cell;\n }\n\n prevClick(type: Exclude<ThyDateGranularity, 'day'>) {\n switch (type) {\n case 'year':\n this.selectableData.year = this.selectableData.year?.map(item => this.getSelectableYear(item.startValue!, -1));\n break;\n case 'quarter':\n this.selectableData.quarter = this.selectableData.quarter?.map(item => this.getSelectableQuarter(item.startValue!, -2));\n break;\n case 'month':\n this.selectableData.month = this.selectableData.month?.map(item => this.getSelectableMonth(item.startValue!, -2));\n }\n this.selectableData[type]!.forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n nextClick(type: Exclude<ThyDateGranularity, 'day'>) {\n switch (type) {\n case 'year':\n this.selectableData.year = this.selectableData!.year!.map(item => this.getSelectableYear(item.startValue!, 1));\n break;\n case 'quarter':\n this.selectableData.quarter = this.selectableData!.quarter!.map(item => this.getSelectableQuarter(item.startValue!, 2));\n break;\n case 'month':\n this.selectableData.month = this.selectableData!.month!.map(item => this.getSelectableMonth(item.startValue!, 2));\n }\n this.selectableData[type]!.forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n selectDate(type: Exclude<ThyDateGranularity, 'day'>, value: AdvancedSelectableCell) {\n this.selectableData[type]!.forEach(item => {\n item.isInRange = false;\n item.isOutRange = false;\n });\n\n if (this.isSelectEmpty()) {\n this.dateGranularity = type;\n this.select(value);\n // this.selectedValueChange$.next();\n return;\n }\n if (this.isSelected(value)) {\n this.toggleSelect(value);\n if (this.isSelectEmpty()) {\n this.dateGranularity = undefined;\n }\n return;\n }\n\n if (this.dateGranularity === value.type) {\n const { rangeStart, rangeEnd } = this.getActualStartAndEnd(value);\n const shouldBeSelectValue = this.getShouldBeToggleValue(rangeStart, rangeEnd);\n this.select(...shouldBeSelectValue);\n // this.selectedValueChange$.next();\n } else {\n this.dateGranularity = type;\n this.clearSelect(true);\n this.select(value);\n // this.selectedValueChange$.next();\n }\n }\n toggleSelect(value: AdvancedSelectableCell) {\n if (value.startValue?.isSameDay(this.selectedValue[0].startValue!)) {\n // only deselect first one\n this.deselect(value);\n } else {\n // deselect current and all after current\n const rangeStart = value.startValue!;\n const rangeEnd = this.selectedValue[this.selectedValue.length - 1].endValue!;\n const shouldBeDeselectValue = this.getShouldBeToggleValue(rangeStart, rangeEnd);\n this.deselect(...shouldBeDeselectValue);\n }\n }\n\n onMouseenter(event: Event, type: Exclude<ThyDateGranularity, 'day'>, value: AdvancedSelectableCell) {\n if (this.isSelectEmpty() || this.dateGranularity !== type) {\n return;\n }\n if (this.isSelected(value)) {\n value.isInRange = true;\n if (value.startValue?.isSameDay(this.selectedValue[0].startValue!)) {\n value.isOutRange = true;\n } else {\n const rangeStart = value.startValue;\n const rangeEnd = this.selectedValue[this.selectedValue.length - 1].endValue;\n this.selectableData[type]!.forEach((item: AdvancedSelectableCell) => {\n if (item.startValue!.getTime() >= rangeStart!.getTime() && item.startValue!.getTime() < rangeEnd!.getTime()) {\n item.isOutRange = true;\n } else {\n item.isOutRange = false;\n }\n });\n }\n } else {\n const { rangeStart, rangeEnd } = this.getActualStartAndEnd(value);\n this.selectableData[type]?.forEach((item: AdvancedSelectableCell) => {\n if (item.startValue!.getTime() >= rangeStart.getTime() && item.startValue!.getTime() < rangeEnd.getTime()) {\n item.isInRange = true;\n } else {\n item.isInRange = false;\n }\n });\n }\n this.selectableData[type]?.forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n onMouseleave(event: Event, type: Exclude<ThyDateGranularity, 'day'>, value: AdvancedSelectableCell) {\n if (value.isInRange) {\n this.selectableData[type]?.forEach(item => (item.isInRange = false));\n }\n if (value.isOutRange) {\n this.selectableData[type]?.forEach(item => (item.isOutRange = false));\n }\n this.selectableData[type]?.forEach(item => (item.classMap = this.getClassMap(item)));\n }\n\n getActualStartAndEnd(value: AdvancedSelectableCell) {\n const selectedStart = this.selectedValue[0].startValue!;\n const selectedEnd = this.selectedValue[this.selectedValue.length - 1].endValue;\n let rangeStart!: TinyDate;\n let rangeEnd!: TinyDate;\n if (value.startValue?.isBeforeDay(selectedStart!)) {\n rangeStart = value.startValue;\n rangeEnd = selectedStart;\n }\n if (value.startValue?.isAfterDay(selectedEnd!)) {\n rangeStart = selectedEnd!;\n rangeEnd = value.endValue!;\n }\n return { rangeStart, rangeEnd };\n }\n\n ngOnDestroy(): void {\n this.selectedValueChange$.complete();\n }\n}\n","<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: locale().yearText, type: 'year', selectableData: selectableData.year }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().quarterText, type: 'quarter', selectableData: selectableData.quarter }\n \"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().monthText, type: 'month', selectableData: selectableData.month }\n \"></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n @for (item of selectableData; track $index) {\n <div\n class=\"selectable-button right-space\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\">\n @if (item | showYearTip: type) {\n <span class=\"year-tip\">{{ item?.startValue?.getYear() }}</span>\n }\n @if (item.isInRange && isSelected(item)) {\n <thy-icon thyIconName=\"close\"></thy-icon>\n }\n @if (item.isInRange && !isSelected(item)) {\n <thy-icon thyIconName=\"plus\"></thy-icon>\n }\n @if (!item.isInRange) {\n <span>{{ item?.content }}</span>\n }\n </div>\n }\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class DateHeader extends CalendarHeader {\n getSelectors(): PanelSelector[] {\n const yearFormat = this.locale().yearFormat;\n const monthFormat = this.locale().monthFormat;\n\n return [\n {\n className: `${this.prefixCls}-year-btn`,\n title: '',\n onClick: () => this.changePanel('year'),\n label: this.formatDateTime(yearFormat)\n },\n {\n className: `${this.prefixCls}-month-btn`,\n title: '',\n onClick: () => this.changePanel('month'),\n label: this.formatDateTime(monthFormat)\n }\n ];\n }\n}\n","import { Directive, input, OnInit, Signal, SimpleChange, SimpleChanges, TemplateRef, model, output, OnChanges } from '@angular/core';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, FunctionProp, isTemplateRef, TinyDate } from 'ngx-tethys/util';\nimport { DateBodyRow, DateCell } from '../date/types';\nimport { DisabledDateFn } from '../../standard-types';\n\n/**\n * @private\n */\n@Directive()\nexport abstract class CalendarTable implements OnInit, OnChanges {\n protected locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n isTemplateRef = isTemplateRef;\n\n headRow: DateCell[] = [];\n\n bodyRows: DateBodyRow[] = [];\n\n MAX_ROW = 6;\n\n MAX_COL = 7;\n\n readonly prefixCls = input<string>('thy-calendar');\n\n readonly value = model<TinyDate>();\n\n readonly activeDate = model<TinyDate>(new TinyDate());\n\n readonly showWeek = input(false, { transform: coerceBooleanProperty });\n\n readonly selectedValue = input<TinyDate[]>([]);\n\n readonly hoverValue = input<TinyDate[]>([]);\n\n readonly timeZone = input<string>();\n\n readonly disabledDate = input<DisabledDateFn>();\n\n readonly cellRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly valueChange = output<TinyDate>();\n\n readonly cellHover = output<TinyDate>(); // Emitted when hover on a day by mouse enter\n\n protected render(): void {\n if (this.activeDate()) {\n this.headRow = this.makeHeadRow();\n this.bodyRows = this.makeBodyRows();\n }\n }\n\n trackByBodyRow(_index: number, item: DateBodyRow): SafeAny {\n return item.trackByIndex;\n }\n\n trackByBodyColumn(_index: number, item: DateCell): SafeAny {\n return item.trackByIndex;\n }\n\n hasRangeValue(): boolean {\n return this.selectedValue()?.length > 0 || this.hoverValue()?.length > 0;\n }\n\n abstract makeHeadRow(): DateCell[];\n\n abstract makeBodyRows(): DateBodyRow[];\n\n ngOnInit(): void {\n this.render();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.activeDate && !changes.activeDate.currentValue) {\n this.activeDate.set(new TinyDate(undefined, this.timeZone()));\n }\n\n if (\n changes.disabledDate ||\n changes.locale ||\n changes.showWeek ||\n this.isDateRealChange(changes.activeDate) ||\n this.isDateRealChange(changes.value) ||\n this.isDateRealChange(changes.selectedValue) ||\n this.isDateRealChange(changes.hoverValue)\n ) {\n this.render();\n }\n }\n\n private isDateRealChange(change: SimpleChange): boolean {\n if (change) {\n const previousValue: TinyDate | TinyDate[] = change.previousValue;\n const currentValue: TinyDate | TinyDate[] = change.currentValue;\n if (Array.isArray(currentValue)) {\n return (\n !Array.isArray(previousValue) ||\n currentValue.length !== previousValue.length ||\n currentValue.some((value, index) => {\n const previousCandyDate = previousValue[index];\n return previousCandyDate instanceof TinyDate ? previousCandyDate.isSameDay(value) : previousCandyDate !== value;\n })\n );\n } else {\n return !this.isSameDate(previousValue as TinyDate, currentValue);\n }\n }\n return false;\n }\n\n private isSameDate(left: TinyDate, right: TinyDate): boolean {\n return (!left && !right) || (left && right && right.isSameDay(left));\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { isEmpty, isFunction, isString, isTemplateRef, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { ThyDatePickerConfigService } from '../../date-picker.service';\nimport { DateCell } from './types';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[date-table-cell]',\n exportAs: 'dateTableCell',\n templateUrl: './date-table-cell.component.html',\n imports: [NgTemplateOutlet]\n})\nexport class DateTableCell {\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n isTemplateRef = isTemplateRef;\n\n readonly prefixCls = input<'thy-calendar' | 'thy-calendar-full'>();\n\n readonly cell = input<DateCell>();\n\n isNonEmptyString = (v: any) => isEmpty(v) && isString(v);\n\n readonly functionRenderResult = computed(() => {\n const renderFn = this.cellRender();\n if (!isFunction(renderFn)) {\n return false;\n }\n\n const result = renderFn(this.cell()!.value!);\n return !isUndefinedOrNull(result);\n });\n\n cellRender = computed(() => {\n return this.cell()?.dateCellRender || this.datePickerConfigService.config?.dateCellRender;\n });\n\n cellClick(event: Event) {\n event.stopPropagation();\n this.cell()?.onClick();\n }\n}\n","@let prefixClass = prefixCls();\n@let dateCell = cell();\n@let dateCellRender = cellRender();\n\n@switch (prefixClass) {\n @case ('thy-calendar') {\n @switch (true) {\n @case (isTemplateRef(dateCellRender)) {\n <ng-container *ngTemplateOutlet=\"dateCellRender; context: { $implicit: dateCell.value }\"></ng-container>\n }\n @case (isNonEmptyString(dateCellRender)) {\n <span (click)=\"cellClick($event)\" [innerHTML]=\"dateCellRender\"></span>\n }\n @case (functionRenderResult()) {\n <span (click)=\"cellClick($event)\" [innerHTML]=\"$any(dateCellRender)(dateCell.value)\"></span>\n }\n @default {\n <div class=\"{{ prefixClass }}-date\" [attr.aria-selected]=\"dateCell.isSelected\" [attr.aria-disabled]=\"dateCell.isDisabled\">\n {{ dateCell.content }}\n </div>\n }\n }\n }\n @case ('thy-calendar-full') {\n <div\n tabindex=\"0\"\n class=\"{{ prefixClass }}-date thy-calendar-full-cell-inner\"\n [class.thy-calendar-full-calendar-date-today]=\"dateCell.isToday\">\n @if (isTemplateRef(dateCell.fullCellRender)) {\n <ng-container *ngTemplateOutlet=\"$any(dateCell.fullCellRender); context: { $implicit: dateCell.value }\"> </ng-container>\n } @else {\n <div class=\"{{ prefixClass }}-date-value\">\n <span class=\"{{ prefixClass }}-date-value-today-text\">\n <span class=\"{{ prefixClass }}-date-value-text\">{{ dateCell.content }}</span>\n </span>\n </div>\n <div class=\"{{ prefixClass }}-date-content\">\n @if (isTemplateRef(dateCellRender)) {\n <ng-container *ngTemplateOutlet=\"$any(dateCellRender); context: { $implicit: dateCell.value }\"> </ng-container>\n }\n </div>\n }\n </div>\n }\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, output } from '@angular/core';\nimport { TinyDate, valueFunctionProp } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { ThyDatePickerConfigService } from '../../date-picker.service';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateTableCell } from './date-table-cell.component';\nimport { DateBodyRow, DateCell } from './types';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-table',\n exportAs: 'dateTable',\n templateUrl: 'date-table.component.html',\n imports: [NgClass, DateTableCell]\n})\nexport class DateTable extends CalendarTable {\n private dateHelper = inject(DateHelperService);\n\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n readonly dayHover = output<TinyDate>(); // Emitted when hover on a day by mouse enter\n\n constructor() {\n super();\n }\n\n private chooseDate(value: TinyDate): void {\n // Only change date not change time\n const activeDate = this.activeDate();\n const timeZone = this.timeZone();\n const date = new TinyDate(\n TinyDate.createDateInTimeZone(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n activeDate?.getHours(),\n activeDate?.getMinutes(),\n activeDate?.getSeconds(),\n timeZone\n ),\n timeZone\n );\n this.activeDate.set(date.clone());\n this.valueChange.emit(date);\n }\n\n makeHeadRow(): DateCell[] {\n const weekDays: DateCell[] = [];\n const start = this.activeDate().calendarStart({ weekStartsOn: this.datePickerConfigService.config.weekStartsOn });\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const day = start.addDays(colIndex);\n weekDays[colIndex] = {\n title: this.dateHelper.format(day.nativeDate, this.dateHelper.relyOnDatePipe ? 'E' : 'ddd'),\n content: this.dateHelper.format(day.nativeDate, this.getVeryShortWeekFormat()),\n isSelected: false,\n isDisabled: false,\n onClick(): void {},\n onMouseEnter(): void {}\n };\n }\n return weekDays;\n }\n\n private getVeryShortWeekFormat(): string {\n if (this.dateHelper.relyOnDatePipe) {\n const locale = this.locale();\n const prefixCls = this.prefixCls();\n return prefixCls === 'thy-calendar-full' ? locale.fullWeekFormat : locale.weekFormat;\n }\n return 'dd';\n }\n\n makeBodyRows(): DateBodyRow[] {\n const dateRows: DateBodyRow[] = [];\n const firstDayOfMonth = this.activeDate().calendarStart({ weekStartsOn: this.datePickerConfigService.config.weekStartsOn });\n for (let week = 0; week < this.MAX_ROW; week++) {\n const weekStart = firstDayOfMonth.addDays(week * 7);\n const row: DateBodyRow = {\n isActive: false,\n isCurrent: false,\n dateCells: [],\n year: weekStart.getYear()\n };\n\n for (let day = 0; day < 7; day++) {\n const date = weekStart.addDays(day);\n const dateFormat = this.dateHelper.relyOnDatePipe ? 'longDate' : 'YYYY-MM-DD';\n const title = this.dateHelper.format(date.nativeDate, dateFormat);\n const label = this.dateHelper.format(date.nativeDate, this.dateHelper.relyOnDatePipe ? 'dd' : 'DD');\n\n const cell: DateCell = {\n value: date.nativeDate,\n label: label,\n isSelected: false,\n isDisabled: false,\n isToday: false,\n title: title,\n dateCellRender: valueFunctionProp(this.cellRender()!, date),\n content: `${date.getDate()}`,\n onClick: () => this.chooseDate(date),\n onMouseEnter: () => this.dayHover.emit(date)\n };\n this.addCellProperty(cell, date);\n\n if (this.showWeek() && !row.weekNum) {\n row.weekNum = this.dateHelper.getISOWeek(date.nativeDate);\n }\n\n if (date.isToday()) {\n cell.isToday = true;\n row.isCurrent = true;\n }\n\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (date.isSameDay(startSelected)) {\n row.isActive = true;\n }\n if (date.isSameDay(endSelected)) {\n row.isActive = true;\n }\n } else if (date.isSameDay(this.value()!)) {\n row.isActive = true;\n }\n\n row.dateCells.push(cell);\n }\n\n const prefixCls = this.prefixCls();\n row.classMap = {\n [`${prefixCls}-current-week`]: row.isCurrent,\n [`${prefixCls}-active-week`]: row.isActive\n };\n\n dateRows.push(row);\n }\n\n return dateRows;\n }\n\n addCellProperty(cell: DateCell, date: TinyDate): void {\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (startSelected?.isSameDay(date)) {\n cell.isSelected = true;\n }\n if (endSelected?.isSameDay(date)) {\n cell.isSelected = true;\n }\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeDay(date) && date.isBeforeDay(endSelected);\n } else {\n cell.isSelected = date.isSameDay(this.value()!);\n }\n\n const activeDate = this.activeDate();\n cell.isLastMonthCell = date.isBeforeMonth(activeDate);\n cell.isNextMonthCell = date.isAfterMonth(activeDate);\n cell.isToday = date.isToday();\n cell.isDisabled = !!this.disabledDate()?.(date.nativeDate);\n cell.classMap = this.getClassMap(cell);\n }\n\n getClassMap(cell: DateCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-today`]: !!cell.isToday,\n [`${prefixCls}-last-month-cell`]: !!cell.isLastMonthCell,\n [`${prefixCls}-next-month-btn-day`]: !!cell.isNextMonthCell,\n [`${prefixCls}-selected-day`]: !!cell.isSelected,\n [`${prefixCls}-disabled-cell`]: !!cell.isDisabled,\n [`${prefixCls}-selected-start-date`]: !!cell.isSelectedStartDate,\n [`${prefixCls}-selected-end-date`]: !!cell.isSelectedEndDate,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-table\" cellSpacing=\"0\" role=\"grid\">\n <thead>\n <tr role=\"row\">\n @if (showWeek()) {\n <th role=\"columnheader\" [title]=\"locale().week\" class=\"{{ prefixClass }}-column-header {{ prefixClass }}-week-number-header\">\n <span class=\"{{ prefixClass }}-column-header-inner\">{{ locale().prefixWeek }}</span>\n </th>\n }\n @for (cell of headRow; track $index) {\n <th role=\"columnheader\" title=\"{{ cell.title }}\" class=\"{{ prefixClass }}-column-header\">\n @if (prefixClass === 'thy-calendar') {\n <span class=\"{{ prefixClass }}-column-header-inner\">{{ cell.content }}</span>\n }\n @if (prefixClass === 'thy-calendar-full') {\n <span class=\"{{ prefixClass }}-column-header-inner\">{{ cell.content }}</span>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody class=\"{{ prefixClass }}-tbody\">\n @for (row of bodyRows; track $index) {\n <tr [ngClass]=\"row.classMap\" role=\"row\">\n @if (row.weekNum) {\n <td role=\"gridcell\" class=\"{{ prefixClass }}-week-number-cell\">\n {{ row.weekNum }}\n </td>\n }\n @for (cell of row.dateCells; track $index) {\n <td\n role=\"gridcell\"\n [ngClass]=\"cell.classMap\"\n (click)=\"cell.isDisabled ? null : cell.onClick()\"\n date-table-cell\n [prefixCls]=\"prefixClass\"\n [cell]=\"cell\"></td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'decade-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class DecadeHeader extends CalendarHeader {\n readonly startYear = computed<number>(() => parseInt(`${this.value()!.getYear() / 100}`, 10) * 100);\n\n readonly endYear = computed<number>(() => this.startYear() + 99);\n\n superPrevious(): void {\n const newValue = this.value()!.addYears(-100);\n this.changeValue(newValue);\n }\n\n superNext(): void {\n const newValue = this.value()!.addYears(100);\n this.changeValue(newValue);\n }\n\n getSelectors(): PanelSelector[] {\n return [\n {\n className: `${this.prefixCls}-decade-btn`,\n title: '',\n onClick: () => {},\n label: `${this.startYear()}-${this.endYear()}`\n }\n ];\n }\n}\n","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DecadeCell, DateBodyRow } from '../date/types';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'decade-table',\n exportAs: 'decadeTable',\n templateUrl: 'decade-table.component.html',\n imports: [NgClass]\n})\nexport class DecadeTable extends CalendarTable {\n MAX_ROW = 4;\n\n MAX_COL = 3;\n\n readonly startYear = computed<number>(() => parseInt(`${this.activeDate().getYear() / 100}`, 10) * 100);\n\n readonly endYear = computed<number>(() => this.startYear() + 99);\n\n private chooseDecade(startYear: number): void {\n const newValue = (this.value() || new TinyDate()).setYear(startYear);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const decades: DateBodyRow[] = [];\n const currentYear = this.value() && this.value()!.getYear();\n const startYear = this.startYear();\n const endYear = this.endYear();\n const previousYear = startYear - 10;\n\n let index = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const start = previousYear + index * 10;\n const end = previousYear + index * 10 + 9;\n const content = `${start}-${end}`;\n\n const cell: DecadeCell = {\n content,\n title: content,\n isSelected: currentYear! >= start && currentYear! <= end,\n isLowerThanStart: end < startYear,\n isBiggerThanEnd: start > endYear,\n classMap: null,\n onClick: () => this.chooseDecade(start),\n onMouseEnter(): void {}\n };\n cell.classMap = this.getClassMap(cell);\n\n index++;\n row.dateCells.push(cell);\n }\n decades.push(row);\n }\n return decades;\n }\n\n getClassMap(cell: DecadeCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-decade-panel-cell`]: true,\n [`${prefixCls}-decade-panel-selected-cell`]: !!cell.isSelected,\n [`${prefixCls}-decade-panel-last-century-cell`]: !!cell.isLowerThanStart,\n [`${prefixCls}-decade-panel-next-century-cell`]: !!cell.isBiggerThanEnd\n };\n }\n\n cellClick(event: Event, cell: DecadeCell) {\n event.stopPropagation();\n cell.onClick();\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-decade-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-decade-panel-tbody\">\n @for (row of bodyRows; track $index) {\n <tr role=\"row\">\n @for (cell of row.dateCells; track $index) {\n <td role=\"gridcell\" title=\"{{ cell.title }}\" (click)=\"cellClick($event, cell)\" [ngClass]=\"cell.classMap\">\n <a class=\"{{ prefixClass }}-decade-panel-decade\">{{ cell.content }}</a>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DateBodyRow } from '../date/types';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'month-table',\n exportAs: 'monthTable',\n templateUrl: 'month-table.component.html',\n imports: [NgClass]\n})\nexport class MonthTable extends CalendarTable {\n private dateHelper = inject(DateHelperService);\n\n MAX_ROW = 4;\n\n MAX_COL = 3;\n\n constructor() {\n super();\n }\n\n private chooseMonth(month: number): void {\n const newValue = this.activeDate().setMonth(month);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.render();\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const months: DateBodyRow[] = [];\n let monthValue = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const month = this.activeDate().setMonth(monthValue);\n const monthFormat = this.locale().monthFormat;\n const isDisabled = this.disabledDate() ? this.disabledDate()!(this.activeDate().setMonth(monthValue).nativeDate) : false;\n const content = this.dateHelper.format(month.nativeDate, monthFormat);\n const cell: DateCell = {\n trackByIndex: colIndex,\n value: month.nativeDate,\n isDisabled,\n content,\n title: content,\n classMap: null,\n isSelected: month.isSameMonth(this.value()!),\n onClick: () => this.chooseMonth(cell.value!.getMonth()),\n onMouseEnter: () => {}\n };\n this.addCellProperty(cell, month);\n row.dateCells.push(cell);\n monthValue++;\n }\n months.push(row);\n }\n return months;\n }\n\n private addCellProperty(cell: DateCell, month: TinyDate): void {\n if (this.selectedValue()?.length > 0) {\n const [startSelected, endSelected] = this.selectedValue();\n if (startSelected?.isSameMonth(month)) {\n cell.isSelectedStartDate = true;\n cell.isSelected = true;\n }\n\n if (endSelected?.isSameMonth(month)) {\n cell.isSelectedEndDate = true;\n cell.isSelected = true;\n }\n\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeMonth(month) && month?.isBeforeMonth(endSelected);\n } else if (month.isSameMonth(this.value()!)) {\n cell.isSelected = true;\n }\n cell.classMap = this.getClassMap(cell);\n }\n\n monthCellClick(event: Event, monthCell: DateCell) {\n event.stopPropagation();\n return monthCell.isDisabled ? null : monthCell.onClick();\n }\n\n getClassMap(cell: DateCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-month-panel-cell`]: true,\n [`${prefixCls}-month-panel-cell-disabled`]: !!cell.isDisabled,\n [`${prefixCls}-month-panel-selected-cell`]: !!cell.isSelected,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange,\n [`${prefixCls}-month-panel-current-cell`]:\n new TinyDate().getYear() === this.activeDate().getYear() && cell.value!.getMonth() === new TinyDate().getMonth()\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-month-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-month-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (monthCell of row.dateCells; track trackByBodyColumn($index, monthCell)) {\n <td role=\"gridcell\" title=\"{{ monthCell.title }}\" (click)=\"monthCellClick($event, monthCell)\" [ngClass]=\"monthCell.classMap\">\n @switch (prefixClass) {\n @case ('thy-calendar') {\n <div class=\"{{ prefixClass }}-month-panel-month\">{{ monthCell.content }}</div>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DateBodyRow } from '../date/types';\nimport { NgClass } from '@angular/common';\nimport { QUARTER_FORMAT } from '../../date-picker.config';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'quarter-table',\n exportAs: 'quarterTable',\n templateUrl: 'quarter-table.component.html',\n imports: [NgClass]\n})\nexport class QuarterTable extends CalendarTable {\n MAX_ROW = 1;\n\n MAX_COL = 4;\n\n private chooseQuarter(quarter: number): void {\n const newValue = this.activeDate().setQuarter(quarter);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.render();\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const quarters: DateBodyRow[] = [];\n let quarterValue = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const quarter = this.activeDate().setQuarter(quarterValue + 1);\n const isDisabled = this.disabledDate() ? this.disabledDate()!(quarter.nativeDate) : false;\n const content = `${quarter.format(QUARTER_FORMAT)}`;\n const cell: DateCell = {\n trackByIndex: colIndex,\n value: quarter.nativeDate,\n isDisabled,\n content,\n title: content,\n classMap: null,\n isSelected: quarter.isSameQuarter(this.value()!),\n onClick: () => {\n this.chooseQuarter(quarter.getQuarter());\n },\n onMouseEnter: () => {}\n };\n this.addCellProperty(cell, quarter);\n row.dateCells.push(cell);\n quarterValue++;\n }\n quarters.push(row);\n }\n return quarters;\n }\n\n private addCellProperty(cell: DateCell, quarter: TinyDate): void {\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (startSelected?.isSameQuarter(quarter)) {\n cell.isSelectedStartDate = true;\n cell.isSelected = true;\n }\n\n if (endSelected?.isSameQuarter(quarter)) {\n cell.isSelectedEndDate = true;\n cell.isSelected = true;\n }\n\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeQuarter(quarter) && quarter?.isBeforeQuarter(endSelected);\n } else if (quarter.isSameQuarter(this.value()!)) {\n cell.isSelected = true;\n }\n cell.classMap = this.getClassMap(cell, quarter);\n }\n\n quarterCellClick(event: Event, quarterCell: DateCell) {\n event.stopPropagation();\n return quarterCell.isDisabled ? null : quarterCell.onClick();\n }\n\n getClassMap(cell: DateCell, quarter: TinyDate): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-quarter-panel-cell`]: true,\n [`${prefixCls}-quarter-panel-cell-disabled`]: !!cell.isDisabled,\n [`${prefixCls}-quarter-panel-selected-cell`]: !!cell.isSelected,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange,\n [`${prefixCls}-quarter-panel-current-cell`]:\n new TinyDate().getYear() === this.activeDate().getYear() && quarter.getQuarter() === new TinyDate().getQuarter()\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-quarter-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-quarter-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (quarterCell of row.dateCells; track trackByBodyColumn($index, quarterCell)) {\n <td\n role=\"gridcell\"\n title=\"{{ quarterCell.title }}\"\n (click)=\"quarterCellClick($event, quarterCell)\"\n [ngClass]=\"quarterCell.classMap\">\n <a class=\"{{ prefixClass }}-quarter-panel-quarter\">{{ quarterCell.content }}</a>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { CalendarHeader, PanelSelector } from '../calendar/calendar-header.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'year-header',\n templateUrl: '../calendar/calendar-header.component.html',\n imports: [NgClass, ThyIcon]\n})\nexport class YearHeader extends CalendarHeader {\n readonly startYear = computed<number>(() => parseInt(`${this.value()!.getYear() / 10}`, 10) * 10);\n\n readonly endYear = computed<number>(() => this.startYear() + 9);\n\n superPrevious(): void {\n const newValue = this.value()!.addYears(-10);\n this.changeValue(newValue);\n }\n\n superNext(): void {\n const newValue = this.value()!.addYears(10);\n this.changeValue(newValue);\n }\n\n getSelectors(): PanelSelector[] {\n return [\n {\n className: `${this.prefixCls}-year-btn`,\n title: '',\n onClick: () => this.changePanel('decade'),\n label: `${this.startYear()}-${this.endYear()}`\n }\n ];\n }\n}\n","import { ChangeDetectionStrategy, Component, output } from '@angular/core';\nimport { TinyDate } from 'ngx-tethys/util';\nimport { CalendarTable } from '../calendar/calendar-table.component';\nimport { DateCell, DateBodyRow, YearCell } from '../date/types';\nimport { NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'year-table',\n templateUrl: 'year-table.component.html',\n imports: [NgClass]\n})\nexport class YearTable extends CalendarTable {\n MAX_ROW = 4;\n\n MAX_COL = 3;\n\n readonly decadePanelShow = output<void>();\n\n private chooseYear(year: number): void {\n const newValue = this.activeDate().setYear(year);\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n this.render();\n }\n\n makeHeadRow(): DateCell[] {\n return [];\n }\n\n makeBodyRows(): DateBodyRow[] {\n const years: DateBodyRow[] = [];\n const activeDate = this.activeDate();\n const currentYear = activeDate && activeDate.getYear();\n const startYear = parseInt(`${currentYear / 10}`, 10) * 10;\n const endYear = startYear + 9;\n const previousYear = startYear - 1;\n let yearValue = 0;\n for (let rowIndex = 0; rowIndex < this.MAX_ROW; rowIndex++) {\n const row: DateBodyRow = {\n dateCells: [],\n trackByIndex: rowIndex\n };\n for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {\n const yearNum = previousYear + yearValue;\n const year = activeDate.setYear(yearNum);\n const content = String(yearNum);\n const disabledDate = this.disabledDate();\n const isDisabled = disabledDate ? disabledDate(year.nativeDate) : false;\n\n const value = this.value();\n const cell: YearCell = {\n trackByIndex: colIndex,\n isDisabled,\n content,\n value: year.nativeDate,\n title: content,\n isSelected: yearNum === (value && value.getYear()),\n isSameDecade: yearNum >= startYear && yearNum <= endYear,\n classMap: {},\n onClick: () => this.chooseYear(cell.value!.getFullYear()!),\n onMouseEnter: () => {}\n };\n this.addCellProperty(cell, year);\n row.dateCells.push(cell);\n yearValue++;\n }\n years.push(row);\n }\n return years;\n }\n\n private addCellProperty(cell: DateCell, year: TinyDate): void {\n const selectedValue = this.selectedValue();\n if (selectedValue?.length > 0) {\n const [startSelected, endSelected] = selectedValue;\n if (startSelected?.isSameYear(year)) {\n cell.isSelected = true;\n }\n\n if (endSelected?.isSameYear(year)) {\n cell.isSelected = true;\n }\n\n cell.isStartSingle = startSelected && !endSelected;\n cell.isEndSingle = !startSelected && !!endSelected;\n cell.isInRange = startSelected?.isBeforeYear(year) && year?.isBeforeYear(endSelected);\n } else if (year.isSameYear(this.value()!)) {\n cell.isSelected = true;\n }\n cell.classMap = this.getClassMap(cell);\n }\n\n yearCellClick(event: Event, yearCell: DateCell) {\n event.stopPropagation();\n return yearCell.isDisabled ? null : yearCell.onClick();\n }\n\n getClassMap(cell: YearCell): { [key: string]: boolean } {\n const prefixCls = this.prefixCls();\n return {\n [`${prefixCls}-year-panel-cell`]: true,\n [`${prefixCls}-year-panel-selected-cell`]: !!cell.isSelected,\n [`${prefixCls}-year-panel-cell-disabled`]: !!cell.isDisabled,\n [`${prefixCls}-year-panel-cell-in-view`]: !!cell.isSameDecade,\n [`${prefixCls}-in-range-cell`]: !!cell.isInRange\n };\n }\n}\n","@let prefixClass = prefixCls();\n<table class=\"{{ prefixClass }}-year-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixClass }}-year-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (yearCell of row.dateCells; track trackByBodyColumn($index, yearCell)) {\n <td role=\"gridcell\" title=\"{{ yearCell.title }}\" (click)=\"yearCellClick($event, yearCell)\" [ngClass]=\"yearCell.classMap\">\n <a class=\"{{ prefixClass }}-year-panel-year\">{{ yearCell.content }}</a>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, model, input, output, Signal, TemplateRef, inject, effect } from '@angular/core';\nimport { FunctionProp, TinyDate, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { DateHelperService } from '../../date-helper.service';\nimport { RangePartType } from '../../inner-types';\nimport { isAfterMoreThanLessOneYear, isAfterMoreThanOneDecade, isAfterMoreThanOneMonth, isAfterMoreThanOneYear } from '../../picker.util';\nimport { DisabledDateFn, ThyPanelMode } from '../../standard-types';\nimport { DateHeader } from '../date/date-header.component';\nimport { DateTable } from '../date/date-table.component';\nimport { ThyDatePickerLocale, injectLocale } from 'ngx-tethys/i18n';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { DecadeHeader } from '../decade/decade-header.component';\nimport { DecadeTable } from '../decade/decade-table.component';\nimport { MonthHeader } from '../month/month-header.component';\nimport { MonthTable } from '../month/month-table.component';\nimport { QuarterTable } from '../quarter/quarter-table.component';\nimport { YearHeader } from '../year/year-header.component';\nimport { YearTable } from '../year/year-table.component';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'inner-popup',\n exportAs: 'innerPopup',\n templateUrl: 'inner-popup.component.html',\n imports: [\n ThyInputDirective,\n DecadeHeader,\n DecadeTable,\n YearHeader,\n YearTable,\n MonthHeader,\n MonthTable,\n QuarterTable,\n DateHeader,\n DateTable\n ],\n host: {\n class: 'thy-calendar-picker-inner-popup',\n '[class.thy-calendar-picker-inner-popup-with-range-input]': 'showDateRangeInput()'\n }\n})\nexport class InnerPopup {\n private dateHelper = inject(DateHelperService);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly showWeek = input(false, { transform: coerceBooleanProperty });\n\n readonly isRange = input(false, { transform: coerceBooleanProperty });\n\n readonly activeDate = model.required<TinyDate>();\n\n readonly rangeActiveDate = input<TinyDate[]>(); // Range ONLY\n\n readonly disabledDate = input<DisabledDateFn>();\n\n readonly dateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly selectedValue = input<TinyDate[]>(); // Range ONLY\n\n readonly hoverValue = input<TinyDate[]>(); // Range ONLY\n\n readonly panelMode = input(null, {\n transform: (value: ThyPanelMode | 'time') => {\n if (value === 'time') {\n return 'date';\n }\n return value;\n }\n });\n\n readonly timeZone = input<string>();\n\n readonly showDateRangeInput = input(false, { transform: coerceBooleanProperty });\n\n readonly partType = input<RangePartType>();\n\n readonly endPanelMode = input<ThyPanelMode>();\n\n readonly value = model<TinyDate>();\n\n readonly panelModeChange = output<ThyPanelMode>();\n\n readonly headerChange = output<TinyDate>();\n\n readonly selectDate = output<TinyDate>();\n\n readonly dayHover = output<TinyDate>();\n\n prefixCls = 'thy-calendar';\n\n constructor() {\n effect(() => {\n if (!this.activeDate()) {\n this.activeDate.set(new TinyDate(undefined, this.timeZone()));\n }\n });\n }\n\n getReadableValue(value: TinyDate) {\n return value ? this.dateHelper.format(value.nativeDate, 'yyyy-MM-dd') : '';\n }\n\n onSelectDate(date: TinyDate): void {\n const value = date instanceof TinyDate ? date : new TinyDate(date, this.timeZone());\n this.selectDate.emit(value);\n }\n\n onChooseMonth(value: TinyDate): void {\n const activeDate = this.activeDate().setMonth(value.getMonth());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'month') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit(endPanelMode!);\n }\n }\n\n onChooseQuarter(value: TinyDate): void {\n const activeDate = this.activeDate().setQuarter(value.getQuarter());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'quarter') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit(endPanelMode!);\n }\n }\n\n onChooseYear(value: TinyDate): void {\n const activeDate = this.activeDate().setYear(value.getYear());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'year') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit(endPanelMode!);\n }\n }\n\n onChooseDecade(value: TinyDate): void {\n const activeDate = this.activeDate().setYear(value.getYear());\n const endPanelMode = this.endPanelMode();\n\n this.activeDate.set(activeDate);\n if (endPanelMode === 'decade') {\n this.value.set(value);\n this.selectDate.emit(value);\n } else {\n this.headerChange.emit(value);\n this.panelModeChange.emit('year');\n }\n }\n\n enablePrevNext(direction: 'prev' | 'next', mode: ThyPanelMode): boolean {\n if (this.isRange()) {\n const partType = this.partType();\n if ((partType === 'left' && direction === 'next') || (partType === 'right' && direction === 'prev')) {\n const [headerLeftDate, headerRightDate] = this.rangeActiveDate()!;\n return isAfterMoreThanOneMonth(headerRightDate, headerLeftDate);\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n\n enableSuperPrevNext(direction: 'prev' | 'next', panelMode: ThyPanelMode) {\n if (this.isRange()) {\n const partType = this.partType();\n if ((partType === 'left' && direction === 'next') || (partType === 'right' && direction === 'prev')) {\n const [headerLeftDate, headerRightDate] = this.rangeActiveDate()!;\n if (panelMode === 'date') {\n return isAfterMoreThanLessOneYear(headerRightDate, headerLeftDate);\n } else if (panelMode === 'month' || panelMode === 'quarter') {\n return isAfterMoreThanOneYear(headerRightDate, headerLeftDate);\n } else if (panelMode === 'year') {\n return isAfterMoreThanOneDecade(headerRightDate, headerLeftDate);\n }\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n}\n","@if (showDateRangeInput()) {\n <div class=\"{{ prefixCls }}-picker-inner-popup-range-input\">\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue()[0])\" [placeholder]=\"locale().startDate\" />\n <span class=\"split\"></span>\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue()[1])\" [placeholder]=\"locale().endDate\" />\n </div>\n}\n@switch (panelMode()) {\n @case ('decade') {\n <div class=\"{{ prefixCls }}-decade\">\n <decade-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'decade')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'decade')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </decade-header>\n <div class=\"{{ prefixCls }}-body\">\n <decade-table [value]=\"value()\" [activeDate]=\"activeDate()\" (valueChange)=\"onChooseDecade($event)\"></decade-table>\n </div>\n </div>\n }\n @case ('year') {\n <div class=\"{{ prefixCls }}-year\">\n <year-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'year')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'year')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </year-header>\n <div class=\"{{ prefixCls }}-body\">\n <year-table\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n [disabledDate]=\"disabledDate()\"\n (valueChange)=\"onChooseYear($event)\"\n [selectedValue]=\"selectedValue()\">\n </year-table>\n </div>\n </div>\n }\n @case ('month') {\n <div class=\"{{ prefixCls }}-month\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <month-table\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n [disabledDate]=\"disabledDate()\"\n (valueChange)=\"onChooseMonth($event)\"\n [selectedValue]=\"selectedValue()\">\n </month-table>\n </div>\n </div>\n }\n @case ('quarter') {\n <div class=\"{{ prefixCls }}-quarter\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <quarter-table\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n [disabledDate]=\"disabledDate()\"\n (valueChange)=\"onChooseQuarter($event)\"\n [selectedValue]=\"selectedValue()\">\n </quarter-table>\n </div>\n </div>\n }\n @default {\n <date-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'date')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'date')\"\n [showPreBtn]=\"enablePrevNext('prev', 'date')\"\n [showNextBtn]=\"enablePrevNext('next', 'date')\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\"></date-header>\n <div class=\"{{ prefixCls }}-body\">\n <date-table\n [showWeek]=\"showWeek()\"\n [value]=\"value()\"\n [activeDate]=\"activeDate()\"\n (valueChange)=\"onSelectDate($event)\"\n showWeekNumber=\"false\"\n [disabledDate]=\"disabledDate()\"\n [cellRender]=\"dateRender()\"\n [selectedValue]=\"selectedValue()\"\n [hoverValue]=\"hoverValue()\"\n [timeZone]=\"timeZone()\"\n (dayHover)=\"dayHover.emit($event)\"></date-table>\n </div>\n }\n}\n","import {\n coerceBooleanProperty,\n endOfDay,\n FunctionProp,\n helpers,\n isFunction,\n isUndefinedOrNull,\n sortRangeValue,\n startOfDay,\n TinyDate,\n TinyDateCompareGrain\n} from 'ngx-tethys/util';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n model,\n OnInit,\n output,\n Signal,\n SimpleChanges,\n TemplateRef,\n signal,\n OutputEmitterRef,\n OnChanges\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { ThyDatePickerConfigService } from '../../date-picker.service';\nimport { CompatibleValue, DatePickerFlexibleTab, RangeAdvancedValue, RangePartType } from '../../inner-types';\nimport { dateAddAmount, getShortcutValue, hasValue, makeValue, setValueByTimestampPrecision, transformDateValue } from '../../picker.util';\nimport {\n ThyCompatibleDate,\n CompatiblePresets,\n DisabledDateFn,\n SupportTimeOptions,\n ThyDateChangeEvent,\n ThyDateGranularity,\n ThyPanelMode,\n ThyShortcutPosition,\n ThyShortcutPreset,\n ThyShortcutValue\n} from '../../standard-types';\nimport { CalendarFooter } from '../calendar/calendar-footer.component';\nimport { DateCarousel } from '../date-carousel/date-carousel.component';\nimport { InnerPopup } from './inner-popup.component';\n\n/**\n * @private\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-popup',\n exportAs: 'datePopup',\n templateUrl: './date-popup.component.html',\n imports: [ThyNav, ThyNavItemDirective, ThyButtonIcon, DateCarousel, FormsModule, NgTemplateOutlet, InnerPopup, CalendarFooter]\n})\nexport class DatePopup implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n readonly isRange = input(false, { transform: coerceBooleanProperty });\n\n readonly showWeek = input(false, { transform: coerceBooleanProperty });\n\n readonly format = input<string>();\n\n readonly disabledDate = model<DisabledDateFn>();\n\n readonly minDate = input<Date | number>();\n\n readonly maxDate = input<Date | number>();\n\n readonly showToday = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否支持设置时间(时、分)\n */\n readonly showTime = input<SupportTimeOptions | boolean>();\n\n /**\n * 是否展示时间(时、分)\n */\n readonly mustShowTime = input(false, { transform: coerceBooleanProperty });\n\n readonly dateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly className = input<string>();\n\n readonly panelMode = model<ThyPanelMode | ThyPanelMode[]>();\n\n readonly value = model<CompatibleValue | null>();\n\n readonly defaultPickerValue = input<ThyCompatibleDate | number>();\n\n readonly showShortcut = model<boolean>();\n\n readonly shortcutPresets = model<CompatiblePresets>();\n\n readonly shortcutPosition = input<ThyShortcutPosition>();\n\n readonly flexible = input(false, { transform: coerceBooleanProperty });\n\n readonly flexibleDateGranularity = model<ThyDateGranularity | null>();\n\n readonly timestampPrecision = input<'seconds' | 'milliseconds'>();\n\n readonly timeZone = input<string>();\n\n readonly panelModeChange = output<ThyPanelMode | ThyPanelMode[]>();\n\n readonly calendarChange = output<CompatibleValue>();\n\n readonly valueChange: OutputEmitterRef<CompatibleValue | RangeAdvancedValue> = output();\n\n readonly resultOk = output<void>(); // Emitted when done with date selecting\n\n readonly showTimePickerChange = output<boolean>();\n\n readonly dateValueChange = output<ThyDateChangeEvent>();\n\n prefixCls = 'thy-calendar';\n\n showTimePicker = false;\n\n timeOptions!: SupportTimeOptions | SupportTimeOptions[] | null;\n\n activeDate!: TinyDate | TinyDate[];\n\n selectedValue: TinyDate[] = []; // Range ONLY\n\n hoverValue: TinyDate[] = []; // Range ONLY\n\n advancedSelectedValue!: RangeAdvancedValue; // advanced ONLY\n\n flexibleActiveTab: DatePickerFlexibleTab = 'advanced';\n\n private partTypeMap: { [key: string]: number } = { left: 0, right: 1 };\n\n [property: string]: any;\n\n readonly endPanelMode = signal<ThyPanelMode | ThyPanelMode[] | undefined>(undefined);\n\n innerShortcutPresets!: ThyShortcutPreset[];\n\n readonly disableTimeConfirm = signal(false);\n\n setProperty<T extends keyof DatePopup>(key: T, value: this[T]): void {\n this[key] = value;\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n this.initShortcutPresets();\n this.initPanelMode();\n if (this.flexible() && this.flexibleDateGranularity() === 'day') {\n this.flexibleActiveTab = 'custom';\n }\n if (this.defaultPickerValue() && !hasValue(this.value()!)) {\n this.value.set(this.getDefaultPickerValue());\n }\n this.updateActiveDate();\n this.initDisabledDate();\n if (this.isRange() && this.flexible() && this.value()) {\n this.advancedSelectedValue = {\n begin: (this.value() as TinyDate[])[0],\n end: (this.value() as TinyDate[])[1],\n dateGranularity: this.flexibleDateGranularity()!\n };\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.panelMode) {\n if (helpers.isArray(this.panelMode())) {\n this.endPanelMode.set([...(this.panelMode() as ThyPanelMode[])]);\n } else {\n this.endPanelMode.set(this.panelMode());\n }\n }\n if (changes.defaultPickerValue) {\n this.updateActiveDate();\n }\n if (changes.value && changes.value.currentValue) {\n this.updateActiveDate();\n }\n }\n\n initShortcutPresets(): void {\n const { shortcutRangesPresets, shortcutDatePresets, showShortcut } = this.datePickerConfigService;\n\n this.showShortcut.set(\n ['date', 'date,date'].includes(this.panelMode()!.toString()) && isUndefinedOrNull(this.showShortcut())\n ? showShortcut\n : this.showShortcut()\n );\n\n if (this.showShortcut()) {\n if (!this.shortcutPresets()) {\n this.shortcutPresets.set(this.isRange() ? shortcutRangesPresets : shortcutDatePresets);\n }\n\n this.innerShortcutPresets = isFunction(this.shortcutPresets())\n ? (this.shortcutPresets() as () => ThyShortcutPreset[])()\n : (this.shortcutPresets() as ThyShortcutPreset[]);\n if (this.innerShortcutPresets.length) {\n const minDate: TinyDate | null = this.getMinTinyDate();\n const maxDate: TinyDate | null = this.getMaxTinyDate();\n\n const minTime = minDate ? minDate.getTime() : null;\n const maxTime = maxDate ? maxDate.getTime() : null;\n\n if (this.isRange()) {\n this.innerShortcutPresets.forEach((preset: ThyShortcutPreset) => {\n const begin: number | Date = getShortcutValue((preset.value as [ThyShortcutValue, ThyShortcutValue])[0]);\n const beginTime: number = new TinyDate(startOfDay(begin), this.timeZone()).getTime();\n\n const end: number | Date = getShortcutValue((preset.value as [ThyShortcutValue, ThyShortcutValue])[1]);\n const endTime: number = new TinyDate(endOfDay(end), this.timeZone()).getTime();\n\n if ((minDate && endTime < minTime!) || (maxDate && beginTime > maxTime!)) {\n preset.disabled = true;\n } else {\n preset.disabled = false;\n }\n });\n } else {\n this.innerShortcutPresets.forEach((preset: ThyShortcutPreset) => {\n const singleValue: number | Date = getShortcutValue(preset.value as ThyShortcutValue);\n const singleTime: number = new TinyDate(singleValue, this.timeZone()).getTime();\n\n if ((minDate && singleTime < minTime!) || (maxDate && singleTime > maxTime!)) {\n preset.disabled = true;\n } else {\n preset.disabled = false;\n }\n });\n }\n }\n }\n }\n\n updateActiveDate() {\n this.clearHoverValue();\n if (!this.value()) {\n this.value.set(this.getDefaultPickerValue());\n }\n if (this.isRange()) {\n if (!this.flexible() || this.flexibleDateGranularity() === 'day') {\n this.selectedValue = this.value() as TinyDate[];\n }\n this.activeDate = this.normalizeRangeValue(this.value() as TinyDate[], this.getPanelMode(this.endPanelMode()!) as ThyPanelMode);\n } else {\n this.activeDate = this.value() as TinyDate;\n }\n this.isDisableTimeConfirm();\n }\n\n private getDefaultPickerValue() {\n const { value } = transformDateValue(this.defaultPickerValue()!);\n return makeValue(value, this.isRange(), true, this.timeZone());\n }\n\n initPanelMode() {\n if (!this.endPanelMode()) {\n if (helpers.isArray(this.panelMode())) {\n this.endPanelMode.set([...(this.panelMode() as ThyPanelMode[])]);\n } else {\n this.endPanelMode.set(this.panelMode());\n }\n } else {\n if (helpers.isArray(this.endPanelMode())) {\n this.panelMode.set([...(this.endPanelMode() as ThyPanelMode[])]);\n } else {\n this.panelMode.set(this.endPanelMode());\n }\n }\n }\n\n initDisabledDate(): void {\n let minDate!: TinyDate;\n let maxDate!: TinyDate;\n let disabledDateFn!: DisabledDateFn;\n if (this.minDate()) {\n const { value } = transformDateValue(this.minDate()!);\n minDate = new TinyDate(value as Date, this.timeZone());\n }\n if (this.maxDate()) {\n const { value } = transformDateValue(this.maxDate()!);\n maxDate = new TinyDate(value as Date, this.timeZone());\n }\n if (this.disabledDate()) {\n disabledDateFn = this.disabledDate()!;\n }\n this.disabledDate.set(d => {\n let expression = false;\n if (minDate) {\n expression = d < minDate.startOfDay().nativeDate;\n }\n if (maxDate && !expression) {\n expression = d > maxDate.endOfDay().nativeDate;\n }\n if (disabledDateFn && typeof disabledDateFn === 'function' && !expression) {\n expression = disabledDateFn(d);\n }\n return expression;\n });\n }\n\n onShowTimePickerChange(show: boolean): void {\n this.showTimePicker = show;\n this.showTimePickerChange.emit(show);\n }\n\n onClickOk(): void {\n this.setValue(this.value()!);\n this.valueChange.emit(this.value()!);\n this.resultOk.emit();\n }\n\n onClickRemove(): void {\n this.value.set(this.isRange() ? [] : null);\n this.valueChange.emit(this.value()!);\n }\n\n onDayHover(value: TinyDate): void {\n if (this.isRange() && this.selectedValue[0] && !this.selectedValue[1]) {\n // When right value is selected, don't do hover\n const base = this.selectedValue[0]; // Use the left of selected value as the base to decide later hoverValue\n if (base.isBeforeDay(value)) {\n this.hoverValue = [base, value];\n } else {\n this.hoverValue = [value, base];\n }\n }\n }\n\n onPanelModeChange(mode: ThyPanelMode, partType?: RangePartType): void {\n if (this.isRange()) {\n (this.panelMode() as ThyPanelMode[])[this.getPartTypeIndex(partType)] = mode;\n } else {\n this.panelMode.set(mode);\n }\n this.panelModeChange.emit(this.panelMode()!);\n }\n\n onHeaderChange(value: TinyDate, partType?: RangePartType): void {\n if (this.isRange()) {\n (this.activeDate as TinyDate[])[this.getPartTypeIndex(partType)] = value;\n this.activeDate = this.normalizeRangeValue(\n this.activeDate as TinyDate[],\n this.getPanelMode(this.endPanelMode()!, partType) as ThyPanelMode\n );\n } else {\n this.activeDate = value;\n }\n }\n\n onSelectTime(value: TinyDate, partType?: RangePartType): void {\n if (this.isRange()) {\n // TODO:range picker set time\n } else {\n this.setValue(new TinyDate(value.nativeDate, this.timeZone()));\n }\n }\n\n selectTab(active: DatePickerFlexibleTab) {\n this.flexibleActiveTab = active;\n }\n\n clearFlexibleValue() {\n this.flexibleDateGranularity.set(null);\n if (this.flexibleActiveTab === 'advanced') {\n this.advancedSelectedValue = {};\n } else {\n this.selectedValue = [];\n }\n this.valueChange.emit({ begin: undefined, end: undefined, dateGranularity: this.flexibleDateGranularity()! });\n }\n\n changeValueFromAdvancedSelect(value: RangeAdvancedValue) {\n this.valueChange.emit(value);\n // clear custom date when select a advanced date\n this.selectedValue = [];\n this.dateValueChange.emit({ value: [value.begin!, value.end!] });\n }\n\n changeValueFromSelect(value: TinyDate, partType?: RangePartType): void {\n if (this.isRange()) {\n // clear advanced date when select a custom date\n this.advancedSelectedValue = {};\n\n const [left, right] = this.selectedValue as TinyDate[];\n\n if ((!left && !right) || (left && right)) {\n // If totally full or empty, clean up && re-assign left first\n this.hoverValue = this.selectedValue = [value];\n this.selectedValue = [this.selectedValue[0].startOfDay()];\n this.calendarChange.emit([this.selectedValue[0].clone()]);\n } else if (left && !right) {\n // If one of them is empty, assign the other one and sort, then set the final values\n this.clearHoverValue(); // Clean up\n this.setRangeValue('right', value);\n this.selectedValue = sortRangeValue(this.selectedValue); // Sort\n this.selectedValue = this.getSelectedRangeValueByMode(this.selectedValue);\n this.activeDate = this.normalizeRangeValue(\n this.selectedValue,\n this.getPanelMode(this.endPanelMode()!, partType) as ThyPanelMode\n );\n this.setValue(this.cloneRangeDate(this.selectedValue));\n this.calendarChange.emit(this.cloneRangeDate(this.selectedValue));\n this.dateValueChange.emit({ value: this.cloneRangeDate(this.selectedValue) });\n }\n } else {\n const updatedValue = this.updateHourMinute(value);\n this.setValue(updatedValue);\n this.dateValueChange.emit({ value: updatedValue });\n }\n }\n\n private getSelectedRangeValueByMode(value: TinyDate[]): TinyDate[] {\n const panelMode = this.getPanelMode(this.endPanelMode()!);\n if (panelMode === 'year') {\n return [value[0].startOfYear(), value[1].endOfYear()];\n } else if (panelMode === 'quarter') {\n return [value[0].startOfQuarter(), value[1].endOfQuarter()];\n } else if (panelMode === 'month') {\n return [value[0].startOfMonth(), value[1].endOfMonth()];\n } else if (panelMode === 'week') {\n return [value[0].startOfISOWeek(), value[1].endOfISOWeek()];\n } else {\n return [value[0].startOfDay(), value[1].endOfDay()];\n }\n }\n\n private updateHourMinute(value: TinyDate): TinyDate {\n if (!this.value()) {\n return value;\n }\n const originDate = this.value() as TinyDate;\n const dateTime = [value.getHours(), value.getMinutes(), value.getSeconds()];\n const originDateTime = [originDate.getHours(), originDate.getMinutes(), originDate.getSeconds()];\n\n const isEqualTime = dateTime.toString() === originDateTime.toString();\n if (isEqualTime) {\n return value;\n } else {\n return value.setHms(originDateTime[0], originDateTime[1], originDateTime[2]);\n }\n }\n\n enablePrevNext(direction: 'prev' | 'next', partType?: RangePartType): boolean {\n if (this.isRange() && this.panelMode() === this.endPanelMode()) {\n const [start, end] = this.activeDate as TinyDate[];\n const showMiddle = !start.addMonths(1).isSame(end, 'month'); // One month diff then don't show middle prev/next\n if ((partType === 'left' && direction === 'next') || (partType === 'right' && direction === 'prev')) {\n return showMiddle;\n }\n return true;\n } else {\n return true;\n }\n }\n\n getPanelMode(panelMode: ThyPanelMode | ThyPanelMode[], partType?: RangePartType): ThyPanelMode {\n if (this.isRange()) {\n return panelMode[this.getPartTypeIndex(partType)] as ThyPanelMode;\n } else {\n return panelMode as ThyPanelMode;\n }\n }\n\n getValueBySelector(partType?: RangePartType): TinyDate {\n if (this.isRange()) {\n const valueShow = this.selectedValue; // Use the real time value that without decorations when timepicker is shown up\n return (valueShow as TinyDate[])[this.getPartTypeIndex(partType)];\n } else {\n return this.value() as TinyDate;\n }\n }\n\n getActiveDate(partType?: RangePartType): TinyDate {\n if (this.isRange()) {\n return (this.activeDate as TinyDate[])[this.getPartTypeIndex(partType)];\n } else {\n return this.activeDate as TinyDate;\n }\n }\n\n getPartTypeIndex(partType: RangePartType = 'left'): number {\n return this.partTypeMap[partType];\n }\n\n private getMinTinyDate() {\n return this.minDate() ? new TinyDate(transformDateValue(this.minDate()!).value as Date, this.timeZone()) : null;\n }\n\n private getMaxTinyDate() {\n return this.maxDate() ? new TinyDate(transformDateValue(this.maxDate()!).value as Date, this.timeZone()) : null;\n }\n\n private clearHoverValue(): void {\n this.hoverValue = [];\n }\n\n private setValue(value: CompatibleValue): void {\n this.value.set(value);\n if (this.isRange() && this.flexible()) {\n this.flexibleDateGranularity.set('day');\n this.valueChange.emit({\n begin: (value as TinyDate[])[0],\n end: (value as TinyDate[])[1],\n dateGranularity: this.flexibleDateGranularity()!\n });\n } else {\n if (!this.showTime() || !this.showTimePicker) {\n this.valueChange.emit(this.value()!);\n }\n }\n this.isDisableTimeConfirm();\n }\n\n private normalizeRangeValue(value: TinyDate[], mode: ThyPanelMode = 'month'): TinyDate[] {\n const headerModes: { [key in ThyPanelMode]?: ThyPanelMode } = {\n week: 'month',\n date: 'month',\n month: 'year',\n quarter: 'year',\n year: 'decade'\n };\n const headerMode = headerModes[mode]!;\n const [start, end] = value;\n const newStart = start || new TinyDate(undefined, this.timeZone());\n let newEnd = end;\n if (!newEnd || newStart.isSame(end, headerMode as TinyDateCompareGrain)) {\n newEnd = dateAddAmount(newStart, 1, headerMode);\n }\n return [newStart, newEnd];\n }\n\n private setRangeValue(partType: RangePartType, value: TinyDate): void {\n const ref = (this.selectedValue = this.cloneRangeDate(this.selectedValue as TinyDate[]));\n ref[this.getPartTypeIndex(partType)] = value;\n }\n\n private cloneRangeDate(value: TinyDate[]): TinyDate[] {\n return [value[0] && value[0].clone(), value[1] && value[1].clone()] as TinyDate[];\n }\n\n private isDisableTimeConfirm() {\n if (this.isRange() || !this.showTime()) {\n return;\n }\n\n const date: TinyDate = this.value() ? (this.value() as TinyDate) : new TinyDate(undefined, this.timeZone());\n const minDate: TinyDate | null = this.getMinTinyDate();\n const maxDate: TinyDate | null = this.getMaxTinyDate();\n\n if ((minDate && date.getTime() < minDate.getTime()) || (maxDate && date.getTime() > maxDate.getTime())) {\n this.disableTimeConfirm.set(true);\n } else {\n this.disableTimeConfirm.set(false);\n }\n }\n\n private getSelectedShortcutPreset(date: CompatibleValue): CompatibleValue | null {\n const minDate: TinyDate | null = this.getMinTinyDate();\n const maxDate: TinyDate | null = this.getMaxTinyDate();\n\n const minTime: number | null = (minDate && minDate.getTime()) || null;\n const maxTime: number | null = (maxDate && maxDate.getTime()) || null;\n\n if (helpers.isArray(date)) {\n const startDate: TinyDate = date[0];\n const endDate: TinyDate = date[1];\n\n const startTime: number = startDate.getTime();\n const endTime: number = endDate.getTime();\n\n if ((maxDate && startTime > maxTime!) || (minDate && endTime < minTime!)) {\n return [];\n }\n\n if (minDate && startTime < minTime! && maxDate && endTime > maxTime!) {\n return [minDate, maxDate];\n }\n\n if (minDate && startTime < minTime!) {\n return [minDate, endDate];\n }\n\n if (maxDate && endTime > maxTime!) {\n return [startDate, maxDate];\n }\n\n return date;\n } else {\n const singleTime: number = date.getTime();\n\n if ((minDate && singleTime < minTime!) || (maxDate && singleTime > maxTime!)) {\n return null;\n }\n\n return date;\n }\n }\n\n shortcutSetValue(shortcutPresets: ThyShortcutPreset) {\n if (shortcutPresets.disabled) {\n return;\n }\n\n const { value } = shortcutPresets;\n if (!value) {\n return;\n }\n\n let selectedPresetValue!: CompatibleValue;\n if (helpers.isArray(value)) {\n const begin: number | Date = getShortcutValue(value[0]);\n const end: number | Date = getShortcutValue(value[1]);\n\n if (begin && end) {\n this.selectedValue = this.getSelectedShortcutPreset([\n new TinyDate(begin, this.timeZone()).startOfDay(),\n new TinyDate(end, this.timeZone()).endOfDay()\n ]) as TinyDate[];\n selectedPresetValue = this.cloneRangeDate(this.selectedValue);\n }\n } else {\n const originDate = this.value() as TinyDate;\n const zonedTime = this.createInZoneTime(\n new TinyDate(getShortcutValue(value), this.timeZone()),\n originDate?.getHours() ?? 0,\n originDate?.getMinutes() ?? 0,\n originDate?.getSeconds() ?? 0\n );\n const singleTinyDate: TinyDate = this.updateHourMinute(new TinyDate(zonedTime, this.timeZone()));\n selectedPresetValue = this.getSelectedShortcutPreset(singleTinyDate) as TinyDate;\n }\n this.setValue(selectedPresetValue);\n const shortcutPresetsValue = setValueByTimestampPrecision(\n shortcutPresets?.value,\n this.isRange(),\n this.timestampPrecision()!,\n this.timeZone()\n ) as number;\n this.dateValueChange.emit({\n value: helpers.isArray(value) ? this.selectedValue : selectedPresetValue,\n triggerPreset: Object.assign({}, shortcutPresets, { value: shortcutPresetsValue })\n });\n if (!helpers.isArray(value) && this.showTime() && this.showTimePicker) {\n this.updateActiveDate();\n }\n }\n\n private createInZoneTime(date: TinyDate, hours: number, minutes: number, seconds: number): Date {\n return TinyDate.createDateInTimeZone(date.getYear(), date.getMonth(), date.getDate(), hours, minutes, seconds, this.timeZone());\n }\n}\n","<div class=\"{{ prefixCls }}-picker-container {{ className() }}\">\n <div\n class=\"{{ prefixCls }} {{ showWeek() ? prefixCls + '-week-number' : '' }}\n {{ isRange() ? prefixCls + '-range' : '' }} {{ prefixCls }}-picker-shortcut-{{ shortcutPosition() === 'left' ? 'left' : 'bottom' }}\">\n @if (showShortcut()) {\n <div class=\"{{ prefixCls }}-picker-shortcut\">\n @for (item of innerShortcutPresets; track $index) {\n <div class=\"{{ prefixCls }}-picker-shortcut-item\" [class.disabled]=\"item.disabled\" (click)=\"shortcutSetValue(item)\">\n {{ item.title }}\n </div>\n }\n </div>\n }\n <div class=\"{{ prefixCls }}-panel\">\n <div class=\"{{ prefixCls }}-date-panel\">\n @if (flexible()) {\n <div class=\"{{ prefixCls }}-date-panel-flexible\">\n <div class=\"{{ prefixCls }}-date-panel-flexible-tab\">\n <thy-nav thyType=\"pulled\" thySize=\"sm\">\n <a href=\"javascript:;\" thyNavLink [thyNavLinkActive]=\"flexibleActiveTab === 'advanced'\" (click)=\"selectTab('advanced')\">{{\n locale().advance\n }}</a>\n <a href=\"javascript:;\" thyNavLink [thyNavLinkActive]=\"flexibleActiveTab === 'custom'\" (click)=\"selectTab('custom')\">{{\n locale().custom\n }}</a>\n </thy-nav>\n <button thyButtonIcon=\"sweep\" thySize=\"sm\" class=\"clear-date-button\" (click)=\"clearFlexibleValue()\"></button>\n </div>\n <ng-container>\n <div class=\"{{ prefixCls }}-date-panel-advanced\" [hidden]=\"flexibleActiveTab !== 'advanced'\">\n <date-carousel\n name=\"dateCarousel\"\n (ngModelChange)=\"changeValueFromAdvancedSelect($event)\"\n [(ngModel)]=\"advancedSelectedValue\"\n [activeDate]=\"selectedValue[0]\"></date-carousel>\n </div>\n </ng-container>\n <div [hidden]=\"flexibleActiveTab !== 'custom'\">\n <ng-container *ngTemplateOutlet=\"tplInnerPopup\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isRange()) {\n <ng-container *ngTemplateOutlet=\"tplRangePart; context: { partType: 'left' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tplRangePart; context: { partType: 'right' }\"></ng-container>\n } @else {\n <div>\n <ng-container *ngTemplateOutlet=\"tplInnerPopup\"></ng-container>\n </div>\n }\n @if (!isRange()) {\n <ng-container *ngTemplateOutlet=\"tplFooter\"></ng-container>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplInnerPopup let-partType=\"partType\">\n <inner-popup\n [showWeek]=\"showWeek()\"\n [isRange]=\"isRange()\"\n [panelMode]=\"getPanelMode(panelMode(), partType)\"\n [endPanelMode]=\"getPanelMode(endPanelMode(), partType)\"\n [partType]=\"partType\"\n [showDateRangeInput]=\"flexible() && flexibleActiveTab === 'custom'\"\n (panelModeChange)=\"onPanelModeChange($event, partType)\"\n [value]=\"getValueBySelector(partType)\"\n [selectedValue]=\"selectedValue\"\n [activeDate]=\"getActiveDate(partType)\"\n [rangeActiveDate]=\"activeDate\"\n [disabledDate]=\"disabledDate()\"\n [dateRender]=\"dateRender()\"\n [hoverValue]=\"hoverValue\"\n [timeZone]=\"timeZone()\"\n (dayHover)=\"onDayHover($event)\"\n (selectDate)=\"changeValueFromSelect($event, partType)\"\n (headerChange)=\"onHeaderChange($event, partType)\"></inner-popup>\n</ng-template>\n\n<ng-template #tplFooter>\n <calendar-footer\n [showTime]=\"showTime()\"\n [mustShowTime]=\"mustShowTime()\"\n [value]=\"value()\"\n [timeZone]=\"timeZone()\"\n [disableTimeConfirm]=\"disableTimeConfirm()\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n (selectTime)=\"onSelectTime($event)\"\n (clickOk)=\"onClickOk()\"\n (clickRemove)=\"onClickRemove()\"></calendar-footer>\n</ng-template>\n\n<!-- Single ONLY -->\n\n<!-- Range ONLY -->\n<ng-template #tplRangePart let-partType=\"partType\">\n <div class=\"{{ prefixCls }}-range-part {{ prefixCls }}-range-{{ partType }}\">\n <div style=\"outline: none\">\n <ng-container *ngTemplateOutlet=\"tplInnerPopup; context: { partType: partType }\"></ng-container>\n </div>\n </div>\n</ng-template>\n","import { MonthHeader } from './month/month-header.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CalendarFooter } from './calendar/calendar-footer.component';\nimport { DatePopup } from './popups/date-popup.component';\nimport { InnerPopup } from './popups/inner-popup.component';\nimport { MonthTable } from './month/month-table.component';\nimport { DateTable } from './date/date-table.component';\nimport { DateTableCell } from './date/date-table-cell.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTimePickerModule } from 'ngx-tethys/time-picker';\nimport { YearTable } from './year/year-table.component';\nimport { YearHeader } from './year/year-header.component';\nimport { DecadeHeader } from './decade/decade-header.component';\nimport { DecadeTable } from './decade/decade-table.component';\nimport { DateHeader } from './date/date-header.component';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { DateCarousel } from './date-carousel/date-carousel.component';\nimport { DatePickerAdvancedShowYearTipPipe } from '../picker.pipes';\nimport { QuarterTable } from './quarter/quarter-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThyButtonModule,\n ThyIconModule,\n ThyTimePickerModule,\n ThyNavModule,\n ThyInputModule,\n CalendarFooter,\n DateTable,\n DateHeader,\n YearTable,\n YearHeader,\n MonthTable,\n MonthHeader,\n QuarterTable,\n DecadeHeader,\n DecadeTable,\n InnerPopup,\n DatePopup,\n DateTableCell,\n DateCarousel,\n DatePickerAdvancedShowYearTipPipe\n ],\n exports: [\n CalendarFooter,\n DateTable,\n DateHeader,\n YearTable,\n YearHeader,\n MonthTable,\n MonthHeader,\n QuarterTable,\n DecadeHeader,\n DecadeTable,\n InnerPopup,\n DatePopup,\n DateTableCell,\n DateCarousel\n ]\n})\nexport class LibPackerModule {}\n","import { getFlexiblePositions, ThyPlacement , scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input,\n effect,\n OnChanges,\n output,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyI18nService } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyEnterDirective } from 'ngx-tethys/shared';\nimport { DateHelperService } from './date-helper.service';\nimport { CompatibleValue, RangePartType } from './inner-types';\nimport { getFlexibleAdvancedReadableValue } from './picker.util';\nimport { ThyDateGranularity } from './standard-types';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-picker',\n exportAs: 'thyPicker',\n templateUrl: './picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkOverlayOrigin, ThyInputDirective, ThyEnterDirective, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay],\n animations: [scaleXMotion, scaleYMotion, scaleMotion]\n})\nexport class ThyPicker implements AfterViewInit {\n private changeDetector = inject(ChangeDetectorRef);\n\n private dateHelper = inject(DateHelperService);\n\n private i18n = inject(ThyI18nService);\n\n readonly isRange = input(false, { transform: coerceBooleanProperty });\n\n readonly opened = input<boolean | undefined>(undefined);\n\n readonly disabled = input(false, { transform: coerceBooleanProperty });\n\n readonly placeholder = input<string | string[]>();\n\n readonly readonly = input(false, { transform: coerceBooleanProperty });\n\n readonly allowClear = input(false, { transform: coerceBooleanProperty });\n\n readonly autoFocus = input(false, { transform: coerceBooleanProperty });\n\n readonly className = input<string>();\n\n readonly size = input<'sm' | 'xs' | 'lg' | 'md' | 'default'>();\n\n readonly suffixIcon = input<string>();\n\n readonly placement = input<ThyPlacement>('bottomLeft');\n\n readonly flexible = input(false, { transform: coerceBooleanProperty });\n\n readonly mode = input<string>();\n\n readonly hasBackdrop = input(false, { transform: coerceBooleanProperty });\n\n readonly separator = input<string>();\n\n readonly timeZone = input<string>();\n\n readonly blur = output<Event>();\n\n readonly valueChange = output<TinyDate | TinyDate[] | null>();\n\n readonly openChange = output<boolean>(); // Emitted when overlay's open state change\n\n readonly inputChange = output<string>();\n\n readonly origin = viewChild<CdkOverlayOrigin>('origin');\n\n readonly cdkConnectedOverlay = viewChild<CdkConnectedOverlay>(CdkConnectedOverlay);\n\n readonly pickerInput = viewChild<ElementRef>('pickerInput');\n\n readonly overlayContainer = viewChild<ElementRef<HTMLElement>>('overlayContainer');\n\n readonly format = input<string>();\n\n readonly flexibleDateGranularity = input<ThyDateGranularity>();\n\n readonly value = input<TinyDate | TinyDate[] | null>();\n\n private innerflexibleDateGranularity?: ThyDateGranularity;\n\n private innerFormat?: string;\n\n private innerValue?: TinyDate | TinyDate[] | null;\n\n entering = false;\n\n prefixCls = 'thy-calendar';\n\n isShowDatePopup = false;\n\n overlayOpen = false; // Available when \"open\"=undefined\n\n overlayPositions: ConnectionPositionPair[] = getFlexiblePositions(this.placement(), 4);\n\n get realOpenState(): boolean {\n // The value that really decide the open state of overlay\n return this.isOpenHandledByUser() ? !!this.opened() : this.overlayOpen;\n }\n\n get readonlyState(): boolean {\n return this.isRange() || this.readonly() || this.mode() !== 'date';\n }\n\n constructor() {\n effect(() => {\n this.innerValue = this.value();\n if (!this.entering) {\n this.updateReadableDate(this.innerValue);\n }\n });\n\n effect(() => {\n this.innerFormat = this.format();\n if (this.innerFormat) {\n this.updateReadableDate(this.innerValue);\n }\n });\n\n effect(() => {\n this.innerflexibleDateGranularity = this.flexibleDateGranularity();\n if (this.innerflexibleDateGranularity) {\n this.updateReadableDate(this.innerValue);\n }\n });\n\n effect(() => {\n if (this.timeZone()) {\n this.formatDate(this.innerValue as TinyDate);\n }\n });\n\n effect(() => {\n const openedState = this.opened();\n if (openedState != undefined) {\n if (openedState) {\n this.showDatePopup();\n } else {\n this.closeDatePopup();\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.overlayPositions = getFlexiblePositions(this.placement(), 4);\n if (this.autoFocus()) {\n this.focus();\n }\n }\n\n focus(): void {\n this.pickerInput()?.nativeElement.focus();\n }\n\n onBlur(event: FocusEvent) {\n this.blur.emit(event);\n if (this.entering) {\n this.valueChange.emit(this.pickerInput()?.nativeElement.value);\n }\n this.entering = false;\n }\n\n onInput(event: InputEvent) {\n this.entering = true;\n const inputValue = (event.target as HTMLElement as SafeAny)['value'];\n this.inputChange.emit(inputValue);\n }\n\n onEnter() {\n if (this.readonlyState) {\n return;\n }\n this.valueChange.emit(this.pickerInput()?.nativeElement.value || this.getReadableValue(new TinyDate(undefined, this.timeZone())));\n this.entering = false;\n }\n\n showOverlay(): void {\n if (!this.realOpenState) {\n this.overlayOpen = true;\n this.showDatePopup();\n\n this.openChange.emit(this.overlayOpen);\n setTimeout(() => {\n if (this.cdkConnectedOverlay() && this.cdkConnectedOverlay()?.overlayRef) {\n this.cdkConnectedOverlay()?.overlayRef.updatePosition();\n }\n });\n }\n }\n\n hideOverlay(): void {\n if (this.realOpenState) {\n this.overlayOpen = false;\n this.closeDatePopup();\n\n this.openChange.emit(this.overlayOpen);\n this.focus();\n }\n }\n\n showDatePopup() {\n this.isShowDatePopup = true;\n this.changeDetector.markForCheck();\n }\n\n closeDatePopup() {\n // Delay 200ms before destroying the date-popup, otherwise you will not see the closing animation.\n setTimeout(() => {\n this.isShowDatePopup = false;\n this.changeDetector.markForCheck();\n }, 200);\n }\n\n onClickInputBox(): void {\n if (!this.disabled() && !this.readonly() && !this.isOpenHandledByUser()) {\n this.showOverlay();\n }\n }\n\n onClickBackdrop(): void {\n this.hideOverlay();\n }\n\n onOverlayDetach(): void {\n this.hideOverlay();\n }\n\n onPositionChange(position: ConnectedOverlayPositionChange): void {\n this.changeDetector.detectChanges();\n }\n\n onClickClear(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.innerValue = this.isRange() ? [] : null;\n this.valueChange.emit(this.innerValue);\n }\n\n getPartTypeIndex(partType: RangePartType): number {\n return { left: 0, right: 1 }[partType];\n }\n\n isEmptyValue(value: CompatibleValue | null): boolean {\n if (value === null) {\n return true;\n } else if (this.isRange()) {\n return !value || !Array.isArray(value) || value.every(val => !val);\n } else {\n return !value;\n }\n }\n\n // Whether open state is permanently controlled by user himself\n isOpenHandledByUser(): boolean {\n return this.opened() !== undefined;\n }\n\n getReadableValue(tinyDate: TinyDate | TinyDate[] | null | undefined): string | null {\n let value!: TinyDate;\n if (this.isRange()) {\n if (this.flexible() && this.innerflexibleDateGranularity !== 'day') {\n return getFlexibleAdvancedReadableValue(\n tinyDate as TinyDate[],\n this.innerflexibleDateGranularity!,\n this.separator()!,\n this.i18n.getLocale()\n );\n } else {\n const start = (tinyDate as TinyDate[])[0] ? this.formatDate((tinyDate as TinyDate[])[0]) : '';\n const end = (tinyDate as TinyDate[])[1] ? this.formatDate((tinyDate as TinyDate[])[1]) : '';\n return start && end ? `${start}${this.separator()}${end}` : null;\n }\n } else {\n value = tinyDate as TinyDate;\n return value ? this.formatDate(value) : null;\n }\n }\n\n formatDate(value: TinyDate) {\n // dateHelper.format() 使用的是 angular 的 format,不支持季度,修改的话,改动比较大。\n // 此处通过对 innerFormat 做下判断,如果是季度的 format,使用 date-fns 的 format()\n if (this.innerFormat && (this.innerFormat.includes('q') || this.innerFormat.includes('Q'))) {\n return value.format(this.innerFormat);\n } else {\n return this.dateHelper.format(value?.nativeDate, this.innerFormat!);\n }\n }\n\n getPlaceholder(): string {\n return this.isRange() && this.placeholder() && Array.isArray(this.placeholder())\n ? (this.placeholder() as string[]).join(this.separator())\n : (this.placeholder() as string);\n }\n\n private updateReadableDate(setValue: TinyDate | TinyDate[] | null | undefined) {\n const readableValue = this.getReadableValue(setValue);\n if (readableValue === this.pickerInput()?.nativeElement['value']) {\n return;\n }\n\n this.pickerInput()!.nativeElement.value = readableValue;\n }\n}\n","<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size() ? prefixCls + '-picker-' + size() : '' }} {{ className() }}\"\n (click)=\"onClickInputBox()\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size() }} form-control {{ prefixCls }}-picker-input\"\n [ngClass]=\"{ 'panel-is-opened': realOpenState }\"\n [thySize]=\"size()\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled()\"\n [class.thy-input-readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonlyState\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n placeholder=\"{{ getPlaceholder() }}\"\n thyEnter\n (thyEnter)=\"onEnter()\" />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n @if (!disabled() && !isEmptyValue(value()) && allowClear() && !readonly()) {\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size() }}\"></thy-icon>\n }\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon()\" ngClass=\"remove-link-{{ size() ? size() : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n class=\"thy-picker-container\"\n [@scaleXMotion]=\"placement() === 'left' || placement() === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"placement() === 'top' || placement() === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n placement() !== 'left' && placement() !== 'right' && placement() !== 'top' && placement() !== 'bottom' ? 'enter' : 'void'\n \">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport {\n ChangeDetectorRef,\n computed,\n Directive,\n inject,\n Input,\n input,\n signal,\n effect,\n OnChanges,\n OnInit,\n output,\n Signal,\n SimpleChanges,\n viewChild,\n model,\n DestroyRef,\n linkedSignal\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { injectLocale, ThyDatePickerLocale } from 'ngx-tethys/i18n';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyDatePickerConfigService } from './date-picker.service';\nimport { CompatibleValue, RangeAdvancedValue } from './inner-types';\nimport { ThyPicker } from './picker.component';\nimport { makeValue, setValueByTimestampPrecision, transformDateValue } from './picker.util';\nimport {\n ThyCompatibleDate,\n CompatiblePresets,\n DateEntry,\n DisabledDateFn,\n ThyDateChangeEvent,\n ThyDateGranularity,\n ThyDateRangeEntry,\n ThyPanelMode,\n ThyShortcutPosition\n} from './standard-types';\n\n/**\n * @private\n */\n@Directive()\nexport abstract class AbstractPickerComponent\n extends TabIndexDisabledControlValueAccessorMixin<ThyCompatibleDate | DateEntry | ThyDateRangeEntry | number | null>\n implements OnInit, OnChanges, ControlValueAccessor\n{\n protected destroyRef = inject(DestroyRef);\n\n cdr = inject(ChangeDetectorRef);\n\n locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');\n\n thyValue: CompatibleValue | null = null;\n\n panelMode!: ThyPanelMode | ThyPanelMode[];\n\n _panelMode: ThyPanelMode = 'date';\n\n private datePickerConfigService = inject(ThyDatePickerConfigService);\n\n /**\n * 模式\n * @type decade | year | month | date | week | flexible\n */\n @Input() set thyMode(value: ThyPanelMode) {\n this._panelMode = value ?? 'date';\n }\n\n get thyMode() {\n return this._panelMode;\n }\n\n /**\n * 是否显示清除按钮\n */\n readonly thyAllowClear = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 是否自动获取焦点\n */\n readonly thyAutoFocus = input(false, { transform: coerceBooleanProperty });\n\n readonly thyOpen = input(undefined, { transform: coerceBooleanProperty });\n\n readonly opened = linkedSignal(this.thyOpen);\n\n readonly thyDisabledDate = input<DisabledDateFn>();\n\n /**\n * 最小值\n */\n readonly thyMinDate = input<Date | number>();\n\n /**\n * 最大值\n */\n readonly thyMaxDate = input<Date | number>();\n\n /**\n * 输入框提示文字\n * @type string | string[]\n */\n readonly thyPlaceHolder = input<string | string[]>();\n\n readonly placeholder = signal<string | string[] | undefined>(undefined);\n\n /**\n * 是否只读\n */\n readonly thyReadonly = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 选择器 className\n */\n readonly thyOriginClassName = input<string>();\n\n /**\n * 弹出层 className\n */\n readonly thyPanelClassName = input<string>();\n\n /**\n * 输入框的大小\n */\n readonly thySize = input<'lg' | 'md' | 'sm' | 'xs' | 'default'>('default');\n\n /**\n * 设置时间戳精度\n * @default seconds 10位\n */\n readonly thyTimestampPrecision = input<'seconds' | 'milliseconds'>(\n this.datePickerConfigService.config?.timestampPrecision || 'seconds'\n );\n\n /**\n * 展示的日期格式\n * @default yyyy-MM-dd\n */\n readonly thyFormat = model<string | undefined>();\n\n /**\n * 区间分隔符,不传值默认为 \"~\"\n */\n readonly thySeparator = input<string>(this.datePickerConfigService.config?.separator);\n\n readonly separator: Signal<string> = computed(() => {\n return ` ${this.thySeparator()?.trim()} `;\n });\n\n /**\n * @description.en-us only for range picker, Whether to automatically take the beginning and ending unixTime of the day\n * @description.zh-cn 是否取值开始日期的00:00以及截止日期的24:00\n * @default false\n */\n readonly thyAutoStartAndEnd = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 面板默认日期\n */\n readonly thyDefaultPickerValue = input<ThyCompatibleDate | number | null>(null);\n\n /**\n * 自定义的后缀图标\n */\n readonly thySuffixIcon = input('calendar');\n\n /**\n * 是否展示快捷选项面板\n * @default false\n */\n readonly thyShowShortcut = input(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 快捷选项面板的显示位置\n * @type left | bottom\n */\n readonly thyShortcutPosition = input('left', { transform: (value: ThyShortcutPosition) => value || 'left' });\n\n /**\n * 自定义快捷选项\n * @type ThyShortcutPreset[]\n */\n readonly thyShortcutPresets = input<CompatiblePresets>();\n\n /**\n * 是否支持选择时间\n */\n readonly thyShowTime = input(false, {\n transform: (value: object | boolean) => (typeof value === 'object' ? value : coerceBooleanProperty(value))\n });\n\n /**\n * 是否展示时间(时、分)\n */\n readonly thyMustShowTime = input(false, { transform: coerceBooleanProperty });\n\n readonly showWeek = computed<boolean>(() => this.thyMode === 'week');\n\n readonly flexible = computed<boolean>(() => this.thyMode === 'flexible');\n\n /**\n * 日期变化的回调\n */\n readonly thyDateChange = output<ThyDateChangeEvent>();\n\n readonly thyOpenChange = output<boolean>();\n\n readonly picker = viewChild.required<ThyPicker>(ThyPicker);\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n get thyDisabled(): boolean {\n return this.disabled;\n }\n\n /**\n * 时区,不传使用默认时区\n */\n readonly thyTimeZone = input<string>();\n\n disabled = false;\n\n isRange!: boolean;\n\n withTime!: boolean;\n\n flexibleDateGranularity: ThyDateGranularity | undefined;\n\n protected isCustomPlaceHolder = false;\n\n private onlyEmitDate = false;\n\n protected innerValue!: ThyCompatibleDate | null;\n\n get realOpenState(): boolean {\n return this.picker().realOpenState;\n }\n\n get isShowDatePopup(): boolean {\n return this.picker().isShowDatePopup;\n }\n\n initValue(): void {\n this.thyValue = this.isRange ? [] : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this.isCustomPlaceHolder) {\n this.placeholder.set(this.thyPlaceHolder());\n }\n });\n\n effect(() => {\n if (this.thyTimeZone()) {\n this.setValue(this.innerValue);\n }\n });\n }\n\n ngOnInit(): void {\n this.setDefaultPlaceHolder();\n this.setDefaultTimePickerState();\n this.initValue();\n }\n\n onDateValueChange(event: ThyDateChangeEvent) {\n this.thyDateChange.emit(event);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyPlaceHolder && changes.thyPlaceHolder.firstChange && typeof changes.thyPlaceHolder.currentValue !== 'undefined') {\n this.isCustomPlaceHolder = true;\n }\n }\n\n closeOverlay(): void {\n this.picker().hideOverlay();\n }\n\n getAutoStartAndEndValue(begin: TinyDate, end: TinyDate) {\n let value: { begin: number; end: number };\n switch (this.thyMode) {\n case 'date':\n value = { begin: begin.startOfDay().getUnixTime(), end: end.endOfDay().getUnixTime() };\n break;\n case 'week':\n value = { begin: begin.startOfWeek().getUnixTime(), end: end.endOfWeek().getUnixTime() };\n break;\n case 'month':\n value = { begin: begin.startOfMonth().getUnixTime(), end: end.endOfMonth().getUnixTime() };\n break;\n case 'year':\n value = { begin: begin.startOfYear().getUnixTime(), end: end.endOfYear().getUnixTime() };\n break;\n default:\n value = { begin: begin.startOfDay().getUnixTime(), end: end.endOfDay().getUnixTime() };\n break;\n }\n return value;\n }\n\n onValueChange(originalValue: CompatibleValue | RangeAdvancedValue): void {\n this.setFormatRule();\n const { value, flexibleDateGranularity } = transformDateValue(originalValue);\n this.flexibleDateGranularity = flexibleDateGranularity;\n this.setValue(value);\n if (this.isRange) {\n const vAsRange: any = this.thyValue;\n let value = { begin: null, end: null } as ThyDateRangeEntry;\n if (vAsRange.length) {\n const [begin, end] = vAsRange as TinyDate[];\n if (this.thyAutoStartAndEnd()) {\n value = this.getAutoStartAndEndValue(begin, end);\n } else {\n value = { begin: begin.getUnixTime(), end: end.getUnixTime() };\n }\n }\n const [beginUnixTime, endUnixTime] = this.setValueByPrecision(value) as number[];\n this.onChangeFn(\n Object.assign({ begin: beginUnixTime, end: endUnixTime }, this.flexible() ? { granularity: flexibleDateGranularity } : {})\n );\n } else {\n const value = { date: null, with_time: this.withTime ? 1 : 0 } as DateEntry;\n if (this.thyValue) {\n value.date = (this.thyValue as TinyDate).getUnixTime();\n }\n if (this.onlyEmitDate) {\n this.onChangeFn(this.setValueByPrecision(value.date) as number);\n } else {\n this.onChangeFn(Object.assign(value, { date: this.setValueByPrecision(value.date) as number }));\n }\n }\n }\n\n setFormatRule() {\n if (!this.thyFormat()) {\n if (this.withTime) {\n this.thyFormat.set('yyyy-MM-dd HH:mm');\n } else {\n if (!this.onlyEmitDate) {\n this.thyFormat.set('yyyy-MM-dd');\n }\n }\n }\n }\n\n onOpenChange(open: boolean): void {\n this.opened.set(open);\n this.thyOpenChange.emit(open);\n }\n\n // @ts-ignore\n onChangeFn: (val: ThyCompatibleDate | DateEntry | ThyDateRangeEntry | number | null) => void = () => void 0;\n\n writeValue(originalValue: ThyCompatibleDate | ThyDateRangeEntry): void {\n const { value, withTime, flexibleDateGranularity } = transformDateValue(originalValue);\n this.flexibleDateGranularity = flexibleDateGranularity;\n this.innerValue = value;\n if (this.flexible() && value && (value as Date[]).length) {\n if (!this.flexibleDateGranularity) {\n this.flexibleDateGranularity = 'day';\n }\n }\n\n this.onlyEmitDate = typeof withTime === 'undefined';\n this.setTimePickerState(this.onlyEmitDate ? !!(value && !!this.thyShowTime()) : !!withTime);\n this.setValue(value);\n this.setFormatRule();\n this.cdr.markForCheck();\n }\n\n setTimePickerState(withTime: boolean): void {\n this.withTime = !!withTime;\n }\n\n // Displays the time directly when the time must be displayed by default\n setDefaultTimePickerState() {\n this.withTime = this.thyMustShowTime();\n }\n\n // Restore after clearing time to select whether the original picker time is displayed or not\n restoreTimePickerState(value: CompatibleValue | null) {\n if (!value) {\n this.withTime = this.thyMustShowTime();\n } else if (this.onlyEmitDate) {\n this.withTime = !!this.thyShowTime();\n }\n }\n\n setPanelMode() {\n const mode = this.thyMode ?? 'date';\n if (this.isRange) {\n this.panelMode = this.flexible() ? ['date', 'date'] : [mode, mode];\n } else {\n this.panelMode = mode;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.thyDisabled = disabled;\n this.cdr.markForCheck();\n }\n\n private setDefaultPlaceHolder(): void {\n if (!this.isCustomPlaceHolder) {\n const placeholder = this.isRange ? [this.locale().startDate, this.locale().endDate] : this.locale().placeholder;\n this.placeholder.set(placeholder);\n }\n }\n\n public setValue(value: ThyCompatibleDate | null): void {\n this.thyValue = makeValue(value, this.isRange, this.withTime, this.thyTimeZone());\n }\n\n private setValueByPrecision(value: ThyCompatibleDate | number | Date | DateEntry | ThyDateRangeEntry | SafeAny): number | number[] {\n return setValueByTimestampPrecision(value, this.isRange, this.thyTimestampPrecision(), this.thyTimeZone()) as number | number[] ;\n }\n}\n","import { ThyClickDispatcher, ThyPlacement } from 'ngx-tethys/core';\nimport { elementMatchClosest, FunctionProp, TinyDate } from 'ngx-tethys/util';\nimport {\n Component,\n ElementRef,\n inject,\n input,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n output,\n PLATFORM_ID,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractPickerComponent } from './abstract-picker.component';\nimport { CompatibleValue, RangeAdvancedValue } from './inner-types';\nimport { ThyPicker } from './picker.component';\nimport { hasTimeInStringDate, isValidStringDate, parseStringDate, transformDateValue } from './picker.util';\nimport { ThyCompatibleDate, ThyPanelMode } from './standard-types';\nimport { QUARTER_FORMAT } from './date-picker.config';\n\n/**\n * @private\n */\n@Component({\n template: ``,\n host: {\n '[attr.tabindex]': `tabIndex`,\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)'\n }\n})\nexport class BasePicker extends AbstractPickerComponent implements OnInit, OnChanges {\n protected element = inject(ElementRef);\n\n initialized!: boolean;\n\n private innerPreviousDate: string | null = null;\n\n private thyPicker = viewChild.required<ThyPicker>('thyPicker');\n\n readonly thyDateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n @Input() set thyMode(value: ThyPanelMode) {\n this._panelMode = value ?? 'date';\n if (this.initialized) {\n this.setPanelMode();\n this.setFormat();\n }\n }\n\n get thyMode() {\n return this._panelMode;\n }\n\n /**\n * 是否有幕布\n */\n readonly thyHasBackdrop = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 弹出位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n readonly thyPlacement = input<ThyPlacement>('bottomLeft');\n\n readonly thyOnPanelChange = output<ThyPanelMode | ThyPanelMode[]>();\n\n readonly thyOnCalendarChange = output<Date[]>();\n\n readonly thyOnOk = output<ThyCompatibleDate | null>();\n\n thyClickDispatcher = inject(ThyClickDispatcher);\n\n platformId = inject(PLATFORM_ID);\n\n ngZone = inject(NgZone);\n\n open() {\n this.thyPicker().focus();\n this.thyPicker().onClickInputBox();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.setPanelMode();\n this.setFormat();\n this.initialized = true;\n\n if (isPlatformBrowser(this.platformId)) {\n this.thyClickDispatcher\n .clicked(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n if (\n !this.element.nativeElement.contains(event.target) &&\n !this.thyPicker()\n ?.overlayContainer()\n ?.nativeElement.contains(event.target as Node) &&\n this.realOpenState\n ) {\n this.ngZone.run(() => {\n this.closeOverlay();\n this.cdr.markForCheck();\n });\n }\n });\n }\n }\n\n onValueChange(value: CompatibleValue | RangeAdvancedValue): void {\n this.thyPicker().entering = false;\n this.restoreTimePickerState(value as CompatibleValue);\n super.onValueChange(value);\n if (!this.flexible()) {\n this.closeOverlay();\n }\n this.innerPreviousDate = this.thyPicker().getReadableValue(this.thyValue!);\n }\n\n onInputValueChange(formatDate: string | null | Array<null>) {\n if (!formatDate || !formatDate.length) {\n const compatibleValue = formatDate ? (formatDate as unknown as CompatibleValue) : null;\n this.restoreTimePickerState(compatibleValue);\n super.onValueChange(compatibleValue!);\n return;\n }\n let value = formatDate as string;\n const valueValid = isValidStringDate(value, this.thyTimeZone());\n const valueLimitValid = valueValid ? this.isValidDateLimit(parseStringDate(value, this.thyTimeZone())) : false;\n if (valueValid && valueLimitValid) {\n this.innerPreviousDate = value;\n } else {\n value = this.innerPreviousDate!;\n }\n const tinyDate = value\n ? this.thyShowTime()\n ? parseStringDate(value, this.thyTimeZone())\n : parseStringDate(value, this.thyTimeZone()).startOfDay()\n : null;\n this.restoreTimePickerState(tinyDate);\n super.onValueChange(tinyDate!);\n }\n\n setFormat() {\n if (!this.thyFormat()) {\n const inputFormats: { [key in ThyPanelMode]?: string } = {\n year: 'yyyy',\n quarter: `yyyy-${QUARTER_FORMAT}`,\n month: 'yyyy-MM',\n week: this.locale().weekThFormat,\n date: this.thyShowTime() ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd'\n };\n this.thyFormat.set(this.flexible() ? (inputFormats['date'] as string) : (inputFormats[this.thyMode] as string));\n }\n }\n\n // Emit thyOnCalendarChange when select date by thy-range-picker\n onCalendarChange(value: TinyDate[]): void {\n if (this.isRange) {\n const rangeValue = value.map(x => x.nativeDate);\n this.thyOnCalendarChange.emit(rangeValue);\n }\n }\n\n onShowTimePickerChange(show: boolean): void {\n this.withTime = show;\n }\n\n onResultOk(): void {\n if (this.isRange) {\n const value = this.thyValue as TinyDate[];\n if (value.length) {\n this.thyOnOk.emit([value[0].nativeDate, value[1].nativeDate]);\n } else {\n this.thyOnOk.emit([]);\n }\n } else {\n if (this.thyValue) {\n this.thyOnOk.emit((this.thyValue as TinyDate).nativeDate);\n } else {\n this.thyOnOk.emit(null);\n }\n }\n this.closeOverlay();\n }\n\n onOpenChange(open: boolean): void {\n this.thyOpenChange.emit(open);\n if (!open) {\n this.onTouchedFn();\n }\n }\n\n onFocus(event: Event) {\n this.picker().focus();\n }\n\n onBlur(event?: FocusEvent) {\n // Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn\n if (elementMatchClosest(event?.relatedTarget as HTMLElement, ['date-popup', 'thy-picker'])) {\n return;\n }\n this.onTouchedFn();\n }\n\n onInputDate(value: string) {\n if (value && isValidStringDate(value, this.thyTimeZone())) {\n if (this.thyShowTime()) {\n this.withTime = hasTimeInStringDate(value, this.thyTimeZone());\n }\n this.thyValue = parseStringDate(value, this.thyTimeZone());\n }\n }\n\n private isValidDateLimit(date: TinyDate): boolean {\n let disable = false;\n if (this.thyDisabledDate() !== undefined) {\n disable = this.thyDisabledDate()!(date.nativeDate);\n }\n const minDate = this.thyMinDate() ? new TinyDate(transformDateValue(this.thyMinDate()!).value as Date, this.thyTimeZone()) : null;\n const maxDate = this.thyMaxDate() ? new TinyDate(transformDateValue(this.thyMaxDate()!).value as Date, this.thyTimeZone()) : null;\n return (\n (!minDate || date.startOfDay().nativeDate >= minDate.startOfDay().nativeDate) &&\n (!maxDate || date.startOfDay().nativeDate <= maxDate.startOfDay().nativeDate) &&\n !disable\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 日期选择组件\n * @name thy-date-picker\n * @order 10\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-date-picker',\n exportAs: 'thyDatePicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyDatePicker)\n }\n ],\n imports: [ThyPicker, DatePopup],\n host: {\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyDatePicker extends BasePicker implements OnInit {\n isRange = false;\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n this.hostRenderer.addClass('thy-calendar-picker');\n }\n}\n","<thy-picker\n #thyPicker\n [isRange]=\"isRange\"\n [value]=\"thyValue\"\n [flexible]=\"flexible()\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n (valueChange)=\"onInputValueChange($event)\"\n [opened]=\"opened()\"\n [disabled]=\"thyDisabled\"\n [format]=\"thyFormat()\"\n [separator]=\"separator()\"\n [mode]=\"thyMode\"\n [allowClear]=\"thyAllowClear()\"\n [className]=\"thyOriginClassName()\"\n [autoFocus]=\"thyAutoFocus()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"thyReadonly()\"\n [size]=\"thySize()\"\n [timeZone]=\"thyTimeZone()\"\n [suffixIcon]=\"thySuffixIcon()\"\n [placement]=\"thyPlacement()\"\n [hasBackdrop]=\"thyHasBackdrop()\"\n (openChange)=\"onOpenChange($event)\"\n (blur)=\"onBlur($event)\"\n (inputChange)=\"onInputDate($event)\">\n @if (isShowDatePopup) {\n <date-popup\n [attr.tabindex]=\"-1\"\n [isRange]=\"isRange\"\n [showWeek]=\"showWeek()\"\n [panelMode]=\"panelMode\"\n [flexible]=\"flexible()\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n [defaultPickerValue]=\"thyDefaultPickerValue()\"\n (panelModeChange)=\"thyOnPanelChange.emit($event)\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n [value]=\"thyValue\"\n (valueChange)=\"onValueChange($event)\"\n (calendarChange)=\"onCalendarChange($event)\"\n [showTime]=\"thyShowTime()\"\n [mustShowTime]=\"withTime\"\n [format]=\"thyFormat()\"\n [dateRender]=\"thyDateRender()\"\n [disabledDate]=\"thyDisabledDate()\"\n [minDate]=\"thyMinDate()\"\n [maxDate]=\"thyMaxDate()\"\n [showShortcut]=\"thyShowShortcut()\"\n [shortcutPresets]=\"thyShortcutPresets()\"\n [shortcutPosition]=\"thyShortcutPosition()\"\n [timestampPrecision]=\"thyTimestampPrecision()\"\n (dateValueChange)=\"onDateValueChange($event)\"\n [className]=\"thyPanelClassName()\"\n (resultOk)=\"onResultOk()\"\n [timeZone]=\"thyTimeZone()\"></date-popup>\n }\n</thy-picker>\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, model } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 月份选择组件\n * @name thy-month-picker\n * @order 40\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-month-picker',\n exportAs: 'thyMonthPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyMonthPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyMonthPicker extends BasePicker {\n protected element!: ElementRef;\n\n /**\n * 展示的月份格式\n */\n readonly thyFormat = model<string | undefined>('yyyy-MM');\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'month';\n }\n}\n","import { forwardRef, ChangeDetectionStrategy, Component, ElementRef, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 日期范围选择组件\n * @name thy-range-picker\n * @order 70\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-range-picker',\n exportAs: 'thyRangePicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyRangePicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyRangePicker extends BasePicker implements OnInit {\n protected elementRef!: ElementRef;\n\n isRange = true;\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\n\n/**\n * 周选择组件\n * @name thy-week-picker\n * @order 30\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-week-picker',\n exportAs: 'thyWeekPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyWeekPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyWeekPicker extends BasePicker {\n protected elementRef?: ElementRef;\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'week';\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, model } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\nimport { ThyPanelMode } from './standard-types';\n\n/**\n * 年份选择组件\n * @name thy-year-picker\n * @order 50\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-year-picker',\n exportAs: 'thyYearPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyYearPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyYearPicker extends BasePicker {\n protected elementRef?: ElementRef;\n\n /**\n * 展示的年份格式\n */\n readonly thyFormat = model<string | undefined>('yyyy');\n\n isRange = false;\n\n endPanelMode: ThyPanelMode = 'year';\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'year';\n }\n}\n","import { Directive, StaticProvider, forwardRef, input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { instanceOfDateEntry, instanceOfRangeEntry } from './picker.util';\nimport { DateEntry, ThyDateRangeEntry } from './standard-types';\n\nconst DATE_PICKER_REQUIRED_VALIDATOR: StaticProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatePickerRequiredValidator),\n multi: true\n};\n\n/**\n * @private\n */\n@Directive({\n selector:\n '[thyDatePicker][required][formControlName],[thyDatePicker][required][formControl],[thyDatePicker][required][ngModel],thy-date-picker[required][formControlName],thy-date-picker[required][formControl],thy-date-picker[required][ngModel]',\n providers: [DATE_PICKER_REQUIRED_VALIDATOR]\n})\nexport class DatePickerRequiredValidator implements Validator {\n readonly required = input(false, {\n transform: (value: boolean | string) => {\n return value != null && value !== false && `${value}` !== 'false';\n }\n });\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.required() ? this.validateRequired(control) : null;\n }\n\n private validateRequired(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputDateValue(control.value) ? { required: true } : null;\n }\n}\n\nconst RANGE_PICKER_REQUIRED_VALIDATOR: StaticProvider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangePickerRequiredValidator),\n multi: true\n};\n\n/**\n * @private\n */\n@Directive({\n selector:\n '[thyRangePicker][required][formControlName],[thyRangePicker][required][formControl],[thyRangePicker][required][ngModel],thy-range-picker[required][formControlName],thy-range-picker[required][formControl],thy-range-picker[required][ngModel]',\n providers: [RANGE_PICKER_REQUIRED_VALIDATOR]\n})\nexport class RangePickerRequiredValidator implements Validator {\n readonly required = input(false, {\n transform: (value: boolean | string) => {\n return value != null && value !== false && `${value}` !== 'false';\n }\n });\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.required() ? this.validateRequired(control) : null;\n }\n\n private validateRequired(control: AbstractControl): ValidationErrors | null {\n return isEmptyInputRangeValue(control.value) ? { required: true } : null;\n }\n}\n\nfunction isEmptyInputRangeValue(value: ThyDateRangeEntry): boolean {\n return value == null || (instanceOfRangeEntry(value) && (value.begin == null || value.end == null));\n}\n\nfunction isEmptyInputDateValue(value: DateEntry): boolean {\n return value == null || (instanceOfDateEntry(value) && value.date == null);\n}\n","import { ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { FunctionProp, warnDeprecation } from 'ngx-tethys/util';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, mapTo, tap } from 'rxjs/operators';\nimport { coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n OnChanges,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n numberAttribute,\n inject,\n OutputRefSubscription,\n input,\n OnDestroy\n} from '@angular/core';\nimport { AbstractPickerComponent } from './abstract-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyDateChangeEvent, ThyPanelMode } from './standard-types';\nimport { CompatibleValue } from './inner-types';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * @private\n */\n@Directive()\nexport abstract class PickerDirective extends AbstractPickerComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n elementRef = inject(ElementRef);\n\n cdr = inject(ChangeDetectorRef);\n\n private thyPopover = inject(ThyPopover);\n\n readonly thyDateRender = input<FunctionProp<TemplateRef<Date> | string>>();\n\n readonly thyOnPanelChange = output<ThyPanelMode | ThyPanelMode[]>();\n\n readonly thyOnCalendarChange = output<Date[]>();\n\n /**\n * 弹出位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n readonly thyPlacement = input<ThyPlacement>('bottom');\n\n /**\n * 弹出 DatePicker 的偏移量\n */\n readonly thyOffset = input(4, {\n transform: (value: number) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation(`thyOffset parameter will be deprecated, please use thyPopoverOptions instead.`);\n }\n return numberAttribute(value);\n }\n });\n\n /**\n * 是否有幕布\n */\n readonly thyHasBackdrop = input(true, {\n transform: (value: boolean) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation(`thyOffset parameter will be deprecated, please use thyPopoverOptions instead.`);\n }\n return coerceBooleanProperty(value);\n }\n });\n\n /**\n * popover 的其它参数\n */\n readonly thyPopoverOptions = input<ThyPopoverConfig>();\n\n /**\n * 是否阻止冒泡\n */\n readonly thyStopPropagation = input(true, { transform: coerceBooleanProperty });\n\n private el: HTMLElement = this.elementRef.nativeElement;\n\n readonly $click: Observable<boolean> = fromEvent(this.el, 'click').pipe(\n tap(e => {\n if (this.thyStopPropagation()) {\n e.stopPropagation();\n }\n }),\n mapTo(true)\n );\n\n private valueChangeSubscription?: OutputRefSubscription;\n\n private calendarChangeSubscription?: OutputRefSubscription;\n\n private showTimePickerChangeSubscription?: OutputRefSubscription;\n\n private dateValueChangeSubscription?: OutputRefSubscription;\n\n ngOnInit() {\n this.setPanelMode();\n }\n\n private openOverlay(): void {\n this.setPanelMode();\n const popoverRef = this.thyPopover.open(\n DatePopup,\n Object.assign(\n {\n origin: this.el,\n hasBackdrop: this.thyHasBackdrop(),\n backdropClass: 'thy-overlay-transparent-backdrop',\n offset: this.thyOffset(),\n outsideClosable: true,\n initialState: {\n isRange: this.isRange,\n panelMode: this.panelMode,\n showWeek: this.showWeek(),\n value: this.thyValue,\n showTime: this.thyShowTime(),\n mustShowTime: this.withTime,\n format: this.thyFormat(),\n dateRender: this.thyDateRender(),\n disabledDate: this.thyDisabledDate(),\n placeholder: this.placeholder(),\n className: this.thyPanelClassName(),\n defaultPickerValue: this.thyDefaultPickerValue(),\n minDate: this.thyMinDate(),\n maxDate: this.thyMaxDate(),\n showShortcut: this.thyShowShortcut(),\n shortcutPresets: this.thyShortcutPresets(),\n shortcutPosition: this.thyShortcutPosition(),\n flexible: this.flexible(),\n flexibleDateGranularity: this.flexibleDateGranularity,\n timestampPrecision: this.thyTimestampPrecision()\n },\n placement: this.thyPlacement()\n },\n this.thyPopoverOptions()\n )\n );\n if (popoverRef) {\n const componentInstance = popoverRef.componentInstance;\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n // @ts-ignore\n this.valueChangeSubscription = componentInstance.valueChange?.subscribe((event: CompatibleValue) => this.onValueChange(event));\n\n if (this.calendarChangeSubscription) {\n this.calendarChangeSubscription.unsubscribe();\n }\n this.calendarChangeSubscription = componentInstance?.calendarChange?.subscribe((event: CompatibleValue) => {\n const rangeValue = coerceArray(event).map(x => x.nativeDate);\n this.thyOnCalendarChange.emit(rangeValue);\n });\n\n if (this.showTimePickerChangeSubscription) {\n this.showTimePickerChangeSubscription.unsubscribe();\n }\n this.showTimePickerChangeSubscription = componentInstance?.showTimePickerChange?.subscribe((event: boolean) =>\n this.onShowTimePickerChange(event)\n );\n\n\n componentInstance?.ngOnChanges({ value: {} as SimpleChange }); // dynamically created components don't call ngOnChanges, manual call\n\n if (this.dateValueChangeSubscription) {\n this.dateValueChangeSubscription.unsubscribe();\n }\n this.dateValueChangeSubscription = componentInstance?.dateValueChange?.subscribe((event: ThyDateChangeEvent) => {\n this.thyDateChange.emit(event);\n });\n\n popoverRef\n .afterOpened()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.thyOpenChange.emit(true));\n popoverRef\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.thyOpenChange.emit(false));\n }\n }\n\n closeOverlay(): void {\n this.thyPopover.close();\n }\n\n initActionSubscribe(): void {\n this.$click.pipe(debounceTime(50), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (!this.thyDisabled && !this.thyReadonly()) {\n this.openOverlay();\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initActionSubscribe();\n }\n\n ngOnDestroy(): void {\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n if (this.calendarChangeSubscription) {\n this.calendarChangeSubscription.unsubscribe();\n }\n if (this.showTimePickerChangeSubscription) {\n this.showTimePickerChangeSubscription.unsubscribe();\n }\n if (this.dateValueChangeSubscription) {\n this.dateValueChangeSubscription.unsubscribe();\n }\n }\n\n onValueChange(value: CompatibleValue): void {\n this.restoreTimePickerState(value);\n super.onValueChange(value);\n if (!this.flexible()) {\n this.closeOverlay();\n }\n }\n\n onShowTimePickerChange(show: boolean): void {\n this.withTime = show;\n }\n}\n","import { forwardRef, OnInit, Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PickerDirective } from './abstract-picker.directive';\n\n/**\n * 日期选择指令\n * @name thyDatePicker\n * @order 20\n */\n@Directive({\n selector: '[thyDatePicker]',\n exportAs: 'thyDatePicker',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyDatePickerDirective)\n }\n ]\n})\nexport class ThyDatePickerDirective extends PickerDirective implements OnInit {\n isRange = false;\n}\n","import { forwardRef, OnInit, Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PickerDirective } from './abstract-picker.directive';\n\n/**\n * 日期范围选择指令\n * @name thyRangePicker\n * @order 80\n */\n@Directive({\n selector: '[thyRangePicker]',\n exportAs: 'thyRangePicker',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyRangePickerDirective)\n }\n ]\n})\nexport class ThyRangePickerDirective extends PickerDirective implements OnInit {\n isRange = true;\n\n constructor() {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, model } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { BasePicker } from './base-picker.component';\nimport { DatePopup } from './lib/popups/date-popup.component';\nimport { ThyPicker } from './picker.component';\nimport { ThyPanelMode } from './standard-types';\nimport { QUARTER_FORMAT } from './date-picker.config';\n\n/**\n * 季度选择组件\n * @name thy-quarter-picker\n * @order 60\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-quarter-picker',\n exportAs: 'thyQuarterPicker',\n templateUrl: './base-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyQuarterPicker)\n }\n ],\n imports: [ThyPicker, DatePopup]\n})\nexport class ThyQuarterPicker extends BasePicker {\n protected elementRef!: ElementRef;\n\n /**\n * 展示的季度格式\n */\n readonly thyFormat = model<string | undefined>(`yyyy-${QUARTER_FORMAT}`);\n\n isRange = false;\n\n endPanelMode: ThyPanelMode = 'quarter';\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n super();\n\n this.hostRenderer.addClass('thy-calendar-picker');\n this.thyMode = 'quarter';\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule, registerLocaleData } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport localeZhHans from '@angular/common/locales/zh-Hans';\n\nimport { LibPackerModule } from './lib/lib-packer.module';\n\nimport { BasePicker } from './base-picker.component';\nimport { ThyDatePicker } from './date-picker.component';\nimport { ThyMonthPicker } from './month-picker.component';\nimport { ThyRangePicker } from './range-picker.component';\nimport { ThyWeekPicker } from './week-picker.component';\nimport { ThyYearPicker } from './year-picker.component';\nimport { ThyPicker } from './picker.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { DatePickerRequiredValidator, RangePickerRequiredValidator } from './picker.validators';\nimport { ThyDatePickerFormatPipe, ThyDatePickerFormatStringPipe, ThyQuarterPickerFormatPipe } from './picker.pipes';\nimport { ThyDatePickerDirective } from './date-picker.directive';\nimport { ThyRangePickerDirective } from './range-picker.directive';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyDatePickerConfigService } from './date-picker.service';\nimport { ThyQuarterPicker } from './quarter-picker.component';\n\nregisterLocaleData(localeZhHans, 'zh-Hans');\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n LibPackerModule,\n ThyIconModule,\n ThyInputModule,\n ThyPopoverModule,\n BasePicker,\n ThyPicker,\n ThyDatePicker,\n ThyMonthPicker,\n ThyYearPicker,\n ThyQuarterPicker,\n ThyWeekPicker,\n ThyRangePicker,\n DatePickerRequiredValidator,\n RangePickerRequiredValidator,\n ThyDatePickerFormatPipe,\n ThyQuarterPickerFormatPipe,\n ThyDatePickerFormatStringPipe,\n ThyDatePickerDirective,\n ThyRangePickerDirective\n ],\n exports: [\n ThyDatePicker,\n ThyRangePicker,\n ThyMonthPicker,\n ThyYearPicker,\n ThyQuarterPicker,\n ThyWeekPicker,\n DatePickerRequiredValidator,\n RangePickerRequiredValidator,\n ThyDatePickerFormatPipe,\n ThyQuarterPickerFormatPipe,\n ThyDatePickerFormatStringPipe,\n ThyDatePickerDirective,\n ThyRangePickerDirective\n ],\n providers: [ThyDatePickerConfigService]\n})\nexport class ThyDatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty","coerceArray"],"mappings":"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"}