@ng-nest/ui 16.0.10 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/date-picker/date-range.component.d.ts +1 -1
- package/dialog/dialog.property.d.ts +1 -1
- package/drawer/drawer.property.d.ts +1 -1
- package/esm2022/affix/affix.component.mjs +6 -7
- package/esm2022/affix/affix.module.mjs +6 -7
- package/esm2022/affix/affix.property.mjs +5 -6
- package/esm2022/alert/alert.component.mjs +6 -7
- package/esm2022/alert/alert.module.mjs +6 -7
- package/esm2022/alert/alert.property.mjs +5 -6
- package/esm2022/anchor/anchor-inner.component.mjs +5 -6
- package/esm2022/anchor/anchor.component.mjs +6 -7
- package/esm2022/anchor/anchor.module.mjs +6 -7
- package/esm2022/anchor/anchor.property.mjs +9 -11
- package/esm2022/api/api.component.mjs +6 -7
- package/esm2022/api/api.module.mjs +6 -7
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +7 -8
- package/esm2022/auto-complete/auto-complete.component.mjs +7 -8
- package/esm2022/auto-complete/auto-complete.module.mjs +6 -7
- package/esm2022/auto-complete/auto-complete.property.mjs +5 -6
- package/esm2022/avatar/avatar-group.component.mjs +6 -7
- package/esm2022/avatar/avatar.component.mjs +6 -7
- package/esm2022/avatar/avatar.module.mjs +6 -7
- package/esm2022/avatar/avatar.property.mjs +9 -11
- package/esm2022/back-top/back-top.component.mjs +6 -7
- package/esm2022/back-top/back-top.module.mjs +6 -7
- package/esm2022/back-top/back-top.property.mjs +5 -6
- package/esm2022/badge/badge.component.mjs +6 -7
- package/esm2022/badge/badge.module.mjs +6 -7
- package/esm2022/badge/badge.property.mjs +5 -6
- package/esm2022/base-form/base-form.component.mjs +5 -6
- package/esm2022/base-form/base-form.module.mjs +6 -7
- package/esm2022/base-form/base-form.property.mjs +5 -6
- package/esm2022/border/border.component.mjs +6 -7
- package/esm2022/border/border.module.mjs +6 -7
- package/esm2022/button/button.component.mjs +7 -8
- package/esm2022/button/button.module.mjs +6 -7
- package/esm2022/button/button.property.mjs +9 -11
- package/esm2022/button/buttons.component.mjs +6 -7
- package/esm2022/calendar/calendar.component.mjs +6 -7
- package/esm2022/calendar/calendar.module.mjs +6 -7
- package/esm2022/calendar/calendar.property.mjs +5 -6
- package/esm2022/card/card.component.mjs +6 -7
- package/esm2022/card/card.module.mjs +6 -7
- package/esm2022/card/card.property.mjs +5 -6
- package/esm2022/carousel/carousel-panel.component.mjs +7 -8
- package/esm2022/carousel/carousel.component.mjs +6 -7
- package/esm2022/carousel/carousel.module.mjs +6 -7
- package/esm2022/carousel/carousel.property.mjs +9 -11
- package/esm2022/cascade/cascade-portal.component.mjs +6 -7
- package/esm2022/cascade/cascade.component.mjs +6 -7
- package/esm2022/cascade/cascade.module.mjs +6 -7
- package/esm2022/cascade/cascade.property.mjs +5 -6
- package/esm2022/checkbox/checkbox.component.mjs +6 -7
- package/esm2022/checkbox/checkbox.module.mjs +6 -7
- package/esm2022/checkbox/checkbox.property.mjs +5 -6
- package/esm2022/collapse/collapse-panel.component.mjs +7 -8
- package/esm2022/collapse/collapse.component.mjs +6 -7
- package/esm2022/collapse/collapse.module.mjs +6 -7
- package/esm2022/collapse/collapse.property.mjs +9 -11
- package/esm2022/color/color.component.mjs +6 -7
- package/esm2022/color/color.module.mjs +6 -7
- package/esm2022/color/color.property.mjs +5 -6
- package/esm2022/color-picker/color-picker-portal.component.mjs +7 -8
- package/esm2022/color-picker/color-picker.component.mjs +6 -7
- package/esm2022/color-picker/color-picker.module.mjs +6 -7
- package/esm2022/color-picker/color-picker.property.mjs +5 -6
- package/esm2022/comment/comment-reply.component.mjs +6 -7
- package/esm2022/comment/comment.component.mjs +6 -7
- package/esm2022/comment/comment.module.mjs +6 -7
- package/esm2022/comment/comment.property.mjs +9 -11
- package/esm2022/container/aside.component.mjs +6 -7
- package/esm2022/container/container.component.mjs +6 -7
- package/esm2022/container/container.module.mjs +6 -7
- package/esm2022/container/container.property.mjs +17 -21
- package/esm2022/container/footer.component.mjs +7 -8
- package/esm2022/container/header.component.mjs +7 -8
- package/esm2022/container/main.component.mjs +6 -7
- package/esm2022/core/config/config.service.mjs +6 -7
- package/esm2022/core/services/http.service.mjs +6 -7
- package/esm2022/core/services/preloading-strategy.service.mjs +5 -6
- package/esm2022/core/services/reuse-strategy.service.mjs +2 -3
- package/esm2022/core/services/storage.service.mjs +6 -7
- package/esm2022/core/theme/theme.service.mjs +6 -7
- package/esm2022/crumb/crumb.component.mjs +6 -7
- package/esm2022/crumb/crumb.module.mjs +6 -7
- package/esm2022/crumb/crumb.property.mjs +5 -6
- package/esm2022/date-picker/date-picker-portal.component.mjs +6 -7
- package/esm2022/date-picker/date-picker.component.mjs +6 -7
- package/esm2022/date-picker/date-picker.module.mjs +6 -7
- package/esm2022/date-picker/date-picker.property.mjs +25 -31
- package/esm2022/date-picker/date-quarter.pipe.mjs +6 -7
- package/esm2022/date-picker/date-range-portal.component.mjs +6 -7
- package/esm2022/date-picker/date-range.component.mjs +6 -7
- package/esm2022/date-picker/picker-date.component.mjs +6 -7
- package/esm2022/date-picker/picker-month.component.mjs +6 -7
- package/esm2022/date-picker/picker-quarter.component.mjs +6 -7
- package/esm2022/date-picker/picker-year.component.mjs +6 -7
- package/esm2022/description/description-item.component.mjs +6 -7
- package/esm2022/description/description.component.mjs +6 -7
- package/esm2022/description/description.module.mjs +6 -7
- package/esm2022/description/description.property.mjs +9 -11
- package/esm2022/dialog/dialog-container.component.mjs +6 -7
- package/esm2022/dialog/dialog-portal.component.mjs +6 -7
- package/esm2022/dialog/dialog-portal.directives.mjs +31 -37
- package/esm2022/dialog/dialog.component.mjs +7 -8
- package/esm2022/dialog/dialog.module.mjs +6 -7
- package/esm2022/dialog/dialog.property.mjs +9 -11
- package/esm2022/dialog/dialog.service.mjs +6 -7
- package/esm2022/doc/doc.component.mjs +7 -8
- package/esm2022/doc/doc.module.mjs +6 -7
- package/esm2022/drag/drag.directive.mjs +6 -7
- package/esm2022/drag/drag.module.mjs +6 -7
- package/esm2022/drag/drag.property.mjs +5 -6
- package/esm2022/drawer/drawer-container.component.mjs +6 -7
- package/esm2022/drawer/drawer-portal.component.mjs +6 -7
- package/esm2022/drawer/drawer-portal.directives.mjs +15 -18
- package/esm2022/drawer/drawer.component.mjs +7 -8
- package/esm2022/drawer/drawer.module.mjs +6 -7
- package/esm2022/drawer/drawer.property.mjs +9 -11
- package/esm2022/drawer/drawer.service.mjs +6 -7
- package/esm2022/dropdown/dropdown-portal.component.mjs +6 -7
- package/esm2022/dropdown/dropdown.component.mjs +6 -7
- package/esm2022/dropdown/dropdown.module.mjs +6 -7
- package/esm2022/dropdown/dropdown.property.mjs +5 -6
- package/esm2022/empty/empty.component.mjs +6 -7
- package/esm2022/empty/empty.module.mjs +6 -7
- package/esm2022/empty/empty.property.mjs +5 -6
- package/esm2022/examples/examples.component.mjs +6 -7
- package/esm2022/examples/examples.module.mjs +6 -7
- package/esm2022/find/find.component.mjs +6 -7
- package/esm2022/find/find.module.mjs +6 -7
- package/esm2022/find/find.property.mjs +5 -6
- package/esm2022/form/control.component.mjs +6 -7
- package/esm2022/form/form.component.mjs +6 -7
- package/esm2022/form/form.module.mjs +6 -7
- package/esm2022/form/form.property.mjs +9 -11
- package/esm2022/highlight/highlight.component.mjs +7 -8
- package/esm2022/highlight/highlight.module.mjs +6 -7
- package/esm2022/highlight/highlight.property.mjs +5 -6
- package/esm2022/i18n/i18n.directive.mjs +6 -7
- package/esm2022/i18n/i18n.module.mjs +6 -7
- package/esm2022/i18n/i18n.pipe.mjs +6 -7
- package/esm2022/i18n/i18n.service.mjs +7 -8
- package/esm2022/icon/icon.component.mjs +6 -7
- package/esm2022/icon/icon.module.mjs +6 -7
- package/esm2022/icon/icon.property.mjs +5 -6
- package/esm2022/icon/icon.service.mjs +7 -8
- package/esm2022/image/image-group.component.mjs +5 -6
- package/esm2022/image/image-preview.component.mjs +7 -8
- package/esm2022/image/image.component.mjs +7 -8
- package/esm2022/image/image.module.mjs +6 -7
- package/esm2022/image/image.property.mjs +9 -11
- package/esm2022/inner/inner.component.mjs +6 -7
- package/esm2022/inner/inner.module.mjs +6 -7
- package/esm2022/inner/inner.property.mjs +5 -6
- package/esm2022/input/input-group.component.mjs +6 -7
- package/esm2022/input/input.component.mjs +7 -8
- package/esm2022/input/input.module.mjs +6 -7
- package/esm2022/input/input.property.mjs +9 -11
- package/esm2022/input-number/input-number.component.mjs +6 -7
- package/esm2022/input-number/input-number.module.mjs +6 -7
- package/esm2022/input-number/input-number.property.mjs +5 -6
- package/esm2022/keyword/keyword.directive.mjs +6 -7
- package/esm2022/keyword/keyword.module.mjs +6 -7
- package/esm2022/keyword/keyword.property.mjs +5 -6
- package/esm2022/layout/col.component.mjs +7 -8
- package/esm2022/layout/layout.module.mjs +6 -7
- package/esm2022/layout/layout.property.mjs +9 -11
- package/esm2022/layout/row.component.mjs +6 -7
- package/esm2022/link/link.component.mjs +6 -7
- package/esm2022/link/link.module.mjs +6 -7
- package/esm2022/link/link.property.mjs +5 -6
- package/esm2022/list/list-drop-group.directive.mjs +5 -6
- package/esm2022/list/list-option.component.mjs +6 -7
- package/esm2022/list/list.component.mjs +7 -8
- package/esm2022/list/list.module.mjs +6 -7
- package/esm2022/list/list.property.mjs +9 -11
- package/esm2022/loading/loading.component.mjs +6 -7
- package/esm2022/loading/loading.module.mjs +6 -7
- package/esm2022/loading/loading.property.mjs +5 -6
- package/esm2022/menu/menu-node.component.mjs +6 -7
- package/esm2022/menu/menu.component.mjs +6 -7
- package/esm2022/menu/menu.module.mjs +6 -7
- package/esm2022/menu/menu.property.mjs +9 -11
- package/esm2022/message/message.component.mjs +6 -7
- package/esm2022/message/message.module.mjs +6 -7
- package/esm2022/message/message.service.mjs +6 -7
- package/esm2022/message-box/message-box.component.mjs +6 -7
- package/esm2022/message-box/message-box.module.mjs +6 -7
- package/esm2022/message-box/message-box.service.mjs +6 -7
- package/esm2022/notification/notification.component.mjs +6 -7
- package/esm2022/notification/notification.module.mjs +6 -7
- package/esm2022/notification/notification.service.mjs +6 -7
- package/esm2022/outlet/outlet.directive.mjs +6 -7
- package/esm2022/outlet/outlet.module.mjs +6 -7
- package/esm2022/page-header/page-header.component.mjs +6 -7
- package/esm2022/page-header/page-header.module.mjs +6 -7
- package/esm2022/page-header/page-header.property.mjs +5 -6
- package/esm2022/pagination/pagination.component.mjs +6 -7
- package/esm2022/pagination/pagination.module.mjs +6 -7
- package/esm2022/pagination/pagination.property.mjs +5 -6
- package/esm2022/pattern/pattern.component.mjs +6 -7
- package/esm2022/pattern/pattern.module.mjs +6 -7
- package/esm2022/popconfirm/popconfirm.component.mjs +6 -7
- package/esm2022/popconfirm/popconfirm.module.mjs +6 -7
- package/esm2022/popconfirm/popconfirm.property.mjs +5 -6
- package/esm2022/popover/popover-portal.component.mjs +6 -7
- package/esm2022/popover/popover.directive.mjs +6 -7
- package/esm2022/popover/popover.module.mjs +6 -7
- package/esm2022/popover/popover.property.mjs +5 -6
- package/esm2022/portal/portal.module.mjs +6 -7
- package/esm2022/portal/portal.service.mjs +6 -7
- package/esm2022/progress/progress.component.mjs +6 -7
- package/esm2022/progress/progress.module.mjs +6 -7
- package/esm2022/progress/progress.property.mjs +5 -6
- package/esm2022/radio/radio.component.mjs +6 -7
- package/esm2022/radio/radio.module.mjs +6 -7
- package/esm2022/radio/radio.property.mjs +5 -6
- package/esm2022/rate/rate.component.mjs +6 -7
- package/esm2022/rate/rate.module.mjs +6 -7
- package/esm2022/rate/rate.property.mjs +5 -6
- package/esm2022/resizable/resizable.directive.mjs +6 -7
- package/esm2022/resizable/resizable.module.mjs +6 -7
- package/esm2022/resizable/resizable.property.mjs +5 -6
- package/esm2022/result/result.component.mjs +6 -7
- package/esm2022/result/result.module.mjs +6 -7
- package/esm2022/result/result.property.mjs +5 -6
- package/esm2022/ripple/ripple.directive.mjs +6 -7
- package/esm2022/ripple/ripple.module.mjs +6 -7
- package/esm2022/ripple/ripple.property.mjs +5 -6
- package/esm2022/select/select-portal.component.mjs +7 -8
- package/esm2022/select/select.component.mjs +7 -8
- package/esm2022/select/select.module.mjs +6 -7
- package/esm2022/select/select.property.mjs +5 -6
- package/esm2022/skeleton/skeleton.component.mjs +6 -7
- package/esm2022/skeleton/skeleton.module.mjs +6 -7
- package/esm2022/skeleton/skeleton.property.mjs +5 -6
- package/esm2022/slider/slider.component.mjs +6 -7
- package/esm2022/slider/slider.module.mjs +6 -7
- package/esm2022/slider/slider.property.mjs +5 -6
- package/esm2022/slider-select/slider-select.component.mjs +10 -11
- package/esm2022/slider-select/slider-select.module.mjs +6 -7
- package/esm2022/slider-select/slider-select.property.mjs +7 -6
- package/esm2022/statistic/countdown.component.mjs +6 -7
- package/esm2022/statistic/statistic.component.mjs +6 -7
- package/esm2022/statistic/statistic.module.mjs +6 -7
- package/esm2022/statistic/statistic.property.mjs +9 -11
- package/esm2022/steps/steps.component.mjs +6 -7
- package/esm2022/steps/steps.module.mjs +6 -7
- package/esm2022/steps/steps.property.mjs +5 -6
- package/esm2022/switch/switch.component.mjs +6 -7
- package/esm2022/switch/switch.module.mjs +6 -7
- package/esm2022/switch/switch.property.mjs +5 -6
- package/esm2022/table/table-body.component.mjs +6 -7
- package/esm2022/table/table-foot.component.mjs +6 -7
- package/esm2022/table/table-head.component.mjs +6 -7
- package/esm2022/table/table.component.mjs +6 -7
- package/esm2022/table/table.module.mjs +6 -7
- package/esm2022/table/table.property.mjs +17 -21
- package/esm2022/tabs/tab-content.component.mjs +6 -7
- package/esm2022/tabs/tab-link.directive.mjs +13 -15
- package/esm2022/tabs/tab.component.mjs +6 -7
- package/esm2022/tabs/tabs.component.mjs +7 -8
- package/esm2022/tabs/tabs.module.mjs +6 -7
- package/esm2022/tabs/tabs.property.mjs +9 -11
- package/esm2022/tag/tag.component.mjs +6 -7
- package/esm2022/tag/tag.module.mjs +6 -7
- package/esm2022/tag/tag.property.mjs +5 -6
- package/esm2022/text-retract/text-retract.component.mjs +6 -7
- package/esm2022/text-retract/text-retract.module.mjs +6 -7
- package/esm2022/text-retract/text-retract.property.mjs +5 -6
- package/esm2022/textarea/textarea.component.mjs +6 -7
- package/esm2022/textarea/textarea.module.mjs +6 -7
- package/esm2022/textarea/textarea.property.mjs +5 -6
- package/esm2022/theme/theme.component.mjs +6 -7
- package/esm2022/theme/theme.module.mjs +6 -7
- package/esm2022/theme/theme.property.mjs +5 -6
- package/esm2022/time-ago/time-ago.module.mjs +6 -7
- package/esm2022/time-ago/time-ago.pipe.mjs +6 -7
- package/esm2022/time-picker/time-picker-frame.component.mjs +6 -7
- package/esm2022/time-picker/time-picker-portal.component.mjs +6 -7
- package/esm2022/time-picker/time-picker.component.mjs +6 -7
- package/esm2022/time-picker/time-picker.module.mjs +6 -7
- package/esm2022/time-picker/time-picker.property.mjs +5 -6
- package/esm2022/time-range/time-range.module.mjs +6 -7
- package/esm2022/time-range/time-range.pipe.mjs +5 -6
- package/esm2022/timeline/timeline.component.mjs +7 -8
- package/esm2022/timeline/timeline.module.mjs +6 -7
- package/esm2022/timeline/timeline.property.mjs +5 -6
- package/esm2022/tooltip/tooltip-portal.component.mjs +8 -8
- package/esm2022/tooltip/tooltip.directive.mjs +6 -7
- package/esm2022/tooltip/tooltip.module.mjs +8 -8
- package/esm2022/tooltip/tooltip.property.mjs +5 -6
- package/esm2022/transfer/transfer.component.mjs +6 -7
- package/esm2022/transfer/transfer.module.mjs +6 -7
- package/esm2022/transfer/transfer.property.mjs +5 -6
- package/esm2022/tree/tree-node.component.mjs +6 -7
- package/esm2022/tree/tree.component.mjs +30 -14
- package/esm2022/tree/tree.module.mjs +6 -7
- package/esm2022/tree/tree.property.mjs +9 -11
- package/esm2022/tree/tree.service.mjs +5 -6
- package/esm2022/tree-file/tree-file.component.mjs +7 -8
- package/esm2022/tree-file/tree-file.module.mjs +6 -7
- package/esm2022/tree-file/tree-file.property.mjs +5 -6
- package/esm2022/tree-select/tree-select-portal.component.mjs +7 -8
- package/esm2022/tree-select/tree-select.component.mjs +7 -8
- package/esm2022/tree-select/tree-select.module.mjs +6 -7
- package/esm2022/tree-select/tree-select.property.mjs +5 -6
- package/esm2022/typography/typography.component.mjs +6 -7
- package/esm2022/typography/typography.module.mjs +6 -7
- package/esm2022/typography/typography.property.mjs +5 -6
- package/esm2022/upload/upload-portal.component.mjs +6 -7
- package/esm2022/upload/upload.component.mjs +7 -8
- package/esm2022/upload/upload.module.mjs +6 -7
- package/esm2022/upload/upload.property.mjs +5 -6
- package/fesm2022/ng-nest-ui-affix.mjs +11 -11
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +11 -11
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +17 -17
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +8 -8
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +17 -17
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +12 -12
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +11 -11
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +11 -11
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-border.mjs +8 -8
- package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +20 -20
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +11 -11
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +11 -11
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +20 -20
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +19 -19
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +16 -16
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +12 -12
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +19 -19
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +38 -38
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +20 -20
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +58 -58
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +18 -18
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +51 -51
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +9 -9
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +11 -11
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +38 -38
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +16 -16
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +11 -11
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +8 -8
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +11 -11
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +18 -18
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +13 -13
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +17 -17
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +16 -16
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +23 -23
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +11 -11
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +19 -19
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +11 -11
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +19 -19
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +11 -11
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +22 -22
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +11 -11
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +18 -18
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +12 -12
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +12 -12
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +15 -15
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +8 -8
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +11 -11
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +11 -11
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +11 -11
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +11 -11
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +11 -11
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +13 -13
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +17 -17
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +17 -15
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +11 -11
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +19 -19
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +11 -11
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +11 -11
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +32 -32
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +33 -33
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +11 -11
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +11 -11
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +20 -20
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +12 -12
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +20 -18
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +11 -11
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +12 -12
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +17 -17
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +45 -28
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +11 -11
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +17 -17
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/package.json +63 -63
- package/slider-select/slider-select.property.d.ts +6 -1
- package/tooltip/tooltip-portal.component.d.ts +2 -2
- package/tooltip/tooltip.module.d.ts +2 -1
- package/tooltip/tooltip.property.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-date-picker.mjs","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.html","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.html","../../../../lib/ng-nest/ui/date-picker/date-quarter.pipe.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.html","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.html","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-range.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XProperty,\r\n XBoolean,\r\n XCorner,\r\n XWithConfig,\r\n XSize,\r\n XTemplate,\r\n XDataConvert,\r\n XData,\r\n XIdentityProperty\r\n} from '@ng-nest/ui/core';\r\nimport { Input, EventEmitter, Output, TemplateRef, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ selector: `${XDatePickerPrefix}-property`, template: '' })\r\nexport class XDatePickerProperty extends XControlValueAccessor<any> implements XDatePickerOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n @Input() @XDataConvert() preset: XData<XDatePickerPreset> = [];\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n @Input() extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n @Input() disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n * @undocument true\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Choose a type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: XBoolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * DateRange\r\n * @selector x-date-range\r\n * @decorator component\r\n */\r\nexport const XDateRangePrefix = 'x-date-range';\r\nconst X_CONFIG_RANGE_NAME = 'dateRange';\r\n\r\n/**\r\n * DateRange Property\r\n */\r\n@Component({ selector: `${XDateRangePrefix}-property`, template: '' })\r\nexport class XDateRangeProperty extends XControlValueAccessor<any> implements XDateRangeOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_RANGE_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_RANGE_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_RANGE_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_RANGE_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n @Input() @XDataConvert() preset: XData<XDateRangePreset> = [];\r\n /**\r\n * @zh_CN 日期提示信息\r\n * @en_US Placeholder of date input\r\n */\r\n @Input() override placeholder?: string[];\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n @Input() extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n @Input() disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number[]>();\r\n}\r\n\r\n/**\r\n * DateRange Option\r\n * @undocument true\r\n */\r\nexport interface XDateRangeOption extends XFormOption {\r\n /**\r\n * @zh_CN tab 键控制次序\r\n * @en_US Tab key control order\r\n */\r\n tabindex?: number;\r\n /**\r\n * @zh_CN 日期提示信息\r\n * @en_US Placeholder of date input\r\n */\r\n placeholder?: string[];\r\n}\r\n\r\n/**\r\n * @zh_CN 禁用日期的自定义类型\r\n * @en_US 禁用日期的自定义类型\r\n */\r\nexport type XDatePickerDisabledDate = (current: Date) => boolean;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义类型\r\n * @en_US 禁用时间的自定义类型\r\n */\r\nexport type XDatePickerDisabledTime = (type?: XDatePickerRangType) => XDatePickerDisabledTimeFn;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义函数\r\n * @en_US 禁用时间的自定义函数\r\n */\r\nexport type XDatePickerDisabledTimeFn = {\r\n /**\r\n * @zh_CN 禁用小时的自定义函数\r\n * @en_US 禁用小时的自定义函数\r\n */\r\n disabledHours?: () => number[];\r\n /**\r\n * @zh_CN 禁用分钟的自定义函数\r\n * @en_US 禁用分钟的自定义函数\r\n */\r\n disabledMinutes?: () => number[];\r\n /**\r\n * @zh_CN 禁用秒的自定义函数\r\n * @en_US 禁用秒的自定义函数\r\n */\r\n disabledSeconds?: () => number[];\r\n};\r\n\r\n/**\r\n * @zh_CN 快捷选择按钮\r\n * @en_US Quick selection button\r\n */\r\nexport interface XDatePickerPreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date;\r\n}\r\n\r\n/**\r\n * @zh_CN 快捷范围选择按钮\r\n * @en_US Quick range selection button\r\n */\r\nexport interface XDateRangePreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date[];\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType = 'date' | 'week' | 'month' | 'quarter' | 'year' | 'date-time' | 'date-hour' | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * DateRange Portal\r\n * @selector x-date-range-portal\r\n * @decorator component\r\n */\r\nexport const XDateRangePortalPrefix = 'x-date-range-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ selector: `${XPickerDatePrefix}-property`, template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n @Input() dateTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Last month\r\n */\r\n @Input() @XInputBoolean() lastMonthBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Next month\r\n */\r\n @Input() @XInputBoolean() nextMonthBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围 hover 效果\r\n * @en_US Range hover style\r\n */\r\n @Input() @XInputBoolean() rangeHover: XBoolean = true;\r\n /**\r\n * @zh_CN 范围日期\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示日期事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围日期 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围日期 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的日期点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * @zh_CN 单个日期数据对象\r\n * @en_US 单个日期数据对象\r\n */\r\nexport interface XDateCell {\r\n /**\r\n * @zh_CN 日期\r\n * @en_US Date\r\n */\r\n date?: Date;\r\n /**\r\n * @zh_CN 上个月或下个月的日期\r\n * @en_US Date of the previous or next month\r\n */\r\n isLastOrNext?: boolean;\r\n /**\r\n * @zh_CN 当天\r\n * @en_US Same day\r\n */\r\n isNow?: boolean;\r\n /**\r\n * @zh_CN 当月第一天\r\n * @en_US The first day of the month\r\n */\r\n isFirstDay?: boolean;\r\n /**\r\n * @zh_CN 当月最后一天\r\n * @en_US The last day of the month\r\n */\r\n isLastDay?: boolean;\r\n /**\r\n * @zh_CN 范围内日期\r\n * @en_US 范围内日期\r\n */\r\n isInRange?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 选中\r\n * @en_US 范围内 hover 选中\r\n */\r\n isInRangeHover?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期左边\r\n * @en_US 范围内 hover 当前日期左边\r\n */\r\n isInRangeHoverLeft?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期右边\r\n * @en_US 范围内 hover 当前日期右边\r\n */\r\n isInRangeHoverRight?: boolean;\r\n /**\r\n * @zh_CN 选中开始左边\r\n * @en_US Range start left\r\n */\r\n isRangeStartLeft?: boolean;\r\n /**\r\n * @zh_CN 选中开始右边\r\n * @en_US Range start right\r\n */\r\n isRangeStartRight?: boolean;\r\n /**\r\n * @zh_CN 选中结束左边\r\n * @en_US Range start left\r\n */\r\n isRangeEndLeft?: boolean;\r\n /**\r\n * @zh_CN 选中结束右边\r\n * @en_US Range start right\r\n */\r\n isRangeEndRight?: boolean;\r\n /**\r\n * @zh_CN 范围 hover\r\n * @en_US Range hover\r\n */\r\n isRangeHover?: boolean;\r\n /**\r\n * @zh_CN hover 当前开始\r\n * @en_US Range hover start\r\n */\r\n isRangeHoverStart?: boolean;\r\n /**\r\n * @zh_CN hover 当前结束\r\n * @en_US End date\r\n */\r\n isRangeHoverEnd?: boolean;\r\n /**\r\n * @zh_CN hover 开始左边\r\n * @en_US Range hover start left\r\n */\r\n isRangeHoverStartLeft?: boolean;\r\n /**\r\n * @zh_CN hover 开始右边\r\n * @en_US Range hover start right\r\n */\r\n isRangeHoverStartRight?: boolean;\r\n /**\r\n * @zh_CN hover 结束左边\r\n * @en_US Range hover end left\r\n */\r\n isRangeHoverEndLeft?: boolean;\r\n /**\r\n * @zh_CN hover 结束右边\r\n * @en_US Range hover end right\r\n */\r\n isRangeHoverEndRight?: boolean;\r\n /**\r\n * @zh_CN 当前选中日期\r\n * @en_US Current selected date\r\n */\r\n isActive?: boolean;\r\n /**\r\n * @zh_CN 禁用日期\r\n * @en_US Disabled date\r\n */\r\n isDisabled?: boolean;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 第几周\r\n * @en_US Week\r\n */\r\n week?: number;\r\n}\r\n\r\n/**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\nexport type XDatePickerRangType = 'start' | 'end';\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ selector: `${XPickerMonthPrefix}-property`, template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() monthTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示月份事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的月份点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * PickerQuarter\r\n * @selector x-picker-quarter\r\n * @decorator component\r\n */\r\nexport const XPickerQuarterPrefix = 'x-picker-quarter';\r\n\r\n/**\r\n * PickerQuarter Property\r\n */\r\n@Component({ selector: `${XPickerQuarterPrefix}-property`, template: '' })\r\nexport class XPickerQuarterProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 季度显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() quarterTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示季度事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围季度 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围季度 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的季度点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * DateQuarter\r\n * @selector xDateQuarter\r\n * @decorator pipe\r\n */\r\nexport const XDateQuarterPrefix = 'xDateQuarter';\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ selector: `${XPickerYearPrefix}-property`, template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 年份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() yearTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围年份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n @Output() startChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示月份事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的月份点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction, XDateWeek, XDateYearWeek } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n titles = [\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ];\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n weekDates: XDateCell[][] = [];\r\n clickCell?: XDateCell;\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n get isWeek() {\r\n return this.type === 'week';\r\n }\r\n\r\n get isWeekRange() {\r\n return this.type === 'week' && this.rangePicker;\r\n }\r\n\r\n get isNotWeekRange() {\r\n return this.type !== 'week' && this.rangePicker;\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display);\r\n }\r\n\r\n isWeekActive(week: XDateCell[]) {\r\n if (week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.model!);\r\n }\r\n return false;\r\n }\r\n\r\n isStartWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue[0]!);\r\n }\r\n return false;\r\n }\r\n\r\n isEndWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue[1]!);\r\n }\r\n return false;\r\n }\r\n\r\n isInRangeWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0]) && !XIsNull(this.rangeValue[1]) && week.length > 1) {\r\n let time = week[1].date?.getTime()!;\r\n return time > this.rangeValue[0]! && time < this.rangeValue[1]!;\r\n }\r\n return false;\r\n }\r\n\r\n isStartDate(date: Date) {\r\n if (this.type === 'week' || !this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n isEndDate(date: Date) {\r\n if (this.type === 'week' || !this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n setTitles() {\r\n if (this.type === 'week') {\r\n this.titles = ['datePicker.week', ...this.titles];\r\n }\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: XDateCell[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n const cell = { date: new Date(year, month, index) };\r\n dates = [this.setDayState(cell), ...dates];\r\n day = cell.date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n const cell: XDateCell = { date: new Date(year, month, index), isFirstDay: index === 1, isLastDay: index === lastDate };\r\n dates = [...dates, this.setDayState(cell)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n const cell = { date: new Date(year, month + 1, index) };\r\n dates = [...dates, this.setDayState(cell)];\r\n day = cell.date.getDay();\r\n }\r\n\r\n this.dates = dates;\r\n this.weekDates = XChunk(dates, 7);\r\n\r\n if (this.type === 'week') {\r\n for (let item of this.dates) {\r\n item.week = XDateWeek(item.date!);\r\n }\r\n for (let week of this.weekDates) {\r\n week.unshift({ type: 'week', week: week[0].week! });\r\n }\r\n }\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');\r\n const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fdisplaym = this.datePipe.transform(this.display, 'yyyyMM');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');\r\n cell.isLastOrNext = fdatem !== fdisplaym;\r\n cell.isNow = fdate === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start!, 'yyyyMMdd');\r\n cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end!, 'yyyyMMdd');\r\n }\r\n return cell;\r\n }\r\n\r\n dateClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setDays(this.display);\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.monthChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByNode(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let weeks of weekDates\"\r\n [class.x-date-week-active]=\"!rangePicker && isWeek && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange && isInRangeWeek(weeks)\"\r\n >\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker && week.type !== 'week' && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\r\n \"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n <ng-container [ngSwitch]=\"week.type\">\r\n <ng-container *ngSwitchCase=\"'week'\">{{ week.week }}</ng-container>\r\n <ng-container *ngSwitchDefault>{{ week.date | date : 'd' }}</ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths(this.display);\r\n }\r\n\r\n isStartMonth(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndMonth(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setMonths(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fmonthy = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fmonthy !== fdisplayy;\r\n cell.isNow = fmonth === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n monthClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setMonths(this.display);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByMonth(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of chunkDates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ month.date | date : 'yyyy-MM' }}\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker && onTdMouseleave(month)\"\r\n >\r\n <div *ngIf=\"!monthTemp\" class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XDate, XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';\r\nimport { XDateQuarterPrefix } from './date-picker.property';\r\n\r\n@Pipe({ name: `${XDateQuarterPrefix}` })\r\nexport class XDateQuarterPipe implements PipeTransform {\r\n constructor() {}\r\n transform(input?: XDate, includeYear = false): string {\r\n if (!input) return '';\r\n return !includeYear ? XDateQuarter(input)! : XDateYearQuarter(input)!;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\n\r\n@Component({\r\n selector: 'x-picker-quarter',\r\n templateUrl: './picker-quarter.component.html',\r\n styleUrls: ['./picker-quarter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe, XDateQuarterPipe]\r\n})\r\nexport class XPickerQuarterComponent extends XPickerQuarterProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public dateQuarterPipe: XDateQuarterPipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setQuarters(this.display);\r\n }\r\n\r\n isStartQuarter(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndQuarter(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setQuarters(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 4; i++) {\r\n const cell = { date: new Date(year, i * 3, 1), isFirstDay: i === 0, isLastDay: i === 3 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fquarter = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fquartery = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fquartery !== fdisplayy;\r\n cell.isNow = fquarter === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fquarter === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fquarter === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n quarterClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleQuarter(date: Date) {\r\n return this.dateQuarterPipe.transform(date);\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setQuarters(this.display);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByQuarter(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n <div class=\"x-picker-quarter-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let quarters of chunkDates\">\r\n <ng-container *ngFor=\"let quarter of quarters; trackBy: trackByQuarter\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter : true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n <div *ngIf=\"!quarterTemp\" class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n <ng-container *ngIf=\"quarterTemp\">\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n start!: number;\r\n end!: number;\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef, public datePipe: DatePipe, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears(this.display);\r\n }\r\n\r\n isStartYear(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n isEndYear(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setYears(date: Date) {\r\n let year = date.getFullYear();\r\n this.start = Math.floor(year / 10) * 10;\r\n this.end = this.start + 9;\r\n let dates: XDateCell[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n const dt = new Date(this.start + i, 1, 1);\r\n const cell: XDateCell = {\r\n date: dt,\r\n isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),\r\n isLastOrNext: i < 0 || i > 9,\r\n isFirstDay: i === 0,\r\n isLastDay: i === 9\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n this.startChange.emit(this.start);\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fyear = this.datePipe.transform(cell.date, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyy');\r\n cell.isNow = fyear === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start!, 'yyyy');\r\n cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end!, 'yyyy');\r\n }\r\n return cell;\r\n }\r\n\r\n yearClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start}` || yearStr > `${this.end}`;\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setYears(this.display);\r\n }\r\n\r\n nextYears(num: number) {\r\n this.start += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.start);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByYear(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let years of chunkDates\">\r\n <ng-container *ngFor=\"let year of years; trackBy: trackByYear\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date : 'yyyy') === (model | date : 'yyyy')\"\r\n title=\"{{ year.date | date : 'yyyy' }}\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker && onTdMouseleave(year)\"\r\n >\r\n <div *ngIf=\"!yearTemp\" class=\"x-date-text\">\r\n {{ year.date | date : 'yyyy' }}\r\n </div>\r\n <ng-container *ngIf=\"yearTemp\">\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime,\r\n XDatePickerPortalPrefix,\r\n XDatePickerPreset,\r\n XDatePickerType\r\n} from './date-picker.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XPositionTopBottom, XAddDays, XTemplate, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XTimePickerFrameComponent } from '@ng-nest/ui/time-picker';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('timePickerFrame') timePickerFrame?: XTimePickerFrameComponent;\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n nodeEmit!: (date: Date, sure?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number | null;\r\n preset: XDatePickerPreset[] = [];\r\n extraFooter?: XTemplate;\r\n inputCom!: XInputComponent;\r\n disabledDate!: XDatePickerDisabledDate;\r\n disabledTime!: XDatePickerDisabledTime;\r\n private _type!: XDatePickerType;\r\n private _unSubject = new Subject<void>();\r\n\r\n get isDatePicker() {\r\n return ['date', 'month', 'year'].includes(this.type);\r\n }\r\n\r\n get sureDisabled() {\r\n let res = XIsUndefined(this.time);\r\n if (this.timePickerFrame && !XIsUndefined(this.time)) {\r\n const dt = new Date(this.time!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame.setDisabled('hours', hours) ||\r\n this.timePickerFrame.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n }\r\n return res;\r\n }\r\n\r\n constructor(public datePipe: DatePipe, public lowerCasePipe: LowerCasePipe, public cdr: ChangeDetectorRef, public i18n: XI18nService) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n }\r\n this._type = this.type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = date;\r\n this.time = this.model.getTime();\r\n this.setDisplay(this.model);\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model = date;\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type)) {\r\n let time = new Date();\r\n if (['date-hour', 'date-minute'].includes(this.type)) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n if (!this.time) {\r\n this.time = time.getTime();\r\n }\r\n this.setModelTime(this.model, new Date(this.time!));\r\n this.nodeEmit(this.model, false);\r\n } else {\r\n this.nodeEmit(this.model);\r\n }\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'month') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n quarterChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'quarter') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'year') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = 'month';\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onToday() {\r\n this.dateChange(new Date());\r\n }\r\n\r\n onYesterday() {\r\n this.dateChange(XAddDays(new Date(), -1));\r\n }\r\n\r\n onTomorrow() {\r\n this.dateChange(XAddDays(new Date(), 1));\r\n }\r\n\r\n onPresetFunc(item: XDatePickerPreset) {\r\n this.dateChange(item.func());\r\n }\r\n\r\n selectTime(time: Date) {\r\n if (!this.model) {\r\n this.model = new Date();\r\n }\r\n this.time = time.getTime();\r\n this.nodeEmit(this.setModelTime(this.model, time), false);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setModelTime(date: Date, time: Date) {\r\n this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());\r\n return this.model;\r\n }\r\n}\r\n","<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XClearClass,\r\n XIsString,\r\n XConfigService,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n @ViewChild('datePicker', { static: true }) datePicker!: ElementRef<HTMLElement>;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: number | string;\r\n isInput = false;\r\n\r\n override writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType = 'date';\r\n this.numberValue = value.getTime();\r\n } else if (XIsNumber(value)) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value)) {\r\n this.modelType = 'string';\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue = !isNaN(valueTime) ? valueTime : '';\r\n } else if (XIsEmpty(value) || XIsNull(value)) {\r\n this.numberValue = '';\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n document = inject(DOCUMENT);\r\n\r\n get getPlaceholder() {\r\n if (this.placeholder) return this.placeholder;\r\n if (this.type === 'month') {\r\n return this.locale.selectMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.selectQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.selectYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.selectWeek;\r\n } else {\r\n return this.locale.selectDate;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public configService: XConfigService,\r\n public override cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private i18n: XI18nService,\r\n private elementRef: ElementRef,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n setFormat() {\r\n if (this.format !== 'yyyy-MM-dd') return;\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'quarter') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!this.clearable) return;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.inputClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (!this.clearable) return;\r\n if (this.inputClearable) {\r\n this.icon = 'fto-calendar';\r\n this.inputClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = null;\r\n this.numberValue = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n this.formControlValidator();\r\n }\r\n\r\n getValue() {\r\n if (this.numberValue === '') return null;\r\n return ['date', 'string'].includes(this.modelType) ? new Date(this.numberValue) : this.numberValue;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n preset: this.preset,\r\n extraFooter: this.extraFooter,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n inputCom: this.inputCom,\r\n disabledDate: this.disabledDate,\r\n disabledTime: this.disabledTime,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date, sure = true) => this.onNodeClick(node, sure),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput = false;\r\n if (sure) {\r\n this.numberValue = date.getTime();\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(this.numberValue);\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput && isNaN(this.displayValue) && !isNaN(Date.parse(this.displayValue)) && !['week', 'quarter'].includes(this.type)) {\r\n this.displayValue = this.datePipe.transform(this.displayValue, this.format);\r\n this.numberValue = new Date(this.displayValue).getTime();\r\n this.value = this.getValue();\r\n this.modelChange();\r\n this.isInput = false;\r\n } else {\r\n if (this.type === 'week') {\r\n this.displayValue = XDateYearWeek(dateNumber);\r\n } else if (this.type === 'quarter') {\r\n this.displayValue = XDateYearQuarter(dateNumber);\r\n } else {\r\n this.displayValue = this.datePipe.transform(dateNumber, this.format);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n XDateRangePortalPrefix,\r\n XDatePickerType,\r\n XDateCell,\r\n XDateRangePreset,\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XConnectBaseAnimation,\r\n XPositionTopBottom,\r\n XAddMonths,\r\n XAddYears,\r\n XIsNull,\r\n XTemplate,\r\n XIsArray,\r\n XIsNumber,\r\n XIsString,\r\n XAddDays\r\n} from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XTimePickerFrameComponent } from '@ng-nest/ui/time-picker';\r\n\r\n@Component({\r\n selector: `${XDateRangePortalPrefix}`,\r\n templateUrl: './date-range-portal.component.html',\r\n styleUrls: ['./date-range-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDateRangePortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('startPicker') startPicker!: XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent;\r\n @ViewChild('endPicker') endPicker!: XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent;\r\n @ViewChild('timePickerFrame') timePickerFrame?: XTimePickerFrameComponent;\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n startModel!: Date | null;\r\n endModel!: Date | null;\r\n startYear!: number;\r\n startDisplay: Date = new Date();\r\n endDisplay: Date = XAddMonths(this.startDisplay, 1);\r\n value: (number | null)[] = [];\r\n valueChange!: Subject<number[]>;\r\n positionChange!: Subject<any>;\r\n activeTypeChange!: Subject<'start' | 'end'>;\r\n activeType!: 'start' | 'end';\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n disabledDate!: XDatePickerDisabledDate;\r\n disabledTime!: XDatePickerDisabledTime;\r\n nodeEmit!: (date: Date[], close?: boolean) => void;\r\n startNodeEmit!: (date: Date | null, close?: boolean, isDatePicker?: boolean) => void;\r\n endNodeEmit!: (date: Date | null, close?: boolean, isDatePicker?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number | null;\r\n timeDisplay: Date = new Date();\r\n timeModel!: Date | null;\r\n timeHover = false;\r\n nodeClickCount = 0;\r\n preset: XDateRangePreset[] = [];\r\n extraFooter?: XTemplate;\r\n private _unSubject = new Subject<void>();\r\n\r\n get isDatePicker() {\r\n return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type);\r\n }\r\n\r\n get sureDisabled() {\r\n if (this.timePickerFrame && !XIsEmpty(this.time)) {\r\n const dt = new Date(this.time!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame.setDisabled('hours', hours) ||\r\n this.timePickerFrame.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n constructor(public datePipe: DatePipe, public lowerCasePipe: LowerCasePipe, public cdr: ChangeDetectorRef, public i18n: XI18nService) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.activeTypeChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.activeType = x;\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.value = [null, null];\r\n this.model = this.display;\r\n this.startModel = this.model;\r\n this.endModel = this.setModelByType(this.model, this.isDatePicker ? 1 : 0);\r\n this.setDisplay(this.model);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setModelByType(byModel: Date, num: number = 1) {\r\n if (['month', 'quarter'].includes(this.type)) {\r\n return XAddYears(byModel!, num);\r\n } else if (this.type === 'year') {\r\n return XAddYears(byModel!, 10 * num);\r\n } else {\r\n return XAddMonths(byModel!, num);\r\n }\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n if (this.type === 'week') return;\r\n this.startPicker?.setDatesState(cell);\r\n this.endPicker?.setDatesState(cell);\r\n }\r\n\r\n setDefault() {\r\n const type = this.activeType || 'start';\r\n this.timeHover = !this.value.every((x) => x === null);\r\n if (type === 'start') {\r\n this.startModel = new Date(this.value[0]!);\r\n this.startDisplay = this.startModel;\r\n this.endModel = this.setModelByType(this.startModel, this.isDatePicker ? 1 : 0);\r\n this.endDisplay = this.endModel!;\r\n this.timeModel = this.startModel;\r\n this.timeDisplay = this.startDisplay;\r\n this.time = this.startModel.getTime();\r\n } else if (type === 'end') {\r\n this.endModel = new Date(this.value[1]!);\r\n this.endDisplay = this.endModel;\r\n this.startModel = this.setModelByType(this.endModel, this.isDatePicker ? -1 : 0);\r\n this.startDisplay = this.startModel!;\r\n this.timeModel = this.endModel;\r\n this.timeDisplay = this.endDisplay;\r\n this.time = this.endModel.getTime();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.startDisplay = this.display;\r\n this.endDisplay = this.setModelByType(this.display, this.isDatePicker ? 1 : 0);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.nodeClickCount++;\r\n let close = this.nodeClickCount === 2;\r\n let time = this.setDateChangeTime(date);\r\n date = new Date(time);\r\n if (this.activeType === 'start') {\r\n this.value[0] = time;\r\n if (!XIsNull(this.value[1]) && time > this.value[1]!) {\r\n if (this.nodeClickCount === 2) {\r\n this.nodeClickCount--;\r\n }\r\n close = false;\r\n this.endModel = null;\r\n this.value[1] = null;\r\n if (!this.isDatePicker) {\r\n this.timeHover = false;\r\n }\r\n this.endNodeEmit(null, close, this.isDatePicker);\r\n }\r\n this.startNodeEmit(date, close, this.isDatePicker);\r\n } else if (this.activeType === 'end') {\r\n this.value[1] = time;\r\n if (!XIsNull(this.value[0]) && time < this.value[0]!) {\r\n if (this.nodeClickCount === 2) {\r\n this.nodeClickCount--;\r\n }\r\n close = false;\r\n this.startModel = null;\r\n this.value[0] = null;\r\n if (!this.isDatePicker) {\r\n this.timeHover = false;\r\n }\r\n this.startNodeEmit(null, close, this.isDatePicker);\r\n }\r\n this.endNodeEmit(date, close, this.isDatePicker);\r\n }\r\n if (!this.value.includes(null) && this.isDatePicker) {\r\n this.nodeEmit(\r\n this.value.map((x) => new Date(x!)),\r\n close\r\n );\r\n }\r\n }\r\n\r\n setDateChangeTime(date: Date) {\r\n if (this.isDatePicker) {\r\n return date.getTime();\r\n } else {\r\n let time = new Date();\r\n if (this.time) {\r\n time = new Date(this.time);\r\n } else {\r\n this.time = time.getTime();\r\n }\r\n if (['date-hour', 'date-minute'].includes(this.type)) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds()).getTime();\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear = number;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.startYear);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time = time.getTime();\r\n if (XIsEmpty(this.timeModel)) {\r\n this.timeModel = new Date();\r\n }\r\n this.timeModel?.setHours(time.getHours());\r\n this.timeModel?.setMinutes(time.getMinutes());\r\n this.timeModel?.setSeconds(time.getSeconds());\r\n this.dateChange(this.timeModel!);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n sureTime() {\r\n if (this.sureDisabled) return;\r\n const [start, end] = this.value;\r\n if (XIsNull(start) && !XIsNull(end)) {\r\n this.time = null;\r\n this.timeHover = true;\r\n this.endNodeEmit(new Date(end!), false, true);\r\n } else if (!XIsNull(start) && XIsNull(end)) {\r\n this.time = null;\r\n this.timeHover = true;\r\n this.startNodeEmit(new Date(start!), false, true);\r\n } else {\r\n this.nodeEmit(\r\n this.value.map((x) => new Date(x!)),\r\n true\r\n );\r\n }\r\n }\r\n\r\n yearChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay = XAddYears(this.endDisplay, num);\r\n } else if (type === 'end') {\r\n this.startDisplay = XAddYears(this.startDisplay, num);\r\n }\r\n }\r\n\r\n monthChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay = XAddMonths(this.endDisplay, num);\r\n } else if (type === 'end') {\r\n this.startDisplay = XAddMonths(this.startDisplay, num);\r\n }\r\n }\r\n\r\n onPreset(type: 'week' | 'month' | 'year', num = 0) {\r\n let now = new Date();\r\n if (type === 'week') {\r\n now = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n const week = now.getDay();\r\n const weekList = [1, 2, 3, 4, 5, 6, 7];\r\n const index = weekList.indexOf(week);\r\n this.nodeEmit([XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)], true);\r\n } else if (type === 'month') {\r\n const month = XAddMonths(now, num);\r\n const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);\r\n const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);\r\n this.nodeEmit([firstDay, lastDay], true);\r\n } else if (type === 'year') {\r\n let year = XAddYears(now, num);\r\n let firstDay = new Date(year.getFullYear(), 0, 1);\r\n let lastDay = XAddDays(XAddYears(firstDay, 1), -1);\r\n this.nodeEmit([firstDay, lastDay], true);\r\n }\r\n }\r\n\r\n onPresetFunc(item: XDateRangePreset) {\r\n let value = item.func();\r\n if (XIsArray(value) && value.length > 1) {\r\n if (XIsNumber(value[0]) || XIsString(value[0])) {\r\n value = value.map((x) => new Date(x));\r\n }\r\n this.nodeEmit(value, true);\r\n }\r\n }\r\n}\r\n","<div class=\"x-date-range-portal {{ type }}\">\r\n <div class=\"x-date-range-portal-body\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type = 'week'\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type = 'week'\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && sureTime()\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-range-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'thisWeek'\" (click)=\"onPreset('week', 0)\">{{ locale.thisWeek }}</x-link>\r\n <x-link *ngIf=\"item.id === 'lastWeek'\" (click)=\"onPreset('week', -1)\">{{ locale.lastWeek }}</x-link>\r\n <x-link *ngIf=\"item.id === 'nextWeek'\" (click)=\"onPreset('week', 1)\">{{ locale.nextWeek }}</x-link>\r\n <x-link *ngIf=\"item.id === 'thisMonth'\" (click)=\"onPreset('month', 0)\">{{ locale.thisMonth }}</x-link>\r\n <x-link *ngIf=\"item.id === 'lastMonth'\" (click)=\"onPreset('month', -1)\">{{ locale.lastMonth }}</x-link>\r\n <x-link *ngIf=\"item.id === 'nextMonth'\" (click)=\"onPreset('month', 1)\">{{ locale.nextMonth }}</x-link>\r\n <x-link *ngIf=\"item.id === 'thisYear'\" (click)=\"onPreset('year', 0)\">{{ locale.thisYear }}</x-link>\r\n <x-link *ngIf=\"item.id === 'lastYear'\" (click)=\"onPreset('year', -1)\">{{ locale.lastYear }}</x-link>\r\n <x-link *ngIf=\"item.id === 'nextYear'\" (click)=\"onPreset('year', 1)\">{{ locale.nextYear }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XDatePickerModelType, XDateRangePrefix, XDateRangeProperty } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XClearClass,\r\n XIsString,\r\n XConfigService,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\n\r\n@Component({\r\n selector: `${XDateRangePrefix}`,\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDateRangeComponent), DatePipe]\r\n})\r\nexport class XDateRangeComponent extends XDateRangeProperty implements OnInit, OnChanges {\r\n @ViewChild('dateRange', { static: true }) dateRange!: ElementRef<HTMLElement>;\r\n @ViewChild('inputGroup', { static: true }) inputGroup!: XInputGroupComponent;\r\n @ViewChild('inputStartCom', { static: true }) inputStartCom!: XInputComponent;\r\n @ViewChild('inputEndCom', { static: true }) inputEndCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: (number | null)[];\r\n isInput = false;\r\n showClearable: boolean = false;\r\n\r\n get getStartPlaceholder() {\r\n if (this.placeholder && this.placeholder.length > 0) return this.placeholder[0];\r\n if (this.type === 'month') {\r\n return this.locale.startMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.startQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.startYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.startWeek;\r\n } else {\r\n return this.locale.startDate;\r\n }\r\n }\r\n\r\n get getEndPlaceholder() {\r\n if (this.placeholder && this.placeholder.length > 1) return this.placeholder[1];\r\n if (this.type === 'month') {\r\n return this.locale.endMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.endQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.endYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.endWeek;\r\n } else {\r\n return this.locale.endDate;\r\n }\r\n }\r\n\r\n override get requiredIsEmpty() {\r\n return this.validator && this.required && XIsEmpty(this.value);\r\n }\r\n\r\n override writeValue(value: any) {\r\n if (XIsEmpty(value)) {\r\n value = [];\r\n this.numberValue = [];\r\n }\r\n if (value.length > 0) {\r\n if (XIsDate(value[0])) {\r\n this.modelType = 'date';\r\n this.numberValue = value.map((x: Date) => x.getTime());\r\n } else if (XIsNumber(value[0])) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value[0])) {\r\n this.modelType = 'string';\r\n const valueTime = value.map((x: string) => new Date(x).getTime());\r\n this.numberValue = !isNaN(valueTime[0]) ? valueTime : [];\r\n }\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: string[] = [];\r\n portal!: XPortalOverlayRef<XDateRangePortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n activeTypeChange = new Subject<'start' | 'end'>();\r\n startDisplay: string | number = '';\r\n endDisplay: string | number = '';\r\n activeType?: 'start' | 'end';\r\n flexClass: string[] = [];\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n document = inject(DOCUMENT);\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public configService: XConfigService,\r\n public override cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private overlay: Overlay,\r\n private i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setHostTypeClass();\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type, justify, align, direction, size, labelAlign } = changes;\r\n XIsChange(size, labelAlign) && this.setClassMap();\r\n XIsChange(justify, align, direction) && this.setFlexClass();\r\n if (XIsChange(type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n setFlexClass() {\r\n if (this.flexClass.length > 0) {\r\n for (let cls of this.flexClass) {\r\n this.renderer.removeClass(this.dateRange.nativeElement, cls);\r\n }\r\n }\r\n this.flexClass = this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n }\r\n\r\n setHostTypeClass() {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-date-range-${this.type}`);\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n setFormat() {\r\n if (this.format !== 'yyyy-MM-dd') return;\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.showClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-calendar';\r\n this.showClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = [];\r\n this.numberValue = [];\r\n this.startDisplay = '';\r\n this.endDisplay = '';\r\n this.mleave();\r\n this.valueChange.next(this.numberValue);\r\n this.formControlValidator();\r\n this.modelChange();\r\n this.inputStartCom.inputFocus();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onIconClick(event: Event) {\r\n if (this.icon === 'fto-x') {\r\n this.clearEmit();\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.modelType === 'date'\r\n ? this.numberValue.map((x) => new Date(x!))\r\n : this.modelType === 'string'\r\n ? this.numberValue.map((x) => this.datePipe.transform(x, this.format))\r\n : this.numberValue;\r\n }\r\n\r\n getNumberValue() {\r\n return this.modelType === 'date'\r\n ? this.value.map((x: Date) => x.getTime())\r\n : this.modelType === 'string'\r\n ? this.value.map((x: string) => new Date(x).getTime())\r\n : this.value;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.closeReduction();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n closeReduction() {\r\n if (!this.numberValue || this.numberValue.length === 0 || this.numberValue.includes(null)) {\r\n if (!this.value || this.value.length === 0) {\r\n this.startDisplay = '';\r\n this.endDisplay = '';\r\n this.numberValue = [];\r\n } else {\r\n this.numberValue = this.getNumberValue();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n if (!this.numberValue.includes(null) && this.value && !this.value.includes(null)) {\r\n let numberValue = this.getNumberValue();\r\n if (this.numberValue[0] !== numberValue[0] || this.numberValue[1] !== numberValue[1]) {\r\n this.numberValue = numberValue;\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal($event: Event, type?: 'start' | 'end') {\r\n type && $event.stopPropagation();\r\n if (this.disabled || this.animating) return;\r\n this.activeType = type || 'start';\r\n this.activeTypeChange.next(this.activeType);\r\n if (this.active) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDateRangePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe((event: MouseEvent) => {\r\n const clickTarget = event.target as HTMLElement;\r\n if (clickTarget !== this.inputStartCom.inputRef.nativeElement && clickTarget !== this.inputEndCom.inputRef.nativeElement) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n activeType: this.activeType,\r\n extraFooter: this.extraFooter,\r\n preset: this.preset,\r\n activeTypeChange: this.activeTypeChange,\r\n disabledDate: this.disabledDate,\r\n disabledTime: this.disabledTime,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (dates: Date[], close = true) => this.onNodeClick(dates, close),\r\n startNodeEmit: (node: Date, close = false, isDatePicker: boolean = true) => this.startNodeClick(node, close, isDatePicker),\r\n endNodeEmit: (node: Date, close = false, isDatePicker: boolean = true) => this.endNodeClick(node, close, isDatePicker),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n startNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.startDisplay = !node\r\n ? ''\r\n : this.type === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.format)!;\r\n if (!close && isDatePicker) {\r\n this.inputEndCom.inputFocus('after');\r\n this.activeTypeChange.next('end');\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n endNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.endDisplay = !node\r\n ? ''\r\n : this.type === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.format)!;\r\n if (!close && isDatePicker) {\r\n this.inputStartCom.inputFocus('after');\r\n this.activeTypeChange.next('start');\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onNodeClick(dates: Date[], close = true) {\r\n this.isInput = false;\r\n this.numberValue = dates.map((x) => x.getTime());\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.formControlValidator();\r\n if (close) {\r\n this.closeSubject.next();\r\n }\r\n this.modelChange();\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n onFocus(type: 'start' | 'end') {\r\n this.activeType = type;\r\n this.activeChange.next(this.activeType);\r\n }\r\n\r\n setDisplayValue(dateNumber: (number | null)[]) {\r\n if (!dateNumber) return;\r\n if (!XIsNull(dateNumber[0])) {\r\n if (this.type === 'week') {\r\n this.startDisplay = XDateYearWeek(dateNumber[0]!)!;\r\n } else if (this.type === 'quarter') {\r\n this.startDisplay = XDateYearQuarter(dateNumber[0]!)!;\r\n } else {\r\n this.startDisplay = this.datePipe.transform(dateNumber[0], this.format) as string;\r\n }\r\n }\r\n if (!XIsNull(dateNumber[1])) {\r\n if (this.type === 'week') {\r\n this.endDisplay = XDateYearWeek(dateNumber[1]!)!;\r\n } else if (this.type === 'quarter') {\r\n this.endDisplay = XDateYearQuarter(dateNumber[1]!)!;\r\n } else {\r\n this.endDisplay = this.datePipe.transform(dateNumber[1], this.format) as string;\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputGroup.elementRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-range-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XDateRangePrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-date-range-bordered]=\"bordered\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n <label *ngIf=\"label\" [class.x-date-range-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" (mouseenter)=\"menter()\" (mouseleave)=\"mleave()\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getStartPlaceholder\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-data-range-input x-data-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getEndPlaceholder\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable\"\r\n ></x-input>\r\n <div *ngIf=\"active\" class=\"x-date-range-active-bar\"></div>\r\n </x-input-group>\r\n <span class=\"x-date-range-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport {\r\n XDatePickerProperty,\r\n XPickerDateProperty,\r\n XPickerMonthProperty,\r\n XPickerYearProperty,\r\n XDateRangeProperty,\r\n XPickerQuarterProperty\r\n} from './date-picker.property';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XDateRangeComponent } from './date-range.component';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDatePickerComponent,\r\n XDatePickerPortalComponent,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XDatePickerProperty,\r\n XPickerDateProperty,\r\n XPickerMonthProperty,\r\n XPickerQuarterProperty,\r\n XPickerYearProperty,\r\n XDateRangeComponent,\r\n XDateRangePortalComponent,\r\n XDateRangeProperty,\r\n XDateQuarterPipe\r\n ],\r\n exports: [\r\n XDatePickerComponent,\r\n XDateRangeComponent,\r\n XDatePickerPortalComponent,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XDateQuarterPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XTimePickerModule,\r\n XInputModule,\r\n XLinkModule,\r\n XButtonModule,\r\n XIconModule,\r\n XI18nModule,\r\n XBaseFormModule,\r\n XOutletModule\r\n ]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.XDateQuarterPipe","i3","i4","i5","i2","i7.XPickerDateComponent","i8.XPickerMonthComponent","i9.XPickerQuarterComponent","i10.XPickerYearComponent","i1","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-date-picker.mjs","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.html","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.html","../../../../lib/ng-nest/ui/date-picker/date-quarter.pipe.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.html","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.html","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-range.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XProperty,\r\n XBoolean,\r\n XCorner,\r\n XWithConfig,\r\n XSize,\r\n XTemplate,\r\n XDataConvert,\r\n XData,\r\n XIdentityProperty\r\n} from '@ng-nest/ui/core';\r\nimport { Input, EventEmitter, Output, TemplateRef, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ selector: `${XDatePickerPrefix}-property`, template: '' })\r\nexport class XDatePickerProperty extends XControlValueAccessor<any> implements XDatePickerOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n @Input() @XDataConvert() preset: XData<XDatePickerPreset> = [];\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n @Input() extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n @Input() disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n * @undocument true\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Choose a type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: XBoolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * DateRange\r\n * @selector x-date-range\r\n * @decorator component\r\n */\r\nexport const XDateRangePrefix = 'x-date-range';\r\nconst X_CONFIG_RANGE_NAME = 'dateRange';\r\n\r\n/**\r\n * DateRange Property\r\n */\r\n@Component({ selector: `${XDateRangePrefix}-property`, template: '' })\r\nexport class XDateRangeProperty extends XControlValueAccessor<any> implements XDateRangeOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_RANGE_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_RANGE_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_RANGE_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_RANGE_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n @Input() @XDataConvert() preset: XData<XDateRangePreset> = [];\r\n /**\r\n * @zh_CN 日期提示信息\r\n * @en_US Placeholder of date input\r\n */\r\n @Input() override placeholder?: string[];\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n @Input() extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n @Input() disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number[]>();\r\n}\r\n\r\n/**\r\n * DateRange Option\r\n * @undocument true\r\n */\r\nexport interface XDateRangeOption extends XFormOption {\r\n /**\r\n * @zh_CN tab 键控制次序\r\n * @en_US Tab key control order\r\n */\r\n tabindex?: number;\r\n /**\r\n * @zh_CN 日期提示信息\r\n * @en_US Placeholder of date input\r\n */\r\n placeholder?: string[];\r\n}\r\n\r\n/**\r\n * @zh_CN 禁用日期的自定义类型\r\n * @en_US 禁用日期的自定义类型\r\n */\r\nexport type XDatePickerDisabledDate = (current: Date) => boolean;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义类型\r\n * @en_US 禁用时间的自定义类型\r\n */\r\nexport type XDatePickerDisabledTime = (type?: XDatePickerRangType) => XDatePickerDisabledTimeFn;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义函数\r\n * @en_US 禁用时间的自定义函数\r\n */\r\nexport type XDatePickerDisabledTimeFn = {\r\n /**\r\n * @zh_CN 禁用小时的自定义函数\r\n * @en_US 禁用小时的自定义函数\r\n */\r\n disabledHours?: () => number[];\r\n /**\r\n * @zh_CN 禁用分钟的自定义函数\r\n * @en_US 禁用分钟的自定义函数\r\n */\r\n disabledMinutes?: () => number[];\r\n /**\r\n * @zh_CN 禁用秒的自定义函数\r\n * @en_US 禁用秒的自定义函数\r\n */\r\n disabledSeconds?: () => number[];\r\n};\r\n\r\n/**\r\n * @zh_CN 快捷选择按钮\r\n * @en_US Quick selection button\r\n */\r\nexport interface XDatePickerPreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date;\r\n}\r\n\r\n/**\r\n * @zh_CN 快捷范围选择按钮\r\n * @en_US Quick range selection button\r\n */\r\nexport interface XDateRangePreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date[];\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType = 'date' | 'week' | 'month' | 'quarter' | 'year' | 'date-time' | 'date-hour' | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * DateRange Portal\r\n * @selector x-date-range-portal\r\n * @decorator component\r\n */\r\nexport const XDateRangePortalPrefix = 'x-date-range-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ selector: `${XPickerDatePrefix}-property`, template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n @Input() dateTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Last month\r\n */\r\n @Input() @XInputBoolean() lastMonthBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Next month\r\n */\r\n @Input() @XInputBoolean() nextMonthBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围 hover 效果\r\n * @en_US Range hover style\r\n */\r\n @Input() @XInputBoolean() rangeHover: XBoolean = true;\r\n /**\r\n * @zh_CN 范围日期\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示日期事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围日期 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围日期 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的日期点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * @zh_CN 单个日期数据对象\r\n * @en_US 单个日期数据对象\r\n */\r\nexport interface XDateCell {\r\n /**\r\n * @zh_CN 日期\r\n * @en_US Date\r\n */\r\n date?: Date;\r\n /**\r\n * @zh_CN 上个月或下个月的日期\r\n * @en_US Date of the previous or next month\r\n */\r\n isLastOrNext?: boolean;\r\n /**\r\n * @zh_CN 当天\r\n * @en_US Same day\r\n */\r\n isNow?: boolean;\r\n /**\r\n * @zh_CN 当月第一天\r\n * @en_US The first day of the month\r\n */\r\n isFirstDay?: boolean;\r\n /**\r\n * @zh_CN 当月最后一天\r\n * @en_US The last day of the month\r\n */\r\n isLastDay?: boolean;\r\n /**\r\n * @zh_CN 范围内日期\r\n * @en_US 范围内日期\r\n */\r\n isInRange?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 选中\r\n * @en_US 范围内 hover 选中\r\n */\r\n isInRangeHover?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期左边\r\n * @en_US 范围内 hover 当前日期左边\r\n */\r\n isInRangeHoverLeft?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期右边\r\n * @en_US 范围内 hover 当前日期右边\r\n */\r\n isInRangeHoverRight?: boolean;\r\n /**\r\n * @zh_CN 选中开始左边\r\n * @en_US Range start left\r\n */\r\n isRangeStartLeft?: boolean;\r\n /**\r\n * @zh_CN 选中开始右边\r\n * @en_US Range start right\r\n */\r\n isRangeStartRight?: boolean;\r\n /**\r\n * @zh_CN 选中结束左边\r\n * @en_US Range start left\r\n */\r\n isRangeEndLeft?: boolean;\r\n /**\r\n * @zh_CN 选中结束右边\r\n * @en_US Range start right\r\n */\r\n isRangeEndRight?: boolean;\r\n /**\r\n * @zh_CN 范围 hover\r\n * @en_US Range hover\r\n */\r\n isRangeHover?: boolean;\r\n /**\r\n * @zh_CN hover 当前开始\r\n * @en_US Range hover start\r\n */\r\n isRangeHoverStart?: boolean;\r\n /**\r\n * @zh_CN hover 当前结束\r\n * @en_US End date\r\n */\r\n isRangeHoverEnd?: boolean;\r\n /**\r\n * @zh_CN hover 开始左边\r\n * @en_US Range hover start left\r\n */\r\n isRangeHoverStartLeft?: boolean;\r\n /**\r\n * @zh_CN hover 开始右边\r\n * @en_US Range hover start right\r\n */\r\n isRangeHoverStartRight?: boolean;\r\n /**\r\n * @zh_CN hover 结束左边\r\n * @en_US Range hover end left\r\n */\r\n isRangeHoverEndLeft?: boolean;\r\n /**\r\n * @zh_CN hover 结束右边\r\n * @en_US Range hover end right\r\n */\r\n isRangeHoverEndRight?: boolean;\r\n /**\r\n * @zh_CN 当前选中日期\r\n * @en_US Current selected date\r\n */\r\n isActive?: boolean;\r\n /**\r\n * @zh_CN 禁用日期\r\n * @en_US Disabled date\r\n */\r\n isDisabled?: boolean;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 第几周\r\n * @en_US Week\r\n */\r\n week?: number;\r\n}\r\n\r\n/**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\nexport type XDatePickerRangType = 'start' | 'end';\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ selector: `${XPickerMonthPrefix}-property`, template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() monthTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示月份事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的月份点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * PickerQuarter\r\n * @selector x-picker-quarter\r\n * @decorator component\r\n */\r\nexport const XPickerQuarterPrefix = 'x-picker-quarter';\r\n\r\n/**\r\n * PickerQuarter Property\r\n */\r\n@Component({ selector: `${XPickerQuarterPrefix}-property`, template: '' })\r\nexport class XPickerQuarterProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 季度显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() quarterTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示季度事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围季度 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围季度 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的季度点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n\r\n/**\r\n * DateQuarter\r\n * @selector xDateQuarter\r\n * @decorator pipe\r\n */\r\nexport const XDateQuarterPrefix = 'xDateQuarter';\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ selector: `${XPickerYearPrefix}-property`, template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date | null;\r\n /**\r\n * @zh_CN 年份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() yearTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n @Input() @XInputBoolean() showHeader: XBoolean = true;\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n @Input() @XInputBoolean() rangePicker?: XBoolean;\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n @Input() @XInputBoolean() lastYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n @Input() @XInputBoolean() nextYearBtn: XBoolean = true;\r\n /**\r\n * @zh_CN 范围年份\r\n * @en_US Range date\r\n */\r\n @Input() rangeValue: (number | null)[] = [];\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n @Input() rangeType!: XDatePickerRangType;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n @Input() disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Output() typeChange = new EventEmitter<XDatePickerType>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n @Output() startChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n @Output() yearChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n @Output() monthChange = new EventEmitter<number>();\r\n /**\r\n * @zh_CN 显示月份事件\r\n * @en_US display date event\r\n */\r\n @Output() displayChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n @Output() rangeTdMouseenter = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n @Output() rangeTdMouseleave = new EventEmitter<XDateCell>();\r\n /**\r\n * @zh_CN 范围中的月份点击事件\r\n * @en_US Range date click event\r\n */\r\n @Output() rangeDateClick = new EventEmitter<XDateCell>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction, XDateWeek, XDateYearWeek } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n titles = [\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ];\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n weekDates: XDateCell[][] = [];\r\n clickCell?: XDateCell;\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n get isWeek() {\r\n return this.type === 'week';\r\n }\r\n\r\n get isWeekRange() {\r\n return this.type === 'week' && this.rangePicker;\r\n }\r\n\r\n get isNotWeekRange() {\r\n return this.type !== 'week' && this.rangePicker;\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display);\r\n }\r\n\r\n isWeekActive(week: XDateCell[]) {\r\n if (week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.model!);\r\n }\r\n return false;\r\n }\r\n\r\n isStartWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue[0]!);\r\n }\r\n return false;\r\n }\r\n\r\n isEndWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue[1]!);\r\n }\r\n return false;\r\n }\r\n\r\n isInRangeWeek(week: XDateCell[]) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0]) && !XIsNull(this.rangeValue[1]) && week.length > 1) {\r\n let time = week[1].date?.getTime()!;\r\n return time > this.rangeValue[0]! && time < this.rangeValue[1]!;\r\n }\r\n return false;\r\n }\r\n\r\n isStartDate(date: Date) {\r\n if (this.type === 'week' || !this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n isEndDate(date: Date) {\r\n if (this.type === 'week' || !this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n setTitles() {\r\n if (this.type === 'week') {\r\n this.titles = ['datePicker.week', ...this.titles];\r\n }\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: XDateCell[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n const cell = { date: new Date(year, month, index) };\r\n dates = [this.setDayState(cell), ...dates];\r\n day = cell.date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n const cell: XDateCell = { date: new Date(year, month, index), isFirstDay: index === 1, isLastDay: index === lastDate };\r\n dates = [...dates, this.setDayState(cell)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n const cell = { date: new Date(year, month + 1, index) };\r\n dates = [...dates, this.setDayState(cell)];\r\n day = cell.date.getDay();\r\n }\r\n\r\n this.dates = dates;\r\n this.weekDates = XChunk(dates, 7);\r\n\r\n if (this.type === 'week') {\r\n for (let item of this.dates) {\r\n item.week = XDateWeek(item.date!);\r\n }\r\n for (let week of this.weekDates) {\r\n week.unshift({ type: 'week', week: week[0].week! });\r\n }\r\n }\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');\r\n const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fdisplaym = this.datePipe.transform(this.display, 'yyyyMM');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');\r\n cell.isLastOrNext = fdatem !== fdisplaym;\r\n cell.isNow = fdate === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start!, 'yyyyMMdd');\r\n cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end!, 'yyyyMMdd');\r\n }\r\n return cell;\r\n }\r\n\r\n dateClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setDays(this.display);\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.monthChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByNode(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let weeks of weekDates\"\r\n [class.x-date-week-active]=\"!rangePicker && isWeek && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange && isInRangeWeek(weeks)\"\r\n >\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker && week.type !== 'week' && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\r\n \"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n <ng-container [ngSwitch]=\"week.type\">\r\n <ng-container *ngSwitchCase=\"'week'\">{{ week.week }}</ng-container>\r\n <ng-container *ngSwitchDefault>{{ week.date | date : 'd' }}</ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths(this.display);\r\n }\r\n\r\n isStartMonth(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndMonth(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setMonths(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fmonthy = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fmonthy !== fdisplayy;\r\n cell.isNow = fmonth === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n monthClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setMonths(this.display);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByMonth(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of chunkDates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ month.date | date : 'yyyy-MM' }}\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker && onTdMouseleave(month)\"\r\n >\r\n <div *ngIf=\"!monthTemp\" class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XDate, XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';\r\nimport { XDateQuarterPrefix } from './date-picker.property';\r\n\r\n@Pipe({ name: `${XDateQuarterPrefix}` })\r\nexport class XDateQuarterPipe implements PipeTransform {\r\n constructor() {}\r\n transform(input?: XDate, includeYear = false): string {\r\n if (!input) return '';\r\n return !includeYear ? XDateQuarter(input)! : XDateYearQuarter(input)!;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\n\r\n@Component({\r\n selector: 'x-picker-quarter',\r\n templateUrl: './picker-quarter.component.html',\r\n styleUrls: ['./picker-quarter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe, XDateQuarterPipe]\r\n})\r\nexport class XPickerQuarterComponent extends XPickerQuarterProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public dateQuarterPipe: XDateQuarterPipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setQuarters(this.display);\r\n }\r\n\r\n isStartQuarter(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndQuarter(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setQuarters(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 4; i++) {\r\n const cell = { date: new Date(year, i * 3, 1), isFirstDay: i === 0, isLastDay: i === 3 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fquarter = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fquartery = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fquartery !== fdisplayy;\r\n cell.isNow = fquarter === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fquarter === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fquarter === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n quarterClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleQuarter(date: Date) {\r\n return this.dateQuarterPipe.transform(date);\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setQuarters(this.display);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.typeChange.emit(type);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByQuarter(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n <div class=\"x-picker-quarter-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let quarters of chunkDates\">\r\n <ng-container *ngFor=\"let quarter of quarters; trackBy: trackByQuarter\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter : true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n <div *ngIf=\"!quarterTemp\" class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n <ng-container *ngIf=\"quarterTemp\">\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n now = new Date();\r\n dates: XDateCell[] = [];\r\n chunkDates: XDateCell[][] = [];\r\n start!: number;\r\n end!: number;\r\n\r\n get rangeStart() {\r\n if (this.rangeValue && this.rangeValue.length > 0) {\r\n return this.rangeValue[0];\r\n }\r\n return '';\r\n }\r\n\r\n get rangeEnd() {\r\n if (this.rangeValue && this.rangeValue.length > 1) {\r\n return this.rangeValue[1];\r\n }\r\n return '';\r\n }\r\n\r\n isDisabled(date: Date) {\r\n if (this.disabledDate && XIsFunction(this.disabledDate)) {\r\n return this.disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef, public datePipe: DatePipe, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears(this.display);\r\n }\r\n\r\n isStartYear(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[0])) {\r\n return this.datePipe.transform(this.rangeValue[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n isEndYear(date: Date) {\r\n if (!this.rangeType || !this.rangeValue) return;\r\n if (!XIsNull(this.rangeValue[1])) {\r\n return this.datePipe.transform(this.rangeValue[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n for (let item of this.dates) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover = (time < end! && itemTime >= time && itemTime < end!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) || (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue;\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.clearState(...this.dates);\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setYears(date: Date) {\r\n let year = date.getFullYear();\r\n this.start = Math.floor(year / 10) * 10;\r\n this.end = this.start + 9;\r\n let dates: XDateCell[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n const dt = new Date(this.start + i, 1, 1);\r\n const cell: XDateCell = {\r\n date: dt,\r\n isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),\r\n isLastOrNext: i < 0 || i > 9,\r\n isFirstDay: i === 0,\r\n isLastDay: i === 9\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates = dates;\r\n this.chunkDates = XChunk(dates, 4);\r\n this.startChange.emit(this.start);\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fyear = this.datePipe.transform(cell.date, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyy');\r\n cell.isNow = fyear === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker) {\r\n if (!this.rangeValue) return cell;\r\n const [start, end] = this.rangeValue;\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start!, 'yyyy');\r\n cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end!, 'yyyy');\r\n }\r\n return cell;\r\n }\r\n\r\n yearClick(cell: XDateCell) {\r\n this.model = cell.date;\r\n this.modelChange.emit(cell.date);\r\n if (this.rangePicker) {\r\n this.clearState(...this.dates);\r\n for (let item of this.dates) {\r\n this.setDayState(item);\r\n }\r\n this.rangeDateClick.emit(cell);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start}` || yearStr > `${this.end}`;\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType === 'end') {\r\n return this.rangeStart !== '' && date.getTime() < this.rangeStart!;\r\n } else if (this.rangeType === 'start') {\r\n return this.rangeEnd !== '' && date.getTime() > this.rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.displayChange.emit(this.display);\r\n this.setYears(this.display);\r\n }\r\n\r\n nextYears(num: number) {\r\n this.start += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.start);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByYear(_index: number, item: string | Date | XDateCell) {\r\n return item;\r\n }\r\n}\r\n","<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let years of chunkDates\">\r\n <ng-container *ngFor=\"let year of years; trackBy: trackByYear\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date : 'yyyy') === (model | date : 'yyyy')\"\r\n title=\"{{ year.date | date : 'yyyy' }}\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker && onTdMouseleave(year)\"\r\n >\r\n <div *ngIf=\"!yearTemp\" class=\"x-date-text\">\r\n {{ year.date | date : 'yyyy' }}\r\n </div>\r\n <ng-container *ngIf=\"yearTemp\">\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime,\r\n XDatePickerPortalPrefix,\r\n XDatePickerPreset,\r\n XDatePickerType\r\n} from './date-picker.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XPositionTopBottom, XAddDays, XTemplate, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XTimePickerFrameComponent } from '@ng-nest/ui/time-picker';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('timePickerFrame') timePickerFrame?: XTimePickerFrameComponent;\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n nodeEmit!: (date: Date, sure?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number | null;\r\n preset: XDatePickerPreset[] = [];\r\n extraFooter?: XTemplate;\r\n inputCom!: XInputComponent;\r\n disabledDate!: XDatePickerDisabledDate;\r\n disabledTime!: XDatePickerDisabledTime;\r\n private _type!: XDatePickerType;\r\n private _unSubject = new Subject<void>();\r\n\r\n get isDatePicker() {\r\n return ['date', 'month', 'year'].includes(this.type);\r\n }\r\n\r\n get sureDisabled() {\r\n let res = XIsUndefined(this.time);\r\n if (this.timePickerFrame && !XIsUndefined(this.time)) {\r\n const dt = new Date(this.time!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame.setDisabled('hours', hours) ||\r\n this.timePickerFrame.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n }\r\n return res;\r\n }\r\n\r\n constructor(public datePipe: DatePipe, public lowerCasePipe: LowerCasePipe, public cdr: ChangeDetectorRef, public i18n: XI18nService) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n }\r\n this._type = this.type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = date;\r\n this.time = this.model.getTime();\r\n this.setDisplay(this.model);\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model = date;\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type)) {\r\n let time = new Date();\r\n if (['date-hour', 'date-minute'].includes(this.type)) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n if (!this.time) {\r\n this.time = time.getTime();\r\n }\r\n this.setModelTime(this.model, new Date(this.time!));\r\n this.nodeEmit(this.model, false);\r\n } else {\r\n this.nodeEmit(this.model);\r\n }\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'month') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n quarterChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'quarter') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'year') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = 'month';\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onToday() {\r\n this.dateChange(new Date());\r\n }\r\n\r\n onYesterday() {\r\n this.dateChange(XAddDays(new Date(), -1));\r\n }\r\n\r\n onTomorrow() {\r\n this.dateChange(XAddDays(new Date(), 1));\r\n }\r\n\r\n onPresetFunc(item: XDatePickerPreset) {\r\n this.dateChange(item.func());\r\n }\r\n\r\n selectTime(time: Date) {\r\n if (!this.model) {\r\n this.model = new Date();\r\n }\r\n this.time = time.getTime();\r\n this.nodeEmit(this.setModelTime(this.model, time), false);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setModelTime(date: Date, time: Date) {\r\n this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());\r\n return this.model;\r\n }\r\n}\r\n","<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XClearClass,\r\n XIsString,\r\n XConfigService,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n @ViewChild('datePicker', { static: true }) datePicker!: ElementRef<HTMLElement>;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: number | string;\r\n isInput = false;\r\n\r\n override writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType = 'date';\r\n this.numberValue = value.getTime();\r\n } else if (XIsNumber(value)) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value)) {\r\n this.modelType = 'string';\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue = !isNaN(valueTime) ? valueTime : '';\r\n } else if (XIsEmpty(value) || XIsNull(value)) {\r\n this.numberValue = '';\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n document = inject(DOCUMENT);\r\n\r\n get getPlaceholder() {\r\n if (this.placeholder) return this.placeholder;\r\n if (this.type === 'month') {\r\n return this.locale.selectMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.selectQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.selectYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.selectWeek;\r\n } else {\r\n return this.locale.selectDate;\r\n }\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public configService: XConfigService,\r\n public override cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private i18n: XI18nService,\r\n private elementRef: ElementRef,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n setFormat() {\r\n if (this.format !== 'yyyy-MM-dd') return;\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'quarter') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!this.clearable) return;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.inputClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (!this.clearable) return;\r\n if (this.inputClearable) {\r\n this.icon = 'fto-calendar';\r\n this.inputClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = null;\r\n this.numberValue = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n this.formControlValidator();\r\n }\r\n\r\n getValue() {\r\n if (this.numberValue === '') return null;\r\n return ['date', 'string'].includes(this.modelType) ? new Date(this.numberValue) : this.numberValue;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n preset: this.preset,\r\n extraFooter: this.extraFooter,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n inputCom: this.inputCom,\r\n disabledDate: this.disabledDate,\r\n disabledTime: this.disabledTime,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date, sure = true) => this.onNodeClick(node, sure),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput = false;\r\n if (sure) {\r\n this.numberValue = date.getTime();\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(this.numberValue);\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput && isNaN(this.displayValue) && !isNaN(Date.parse(this.displayValue)) && !['week', 'quarter'].includes(this.type)) {\r\n this.displayValue = this.datePipe.transform(this.displayValue, this.format);\r\n this.numberValue = new Date(this.displayValue).getTime();\r\n this.value = this.getValue();\r\n this.modelChange();\r\n this.isInput = false;\r\n } else {\r\n if (this.type === 'week') {\r\n this.displayValue = XDateYearWeek(dateNumber);\r\n } else if (this.type === 'quarter') {\r\n this.displayValue = XDateYearQuarter(dateNumber);\r\n } else {\r\n this.displayValue = this.datePipe.transform(dateNumber, this.format);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n XDateRangePortalPrefix,\r\n XDatePickerType,\r\n XDateCell,\r\n XDateRangePreset,\r\n XDatePickerDisabledDate,\r\n XDatePickerDisabledTime\r\n} from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XConnectBaseAnimation,\r\n XPositionTopBottom,\r\n XAddMonths,\r\n XAddYears,\r\n XIsNull,\r\n XTemplate,\r\n XIsArray,\r\n XIsNumber,\r\n XIsString,\r\n XAddDays\r\n} from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XTimePickerFrameComponent } from '@ng-nest/ui/time-picker';\r\n\r\n@Component({\r\n selector: `${XDateRangePortalPrefix}`,\r\n templateUrl: './date-range-portal.component.html',\r\n styleUrls: ['./date-range-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDateRangePortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('startPicker') startPicker!: XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent;\r\n @ViewChild('endPicker') endPicker!: XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent;\r\n @ViewChild('timePickerFrame') timePickerFrame?: XTimePickerFrameComponent;\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n startModel!: Date | null;\r\n endModel!: Date | null;\r\n startYear!: number;\r\n startDisplay: Date = new Date();\r\n endDisplay: Date = XAddMonths(this.startDisplay, 1);\r\n value: (number | null)[] = [];\r\n valueChange!: Subject<number[]>;\r\n positionChange!: Subject<any>;\r\n activeTypeChange!: Subject<'start' | 'end'>;\r\n activeType!: 'start' | 'end';\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n disabledDate!: XDatePickerDisabledDate;\r\n disabledTime!: XDatePickerDisabledTime;\r\n nodeEmit!: (date: Date[], close?: boolean) => void;\r\n startNodeEmit!: (date: Date | null, close?: boolean, isDatePicker?: boolean) => void;\r\n endNodeEmit!: (date: Date | null, close?: boolean, isDatePicker?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number | null;\r\n timeDisplay: Date = new Date();\r\n timeModel!: Date | null;\r\n timeHover = false;\r\n nodeClickCount = 0;\r\n preset: XDateRangePreset[] = [];\r\n extraFooter?: XTemplate;\r\n private _unSubject = new Subject<void>();\r\n\r\n get isDatePicker() {\r\n return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type);\r\n }\r\n\r\n get sureDisabled() {\r\n if (this.timePickerFrame && !XIsEmpty(this.time)) {\r\n const dt = new Date(this.time!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame.setDisabled('hours', hours) ||\r\n this.timePickerFrame.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n constructor(public datePipe: DatePipe, public lowerCasePipe: LowerCasePipe, public cdr: ChangeDetectorRef, public i18n: XI18nService) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.activeTypeChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.activeType = x;\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.value = [null, null];\r\n this.model = this.display;\r\n this.startModel = this.model;\r\n this.endModel = this.setModelByType(this.model, this.isDatePicker ? 1 : 0);\r\n this.setDisplay(this.model);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setModelByType(byModel: Date, num: number = 1) {\r\n if (['month', 'quarter'].includes(this.type)) {\r\n return XAddYears(byModel!, num);\r\n } else if (this.type === 'year') {\r\n return XAddYears(byModel!, 10 * num);\r\n } else {\r\n return XAddMonths(byModel!, num);\r\n }\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n if (this.type === 'week') return;\r\n this.startPicker?.setDatesState(cell);\r\n this.endPicker?.setDatesState(cell);\r\n }\r\n\r\n setDefault() {\r\n const type = this.activeType || 'start';\r\n this.timeHover = !this.value.every((x) => x === null);\r\n if (type === 'start') {\r\n this.startModel = new Date(this.value[0]!);\r\n this.startDisplay = this.startModel;\r\n this.endModel = this.setModelByType(this.startModel, this.isDatePicker ? 1 : 0);\r\n this.endDisplay = this.endModel!;\r\n this.timeModel = this.startModel;\r\n this.timeDisplay = this.startDisplay;\r\n this.time = this.startModel.getTime();\r\n } else if (type === 'end') {\r\n this.endModel = new Date(this.value[1]!);\r\n this.endDisplay = this.endModel;\r\n this.startModel = this.setModelByType(this.endModel, this.isDatePicker ? -1 : 0);\r\n this.startDisplay = this.startModel!;\r\n this.timeModel = this.endModel;\r\n this.timeDisplay = this.endDisplay;\r\n this.time = this.endModel.getTime();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.startDisplay = this.display;\r\n this.endDisplay = this.setModelByType(this.display, this.isDatePicker ? 1 : 0);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.nodeClickCount++;\r\n let close = this.nodeClickCount === 2;\r\n let time = this.setDateChangeTime(date);\r\n date = new Date(time);\r\n if (this.activeType === 'start') {\r\n this.value[0] = time;\r\n if (!XIsNull(this.value[1]) && time > this.value[1]!) {\r\n if (this.nodeClickCount === 2) {\r\n this.nodeClickCount--;\r\n }\r\n close = false;\r\n this.endModel = null;\r\n this.value[1] = null;\r\n if (!this.isDatePicker) {\r\n this.timeHover = false;\r\n }\r\n this.endNodeEmit(null, close, this.isDatePicker);\r\n }\r\n this.startNodeEmit(date, close, this.isDatePicker);\r\n } else if (this.activeType === 'end') {\r\n this.value[1] = time;\r\n if (!XIsNull(this.value[0]) && time < this.value[0]!) {\r\n if (this.nodeClickCount === 2) {\r\n this.nodeClickCount--;\r\n }\r\n close = false;\r\n this.startModel = null;\r\n this.value[0] = null;\r\n if (!this.isDatePicker) {\r\n this.timeHover = false;\r\n }\r\n this.startNodeEmit(null, close, this.isDatePicker);\r\n }\r\n this.endNodeEmit(date, close, this.isDatePicker);\r\n }\r\n if (!this.value.includes(null) && this.isDatePicker) {\r\n this.nodeEmit(\r\n this.value.map((x) => new Date(x!)),\r\n close\r\n );\r\n }\r\n }\r\n\r\n setDateChangeTime(date: Date) {\r\n if (this.isDatePicker) {\r\n return date.getTime();\r\n } else {\r\n let time = new Date();\r\n if (this.time) {\r\n time = new Date(this.time);\r\n } else {\r\n this.time = time.getTime();\r\n }\r\n if (['date-hour', 'date-minute'].includes(this.type)) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds()).getTime();\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear = number;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.startYear);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time = time.getTime();\r\n if (XIsEmpty(this.timeModel)) {\r\n this.timeModel = new Date();\r\n }\r\n this.timeModel?.setHours(time.getHours());\r\n this.timeModel?.setMinutes(time.getMinutes());\r\n this.timeModel?.setSeconds(time.getSeconds());\r\n this.dateChange(this.timeModel!);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n sureTime() {\r\n if (this.sureDisabled) return;\r\n const [start, end] = this.value;\r\n if (XIsNull(start) && !XIsNull(end)) {\r\n this.time = null;\r\n this.timeHover = true;\r\n this.endNodeEmit(new Date(end!), false, true);\r\n } else if (!XIsNull(start) && XIsNull(end)) {\r\n this.time = null;\r\n this.timeHover = true;\r\n this.startNodeEmit(new Date(start!), false, true);\r\n } else {\r\n this.nodeEmit(\r\n this.value.map((x) => new Date(x!)),\r\n true\r\n );\r\n }\r\n }\r\n\r\n yearChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay = XAddYears(this.endDisplay, num);\r\n } else if (type === 'end') {\r\n this.startDisplay = XAddYears(this.startDisplay, num);\r\n }\r\n }\r\n\r\n monthChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay = XAddMonths(this.endDisplay, num);\r\n } else if (type === 'end') {\r\n this.startDisplay = XAddMonths(this.startDisplay, num);\r\n }\r\n }\r\n\r\n onPreset(type: 'week' | 'month' | 'year', num = 0) {\r\n let now = new Date();\r\n if (type === 'week') {\r\n now = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n const week = now.getDay();\r\n const weekList = [1, 2, 3, 4, 5, 6, 7];\r\n const index = weekList.indexOf(week);\r\n this.nodeEmit([XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)], true);\r\n } else if (type === 'month') {\r\n const month = XAddMonths(now, num);\r\n const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);\r\n const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);\r\n this.nodeEmit([firstDay, lastDay], true);\r\n } else if (type === 'year') {\r\n let year = XAddYears(now, num);\r\n let firstDay = new Date(year.getFullYear(), 0, 1);\r\n let lastDay = XAddDays(XAddYears(firstDay, 1), -1);\r\n this.nodeEmit([firstDay, lastDay], true);\r\n }\r\n }\r\n\r\n onPresetFunc(item: XDateRangePreset) {\r\n let value = item.func();\r\n if (XIsArray(value) && value.length > 1) {\r\n if (XIsNumber(value[0]) || XIsString(value[0])) {\r\n value = value.map((x) => new Date(x));\r\n }\r\n this.nodeEmit(value, true);\r\n }\r\n }\r\n}\r\n","<div class=\"x-date-range-portal {{ type }}\">\r\n <div class=\"x-date-range-portal-body\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type = 'week'\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type = 'week'\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [disabledDate]=\"disabledDate\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && sureTime()\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-range-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'thisWeek'\" (click)=\"onPreset('week', 0)\">{{ locale.thisWeek }}</x-link>\r\n <x-link *ngIf=\"item.id === 'lastWeek'\" (click)=\"onPreset('week', -1)\">{{ locale.lastWeek }}</x-link>\r\n <x-link *ngIf=\"item.id === 'nextWeek'\" (click)=\"onPreset('week', 1)\">{{ locale.nextWeek }}</x-link>\r\n <x-link *ngIf=\"item.id === 'thisMonth'\" (click)=\"onPreset('month', 0)\">{{ locale.thisMonth }}</x-link>\r\n <x-link *ngIf=\"item.id === 'lastMonth'\" (click)=\"onPreset('month', -1)\">{{ locale.lastMonth }}</x-link>\r\n <x-link *ngIf=\"item.id === 'nextMonth'\" (click)=\"onPreset('month', 1)\">{{ locale.nextMonth }}</x-link>\r\n <x-link *ngIf=\"item.id === 'thisYear'\" (click)=\"onPreset('year', 0)\">{{ locale.thisYear }}</x-link>\r\n <x-link *ngIf=\"item.id === 'lastYear'\" (click)=\"onPreset('year', -1)\">{{ locale.lastYear }}</x-link>\r\n <x-link *ngIf=\"item.id === 'nextYear'\" (click)=\"onPreset('year', 1)\">{{ locale.nextYear }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XDatePickerModelType, XDateRangePrefix, XDateRangeProperty } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XClearClass,\r\n XIsString,\r\n XConfigService,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\n\r\n@Component({\r\n selector: `${XDateRangePrefix}`,\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDateRangeComponent), DatePipe]\r\n})\r\nexport class XDateRangeComponent extends XDateRangeProperty implements OnInit, OnChanges {\r\n @ViewChild('dateRange', { static: true }) dateRange!: ElementRef<HTMLElement>;\r\n @ViewChild('inputGroup', { static: true }) inputGroup!: XInputGroupComponent;\r\n @ViewChild('inputStartCom', { static: true }) inputStartCom!: XInputComponent;\r\n @ViewChild('inputEndCom', { static: true }) inputEndCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: (number | null)[];\r\n isInput = false;\r\n showClearable: boolean = false;\r\n\r\n get getStartPlaceholder() {\r\n if (this.placeholder && this.placeholder.length > 0) return this.placeholder[0];\r\n if (this.type === 'month') {\r\n return this.locale.startMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.startQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.startYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.startWeek;\r\n } else {\r\n return this.locale.startDate;\r\n }\r\n }\r\n\r\n get getEndPlaceholder() {\r\n if (this.placeholder && this.placeholder.length > 1) return this.placeholder[1];\r\n if (this.type === 'month') {\r\n return this.locale.endMonth;\r\n } else if (this.type === 'quarter') {\r\n return this.locale.endQuarter;\r\n } else if (this.type === 'year') {\r\n return this.locale.endYear;\r\n } else if (this.type === 'week') {\r\n return this.locale.endWeek;\r\n } else {\r\n return this.locale.endDate;\r\n }\r\n }\r\n\r\n override get requiredIsEmpty() {\r\n return this.validator && this.required && XIsEmpty(this.value);\r\n }\r\n\r\n override writeValue(value: any) {\r\n if (XIsEmpty(value)) {\r\n value = [];\r\n this.numberValue = [];\r\n }\r\n if (value.length > 0) {\r\n if (XIsDate(value[0])) {\r\n this.modelType = 'date';\r\n this.numberValue = value.map((x: Date) => x.getTime());\r\n } else if (XIsNumber(value[0])) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value[0])) {\r\n this.modelType = 'string';\r\n const valueTime = value.map((x: string) => new Date(x).getTime());\r\n this.numberValue = !isNaN(valueTime[0]) ? valueTime : [];\r\n }\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: string[] = [];\r\n portal!: XPortalOverlayRef<XDateRangePortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n activeTypeChange = new Subject<'start' | 'end'>();\r\n startDisplay: string | number = '';\r\n endDisplay: string | number = '';\r\n activeType?: 'start' | 'end';\r\n flexClass: string[] = [];\r\n locale: XI18nDatePicker = {};\r\n private _unSubject = new Subject<void>();\r\n document = inject(DOCUMENT);\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public configService: XConfigService,\r\n public override cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private overlay: Overlay,\r\n private i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setHostTypeClass();\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type, justify, align, direction, size, labelAlign } = changes;\r\n XIsChange(size, labelAlign) && this.setClassMap();\r\n XIsChange(justify, align, direction) && this.setFlexClass();\r\n if (XIsChange(type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n setFlexClass() {\r\n if (this.flexClass.length > 0) {\r\n for (let cls of this.flexClass) {\r\n this.renderer.removeClass(this.dateRange.nativeElement, cls);\r\n }\r\n }\r\n this.flexClass = this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n }\r\n\r\n setHostTypeClass() {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-date-range-${this.type}`);\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n setFormat() {\r\n if (this.format !== 'yyyy-MM-dd') return;\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.showClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-calendar';\r\n this.showClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = [];\r\n this.numberValue = [];\r\n this.startDisplay = '';\r\n this.endDisplay = '';\r\n this.mleave();\r\n this.valueChange.next(this.numberValue);\r\n this.formControlValidator();\r\n this.modelChange();\r\n this.inputStartCom.inputFocus();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onIconClick(event: Event) {\r\n if (this.icon === 'fto-x') {\r\n this.clearEmit();\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.modelType === 'date'\r\n ? this.numberValue.map((x) => new Date(x!))\r\n : this.modelType === 'string'\r\n ? this.numberValue.map((x) => this.datePipe.transform(x, this.format))\r\n : this.numberValue;\r\n }\r\n\r\n getNumberValue() {\r\n return this.modelType === 'date'\r\n ? this.value.map((x: Date) => x.getTime())\r\n : this.modelType === 'string'\r\n ? this.value.map((x: string) => new Date(x).getTime())\r\n : this.value;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.closeReduction();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n closeReduction() {\r\n if (!this.numberValue || this.numberValue.length === 0 || this.numberValue.includes(null)) {\r\n if (!this.value || this.value.length === 0) {\r\n this.startDisplay = '';\r\n this.endDisplay = '';\r\n this.numberValue = [];\r\n } else {\r\n this.numberValue = this.getNumberValue();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n if (!this.numberValue.includes(null) && this.value && !this.value.includes(null)) {\r\n let numberValue = this.getNumberValue();\r\n if (this.numberValue[0] !== numberValue[0] || this.numberValue[1] !== numberValue[1]) {\r\n this.numberValue = numberValue;\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal($event: Event, type?: 'start' | 'end') {\r\n type && $event.stopPropagation();\r\n if (this.disabled || this.animating) return;\r\n this.activeType = type || 'start';\r\n this.activeTypeChange.next(this.activeType);\r\n if (this.active) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDateRangePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe((event: MouseEvent) => {\r\n const clickTarget = event.target as HTMLElement;\r\n if (clickTarget !== this.inputStartCom.inputRef.nativeElement && clickTarget !== this.inputEndCom.inputRef.nativeElement) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n activeType: this.activeType,\r\n extraFooter: this.extraFooter,\r\n preset: this.preset,\r\n activeTypeChange: this.activeTypeChange,\r\n disabledDate: this.disabledDate,\r\n disabledTime: this.disabledTime,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (dates: Date[], close = true) => this.onNodeClick(dates, close),\r\n startNodeEmit: (node: Date, close = false, isDatePicker: boolean = true) => this.startNodeClick(node, close, isDatePicker),\r\n endNodeEmit: (node: Date, close = false, isDatePicker: boolean = true) => this.endNodeClick(node, close, isDatePicker),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n startNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.startDisplay = !node\r\n ? ''\r\n : this.type === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.format)!;\r\n if (!close && isDatePicker) {\r\n this.inputEndCom.inputFocus('after');\r\n this.activeTypeChange.next('end');\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n endNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.endDisplay = !node\r\n ? ''\r\n : this.type === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.format)!;\r\n if (!close && isDatePicker) {\r\n this.inputStartCom.inputFocus('after');\r\n this.activeTypeChange.next('start');\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onNodeClick(dates: Date[], close = true) {\r\n this.isInput = false;\r\n this.numberValue = dates.map((x) => x.getTime());\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.formControlValidator();\r\n if (close) {\r\n this.closeSubject.next();\r\n }\r\n this.modelChange();\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n onFocus(type: 'start' | 'end') {\r\n this.activeType = type;\r\n this.activeChange.next(this.activeType);\r\n }\r\n\r\n setDisplayValue(dateNumber: (number | null)[]) {\r\n if (!dateNumber) return;\r\n if (!XIsNull(dateNumber[0])) {\r\n if (this.type === 'week') {\r\n this.startDisplay = XDateYearWeek(dateNumber[0]!)!;\r\n } else if (this.type === 'quarter') {\r\n this.startDisplay = XDateYearQuarter(dateNumber[0]!)!;\r\n } else {\r\n this.startDisplay = this.datePipe.transform(dateNumber[0], this.format) as string;\r\n }\r\n }\r\n if (!XIsNull(dateNumber[1])) {\r\n if (this.type === 'week') {\r\n this.endDisplay = XDateYearWeek(dateNumber[1]!)!;\r\n } else if (this.type === 'quarter') {\r\n this.endDisplay = XDateYearQuarter(dateNumber[1]!)!;\r\n } else {\r\n this.endDisplay = this.datePipe.transform(dateNumber[1], this.format) as string;\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputGroup.elementRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-range-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XDateRangePrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-date-range-bordered]=\"bordered\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n <label *ngIf=\"label\" [class.x-date-range-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" (mouseenter)=\"menter()\" (mouseleave)=\"mleave()\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getStartPlaceholder\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-data-range-input x-data-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getEndPlaceholder\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable\"\r\n ></x-input>\r\n <div *ngIf=\"active\" class=\"x-date-range-active-bar\"></div>\r\n </x-input-group>\r\n <span class=\"x-date-range-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport {\r\n XDatePickerProperty,\r\n XPickerDateProperty,\r\n XPickerMonthProperty,\r\n XPickerYearProperty,\r\n XDateRangeProperty,\r\n XPickerQuarterProperty\r\n} from './date-picker.property';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XDateRangeComponent } from './date-range.component';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDatePickerComponent,\r\n XDatePickerPortalComponent,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XDatePickerProperty,\r\n XPickerDateProperty,\r\n XPickerMonthProperty,\r\n XPickerQuarterProperty,\r\n XPickerYearProperty,\r\n XDateRangeComponent,\r\n XDateRangePortalComponent,\r\n XDateRangeProperty,\r\n XDateQuarterPipe\r\n ],\r\n exports: [\r\n XDatePickerComponent,\r\n XDateRangeComponent,\r\n XDatePickerPortalComponent,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XDateQuarterPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XTimePickerModule,\r\n XInputModule,\r\n XLinkModule,\r\n XButtonModule,\r\n XIconModule,\r\n XI18nModule,\r\n XBaseFormModule,\r\n XOutletModule\r\n ]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.XDateQuarterPipe","i3","i4","i5","i2","i7.XPickerDateComponent","i8.XPickerMonthComponent","i9.XPickerQuarterComponent","i10.XPickerYearComponent","i1","i6"],"mappings":"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"}
|