@ng-nest/ui 21.0.3 → 21.0.4
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/fesm2022/ng-nest-ui-affix.mjs +12 -12
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +22 -24
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +19 -19
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +7 -7
- package/fesm2022/ng-nest-ui-attachments.mjs +22 -22
- package/fesm2022/ng-nest-ui-attachments.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +26 -30
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +17 -17
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +13 -13
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +16 -16
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +13 -13
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-bubble.mjs +20 -20
- package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +31 -31
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +10 -10
- 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 +24 -24
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +25 -29
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +22 -22
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +22 -22
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +25 -25
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +10 -10
- 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 +34 -34
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +18 -18
- package/fesm2022/ng-nest-ui-coversations.mjs +11 -11
- package/fesm2022/ng-nest-ui-coversations.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 +87 -87
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +20 -20
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +58 -58
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +7 -7
- package/fesm2022/ng-nest-ui-drag.mjs +10 -10
- package/fesm2022/ng-nest-ui-drawer.mjs +34 -34
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +21 -21
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +10 -10
- package/fesm2022/ng-nest-ui-examples.mjs +7 -7
- package/fesm2022/ng-nest-ui-find.mjs +31 -35
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +21 -21
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +32 -31
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +14 -14
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +21 -21
- 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 +21 -21
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +36 -40
- 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 +25 -25
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +13 -13
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +41 -41
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +14 -14
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +22 -22
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2022/ng-nest-ui-message.mjs +10 -10
- package/fesm2022/ng-nest-ui-notification.mjs +10 -10
- package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2022/ng-nest-ui-pagination.mjs +27 -31
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2022/ng-nest-ui-popconfirm.mjs +14 -14
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +19 -19
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-progress.mjs +22 -22
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-prompts.mjs +12 -12
- package/fesm2022/ng-nest-ui-prompts.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +20 -20
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +15 -15
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +14 -14
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +10 -10
- package/fesm2022/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-scrollable.mjs +19 -7
- package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +35 -39
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-sender.mjs +19 -19
- package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +13 -13
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +21 -21
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +16 -18
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2022/ng-nest-ui-steps.mjs +14 -14
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-suggestion.mjs +17 -17
- package/fesm2022/ng-nest-ui-suggestion.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +15 -15
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table-view.mjs +58 -58
- package/fesm2022/ng-nest-ui-table.mjs +90 -112
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +38 -40
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +16 -16
- 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 +19 -19
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +12 -12
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-thought-chain.mjs +12 -12
- package/fesm2022/ng-nest-ui-thought-chain.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2022/ng-nest-ui-time-picker.mjs +28 -28
- 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-timeline.mjs +12 -12
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +17 -17
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +14 -14
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +17 -17
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +36 -42
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +44 -46
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +10 -10
- package/fesm2022/ng-nest-ui-upload.mjs +24 -24
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-welcome.mjs +10 -10
- package/package.json +1 -1
- package/types/ng-nest-ui-i18n.d.ts +13 -11
- package/types/ng-nest-ui-scrollable.d.ts +6 -0
|
@@ -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 { XProperty, XToBoolean, XToCssPixelValue, XToDataConvert } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, model, output } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XBoolean,\r\n XCorner,\r\n XSize,\r\n XTemplate,\r\n XData,\r\n XIdentityProperty,\r\n XDirection,\r\n XAlign,\r\n XJustify,\r\n XNumber,\r\n XVariant,\r\n XFloatLabel\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_DATA_PICKER_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ selector: `${XDatePickerPrefix}-property`, template: '' })\r\nexport class XDatePickerProperty extends XFormControlFunction(X_DATA_PICKER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = input<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n readonly variant = input<XDatePickerVariant>(this.config?.variant ?? 'outlined');\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'yyyy-MM-dd');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n readonly inputStyle = input<{ [style: string]: any }>();\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n readonly preset = input<XData<XDatePickerPreset>, XData<XDatePickerPreset>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n readonly extraFooter = input<XTemplate>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n readonly disabledTime = input<XDatePickerDisabledTime>();\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n readonly floatLabel = input<XDatePickerFloatLabel | null>(this.config?.floatLabel ?? null);\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n readonly floatFixed = input<boolean, XBoolean>(this.config?.floatFixed ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n variant?: XDatePickerVariant;\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n floatLabel?: XDatePickerFloatLabel;\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n floatFixed?: boolean;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n preset?: XData<XDatePickerPreset>;\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * DateRange\r\n * @selector x-date-range\r\n * @decorator component\r\n */\r\nexport const XDateRangePrefix = 'x-date-range';\r\nconst X_DATA_RANGE_CONFIG_NAME = 'dateRange';\r\n\r\n/**\r\n * DateRange Property\r\n */\r\n@Component({ selector: `${XDateRangePrefix}-property`, template: '' })\r\nexport class XDateRangeProperty extends XFormControlFunction(X_DATA_RANGE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = input<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n readonly variant = input<XDatePickerVariant>(this.config?.variant ?? 'outlined');\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'yyyy-MM-dd');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n readonly inputStyle = input<{ [style: string]: any }>();\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n readonly preset = input<XData<XDateRangePreset>, XData<XDateRangePreset>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n readonly extraFooter = input<XTemplate>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n readonly disabledTime = input<XDatePickerDisabledTime>();\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n readonly floatLabel = input<XDatePickerFloatLabel | null>(this.config?.floatLabel ?? null);\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n readonly floatFixed = input<boolean, XBoolean>(this.config?.floatFixed ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<number[]>();\r\n}\r\n\r\n/**\r\n * DateRange Option\r\n */\r\nexport interface XDateRangeOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n variant?: XDatePickerVariant;\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n floatLabel?: XDatePickerFloatLabel;\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n floatFixed?: boolean;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n preset?: XData<XDateRangePreset>;\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string | string[];\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit: (value: number[]) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 禁用日期的自定义类型\r\n * @en_US Custom type of disabled date\r\n */\r\nexport type XDatePickerDisabledDate = (current: Date) => boolean;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义类型\r\n * @en_US Custom type of disable time\r\n */\r\nexport type XDatePickerDisabledTime = (type?: XDatePickerRangType) => XDatePickerDisabledTimeFn;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义函数\r\n * @en_US Custom function of disable time\r\n */\r\nexport type XDatePickerDisabledTimeFn = {\r\n /**\r\n * @zh_CN 禁用小时的自定义函数\r\n * @en_US Disable hour custom function\r\n */\r\n disabledHours?: () => number[];\r\n /**\r\n * @zh_CN 禁用分钟的自定义函数\r\n * @en_US Disable the custom function of the minute\r\n */\r\n disabledMinutes?: () => number[];\r\n /**\r\n * @zh_CN 禁用秒的自定义函数\r\n * @en_US Custom function of disable seconds\r\n */\r\n disabledSeconds?: () => number[];\r\n};\r\n\r\n/**\r\n * @zh_CN 快捷选择按钮\r\n * @en_US Quick selection button\r\n */\r\nexport interface XDatePickerPreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date;\r\n}\r\n\r\n/**\r\n * @zh_CN 快捷范围选择按钮\r\n * @en_US Quick range selection button\r\n */\r\nexport interface XDateRangePreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date[];\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType =\r\n | 'date'\r\n | 'week'\r\n | 'month'\r\n | 'quarter'\r\n | 'year'\r\n | 'date-time'\r\n | 'date-hour'\r\n | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * @zh_CN 输入框形态变体\r\n * @en_US Input box variant\r\n */\r\nexport type XDatePickerVariant = XVariant;\r\n\r\n/**\r\n * @zh_CN 浮动标签类型\r\n * @en_US Float label type\r\n */\r\nexport type XDatePickerFloatLabel = XFloatLabel;\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * DateRange Portal\r\n * @selector x-date-range-portal\r\n * @decorator component\r\n */\r\nexport const XDateRangePortalPrefix = 'x-date-range-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ selector: `${XPickerDatePrefix}-property`, template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n readonly dateTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Last month\r\n */\r\n readonly lastMonthBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Next month\r\n */\r\n readonly nextMonthBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围 hover 效果\r\n * @en_US Range hover style\r\n */\r\n readonly rangeHover = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围日期\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围日期 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围日期 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * @zh_CN 单个日期数据对象\r\n * @en_US 单个日期数据对象\r\n */\r\nexport interface XDateCell {\r\n /**\r\n * @zh_CN 日期\r\n * @en_US Date\r\n */\r\n date?: Date;\r\n /**\r\n * @zh_CN 上个月或下个月的日期\r\n * @en_US Date of the previous or next month\r\n */\r\n isLastOrNext?: boolean;\r\n /**\r\n * @zh_CN 当天\r\n * @en_US Same day\r\n */\r\n isNow?: boolean;\r\n /**\r\n * @zh_CN 当月第一天\r\n * @en_US The first day of the month\r\n */\r\n isFirstDay?: boolean;\r\n /**\r\n * @zh_CN 当月最后一天\r\n * @en_US The last day of the month\r\n */\r\n isLastDay?: boolean;\r\n /**\r\n * @zh_CN 范围内日期\r\n * @en_US 范围内日期\r\n */\r\n isInRange?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 选中\r\n * @en_US 范围内 hover 选中\r\n */\r\n isInRangeHover?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期左边\r\n * @en_US 范围内 hover 当前日期左边\r\n */\r\n isInRangeHoverLeft?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期右边\r\n * @en_US 范围内 hover 当前日期右边\r\n */\r\n isInRangeHoverRight?: boolean;\r\n /**\r\n * @zh_CN 选中开始左边\r\n * @en_US Range start left\r\n */\r\n isRangeStartLeft?: boolean;\r\n /**\r\n * @zh_CN 选中开始右边\r\n * @en_US Range start right\r\n */\r\n isRangeStartRight?: boolean;\r\n /**\r\n * @zh_CN 选中结束左边\r\n * @en_US Range start left\r\n */\r\n isRangeEndLeft?: boolean;\r\n /**\r\n * @zh_CN 选中结束右边\r\n * @en_US Range start right\r\n */\r\n isRangeEndRight?: boolean;\r\n /**\r\n * @zh_CN 范围 hover\r\n * @en_US Range hover\r\n */\r\n isRangeHover?: boolean;\r\n /**\r\n * @zh_CN hover 当前开始\r\n * @en_US Range hover start\r\n */\r\n isRangeHoverStart?: boolean;\r\n /**\r\n * @zh_CN hover 当前结束\r\n * @en_US End date\r\n */\r\n isRangeHoverEnd?: boolean;\r\n /**\r\n * @zh_CN hover 开始左边\r\n * @en_US Range hover start left\r\n */\r\n isRangeHoverStartLeft?: boolean;\r\n /**\r\n * @zh_CN hover 开始右边\r\n * @en_US Range hover start right\r\n */\r\n isRangeHoverStartRight?: boolean;\r\n /**\r\n * @zh_CN hover 结束左边\r\n * @en_US Range hover end left\r\n */\r\n isRangeHoverEndLeft?: boolean;\r\n /**\r\n * @zh_CN hover 结束右边\r\n * @en_US Range hover end right\r\n */\r\n isRangeHoverEndRight?: boolean;\r\n /**\r\n * @zh_CN 当前选中日期\r\n * @en_US Current selected date\r\n */\r\n isActive?: boolean;\r\n /**\r\n * @zh_CN 禁用日期\r\n * @en_US Disabled date\r\n */\r\n isDisabled?: boolean;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 第几周\r\n * @en_US Week\r\n */\r\n week?: number;\r\n}\r\n\r\n/**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\nexport type XDatePickerRangType = 'start' | 'end';\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ selector: `${XPickerMonthPrefix}-property`, template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n readonly monthTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * PickerQuarter\r\n * @selector x-picker-quarter\r\n * @decorator component\r\n */\r\nexport const XPickerQuarterPrefix = 'x-picker-quarter';\r\n\r\n/**\r\n * PickerQuarter Property\r\n */\r\n@Component({ selector: `${XPickerQuarterPrefix}-property`, template: '' })\r\nexport class XPickerQuarterProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 季度显示模板\r\n * @en_US Month display template\r\n */\r\n readonly quarterTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围季度 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围季度 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * DateQuarter\r\n * @selector xDateQuarter\r\n * @decorator pipe\r\n */\r\nexport const XDateQuarterPrefix = 'xDateQuarter';\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ selector: `${XPickerYearPrefix}-property`, template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 年份显示模板\r\n * @en_US Month display template\r\n */\r\n readonly yearTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围年份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n readonly startChange = output<number>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction, XDateWeek, XDateYearWeek } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { XI18nDatePicker, XI18nPipe, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XI18nPipe],\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n titles = signal([\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ]);\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n weekDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isWeek = computed(() => {\r\n return this.type() === 'week';\r\n });\r\n\r\n isWeekRange = computed(() => {\r\n return this.type() === 'week' && this.rangePicker();\r\n });\r\n\r\n isNotWeekRange = computed(() => {\r\n return this.type() !== 'week' && this.rangePicker();\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display());\r\n }\r\n\r\n isWeekActive(week: XDateCell[]) {\r\n if (week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.model()!);\r\n }\r\n return false;\r\n }\r\n\r\n isStartWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue()[0]!);\r\n }\r\n return false;\r\n }\r\n\r\n isEndWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue()[1]!);\r\n }\r\n return false;\r\n }\r\n\r\n isInRangeWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0]) && !XIsNull(this.rangeValue()[1]) && week.length > 1) {\r\n let time = week[1].date?.getTime()!;\r\n return time > this.rangeValue()[0]! && time < this.rangeValue()[1]!;\r\n }\r\n return false;\r\n }\r\n\r\n isStartDate(date: Date) {\r\n if (this.type() === 'week' || !this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n isEndDate(date: Date) {\r\n if (this.type() === 'week' || !this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n setTitles() {\r\n if (this.type() === 'week') {\r\n this.titles.update((x) => ['datePicker.week', ...x]);\r\n }\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: XDateCell[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n const cell = { date: new Date(year, month, index) };\r\n dates = [this.setDayState(cell), ...dates];\r\n day = cell.date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n const cell: XDateCell = {\r\n date: new Date(year, month, index),\r\n isFirstDay: index === 1,\r\n isLastDay: index === lastDate\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n const cell = { date: new Date(year, month + 1, index) };\r\n dates = [...dates, this.setDayState(cell)];\r\n day = cell.date.getDay();\r\n }\r\n\r\n this.dates.set(dates);\r\n this.weekDates.set(XChunk(dates, 7));\r\n\r\n if (this.type() === 'week') {\r\n for (let item of this.dates()) {\r\n item.week = XDateWeek(item.date!)!;\r\n }\r\n for (let week of this.weekDates()) {\r\n week.unshift({ type: 'week', week: week[0].week! });\r\n }\r\n }\r\n\r\n if (this.dates().length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');\r\n const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fdisplaym = this.datePipe.transform(this.display(), 'yyyyMM');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');\r\n cell.isLastOrNext = fdatem !== fdisplaym;\r\n cell.isNow = fdate === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start!, 'yyyyMMdd');\r\n cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end!, 'yyyyMMdd');\r\n }\r\n return cell;\r\n }\r\n\r\n dateClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setDays(this.display());\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display());\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.monthChange.emit(num);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-date-header\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn()\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn()\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display()) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn()\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn()\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n @for (title of titles(); track title) {\r\n <th>{{ title | xI18n }}</th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (weeks of weekDates(); track $index) {\r\n <tr\r\n [class.x-date-week-active]=\"!rangePicker() && isWeek() && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange() && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange() && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange() && isInRangeWeek(weeks)\"\r\n >\r\n @for (week of weeks; track week.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange() && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange() && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange() && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange() && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange() && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange() && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange() && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange() && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange() && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange() && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange() && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange() && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange() && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange() && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange() && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker() &&\r\n week.type !== 'week' &&\r\n (week.date | date: 'yyyyMMdd') === (model() | date: 'yyyyMMdd')\r\n \"\r\n [title]=\"week.date | date: 'yyyy-MM-dd'\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker() && rangeHover() && onTdMouseenter(week)\r\n \"\r\n (mouseleave)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker() && rangeHover() && onTdMouseleave(week)\r\n \"\r\n >\r\n @if (dateTemp()) {\r\n <ng-container *ngTemplateOutlet=\"dateTemp()!; context: { date$: week.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n @switch (week.type) {\r\n @case ('week') {\r\n {{ week.week }}\r\n }\r\n @default {\r\n {{ week.date | date: 'd' }}\r\n }\r\n }\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths(this.display());\r\n }\r\n\r\n isStartMonth(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndMonth(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setMonths(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fmonthy = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display(), 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fmonthy !== fdisplayy;\r\n cell.isNow = fmonth === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n monthClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.clearState(...this.dates());\r\n for (let item of this.dates()) {\r\n this.setDayState(item);\r\n }\r\n }\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setMonths(this.display());\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-month-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (months of chunkDates(); track $index) {\r\n <tr>\r\n @for (month of months; track month.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker() && (month.date | date: 'yyyyMM') === (model() | date: 'yyyyMM')\"\r\n [title]=\"month.date | date: 'yyyy-MM'\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker() && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker() && onTdMouseleave(month)\"\r\n >\r\n @if (monthTemp()) {\r\n <ng-container *ngTemplateOutlet=\"monthTemp()!; context: { date$: month.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XDate, XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';\r\nimport { XDateQuarterPrefix } from './date-picker.property';\r\n\r\n@Pipe({ name: `${XDateQuarterPrefix}`, standalone: true })\r\nexport class XDateQuarterPipe implements PipeTransform {\r\n constructor() {}\r\n transform(input?: XDate, includeYear = false): string {\r\n if (!input) return '';\r\n return !includeYear ? XDateQuarter(input)! : XDateYearQuarter(input)!;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-picker-quarter',\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XDateQuarterPipe],\r\n templateUrl: './picker-quarter.component.html',\r\n styleUrls: ['./picker-quarter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe, XDateQuarterPipe]\r\n})\r\nexport class XPickerQuarterComponent extends XPickerQuarterProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private dateQuarterPipe = inject(XDateQuarterPipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setQuarters(this.display());\r\n }\r\n\r\n isStartQuarter(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndQuarter(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setQuarters(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 4; i++) {\r\n const cell = { date: new Date(year, i * 3, 1), isFirstDay: i === 0, isLastDay: i === 3 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fquarter = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fquartery = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display(), 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fquartery !== fdisplayy;\r\n cell.isNow = fquarter === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fquarter === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fquarter === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n quarterClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n getLocaleQuarter(date: Date) {\r\n return this.dateQuarterPipe.transform(date);\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setQuarters(this.display());\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-quarter-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (quarters of chunkDates(); track $index) {\r\n <tr>\r\n @for (quarter of quarters; track quarter.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date: 'yyyyMM') === (model() | date: 'yyyyMM')\"\r\n [title]=\"quarter.date | xDateQuarter: true\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker() && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker() && onTdMouseleave(quarter)\"\r\n >\r\n @if (quarterTemp()) {\r\n <ng-container *ngTemplateOutlet=\"quarterTemp()!; context: { date$: quarter.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n start = signal<number | null>(null);\r\n end = signal<number | null>(null);\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears(this.display());\r\n }\r\n\r\n isStartYear(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n isEndYear(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setYears(date: Date) {\r\n let year = date.getFullYear();\r\n this.start.set(Math.floor(year / 10) * 10);\r\n this.end.set(this.start()! + 9);\r\n let dates: XDateCell[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n const dt = new Date(this.start()! + i, 1, 1);\r\n const cell: XDateCell = {\r\n date: dt,\r\n isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),\r\n isLastOrNext: i < 0 || i > 9,\r\n isFirstDay: i === 0,\r\n isLastDay: i === 9\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n this.startChange.emit(this.start()!);\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fyear = this.datePipe.transform(cell.date, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyy');\r\n cell.isNow = fyear === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start!, 'yyyy');\r\n cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end!, 'yyyy');\r\n }\r\n return cell;\r\n }\r\n\r\n yearClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start()}` || yearStr > `${this.end}`;\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setYears(this.display());\r\n }\r\n\r\n nextYears(num: number) {\r\n this.start.update((x) => x! + num);\r\n let date = new Date(this.display());\r\n date.setFullYear(this.start()!);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n}\r\n","<div class=\"x-picker-year\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-year-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start() }}</x-link> -\r\n <x-link>{{ end() }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (years of chunkDates(); track $index) {\r\n <tr>\r\n @for (year of years; track year.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker() && (year.date | date: 'yyyy') === (model() | date: 'yyyy')\"\r\n [title]=\"year.date | date: 'yyyy'\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker() && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker() && onTdMouseleave(year)\"\r\n >\r\n @if (yearTemp()) {\r\n <ng-container *ngTemplateOutlet=\"yearTemp()!; context: { date$: year.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ year.date | date: 'yyyy' }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n viewChild,\r\n computed,\r\n signal,\r\n model,\r\n DestroyRef\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, XPositionTopBottom, XAddDays, XTemplate, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements AfterViewInit {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n private i18n = inject(XI18nService);\r\n private _type = signal<XDatePickerType>('date');\r\n destroy = signal(false);\r\n private destroyRef = inject(DestroyRef);\r\n\r\n timePickerFrame = viewChild('timePickerFrame', { read: XTimePickerFrameComponent });\r\n value = input<any>();\r\n type = model<XDatePickerType>('date');\r\n preset = input<XDatePickerPreset[]>([]);\r\n extraFooter = input<XTemplate>();\r\n placement = input<XPositionTopBottom>();\r\n inputCom = input<XInputComponent>();\r\n disabledDate = input<XDatePickerDisabledDate>();\r\n disabledTime = input<XDatePickerDisabledTime>();\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ date: Date; sure?: boolean }>();\r\n\r\n display = signal(new Date());\r\n model = signal<Date | null>(null);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n time = signal<number | null>(null);\r\n\r\n isDatePicker = computed(() => {\r\n return ['date', 'month', 'year'].includes(this.type());\r\n });\r\n\r\n sureDisabled = computed(() => {\r\n let res = XIsUndefined(this.time());\r\n let timePickerFrame = this.timePickerFrame();\r\n if (timePickerFrame && !XIsUndefined(this.time())) {\r\n const dt = new Date(this.time()!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n timePickerFrame.setDisabled('hours', hours) ||\r\n timePickerFrame.setDisabled('minutes', minutes) ||\r\n timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n }\r\n return res;\r\n });\r\n\r\n ngOnInit() {\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n }\r\n this._type.set(this.type());\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value());\r\n this.model.set(date);\r\n this.time.set(this.model()!.getTime());\r\n this.setDisplay(this.model()!);\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model.set(date);\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type())) {\r\n let time = new Date();\r\n if (['date-hour', 'date-minute'].includes(this.type())) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type() === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n if (!this.time()) {\r\n this.time.set(time.getTime());\r\n }\r\n this.setModelTime(this.model()!, new Date(this.time()!));\r\n this.nodeClick.emit({ date: this.model()!, sure: false });\r\n } else {\r\n this.nodeClick.emit({ date: this.model()!, sure: true });\r\n }\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'month') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set(this._type()!);\r\n }\r\n }\r\n\r\n quarterChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'quarter') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set(this._type());\r\n }\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'year') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set('month');\r\n }\r\n }\r\n\r\n onToday() {\r\n this.dateChange(new Date());\r\n }\r\n\r\n onYesterday() {\r\n this.dateChange(XAddDays(new Date(), -1));\r\n }\r\n\r\n onTomorrow() {\r\n this.dateChange(XAddDays(new Date(), 1));\r\n }\r\n\r\n onPresetFunc(item: XDatePickerPreset) {\r\n this.dateChange(item.func());\r\n }\r\n\r\n selectTime(time: Date) {\r\n if (!this.model()) {\r\n this.model.set(new Date());\r\n }\r\n this.time.set(time.getTime());\r\n this.nodeClick.emit({ date: this.setModelTime(this.model()!, time), sure: false });\r\n }\r\n\r\n setModelTime(date: Date, time: Date) {\r\n this.model.set(\r\n new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n )\r\n );\r\n return this.model()!;\r\n }\r\n}\r\n","<div class=\"x-date-picker-portal {{ type() }}\" (click)=\"inputCom()?.inputFocus('focus')\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n @case ('month') {}\r\n }\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(type)]=\"type\"\r\n [(model)]=\"model\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrameD\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n @if (!isDatePicker() && preset()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button\r\n type=\"primary\"\r\n text\r\n (click)=\"!sureDisabled() && nodeClick.emit({ date: model()!, sure: true })\"\r\n size=\"small\"\r\n [disabled]=\"sureDisabled()\"\r\n >{{ locale().sure }}</x-button\r\n >\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-picker-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('yesterday') {\r\n <x-link (click)=\"onYesterday()\">{{ locale().yesterday }}</x-link>\r\n }\r\n @case ('today') {\r\n <x-link (click)=\"onToday()\">{{ locale().today }}</x-link>\r\n }\r\n @case ('tomorrow') {\r\n <x-link (click)=\"onTomorrow()\">{{ locale().tomorrow }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n inject,\r\n signal,\r\n computed,\r\n viewChild,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XIsString,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents,\r\n XPlacement\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private i18n = inject(XI18nService);\r\n private elementRef = inject(ElementRef);\r\n private overlay = inject(Overlay);\r\n\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n\r\n modelType = signal<XDatePickerModelType>('date');\r\n numberValue = signal<number | string | null>(null);\r\n isInput = signal(false);\r\n\r\n override writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType.set('date');\r\n this.numberValue.set(value.getTime());\r\n } else if (XIsNumber(value)) {\r\n this.modelType.set('number');\r\n this.numberValue.set(value);\r\n } else if (XIsString(value)) {\r\n this.modelType.set('string');\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue.set(!isNaN(valueTime) ? valueTime : '');\r\n } else if (XIsEmpty(value) || XIsNull(value)) {\r\n this.numberValue.set('');\r\n }\r\n this.value.set(value);\r\n this.setDisplayValue(this.numberValue()!);\r\n }\r\n\r\n enter = signal(false);\r\n inputClearable = signal(false);\r\n animating = signal(false);\r\n displayValue = signal('');\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon = signal('fto-calendar');\r\n closeSubject: Subject<void> = new Subject();\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n document = inject(DOCUMENT);\r\n\r\n private unSubject = new Subject<void>();\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDatePickerPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n placeholderSignal = computed(() => {\r\n if (this.placeholder()) return this.placeholder();\r\n if (this.type() === 'month') {\r\n return this.locale().selectMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().selectQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().selectYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().selectWeek;\r\n } else {\r\n return this.locale().selectDate;\r\n }\r\n });\r\n\r\n formatSignal = computed(() => {\r\n if (this.format() !== 'yyyy-MM-dd') return this.format();\r\n if (this.type() === 'date') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'year') {\r\n return 'yyyy';\r\n } else if (this.type() === 'quarter') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'month') {\r\n return 'yyyy-MM';\r\n } else if (this.type() === 'date-time') {\r\n return 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type() === 'date-hour') {\r\n return 'yyyy-MM-dd HH';\r\n } else if (this.type() === 'date-minute') {\r\n return 'yyyy-MM-dd HH:mm';\r\n }\r\n return this.format();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.numberValue()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('type', this.type()));\r\n effect(() => this.portalComponent()?.setInput('preset', this.preset()));\r\n effect(() => this.portalComponent()?.setInput('extraFooter', this.extraFooter()));\r\n effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));\r\n effect(() => this.portalComponent()?.setInput('disabledDate', this.disabledDate()));\r\n effect(() => this.portalComponent()?.setInput('disabledTime', this.disabledTime()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setDisplayValue(this.numberValue()!);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!this.clearable()) return;\r\n if (!XIsEmpty(this.numberValue())) {\r\n this.icon.set('');\r\n this.inputClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (!this.clearable()) return;\r\n if (this.inputClearable()) {\r\n this.icon.set('fto-calendar');\r\n this.inputClearable.set(false);\r\n }\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set(null);\r\n this.numberValue.set(null);\r\n this.displayValue.set('');\r\n this.mleave();\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n this.formControlValidator();\r\n }\r\n\r\n getValue() {\r\n if (this.numberValue() === '') return null;\r\n return ['date', 'string'].includes(this.modelType()) ? new Date(this.numberValue()!) : this.numberValue();\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue()!);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, animating } = componentRef.instance;\r\n nodeClick.subscribe((x) => this.onNodeClick(x.date, x.sure));\r\n animating.subscribe((ing) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput.set(false);\r\n if (sure) {\r\n this.numberValue.set(date.getTime());\r\n this.value.set(this.getValue());\r\n this.setDisplayValue(this.numberValue()!);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(Number(this.numberValue()));\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput.set(true);\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput() && !isNaN(Date.parse(this.displayValue())) && !['week', 'quarter'].includes(this.type())) {\r\n this.displayValue.set(this.datePipe.transform(this.displayValue(), this.formatSignal())!);\r\n this.numberValue.set(new Date(this.displayValue()).getTime());\r\n this.value.set(this.getValue());\r\n this.modelChange();\r\n this.isInput.set(false);\r\n } else {\r\n if (this.type() === 'week') {\r\n this.displayValue.set(XDateYearWeek(dateNumber));\r\n } else if (this.type() === 'quarter') {\r\n this.displayValue.set(XDateYearQuarter(dateNumber));\r\n } else {\r\n this.displayValue.set(this.datePipe.transform(dateNumber, this.formatSignal())!);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n }\r\n}\r\n","<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl() ? valueTpl() : valueTemplate\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [inputStyle]=\"inputStyle()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [variant]=\"variant()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\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\r\n <ng-template #valueTemplate>\r\n {{ displayValue() }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n input,\r\n output,\r\n computed,\r\n viewChild,\r\n signal,\r\n inject,\r\n model,\r\n DestroyRef\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 XPositionTopBottom,\r\n XAddMonths,\r\n XAddYears,\r\n XIsNull,\r\n XTemplate,\r\n XIsArray,\r\n XIsNumber,\r\n XIsString,\r\n XAddDays\r\n} from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDateRangePortalPrefix}`,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerYearComponent,\r\n XPickerQuarterComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-range-portal.component.html',\r\n styleUrls: ['./date-range-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDateRangePortalComponent implements AfterViewInit {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n datePipe = inject(DatePipe);\r\n lowerCasePipe = inject(LowerCasePipe);\r\n i18n = inject(XI18nService);\r\n\r\n startPicker = viewChild<XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent>('startPicker');\r\n endPicker = viewChild<XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent>('endPicker');\r\n timePickerFrame = viewChild<XTimePickerFrameComponent>('timePickerFrame');\r\n\r\n value = model<(number | null)[]>([]);\r\n placement = input<XPositionTopBottom>();\r\n type = model<XDatePickerType>('date');\r\n preset = input<XDateRangePreset[]>([]);\r\n extraFooter = input<XTemplate>();\r\n disabledDate = input<XDatePickerDisabledDate>();\r\n disabledTime = input<XDatePickerDisabledTime>();\r\n activeType = input<'start' | 'end'>('start');\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ date: Date[]; close?: boolean }>();\r\n startNodeChanged = output<{ date: Date | null; close?: boolean; isDatePicker?: boolean }>();\r\n endNodeChanged = output<{ date: Date | null; close?: boolean; isDatePicker?: boolean }>();\r\n\r\n display = signal(new Date());\r\n model = signal<Date | null>(null);\r\n startModel = signal<Date | null>(null);\r\n endModel = signal<Date | null>(null);\r\n startYear = signal<number | null>(null);\r\n startDisplay = signal(new Date());\r\n endDisplay = signal(XAddMonths(this.startDisplay(), 1));\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n time = signal<number | null>(null);\r\n timeDisplay = signal(new Date());\r\n timeModel = signal<Date | null>(null);\r\n timeHover = signal(false);\r\n nodeClickCount = signal(0);\r\n\r\n destroy = signal(false);\r\n private destroyRef = inject(DestroyRef);\r\n\r\n isDatePicker = computed(() => {\r\n return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type());\r\n });\r\n\r\n sureDisabled = computed(() => {\r\n if (this.timePickerFrame() && !XIsEmpty(this.time())) {\r\n const dt = new Date(this.time()!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame()?.setDisabled('hours', hours) ||\r\n this.timePickerFrame()?.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame()?.setDisabled('seconds', seconds)\r\n );\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n ngOnInit() {\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n } else {\r\n this.value.set([null, null]);\r\n this.model.set(this.display());\r\n this.startModel.set(this.model());\r\n this.endModel.set(this.setModelByType(this.model()!, this.isDatePicker() ? 1 : 0));\r\n this.setDisplay(this.model()!);\r\n }\r\n }\r\n\r\n setModelByType(byModel: Date, num: number = 1) {\r\n if (['month', 'quarter'].includes(this.type())) {\r\n return XAddYears(byModel!, num);\r\n } else if (this.type() === 'year') {\r\n return XAddYears(byModel!, 10 * num);\r\n } else {\r\n return XAddMonths(byModel!, num);\r\n }\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n if (this.type() === 'week') return;\r\n this.startPicker()?.setDatesState(cell);\r\n this.endPicker()?.setDatesState(cell);\r\n }\r\n\r\n setDefault() {\r\n const type = this.activeType() || 'start';\r\n this.timeHover.set(!this.value().every((x) => x === null));\r\n if (type === 'start') {\r\n this.startModel.set(new Date(this.value()[0]!));\r\n this.startDisplay.set(this.startModel()!);\r\n this.endModel.set(this.setModelByType(this.startModel()!, this.isDatePicker() ? 1 : 0));\r\n this.endDisplay.set(this.endModel()!);\r\n this.timeModel.set(this.startModel());\r\n this.timeDisplay.set(this.startDisplay());\r\n this.time.set(this.startModel()!.getTime());\r\n } else if (type === 'end') {\r\n this.endModel.set(new Date(this.value()[1]!));\r\n this.endDisplay.set(this.endModel()!);\r\n this.startModel.set(this.setModelByType(this.endModel()!, this.isDatePicker() ? -1 : 0));\r\n this.startDisplay.set(this.startModel()!);\r\n this.timeModel.set(this.endModel());\r\n this.timeDisplay.set(this.endDisplay());\r\n this.time.set(this.endModel()!.getTime());\r\n }\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.startDisplay.set(this.display());\r\n this.endDisplay.set(this.setModelByType(this.display(), this.isDatePicker() ? 1 : 0));\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.nodeClickCount.update((x) => x + 1);\r\n let close = this.nodeClickCount() === 2;\r\n let time = this.setDateChangeTime(date);\r\n const isDatePicker = this.isDatePicker();\r\n date = new Date(time);\r\n if (this.activeType() === 'start') {\r\n this.value()[0] = time;\r\n if (!XIsNull(this.value()[1]) && time > this.value()[1]!) {\r\n if (this.nodeClickCount() === 2) {\r\n this.nodeClickCount.update((x) => x - 1);\r\n }\r\n close = false;\r\n this.endModel.set(null);\r\n this.value.update((x) => {\r\n x[1] = null;\r\n return [...x];\r\n });\r\n if (!isDatePicker) {\r\n this.timeHover.set(false);\r\n }\r\n this.endNodeChanged.emit({ date: null, close, isDatePicker });\r\n }\r\n this.startNodeChanged.emit({ date, close, isDatePicker });\r\n } else if (this.activeType() === 'end') {\r\n this.value()[1] = time;\r\n if (!XIsNull(this.value()[0]) && time < this.value()[0]!) {\r\n if (this.nodeClickCount() === 2) {\r\n this.nodeClickCount.update((x) => x - 1);\r\n }\r\n close = false;\r\n this.startModel.set(null);\r\n this.value.update((x) => {\r\n x[0] = null;\r\n return [...x];\r\n });\r\n if (!isDatePicker) {\r\n this.timeHover.set(false);\r\n }\r\n this.startNodeChanged.emit({ date: null, close, isDatePicker });\r\n }\r\n this.endNodeChanged.emit({ date, close, isDatePicker });\r\n }\r\n if (!this.value().includes(null) && isDatePicker) {\r\n this.nodeClick.emit({ date: this.value().map((x) => new Date(x!)), close });\r\n }\r\n }\r\n\r\n setDateChangeTime(date: Date) {\r\n if (this.isDatePicker()) {\r\n return date.getTime();\r\n } else {\r\n let time = new Date();\r\n if (this.time()) {\r\n time = new Date(this.time()!);\r\n } else {\r\n this.time.set(time.getTime());\r\n }\r\n if (['date-hour', 'date-minute'].includes(this.type())) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type() === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n ).getTime();\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear.set(number);\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display());\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear.update((x) => x! + num);\r\n let date = new Date(this.display());\r\n date.setFullYear(this.startYear()!);\r\n this.setDisplay(date);\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time.set(time.getTime());\r\n if (XIsEmpty(this.timeModel())) {\r\n this.timeModel.set(new Date());\r\n }\r\n this.timeModel()?.setHours(time.getHours());\r\n this.timeModel()?.setMinutes(time.getMinutes());\r\n this.timeModel()?.setSeconds(time.getSeconds());\r\n this.dateChange(this.timeModel()!);\r\n }\r\n\r\n sureTime() {\r\n if (this.sureDisabled()) return;\r\n const [start, end] = this.value();\r\n if (XIsNull(start) && !XIsNull(end)) {\r\n this.time.set(null);\r\n this.timeHover.set(true);\r\n this.endNodeChanged.emit({ date: new Date(end!), close: false, isDatePicker: true });\r\n } else if (!XIsNull(start) && XIsNull(end)) {\r\n this.time.set(null);\r\n this.timeHover.set(true);\r\n this.startNodeChanged.emit({ date: new Date(start!), close: false, isDatePicker: true });\r\n } else {\r\n this.nodeClick.emit({ date: this.value().map((x) => new Date(x!)), close: true });\r\n }\r\n }\r\n\r\n yearChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay.update((x) => XAddYears(x, num));\r\n } else if (type === 'end') {\r\n this.startDisplay.update((x) => XAddYears(x, num));\r\n }\r\n }\r\n\r\n monthChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay.update((x) => XAddMonths(x, num));\r\n } else if (type === 'end') {\r\n this.startDisplay.update((x) => XAddMonths(x, num));\r\n }\r\n }\r\n\r\n onPreset(type: 'week' | 'month' | 'year', num = 0) {\r\n let now = new Date();\r\n if (type === 'week') {\r\n now = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n const week = now.getDay();\r\n const weekList = [1, 2, 3, 4, 5, 6, 7];\r\n const index = weekList.indexOf(week);\r\n this.nodeClick.emit({\r\n date: [XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)],\r\n close: true\r\n });\r\n } else if (type === 'month') {\r\n const month = XAddMonths(now, num);\r\n const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);\r\n const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);\r\n this.nodeClick.emit({ date: [firstDay, lastDay], close: true });\r\n } else if (type === 'year') {\r\n let year = XAddYears(now, num);\r\n let firstDay = new Date(year.getFullYear(), 0, 1);\r\n let lastDay = XAddDays(XAddYears(firstDay, 1), -1);\r\n this.nodeClick.emit({ date: [firstDay, lastDay], close: true });\r\n }\r\n }\r\n\r\n onPresetFunc(item: XDateRangePreset) {\r\n let value = item.func();\r\n if (XIsArray(value) && value.length > 1) {\r\n if (XIsNumber(value[0]) || XIsString(value[0])) {\r\n value = value.map((x) => new Date(x));\r\n }\r\n this.nodeClick.emit({ date: value, close: true });\r\n }\r\n }\r\n}\r\n","<div class=\"x-date-range-portal {{ type() }}\">\r\n <div class=\"x-date-range-portal-body\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type=\"week\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type=\"week\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n }\r\n </div>\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType() === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover()\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType()\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n }\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n @if (!isDatePicker()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" text (click)=\"!sureDisabled() && sureTime()\" size=\"small\" [disabled]=\"sureDisabled()!\">{{\r\n locale().sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-range-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('thisWeek') {\r\n <x-link (click)=\"onPreset('week', 0)\">{{ locale().thisWeek }}</x-link>\r\n }\r\n @case ('lastWeek') {\r\n <x-link (click)=\"onPreset('week', -1)\">{{ locale().lastWeek }}</x-link>\r\n }\r\n @case ('nextWeek') {\r\n <x-link (click)=\"onPreset('week', 1)\">{{ locale().nextWeek }}</x-link>\r\n }\r\n @case ('thisMonth') {\r\n <x-link (click)=\"onPreset('month', 0)\">{{ locale().thisMonth }}</x-link>\r\n }\r\n @case ('lastMonth') {\r\n <x-link (click)=\"onPreset('month', -1)\">{{ locale().lastMonth }}</x-link>\r\n }\r\n @case ('nextMonth') {\r\n <x-link (click)=\"onPreset('month', 1)\">{{ locale().nextMonth }}</x-link>\r\n }\r\n @case ('thisYear') {\r\n <x-link (click)=\"onPreset('year', 0)\">{{ locale().thisYear }}</x-link>\r\n }\r\n @case ('lastYear') {\r\n <x-link (click)=\"onPreset('year', -1)\">{{ locale().lastYear }}</x-link>\r\n }\r\n @case ('nextYear') {\r\n <x-link (click)=\"onPreset('year', 1)\">{{ locale().nextYear }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n inject,\r\n OnDestroy,\r\n AfterViewInit,\r\n viewChild,\r\n signal,\r\n HostBinding,\r\n computed,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XDatePickerModelType, XDateRangePrefix, XDateRangeProperty } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XIsString,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents,\r\n XPlacement\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe, NgClass } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { XOutletDirective } from \"@ng-nest/ui/outlet\";\r\n\r\n@Component({\r\n selector: `${XDateRangePrefix}`,\r\n imports: [NgClass, FormsModule, XInputComponent, XInputGroupComponent, XOutletDirective],\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDateRangeComponent), DatePipe]\r\n})\r\nexport class XDateRangeComponent extends XDateRangeProperty implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n @HostBinding('class') get className() {\r\n return `x-date-range-${this.type()}`;\r\n }\r\n dateRange = viewChild.required('dateRange', { read: ElementRef<HTMLElement> });\r\n inputGroup = viewChild.required('inputGroup', { read: XInputGroupComponent });\r\n inputStartCom = viewChild.required('inputStartCom', { read: XInputComponent });\r\n inputEndCom = viewChild.required('inputEndCom', { read: XInputComponent });\r\n\r\n modelType = signal<XDatePickerModelType>('date');\r\n numberValue = signal<(number | null)[]>([]);\r\n isInput = signal(false);\r\n showClearable = signal(false);\r\n\r\n startPlaceholder() {\r\n if (this.placeholder() && this.placeholder().length > 0) return this.placeholder()[0];\r\n if (this.type() === 'month') {\r\n return this.locale().startMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().startQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().startYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().startWeek;\r\n } else {\r\n return this.locale().startDate;\r\n }\r\n }\r\n\r\n endPlaceholder() {\r\n if (this.placeholder() && this.placeholder().length > 1) return this.placeholder()[1];\r\n if (this.type() === 'month') {\r\n return this.locale().endMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().endQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().endYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().endWeek;\r\n } else {\r\n return this.locale().endDate;\r\n }\r\n }\r\n\r\n override writeValue(value: any) {\r\n if (XIsEmpty(value)) {\r\n value = [];\r\n this.numberValue.set([]);\r\n }\r\n if (value.length > 0) {\r\n if (XIsDate(value[0])) {\r\n this.modelType.set('date');\r\n this.numberValue.set(value.map((x: Date) => x.getTime()));\r\n } else if (XIsNumber(value[0])) {\r\n this.modelType.set('number');\r\n this.numberValue.set(value);\r\n } else if (XIsString(value[0])) {\r\n this.modelType.set('string');\r\n const valueTime = value.map((x: string) => new Date(x).getTime());\r\n this.numberValue.set(!isNaN(valueTime[0]) ? valueTime : []);\r\n }\r\n }\r\n this.value.set(value);\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n\r\n enter = signal(false);\r\n inputClearable = signal(false);\r\n animating = signal(false);\r\n displayValue = signal<string[]>([]);\r\n portal!: XPortalOverlayRef<XDateRangePortalComponent>;\r\n icon = signal('fto-calendar');\r\n closeSubject: Subject<void> = new Subject();\r\n startDisplay = signal<string | number>('');\r\n endDisplay = signal<string | number>('');\r\n activeType = signal<'start' | 'end'>('start');\r\n private unSubject = new Subject<void>();\r\n private document = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private overlay = inject(Overlay);\r\n private i18n = inject(XI18nService);\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n classMap = computed(() => ({\r\n [`${XDateRangePrefix}-${this.size()}`]: !!this.size(),\r\n [`x-justify-${this.justify()}`]: !!this.justify(),\r\n [`x-align-${this.align()}`]: !!this.align(),\r\n [`x-direction-${this.direction()}`]: !!this.direction()\r\n }));\r\n labelMapSignal = computed(() => ({\r\n [`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()\r\n }));\r\n\r\n formatSignal = computed(() => {\r\n if (this.format() !== 'yyyy-MM-dd') return this.format();\r\n if (this.type() === 'date') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'year') {\r\n return 'yyyy';\r\n } else if (this.type() === 'month') {\r\n return 'yyyy-MM';\r\n } else if (this.type() === 'date-time') {\r\n return 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type() === 'date-hour') {\r\n return 'yyyy-MM-dd HH';\r\n } else if (this.type() === 'date-minute') {\r\n return 'yyyy-MM-dd HH:mm';\r\n }\r\n return this.format();\r\n });\r\n\r\n getValue = computed(() => {\r\n return this.modelType() === 'date'\r\n ? this.numberValue().map((x) => new Date(x!))\r\n : this.modelType() === 'string'\r\n ? this.numberValue().map((x) => this.datePipe.transform(x!, this.formatSignal()))\r\n : this.numberValue();\r\n });\r\n\r\n getNumberValue = computed(() => {\r\n return this.modelType() === 'date'\r\n ? this.value().map((x: Date) => x.getTime())\r\n : this.modelType() === 'string'\r\n ? this.value().map((x: string) => new Date(x).getTime())\r\n : this.value();\r\n });\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDateRangePortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.numberValue()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('activeType', this.activeType()));\r\n effect(() => this.portalComponent()?.setInput('type', this.type()));\r\n effect(() => this.portalComponent()?.setInput('preset', this.preset()));\r\n effect(() => this.portalComponent()?.setInput('extraFooter', this.extraFooter()));\r\n effect(() => this.portalComponent()?.setInput('disabledDate', this.disabledDate()));\r\n effect(() => this.portalComponent()?.setInput('disabledTime', this.disabledTime()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portalOverlayRef()?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed() || !this.clearable()) return;\r\n this.enter.set(true);\r\n if (!XIsEmpty(this.numberValue())) {\r\n this.icon.set('');\r\n this.showClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed() || !this.clearable()) return;\r\n this.enter.set(false);\r\n if (this.clearable()) {\r\n this.icon.set('fto-calendar');\r\n this.showClearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set([]);\r\n this.numberValue.set([]);\r\n this.startDisplay.set('');\r\n this.endDisplay.set('');\r\n this.mleave();\r\n this.formControlValidator();\r\n this.modelChange();\r\n this.inputStartCom().inputFocus('focus');\r\n }\r\n\r\n onIconClick(event: Event) {\r\n if (this.icon() === 'fto-x') {\r\n this.clearEmit();\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n this.closeReduction();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n closeReduction() {\r\n if (!this.numberValue() || this.numberValue().length === 0 || this.numberValue().includes(null)) {\r\n if (!this.value() || this.value().length === 0) {\r\n this.startDisplay.set('');\r\n this.endDisplay.set('');\r\n this.numberValue.set([]);\r\n } else {\r\n this.numberValue.set(this.getNumberValue());\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n if (!this.numberValue().includes(null) && this.value() && !this.value().includes(null)) {\r\n let numberValue = this.getNumberValue();\r\n if (this.numberValue()[0] !== numberValue[0] || this.numberValue()[1] !== numberValue[1]) {\r\n this.numberValue.set(numberValue);\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n }\r\n\r\n showPortal($event: Event, type?: 'start' | 'end') {\r\n type && $event.stopPropagation();\r\n if (this.disabled() || this.animating()) return;\r\n this.activeType.set(type || 'start');\r\n if (this.active()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDateRangePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((event: MouseEvent) => {\r\n const clickTarget = event.target as HTMLElement;\r\n if (\r\n clickTarget !== this.inputStartCom().inputRef().nativeElement &&\r\n clickTarget !== this.inputEndCom().inputRef().nativeElement\r\n ) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, startNodeChanged, endNodeChanged, animating } = componentRef.instance;\r\n nodeClick.subscribe((x) => this.onNodeClick(x.date, x.close));\r\n startNodeChanged.subscribe((x) => this.startNodeClick(x.date!, x.close, x.isDatePicker));\r\n endNodeChanged.subscribe((x) => this.endNodeClick(x.date!, x.close, x.isDatePicker));\r\n animating.subscribe((x) => this.animating.set(x));\r\n }\r\n\r\n startNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.startDisplay.set(\r\n !node\r\n ? ''\r\n : this.type() === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type() === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.formatSignal())!\r\n );\r\n if (!close && isDatePicker) {\r\n this.inputEndCom().inputFocus('focus');\r\n this.activeType.set('end');\r\n }\r\n }\r\n\r\n endNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.endDisplay.set(\r\n !node\r\n ? ''\r\n : this.type() === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type() === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.formatSignal())!\r\n );\r\n if (!close && isDatePicker) {\r\n this.inputStartCom().inputFocus('focus');\r\n this.activeType.set('start');\r\n }\r\n }\r\n\r\n onNodeClick(dates: Date[], close = true) {\r\n this.isInput.set(false);\r\n this.numberValue.set(dates.map((x) => x.getTime()));\r\n this.value.set(this.getValue());\r\n this.setDisplayValue(this.numberValue());\r\n this.formControlValidator();\r\n if (close) {\r\n this.closeSubject.next();\r\n }\r\n this.modelChange();\r\n }\r\n\r\n onInput() {\r\n this.isInput.set(true);\r\n }\r\n\r\n onFocus(type: 'start' | 'end') {\r\n this.activeType.set(type);\r\n }\r\n\r\n setDisplayValue(dateNumber: (number | null)[]) {\r\n if (!dateNumber) return;\r\n if (!XIsNull(dateNumber[0])) {\r\n if (this.type() === 'week') {\r\n this.startDisplay.set(XDateYearWeek(dateNumber[0]!)!);\r\n } else if (this.type() === 'quarter') {\r\n this.startDisplay.set(XDateYearQuarter(dateNumber[0]!)!);\r\n } else {\r\n this.startDisplay.set(this.datePipe.transform(dateNumber[0], this.formatSignal()) as string);\r\n }\r\n }\r\n if (!XIsNull(dateNumber[1])) {\r\n if (this.type() === 'week') {\r\n this.endDisplay.set(XDateYearWeek(dateNumber[1]!)!);\r\n } else if (this.type() === 'quarter') {\r\n this.endDisplay.set(XDateYearQuarter(dateNumber[1]!)!);\r\n } else {\r\n this.endDisplay.set(this.datePipe.transform(dateNumber[1], this.formatSignal()) as string);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputGroup().elementRef,\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-range-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n }\r\n}\r\n","<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-checked]=\"value()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-date-range-bordered]=\"bordered()\"\r\n [class.x-date-range-filled]=\"variant() === 'filled'\"\r\n [class.x-date-range-borderless]=\"variant() === 'borderless' || (variant() === 'outlined' && !bordered())\"\r\n [class.x-date-range-underlined]=\"variant() === 'underlined'\"\r\n [class.x-date-range-active]=\"active()\"\r\n [class.x-date-range-active-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType() === 'end'\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-date-range-label-required]=\"required()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n *xOutlet=\"label()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-date-range-row\">\r\n <x-input-group\r\n #inputGroup\r\n class=\"x-date-range-group\"\r\n (mouseenter)=\"menter()\"\r\n (mouseleave)=\"mleave()\"\r\n (click)=\"showPortal($event)\"\r\n [style]=\"inputStyle()\"\r\n >\r\n <x-input\r\n #inputStartCom\r\n class=\"x-date-range-input x-date-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [before]=\"before()\"\r\n [label]=\"!!floatLabel() ? startPlaceholder()! : ''\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabledComputed()\"\r\n [placeholder]=\"startPlaceholder()!\"\r\n [pointer]=\"pointer()\"\r\n [required]=\"required()\"\r\n [readonly]=\"readonly()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-date-range-input x-date-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [label]=\"!!floatLabel() ? endPlaceholder()! : ''\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabledComputed()\"\r\n [placeholder]=\"endPlaceholder()!\"\r\n [pointer]=\"pointer()\"\r\n [required]=\"required()\"\r\n [readonly]=\"readonly()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\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 [after]=\"after()\"\r\n ></x-input>\r\n @if (active()) {\r\n <div class=\"x-date-range-active-bar\"></div>\r\n }\r\n </x-input-group>\r\n @if (invalid()) {\r\n <span class=\"x-date-range-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDateRangeComponent } from './date-range.component';\r\n\r\n@NgModule({\r\n exports: [XDatePickerComponent, XDateRangeComponent],\r\n imports: [XDatePickerComponent, XDateRangeComponent]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-date-picker.mjs","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.html","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.html","../../../../lib/ng-nest/ui/date-picker/date-quarter.pipe.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-quarter.component.html","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.html","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range-portal.component.html","../../../../lib/ng-nest/ui/date-picker/date-range.component.ts","../../../../lib/ng-nest/ui/date-picker/date-range.component.html","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import { XProperty, XToBoolean, XToCssPixelValue, XToDataConvert } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, model, output } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XBoolean,\r\n XCorner,\r\n XSize,\r\n XTemplate,\r\n XData,\r\n XIdentityProperty,\r\n XDirection,\r\n XAlign,\r\n XJustify,\r\n XNumber,\r\n XVariant,\r\n XFloatLabel\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_DATA_PICKER_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ selector: `${XDatePickerPrefix}-property`, template: '' })\r\nexport class XDatePickerProperty extends XFormControlFunction(X_DATA_PICKER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = input<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n readonly variant = input<XDatePickerVariant>(this.config?.variant ?? 'outlined');\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'yyyy-MM-dd');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n readonly inputStyle = input<{ [style: string]: any }>();\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n readonly preset = input<XData<XDatePickerPreset>, XData<XDatePickerPreset>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n readonly extraFooter = input<XTemplate>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n readonly disabledTime = input<XDatePickerDisabledTime>();\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n readonly floatLabel = input<XDatePickerFloatLabel | null>(this.config?.floatLabel ?? null);\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n readonly floatFixed = input<boolean, XBoolean>(this.config?.floatFixed ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n variant?: XDatePickerVariant;\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n floatLabel?: XDatePickerFloatLabel;\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n floatFixed?: boolean;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置今天(today),昨天(yesterday),明天(tomorrow)\r\n * @en_US Quick selection button, support today, yesterday, tomorrow\r\n */\r\n preset?: XData<XDatePickerPreset>;\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * DateRange\r\n * @selector x-date-range\r\n * @decorator component\r\n */\r\nexport const XDateRangePrefix = 'x-date-range';\r\nconst X_DATA_RANGE_CONFIG_NAME = 'dateRange';\r\n\r\n/**\r\n * DateRange Property\r\n */\r\n@Component({ selector: `${XDateRangePrefix}-property`, template: '' })\r\nexport class XDateRangeProperty extends XFormControlFunction(X_DATA_RANGE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = input<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n readonly variant = input<XDatePickerVariant>(this.config?.variant ?? 'outlined');\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'yyyy-MM-dd');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n readonly inputStyle = input<{ [style: string]: any }>();\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n readonly preset = input<XData<XDateRangePreset>, XData<XDateRangePreset>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n readonly extraFooter = input<XTemplate>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n readonly disabledTime = input<XDatePickerDisabledTime>();\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n readonly floatLabel = input<XDatePickerFloatLabel | null>(this.config?.floatLabel ?? null);\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n readonly floatFixed = input<boolean, XBoolean>(this.config?.floatFixed ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<number[]>();\r\n}\r\n\r\n/**\r\n * DateRange Option\r\n */\r\nexport interface XDateRangeOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n variant?: XDatePickerVariant;\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n floatLabel?: XDatePickerFloatLabel;\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n floatFixed?: boolean;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 快捷选择按钮,自定义或直接设置本周(thisWeek)、上周(lastWeek)、下周(nextWeek)、本月(thisMonth)、上一月(lastMonth)、下一月(nextMonth)、本年(thisYear)、去年(lastYear)、明年(nextYear)\r\n * @en_US Quick selection button, support thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth, thisYear, lastYear, nextYear\r\n */\r\n preset?: XData<XDateRangePreset>;\r\n /**\r\n * @zh_CN 页脚\r\n * @en_US Footer\r\n */\r\n extraFooter?: XTemplate;\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n disabledDate?: XDatePickerDisabledDate;\r\n /**\r\n * @zh_CN 禁用的时间\r\n * @en_US Disabled time\r\n */\r\n disabledTime?: XDatePickerDisabledTime;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string | string[];\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit: (value: number[]) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 禁用日期的自定义类型\r\n * @en_US Custom type of disabled date\r\n */\r\nexport type XDatePickerDisabledDate = (current: Date) => boolean;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义类型\r\n * @en_US Custom type of disable time\r\n */\r\nexport type XDatePickerDisabledTime = (type?: XDatePickerRangType) => XDatePickerDisabledTimeFn;\r\n\r\n/**\r\n * @zh_CN 禁用时间的自定义函数\r\n * @en_US Custom function of disable time\r\n */\r\nexport type XDatePickerDisabledTimeFn = {\r\n /**\r\n * @zh_CN 禁用小时的自定义函数\r\n * @en_US Disable hour custom function\r\n */\r\n disabledHours?: () => number[];\r\n /**\r\n * @zh_CN 禁用分钟的自定义函数\r\n * @en_US Disable the custom function of the minute\r\n */\r\n disabledMinutes?: () => number[];\r\n /**\r\n * @zh_CN 禁用秒的自定义函数\r\n * @en_US Custom function of disable seconds\r\n */\r\n disabledSeconds?: () => number[];\r\n};\r\n\r\n/**\r\n * @zh_CN 快捷选择按钮\r\n * @en_US Quick selection button\r\n */\r\nexport interface XDatePickerPreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date;\r\n}\r\n\r\n/**\r\n * @zh_CN 快捷范围选择按钮\r\n * @en_US Quick range selection button\r\n */\r\nexport interface XDateRangePreset extends XIdentityProperty {\r\n /**\r\n * @zh_CN 自定义函数\r\n * @en_US Custom function\r\n */\r\n func: () => Date[];\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType =\r\n | 'date'\r\n | 'week'\r\n | 'month'\r\n | 'quarter'\r\n | 'year'\r\n | 'date-time'\r\n | 'date-hour'\r\n | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * @zh_CN 输入框形态变体\r\n * @en_US Input box variant\r\n */\r\nexport type XDatePickerVariant = XVariant;\r\n\r\n/**\r\n * @zh_CN 浮动标签类型\r\n * @en_US Float label type\r\n */\r\nexport type XDatePickerFloatLabel = XFloatLabel;\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * DateRange Portal\r\n * @selector x-date-range-portal\r\n * @decorator component\r\n */\r\nexport const XDateRangePortalPrefix = 'x-date-range-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ selector: `${XPickerDatePrefix}-property`, template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n readonly dateTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Last month\r\n */\r\n readonly lastMonthBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上月\r\n * @en_US Next month\r\n */\r\n readonly nextMonthBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围 hover 效果\r\n * @en_US Range hover style\r\n */\r\n readonly rangeHover = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围日期\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围日期 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围日期 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * @zh_CN 单个日期数据对象\r\n * @en_US 单个日期数据对象\r\n */\r\nexport interface XDateCell {\r\n /**\r\n * @zh_CN 日期\r\n * @en_US Date\r\n */\r\n date?: Date;\r\n /**\r\n * @zh_CN 上个月或下个月的日期\r\n * @en_US Date of the previous or next month\r\n */\r\n isLastOrNext?: boolean;\r\n /**\r\n * @zh_CN 当天\r\n * @en_US Same day\r\n */\r\n isNow?: boolean;\r\n /**\r\n * @zh_CN 当月第一天\r\n * @en_US The first day of the month\r\n */\r\n isFirstDay?: boolean;\r\n /**\r\n * @zh_CN 当月最后一天\r\n * @en_US The last day of the month\r\n */\r\n isLastDay?: boolean;\r\n /**\r\n * @zh_CN 范围内日期\r\n * @en_US 范围内日期\r\n */\r\n isInRange?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 选中\r\n * @en_US 范围内 hover 选中\r\n */\r\n isInRangeHover?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期左边\r\n * @en_US 范围内 hover 当前日期左边\r\n */\r\n isInRangeHoverLeft?: boolean;\r\n /**\r\n * @zh_CN 范围内 hover 当前日期右边\r\n * @en_US 范围内 hover 当前日期右边\r\n */\r\n isInRangeHoverRight?: boolean;\r\n /**\r\n * @zh_CN 选中开始左边\r\n * @en_US Range start left\r\n */\r\n isRangeStartLeft?: boolean;\r\n /**\r\n * @zh_CN 选中开始右边\r\n * @en_US Range start right\r\n */\r\n isRangeStartRight?: boolean;\r\n /**\r\n * @zh_CN 选中结束左边\r\n * @en_US Range start left\r\n */\r\n isRangeEndLeft?: boolean;\r\n /**\r\n * @zh_CN 选中结束右边\r\n * @en_US Range start right\r\n */\r\n isRangeEndRight?: boolean;\r\n /**\r\n * @zh_CN 范围 hover\r\n * @en_US Range hover\r\n */\r\n isRangeHover?: boolean;\r\n /**\r\n * @zh_CN hover 当前开始\r\n * @en_US Range hover start\r\n */\r\n isRangeHoverStart?: boolean;\r\n /**\r\n * @zh_CN hover 当前结束\r\n * @en_US End date\r\n */\r\n isRangeHoverEnd?: boolean;\r\n /**\r\n * @zh_CN hover 开始左边\r\n * @en_US Range hover start left\r\n */\r\n isRangeHoverStartLeft?: boolean;\r\n /**\r\n * @zh_CN hover 开始右边\r\n * @en_US Range hover start right\r\n */\r\n isRangeHoverStartRight?: boolean;\r\n /**\r\n * @zh_CN hover 结束左边\r\n * @en_US Range hover end left\r\n */\r\n isRangeHoverEndLeft?: boolean;\r\n /**\r\n * @zh_CN hover 结束右边\r\n * @en_US Range hover end right\r\n */\r\n isRangeHoverEndRight?: boolean;\r\n /**\r\n * @zh_CN 当前选中日期\r\n * @en_US Current selected date\r\n */\r\n isActive?: boolean;\r\n /**\r\n * @zh_CN 禁用日期\r\n * @en_US Disabled date\r\n */\r\n isDisabled?: boolean;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 第几周\r\n * @en_US Week\r\n */\r\n week?: number;\r\n}\r\n\r\n/**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\nexport type XDatePickerRangType = 'start' | 'end';\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ selector: `${XPickerMonthPrefix}-property`, template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n readonly monthTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * PickerQuarter\r\n * @selector x-picker-quarter\r\n * @decorator component\r\n */\r\nexport const XPickerQuarterPrefix = 'x-picker-quarter';\r\n\r\n/**\r\n * PickerQuarter Property\r\n */\r\n@Component({ selector: `${XPickerQuarterPrefix}-property`, template: '' })\r\nexport class XPickerQuarterProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 季度显示模板\r\n * @en_US Month display template\r\n */\r\n readonly quarterTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围月份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围季度 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围季度 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n\r\n/**\r\n * DateQuarter\r\n * @selector xDateQuarter\r\n * @decorator pipe\r\n */\r\nexport const XDateQuarterPrefix = 'xDateQuarter';\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ selector: `${XPickerYearPrefix}-property`, template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n readonly type = model<XDatePickerType>('date');\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n readonly display = model<Date>(new Date());\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n readonly model = model<Date | null>();\r\n /**\r\n * @zh_CN 年份显示模板\r\n * @en_US Month display template\r\n */\r\n readonly yearTemp = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 显示切换按钮\r\n * @en_US Display switch button\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围选择\r\n * @en_US Range picker\r\n */\r\n readonly rangePicker = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上一年\r\n * @en_US Last year\r\n */\r\n readonly lastYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下一年\r\n * @en_US Next year\r\n */\r\n readonly nextYearBtn = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 范围年份\r\n * @en_US Range date\r\n */\r\n readonly rangeValue = input<(number | null)[]>([]);\r\n /**\r\n * @zh_CN 当前选择的是开始/结束日期\r\n * @en_US The current choice is the start / end date\r\n */\r\n readonly rangeType = input<XDatePickerRangType>();\r\n /**\r\n * @zh_CN 禁用的日期\r\n * @en_US Disabled date\r\n */\r\n readonly disabledDate = input<XDatePickerDisabledDate>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n readonly startChange = output<number>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n readonly rangeChange = output<Date[]>();\r\n /**\r\n * @zh_CN 选年的事件\r\n * @en_US Year change event\r\n */\r\n readonly yearChange = output<number>();\r\n /**\r\n * @zh_CN 选月的事件\r\n * @en_US Month change event\r\n */\r\n readonly monthChange = output<number>();\r\n /**\r\n * @zh_CN 范围月份 mouseenter 事件\r\n * @en_US Date mouseenter event\r\n */\r\n readonly rangeTdMouseenter = output<XDateCell>();\r\n /**\r\n * @zh_CN 范围月份 mouseleave 事件\r\n * @en_US Date mouseleave event\r\n */\r\n readonly rangeTdMouseleave = output<XDateCell>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction, XDateWeek, XDateYearWeek } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { XI18nDatePicker, XI18nPipe, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XI18nPipe],\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n titles = signal([\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ]);\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n weekDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isWeek = computed(() => {\r\n return this.type() === 'week';\r\n });\r\n\r\n isWeekRange = computed(() => {\r\n return this.type() === 'week' && this.rangePicker();\r\n });\r\n\r\n isNotWeekRange = computed(() => {\r\n return this.type() !== 'week' && this.rangePicker();\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display());\r\n }\r\n\r\n isWeekActive(week: XDateCell[]) {\r\n if (week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.model()!);\r\n }\r\n return false;\r\n }\r\n\r\n isStartWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue()[0]!);\r\n }\r\n return false;\r\n }\r\n\r\n isEndWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1]) && week.length > 1) {\r\n return XDateYearWeek(week[1].date!) === XDateYearWeek(this.rangeValue()[1]!);\r\n }\r\n return false;\r\n }\r\n\r\n isInRangeWeek(week: XDateCell[]) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0]) && !XIsNull(this.rangeValue()[1]) && week.length > 1) {\r\n let time = week[1].date?.getTime()!;\r\n return time > this.rangeValue()[0]! && time < this.rangeValue()[1]!;\r\n }\r\n return false;\r\n }\r\n\r\n isStartDate(date: Date) {\r\n if (this.type() === 'week' || !this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n isEndDate(date: Date) {\r\n if (this.type() === 'week' || !this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n setTitles() {\r\n if (this.type() === 'week') {\r\n this.titles.update((x) => ['datePicker.week', ...x]);\r\n }\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: XDateCell[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n const cell = { date: new Date(year, month, index) };\r\n dates = [this.setDayState(cell), ...dates];\r\n day = cell.date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n const cell: XDateCell = {\r\n date: new Date(year, month, index),\r\n isFirstDay: index === 1,\r\n isLastDay: index === lastDate\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n const cell = { date: new Date(year, month + 1, index) };\r\n dates = [...dates, this.setDayState(cell)];\r\n day = cell.date.getDay();\r\n }\r\n\r\n this.dates.set(dates);\r\n this.weekDates.set(XChunk(dates, 7));\r\n\r\n if (this.type() === 'week') {\r\n for (let item of this.dates()) {\r\n item.week = XDateWeek(item.date!)!;\r\n }\r\n for (let week of this.weekDates()) {\r\n week.unshift({ type: 'week', week: week[0].week! });\r\n }\r\n }\r\n\r\n if (this.dates().length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');\r\n const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fdisplaym = this.datePipe.transform(this.display(), 'yyyyMM');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');\r\n cell.isLastOrNext = fdatem !== fdisplaym;\r\n cell.isNow = fdate === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start!, 'yyyyMMdd');\r\n cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end!, 'yyyyMMdd');\r\n }\r\n return cell;\r\n }\r\n\r\n dateClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setDays(this.display());\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display());\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.monthChange.emit(num);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-date-header\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn()\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn()\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display()) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn()\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn()\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n @for (title of titles(); track title) {\r\n <th>{{ title | xI18n }}</th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (weeks of weekDates(); track $index) {\r\n <tr\r\n [class.x-date-week-active]=\"!rangePicker() && isWeek() && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange() && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange() && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange() && isInRangeWeek(weeks)\"\r\n >\r\n @for (week of weeks; track week.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange() && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange() && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange() && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange() && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange() && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange() && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange() && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange() && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange() && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange() && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange() && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange() && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange() && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange() && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange() && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker() &&\r\n week.type !== 'week' &&\r\n (week.date | date: 'yyyyMMdd') === (model() | date: 'yyyyMMdd')\r\n \"\r\n [title]=\"week.date | date: 'yyyy-MM-dd'\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker() && rangeHover() && onTdMouseenter(week)\r\n \"\r\n (mouseleave)=\"\r\n week.type !== 'week' && !week.isDisabled && rangePicker() && rangeHover() && onTdMouseleave(week)\r\n \"\r\n >\r\n @if (dateTemp()) {\r\n <ng-container *ngTemplateOutlet=\"dateTemp()!; context: { date$: week.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n @switch (week.type) {\r\n @case ('week') {\r\n {{ week.week }}\r\n }\r\n @default {\r\n {{ week.date | date: 'd' }}\r\n }\r\n }\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private lowerCasePipe = inject(LowerCasePipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths(this.display());\r\n }\r\n\r\n isStartMonth(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndMonth(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setMonths(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fmonthy = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display(), 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fmonthy !== fdisplayy;\r\n cell.isNow = fmonth === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n monthClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.clearState(...this.dates());\r\n for (let item of this.dates()) {\r\n this.setDayState(item);\r\n }\r\n }\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setMonths(this.display());\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-month-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (months of chunkDates(); track $index) {\r\n <tr>\r\n @for (month of months; track month.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker() && (month.date | date: 'yyyyMM') === (model() | date: 'yyyyMM')\"\r\n [title]=\"month.date | date: 'yyyy-MM'\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker() && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker() && onTdMouseleave(month)\"\r\n >\r\n @if (monthTemp()) {\r\n <ng-container *ngTemplateOutlet=\"monthTemp()!; context: { date$: month.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XDate, XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';\r\nimport { XDateQuarterPrefix } from './date-picker.property';\r\n\r\n@Pipe({ name: `${XDateQuarterPrefix}`, standalone: true })\r\nexport class XDateQuarterPipe implements PipeTransform {\r\n constructor() {}\r\n transform(input?: XDate, includeYear = false): string {\r\n if (!input) return '';\r\n return !includeYear ? XDateQuarter(input)! : XDateYearQuarter(input)!;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs/operators';\r\nimport { XDateQuarterPipe } from './date-quarter.pipe';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-picker-quarter',\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XDateQuarterPipe],\r\n templateUrl: './picker-quarter.component.html',\r\n styleUrls: ['./picker-quarter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe, XDateQuarterPipe]\r\n})\r\nexport class XPickerQuarterComponent extends XPickerQuarterProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private dateQuarterPipe = inject(XDateQuarterPipe);\r\n private i18n = inject(XI18nService);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setQuarters(this.display());\r\n }\r\n\r\n isStartQuarter(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n isEndQuarter(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setQuarters(date: Date) {\r\n let year = date.getFullYear();\r\n let dates: XDateCell[] = [];\r\n for (let i = 0; i < 4; i++) {\r\n const cell = { date: new Date(year, i * 3, 1), isFirstDay: i === 0, isLastDay: i === 3 };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0].date!, dates[dates.length - 1].date!]);\r\n }\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fquarter = this.datePipe.transform(cell.date, 'yyyyMM');\r\n const fquartery = this.datePipe.transform(cell.date, 'yyyy');\r\n const fdisplayy = this.datePipe.transform(this.display(), 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyyMM');\r\n cell.isLastOrNext = fquartery !== fdisplayy;\r\n cell.isNow = fquarter === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fquarter === this.datePipe.transform(start!, 'yyyyMM');\r\n cell.isRangeEndLeft = !!start && !!end && fquarter === this.datePipe.transform(end!, 'yyyyMM');\r\n }\r\n return cell;\r\n }\r\n\r\n quarterClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n getLocaleQuarter(date: Date) {\r\n return this.dateQuarterPipe.transform(date);\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setQuarters(this.display());\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n\r\n typeOnChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n}\r\n","<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp()\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-quarter-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display() | date: 'yyyy' }}{{ locale().year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (quarters of chunkDates(); track $index) {\r\n <tr>\r\n @for (quarter of quarters; track quarter.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date: 'yyyyMM') === (model() | date: 'yyyyMM')\"\r\n [title]=\"quarter.date | xDateQuarter: true\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker() && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker() && onTdMouseleave(quarter)\"\r\n >\r\n @if (quarterTemp()) {\r\n <ng-container *ngTemplateOutlet=\"quarterTemp()!; context: { date$: quarter.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n inject,\r\n computed,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDateCell, XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n imports: [DatePipe, NgTemplateOutlet, XLinkComponent],\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n private datePipe = inject(DatePipe);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n now = new Date();\r\n dates = signal<XDateCell[]>([]);\r\n chunkDates = signal<XDateCell[][]>([]);\r\n start = signal<number | null>(null);\r\n end = signal<number | null>(null);\r\n\r\n rangeStart = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 0) {\r\n return this.rangeValue()[0];\r\n }\r\n return '';\r\n });\r\n\r\n rangeEnd = computed(() => {\r\n if (this.rangeValue() && this.rangeValue().length > 1) {\r\n return this.rangeValue()[1];\r\n }\r\n return '';\r\n });\r\n\r\n isDisabled(date: Date) {\r\n const disabledDate = this.disabledDate();\r\n if (disabledDate && XIsFunction(disabledDate)) {\r\n return disabledDate(date);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { display } = simples;\r\n XIsChange(display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears(this.display());\r\n }\r\n\r\n isStartYear(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[0])) {\r\n return this.datePipe.transform(this.rangeValue()[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n isEndYear(date: Date) {\r\n if (!this.rangeType() || !this.rangeValue()) return;\r\n if (!XIsNull(this.rangeValue()[1])) {\r\n return this.datePipe.transform(this.rangeValue()[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');\r\n }\r\n return;\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n this.onTdMouseenter(cell, false);\r\n }\r\n\r\n onTdMouseenter(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n const time = cell.date!.getTime();\r\n this.dates.update((x) => {\r\n for (let item of x) {\r\n const itemTime = item.date!.getTime();\r\n this.clearState(item);\r\n if (!XIsNull(start) && XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverStartRight = time > start! && itemTime === start!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > start! && itemTime > start! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > start!;\r\n } else if (XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverEndLeft = time < end! && itemTime === end!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < end! && itemTime >= time && itemTime < end!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < end!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n } else if (!XIsNull(start) && !XIsNull(end)) {\r\n item.isRangeHoverStartLeft = time < start! && itemTime === start!;\r\n item.isRangeHoverEndRight = time > end! && itemTime === end!;\r\n item.isRangeHover =\r\n (time < start! && itemTime >= time && itemTime < start!) ||\r\n (time > end! && itemTime > end! && itemTime <= time);\r\n item.isRangeHoverStart = itemTime === time && time < start!;\r\n item.isRangeHoverEnd = itemTime === time && time > end!;\r\n if (this.rangeType() === 'start') {\r\n item.isInRangeHover = itemTime >= time! && itemTime <= end!;\r\n } else if (this.rangeType() === 'end') {\r\n item.isInRangeHover = itemTime >= start! && itemTime <= time;\r\n }\r\n }\r\n }\r\n return [...x];\r\n });\r\n if (isEmit) {\r\n this.rangeTdMouseenter.emit(cell);\r\n } else {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n onTdMouseleave(cell: XDateCell, isEmit = true) {\r\n const [start, end] = this.rangeValue();\r\n if (!XIsNull(start) || !XIsNull(end)) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n if (isEmit) this.rangeTdMouseleave.emit(cell);\r\n }\r\n }\r\n\r\n clearState(...cells: XDateCell[]) {\r\n for (let cell of cells) {\r\n cell.isInRangeHover = false;\r\n cell.isRangeHover = false;\r\n cell.isRangeHoverStart = false;\r\n cell.isRangeHoverEnd = false;\r\n cell.isRangeHoverStartLeft = false;\r\n cell.isRangeHoverStartRight = false;\r\n cell.isRangeHoverEndLeft = false;\r\n cell.isRangeHoverEndRight = false;\r\n }\r\n }\r\n\r\n setYears(date: Date) {\r\n let year = date.getFullYear();\r\n this.start.set(Math.floor(year / 10) * 10);\r\n this.end.set(this.start()! + 9);\r\n let dates: XDateCell[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n const dt = new Date(this.start()! + i, 1, 1);\r\n const cell: XDateCell = {\r\n date: dt,\r\n isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),\r\n isLastOrNext: i < 0 || i > 9,\r\n isFirstDay: i === 0,\r\n isLastDay: i === 9\r\n };\r\n dates = [...dates, this.setDayState(cell)];\r\n }\r\n this.dates.set(dates);\r\n this.chunkDates.set(XChunk(dates, 4));\r\n this.startChange.emit(this.start()!);\r\n }\r\n\r\n setDayState(cell: XDateCell): XDateCell {\r\n const time = cell.date?.getTime()!;\r\n const fyear = this.datePipe.transform(cell.date, 'yyyy');\r\n const fnow = this.datePipe.transform(this.now, 'yyyy');\r\n cell.isNow = fyear === fnow;\r\n cell.isDisabled = this.isDisabled(cell.date!);\r\n if (this.rangePicker()) {\r\n if (!this.rangeValue()) return cell;\r\n const [start, end] = this.rangeValue();\r\n cell.isInRange = !!start && !!end && time >= start! && time <= end!;\r\n cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start!, 'yyyy');\r\n cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end!, 'yyyy');\r\n }\r\n return cell;\r\n }\r\n\r\n yearClick(cell: XDateCell) {\r\n this.model.set(cell.date);\r\n if (this.rangePicker()) {\r\n this.dates.update((x) => {\r\n x.map((y) => {\r\n this.clearState(y);\r\n this.setDayState(y);\r\n return y;\r\n });\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start()}` || yearStr > `${this.end}`;\r\n }\r\n\r\n rangeDisabled(date: Date) {\r\n if (this.rangeType() === 'end') {\r\n const rangeStart = this.rangeStart();\r\n return rangeStart !== '' && date.getTime() < rangeStart!;\r\n } else if (this.rangeType() === 'start') {\r\n const rangeEnd = this.rangeEnd();\r\n return rangeEnd !== '' && date.getTime() > rangeEnd!;\r\n }\r\n return false;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.setYears(this.display());\r\n }\r\n\r\n nextYears(num: number) {\r\n this.start.update((x) => x! + num);\r\n let date = new Date(this.display());\r\n date.setFullYear(this.start()!);\r\n this.setDisplay(date);\r\n this.yearChange.emit(num);\r\n }\r\n}\r\n","<div class=\"x-picker-year\">\r\n @if (showHeader()) {\r\n <div class=\"x-picker-year-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn()\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start() }}</x-link> -\r\n <x-link>{{ end() }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn()\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (years of chunkDates(); track $index) {\r\n <tr>\r\n @for (year of years; track year.date) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker() && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker() && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker() && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker() && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker() && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker() && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker() && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker() && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker() && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker() && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker() && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker() && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker() && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker() && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker() && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker() && (year.date | date: 'yyyy') === (model() | date: 'yyyy')\"\r\n [title]=\"year.date | date: 'yyyy'\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker() && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker() && onTdMouseleave(year)\"\r\n >\r\n @if (yearTemp()) {\r\n <ng-container *ngTemplateOutlet=\"yearTemp()!; context: { date$: year.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ year.date | date: 'yyyy' }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n viewChild,\r\n computed,\r\n signal,\r\n model,\r\n DestroyRef\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, XPositionTopBottom, XAddDays, XTemplate, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerQuarterComponent,\r\n XPickerYearComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements AfterViewInit {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n private i18n = inject(XI18nService);\r\n private _type = signal<XDatePickerType>('date');\r\n destroy = signal(false);\r\n private destroyRef = inject(DestroyRef);\r\n\r\n timePickerFrame = viewChild('timePickerFrame', { read: XTimePickerFrameComponent });\r\n value = input<any>();\r\n type = model<XDatePickerType>('date');\r\n preset = input<XDatePickerPreset[]>([]);\r\n extraFooter = input<XTemplate>();\r\n placement = input<XPositionTopBottom>();\r\n inputCom = input<XInputComponent>();\r\n disabledDate = input<XDatePickerDisabledDate>();\r\n disabledTime = input<XDatePickerDisabledTime>();\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ date: Date; sure?: boolean }>();\r\n\r\n display = signal(new Date());\r\n model = signal<Date | null>(null);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n time = signal<number | null>(null);\r\n\r\n isDatePicker = computed(() => {\r\n return ['date', 'month', 'year'].includes(this.type());\r\n });\r\n\r\n sureDisabled = computed(() => {\r\n let res = XIsUndefined(this.time());\r\n let timePickerFrame = this.timePickerFrame();\r\n if (timePickerFrame && !XIsUndefined(this.time())) {\r\n const dt = new Date(this.time()!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n timePickerFrame.setDisabled('hours', hours) ||\r\n timePickerFrame.setDisabled('minutes', minutes) ||\r\n timePickerFrame.setDisabled('seconds', seconds)\r\n );\r\n }\r\n return res;\r\n });\r\n\r\n ngOnInit() {\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n }\r\n this._type.set(this.type());\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value());\r\n this.model.set(date);\r\n this.time.set(this.model()!.getTime());\r\n this.setDisplay(this.model()!);\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model.set(date);\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type())) {\r\n let time = new Date();\r\n if (['date-hour', 'date-minute'].includes(this.type())) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type() === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n if (!this.time()) {\r\n this.time.set(time.getTime());\r\n }\r\n this.setModelTime(this.model()!, new Date(this.time()!));\r\n this.nodeClick.emit({ date: this.model()!, sure: false });\r\n } else {\r\n this.nodeClick.emit({ date: this.model()!, sure: true });\r\n }\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'month') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set(this._type()!);\r\n }\r\n }\r\n\r\n quarterChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'quarter') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set(this._type());\r\n }\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type() === 'year') {\r\n this.model.set(date);\r\n this.nodeClick.emit({ date, sure: true });\r\n } else {\r\n this.type.set('month');\r\n }\r\n }\r\n\r\n onToday() {\r\n this.dateChange(new Date());\r\n }\r\n\r\n onYesterday() {\r\n this.dateChange(XAddDays(new Date(), -1));\r\n }\r\n\r\n onTomorrow() {\r\n this.dateChange(XAddDays(new Date(), 1));\r\n }\r\n\r\n onPresetFunc(item: XDatePickerPreset) {\r\n this.dateChange(item.func());\r\n }\r\n\r\n selectTime(time: Date) {\r\n if (!this.model()) {\r\n this.model.set(new Date());\r\n }\r\n this.time.set(time.getTime());\r\n this.nodeClick.emit({ date: this.setModelTime(this.model()!, time), sure: false });\r\n }\r\n\r\n setModelTime(date: Date, time: Date) {\r\n this.model.set(\r\n new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n )\r\n );\r\n return this.model()!;\r\n }\r\n}\r\n","<div class=\"x-date-picker-portal {{ type() }}\" (click)=\"inputCom()?.inputFocus('focus')\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n [(display)]=\"display\"\r\n [(model)]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n @case ('month') {}\r\n }\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [(display)]=\"display\"\r\n [(type)]=\"type\"\r\n [(model)]=\"model\"\r\n (modelChange)=\"dateChange($event!)\"\r\n [disabledDate]=\"disabledDate()\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrameD\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n @if (!isDatePicker() && preset()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button\r\n type=\"primary\"\r\n text\r\n (click)=\"!sureDisabled() && nodeClick.emit({ date: model()!, sure: true })\"\r\n size=\"small\"\r\n [disabled]=\"sureDisabled()\"\r\n >{{ locale().sure }}</x-button\r\n >\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-picker-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('yesterday') {\r\n <x-link (click)=\"onYesterday()\">{{ locale().yesterday }}</x-link>\r\n }\r\n @case ('today') {\r\n <x-link (click)=\"onToday()\">{{ locale().today }}</x-link>\r\n }\r\n @case ('tomorrow') {\r\n <x-link (click)=\"onTomorrow()\">{{ locale().tomorrow }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n inject,\r\n signal,\r\n computed,\r\n viewChild,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XIsString,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents,\r\n XPlacement\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private i18n = inject(XI18nService);\r\n private elementRef = inject(ElementRef);\r\n private overlay = inject(Overlay);\r\n\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n\r\n modelType = signal<XDatePickerModelType>('date');\r\n numberValue = signal<number | string | null>(null);\r\n isInput = signal(false);\r\n\r\n override writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType.set('date');\r\n this.numberValue.set(value.getTime());\r\n } else if (XIsNumber(value)) {\r\n this.modelType.set('number');\r\n this.numberValue.set(value);\r\n } else if (XIsString(value)) {\r\n this.modelType.set('string');\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue.set(!isNaN(valueTime) ? valueTime : '');\r\n } else if (XIsEmpty(value) || XIsNull(value)) {\r\n this.numberValue.set('');\r\n }\r\n this.value.set(value);\r\n this.setDisplayValue(this.numberValue()!);\r\n }\r\n\r\n enter = signal(false);\r\n inputClearable = signal(false);\r\n animating = signal(false);\r\n displayValue = signal('');\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon = signal('fto-calendar');\r\n closeSubject: Subject<void> = new Subject();\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n document = inject(DOCUMENT);\r\n\r\n private unSubject = new Subject<void>();\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDatePickerPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n placeholderSignal = computed(() => {\r\n if (this.placeholder()) return this.placeholder();\r\n if (this.type() === 'month') {\r\n return this.locale().selectMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().selectQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().selectYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().selectWeek;\r\n } else {\r\n return this.locale().selectDate;\r\n }\r\n });\r\n\r\n formatSignal = computed(() => {\r\n if (this.format() !== 'yyyy-MM-dd') return this.format();\r\n if (this.type() === 'date') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'year') {\r\n return 'yyyy';\r\n } else if (this.type() === 'quarter') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'month') {\r\n return 'yyyy-MM';\r\n } else if (this.type() === 'date-time') {\r\n return 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type() === 'date-hour') {\r\n return 'yyyy-MM-dd HH';\r\n } else if (this.type() === 'date-minute') {\r\n return 'yyyy-MM-dd HH:mm';\r\n }\r\n return this.format();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.numberValue()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('type', this.type()));\r\n effect(() => this.portalComponent()?.setInput('preset', this.preset()));\r\n effect(() => this.portalComponent()?.setInput('extraFooter', this.extraFooter()));\r\n effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));\r\n effect(() => this.portalComponent()?.setInput('disabledDate', this.disabledDate()));\r\n effect(() => this.portalComponent()?.setInput('disabledTime', this.disabledTime()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setDisplayValue(this.numberValue()!);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!this.clearable()) return;\r\n if (!XIsEmpty(this.numberValue())) {\r\n this.icon.set('');\r\n this.inputClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (!this.clearable()) return;\r\n if (this.inputClearable()) {\r\n this.icon.set('fto-calendar');\r\n this.inputClearable.set(false);\r\n }\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set(null);\r\n this.numberValue.set(null);\r\n this.displayValue.set('');\r\n this.mleave();\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n this.formControlValidator();\r\n }\r\n\r\n getValue() {\r\n if (this.numberValue() === '') return null;\r\n return ['date', 'string'].includes(this.modelType()) ? new Date(this.numberValue()!) : this.numberValue();\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue()!);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, animating } = componentRef.instance;\r\n nodeClick.subscribe((x) => this.onNodeClick(x.date, x.sure));\r\n animating.subscribe((ing) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput.set(false);\r\n if (sure) {\r\n this.numberValue.set(date.getTime());\r\n this.value.set(this.getValue());\r\n this.setDisplayValue(this.numberValue()!);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(Number(this.numberValue()));\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput.set(true);\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput() && !isNaN(Date.parse(this.displayValue())) && !['week', 'quarter'].includes(this.type())) {\r\n this.displayValue.set(this.datePipe.transform(this.displayValue(), this.formatSignal())!);\r\n this.numberValue.set(new Date(this.displayValue()).getTime());\r\n this.value.set(this.getValue());\r\n this.modelChange();\r\n this.isInput.set(false);\r\n } else {\r\n if (this.type() === 'week') {\r\n this.displayValue.set(XDateYearWeek(dateNumber));\r\n } else if (this.type() === 'quarter') {\r\n this.displayValue.set(XDateYearQuarter(dateNumber));\r\n } else {\r\n this.displayValue.set(this.datePipe.transform(dateNumber, this.formatSignal())!);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n }\r\n}\r\n","<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl() ? valueTpl() : valueTemplate\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [inputStyle]=\"inputStyle()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [variant]=\"variant()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\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\r\n <ng-template #valueTemplate>\r\n {{ displayValue() }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener,\r\n input,\r\n output,\r\n computed,\r\n viewChild,\r\n signal,\r\n inject,\r\n model,\r\n DestroyRef\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 XPositionTopBottom,\r\n XAddMonths,\r\n XAddYears,\r\n XIsNull,\r\n XTemplate,\r\n XIsArray,\r\n XIsNumber,\r\n XIsString,\r\n XAddDays\r\n} from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XTimePickerFrameComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XPickerQuarterComponent } from './picker-quarter.component';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XDateRangePortalPrefix}`,\r\n imports: [\r\n NgTemplateOutlet,\r\n DatePipe,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerYearComponent,\r\n XPickerQuarterComponent,\r\n XTimePickerModule,\r\n XButtonComponent,\r\n XLinkComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './date-range-portal.component.html',\r\n styleUrls: ['./date-range-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDateRangePortalComponent implements AfterViewInit {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n datePipe = inject(DatePipe);\r\n lowerCasePipe = inject(LowerCasePipe);\r\n i18n = inject(XI18nService);\r\n\r\n startPicker = viewChild<XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent>('startPicker');\r\n endPicker = viewChild<XPickerDateComponent | XPickerMonthComponent | XPickerYearComponent>('endPicker');\r\n timePickerFrame = viewChild<XTimePickerFrameComponent>('timePickerFrame');\r\n\r\n value = model<(number | null)[]>([]);\r\n placement = input<XPositionTopBottom>();\r\n type = model<XDatePickerType>('date');\r\n preset = input<XDateRangePreset[]>([]);\r\n extraFooter = input<XTemplate>();\r\n disabledDate = input<XDatePickerDisabledDate>();\r\n disabledTime = input<XDatePickerDisabledTime>();\r\n activeType = input<'start' | 'end'>('start');\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ date: Date[]; close?: boolean }>();\r\n startNodeChanged = output<{ date: Date | null; close?: boolean; isDatePicker?: boolean }>();\r\n endNodeChanged = output<{ date: Date | null; close?: boolean; isDatePicker?: boolean }>();\r\n\r\n display = signal(new Date());\r\n model = signal<Date | null>(null);\r\n startModel = signal<Date | null>(null);\r\n endModel = signal<Date | null>(null);\r\n startYear = signal<number | null>(null);\r\n startDisplay = signal(new Date());\r\n endDisplay = signal(XAddMonths(this.startDisplay(), 1));\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n time = signal<number | null>(null);\r\n timeDisplay = signal(new Date());\r\n timeModel = signal<Date | null>(null);\r\n timeHover = signal(false);\r\n nodeClickCount = signal(0);\r\n\r\n destroy = signal(false);\r\n private destroyRef = inject(DestroyRef);\r\n\r\n isDatePicker = computed(() => {\r\n return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type());\r\n });\r\n\r\n sureDisabled = computed(() => {\r\n if (this.timePickerFrame() && !XIsEmpty(this.time())) {\r\n const dt = new Date(this.time()!);\r\n const hours = dt.getHours();\r\n const minutes = dt.getMinutes();\r\n const seconds = dt.getSeconds();\r\n return (\r\n this.timePickerFrame()?.setDisabled('hours', hours) ||\r\n this.timePickerFrame()?.setDisabled('minutes', minutes) ||\r\n this.timePickerFrame()?.setDisabled('seconds', seconds)\r\n );\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n ngOnInit() {\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n } else {\r\n this.value.set([null, null]);\r\n this.model.set(this.display());\r\n this.startModel.set(this.model());\r\n this.endModel.set(this.setModelByType(this.model()!, this.isDatePicker() ? 1 : 0));\r\n this.setDisplay(this.model()!);\r\n }\r\n }\r\n\r\n setModelByType(byModel: Date, num: number = 1) {\r\n if (['month', 'quarter'].includes(this.type())) {\r\n return XAddYears(byModel!, num);\r\n } else if (this.type() === 'year') {\r\n return XAddYears(byModel!, 10 * num);\r\n } else {\r\n return XAddMonths(byModel!, num);\r\n }\r\n }\r\n\r\n setDatesState(cell: XDateCell) {\r\n if (this.type() === 'week') return;\r\n this.startPicker()?.setDatesState(cell);\r\n this.endPicker()?.setDatesState(cell);\r\n }\r\n\r\n setDefault() {\r\n const type = this.activeType() || 'start';\r\n this.timeHover.set(!this.value().every((x) => x === null));\r\n if (type === 'start') {\r\n this.startModel.set(new Date(this.value()[0]!));\r\n this.startDisplay.set(this.startModel()!);\r\n this.endModel.set(this.setModelByType(this.startModel()!, this.isDatePicker() ? 1 : 0));\r\n this.endDisplay.set(this.endModel()!);\r\n this.timeModel.set(this.startModel());\r\n this.timeDisplay.set(this.startDisplay());\r\n this.time.set(this.startModel()!.getTime());\r\n } else if (type === 'end') {\r\n this.endModel.set(new Date(this.value()[1]!));\r\n this.endDisplay.set(this.endModel()!);\r\n this.startModel.set(this.setModelByType(this.endModel()!, this.isDatePicker() ? -1 : 0));\r\n this.startDisplay.set(this.startModel()!);\r\n this.timeModel.set(this.endModel());\r\n this.timeDisplay.set(this.endDisplay());\r\n this.time.set(this.endModel()!.getTime());\r\n }\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.startDisplay.set(this.display());\r\n this.endDisplay.set(this.setModelByType(this.display(), this.isDatePicker() ? 1 : 0));\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.nodeClickCount.update((x) => x + 1);\r\n let close = this.nodeClickCount() === 2;\r\n let time = this.setDateChangeTime(date);\r\n const isDatePicker = this.isDatePicker();\r\n date = new Date(time);\r\n if (this.activeType() === 'start') {\r\n this.value()[0] = time;\r\n if (!XIsNull(this.value()[1]) && time > this.value()[1]!) {\r\n if (this.nodeClickCount() === 2) {\r\n this.nodeClickCount.update((x) => x - 1);\r\n }\r\n close = false;\r\n this.endModel.set(null);\r\n this.value.update((x) => {\r\n x[1] = null;\r\n return [...x];\r\n });\r\n if (!isDatePicker) {\r\n this.timeHover.set(false);\r\n }\r\n this.endNodeChanged.emit({ date: null, close, isDatePicker });\r\n }\r\n this.startNodeChanged.emit({ date, close, isDatePicker });\r\n } else if (this.activeType() === 'end') {\r\n this.value()[1] = time;\r\n if (!XIsNull(this.value()[0]) && time < this.value()[0]!) {\r\n if (this.nodeClickCount() === 2) {\r\n this.nodeClickCount.update((x) => x - 1);\r\n }\r\n close = false;\r\n this.startModel.set(null);\r\n this.value.update((x) => {\r\n x[0] = null;\r\n return [...x];\r\n });\r\n if (!isDatePicker) {\r\n this.timeHover.set(false);\r\n }\r\n this.startNodeChanged.emit({ date: null, close, isDatePicker });\r\n }\r\n this.endNodeChanged.emit({ date, close, isDatePicker });\r\n }\r\n if (!this.value().includes(null) && isDatePicker) {\r\n this.nodeClick.emit({ date: this.value().map((x) => new Date(x!)), close });\r\n }\r\n }\r\n\r\n setDateChangeTime(date: Date) {\r\n if (this.isDatePicker()) {\r\n return date.getTime();\r\n } else {\r\n let time = new Date();\r\n if (this.time()) {\r\n time = new Date(this.time()!);\r\n } else {\r\n this.time.set(time.getTime());\r\n }\r\n if (['date-hour', 'date-minute'].includes(this.type())) {\r\n time.setSeconds(0);\r\n }\r\n if (this.type() === 'date-hour') {\r\n time.setMinutes(0);\r\n }\r\n\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n time.getHours(),\r\n time.getMinutes(),\r\n time.getSeconds()\r\n ).getTime();\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type.set(type);\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear.set(number);\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display());\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display());\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear.update((x) => x! + num);\r\n let date = new Date(this.display());\r\n date.setFullYear(this.startYear()!);\r\n this.setDisplay(date);\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale() as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time.set(time.getTime());\r\n if (XIsEmpty(this.timeModel())) {\r\n this.timeModel.set(new Date());\r\n }\r\n this.timeModel()?.setHours(time.getHours());\r\n this.timeModel()?.setMinutes(time.getMinutes());\r\n this.timeModel()?.setSeconds(time.getSeconds());\r\n this.dateChange(this.timeModel()!);\r\n }\r\n\r\n sureTime() {\r\n if (this.sureDisabled()) return;\r\n const [start, end] = this.value();\r\n if (XIsNull(start) && !XIsNull(end)) {\r\n this.time.set(null);\r\n this.timeHover.set(true);\r\n this.endNodeChanged.emit({ date: new Date(end!), close: false, isDatePicker: true });\r\n } else if (!XIsNull(start) && XIsNull(end)) {\r\n this.time.set(null);\r\n this.timeHover.set(true);\r\n this.startNodeChanged.emit({ date: new Date(start!), close: false, isDatePicker: true });\r\n } else {\r\n this.nodeClick.emit({ date: this.value().map((x) => new Date(x!)), close: true });\r\n }\r\n }\r\n\r\n yearChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay.update((x) => XAddYears(x, num));\r\n } else if (type === 'end') {\r\n this.startDisplay.update((x) => XAddYears(x, num));\r\n }\r\n }\r\n\r\n monthChange(num: number, type?: 'start' | 'end') {\r\n if (type === 'start') {\r\n this.endDisplay.update((x) => XAddMonths(x, num));\r\n } else if (type === 'end') {\r\n this.startDisplay.update((x) => XAddMonths(x, num));\r\n }\r\n }\r\n\r\n onPreset(type: 'week' | 'month' | 'year', num = 0) {\r\n let now = new Date();\r\n if (type === 'week') {\r\n now = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n const week = now.getDay();\r\n const weekList = [1, 2, 3, 4, 5, 6, 7];\r\n const index = weekList.indexOf(week);\r\n this.nodeClick.emit({\r\n date: [XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)],\r\n close: true\r\n });\r\n } else if (type === 'month') {\r\n const month = XAddMonths(now, num);\r\n const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);\r\n const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);\r\n this.nodeClick.emit({ date: [firstDay, lastDay], close: true });\r\n } else if (type === 'year') {\r\n let year = XAddYears(now, num);\r\n let firstDay = new Date(year.getFullYear(), 0, 1);\r\n let lastDay = XAddDays(XAddYears(firstDay, 1), -1);\r\n this.nodeClick.emit({ date: [firstDay, lastDay], close: true });\r\n }\r\n }\r\n\r\n onPresetFunc(item: XDateRangePreset) {\r\n let value = item.func();\r\n if (XIsArray(value) && value.length > 1) {\r\n if (XIsNumber(value[0]) || XIsString(value[0])) {\r\n value = value.map((x) => new Date(x));\r\n }\r\n this.nodeClick.emit({ date: value, close: true });\r\n }\r\n }\r\n}\r\n","<div class=\"x-date-range-portal {{ type() }}\">\r\n <div class=\"x-date-range-portal-body\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type=\"week\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type=\"week\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n }\r\n </div>\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType() === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover()\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType()\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n }\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n @if (!isDatePicker()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" text (click)=\"!sureDisabled() && sureTime()\" size=\"small\" [disabled]=\"sureDisabled()!\">{{\r\n locale().sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-range-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('thisWeek') {\r\n <x-link (click)=\"onPreset('week', 0)\">{{ locale().thisWeek }}</x-link>\r\n }\r\n @case ('lastWeek') {\r\n <x-link (click)=\"onPreset('week', -1)\">{{ locale().lastWeek }}</x-link>\r\n }\r\n @case ('nextWeek') {\r\n <x-link (click)=\"onPreset('week', 1)\">{{ locale().nextWeek }}</x-link>\r\n }\r\n @case ('thisMonth') {\r\n <x-link (click)=\"onPreset('month', 0)\">{{ locale().thisMonth }}</x-link>\r\n }\r\n @case ('lastMonth') {\r\n <x-link (click)=\"onPreset('month', -1)\">{{ locale().lastMonth }}</x-link>\r\n }\r\n @case ('nextMonth') {\r\n <x-link (click)=\"onPreset('month', 1)\">{{ locale().nextMonth }}</x-link>\r\n }\r\n @case ('thisYear') {\r\n <x-link (click)=\"onPreset('year', 0)\">{{ locale().thisYear }}</x-link>\r\n }\r\n @case ('lastYear') {\r\n <x-link (click)=\"onPreset('year', -1)\">{{ locale().lastYear }}</x-link>\r\n }\r\n @case ('nextYear') {\r\n <x-link (click)=\"onPreset('year', 1)\">{{ locale().nextYear }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n SimpleChanges,\r\n inject,\r\n OnDestroy,\r\n AfterViewInit,\r\n viewChild,\r\n signal,\r\n HostBinding,\r\n computed,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XDatePickerModelType, XDateRangePrefix, XDateRangeProperty } from './date-picker.property';\r\nimport {\r\n XIsEmpty,\r\n XIsDate,\r\n XIsNumber,\r\n XIsChange,\r\n XCorner,\r\n XIsString,\r\n XIsNull,\r\n XDateYearWeek,\r\n XDateYearQuarter,\r\n XParents,\r\n XPlacement\r\n} from '@ng-nest/ui/core';\r\nimport { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';\r\nimport { DOCUMENT, DatePipe, NgClass } from '@angular/common';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XDateRangePortalComponent } from './date-range-portal.component';\r\nimport { XI18nDatePicker, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { XOutletDirective } from \"@ng-nest/ui/outlet\";\r\n\r\n@Component({\r\n selector: `${XDateRangePrefix}`,\r\n imports: [NgClass, FormsModule, XInputComponent, XInputGroupComponent, XOutletDirective],\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDateRangeComponent), DatePipe]\r\n})\r\nexport class XDateRangeComponent extends XDateRangeProperty implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n @HostBinding('class') get className() {\r\n return `x-date-range-${this.type()}`;\r\n }\r\n dateRange = viewChild.required('dateRange', { read: ElementRef<HTMLElement> });\r\n inputGroup = viewChild.required('inputGroup', { read: XInputGroupComponent });\r\n inputStartCom = viewChild.required('inputStartCom', { read: XInputComponent });\r\n inputEndCom = viewChild.required('inputEndCom', { read: XInputComponent });\r\n\r\n modelType = signal<XDatePickerModelType>('date');\r\n numberValue = signal<(number | null)[]>([]);\r\n isInput = signal(false);\r\n showClearable = signal(false);\r\n\r\n startPlaceholder() {\r\n if (this.placeholder() && this.placeholder().length > 0) return this.placeholder()[0];\r\n if (this.type() === 'month') {\r\n return this.locale().startMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().startQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().startYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().startWeek;\r\n } else {\r\n return this.locale().startDate;\r\n }\r\n }\r\n\r\n endPlaceholder() {\r\n if (this.placeholder() && this.placeholder().length > 1) return this.placeholder()[1];\r\n if (this.type() === 'month') {\r\n return this.locale().endMonth;\r\n } else if (this.type() === 'quarter') {\r\n return this.locale().endQuarter;\r\n } else if (this.type() === 'year') {\r\n return this.locale().endYear;\r\n } else if (this.type() === 'week') {\r\n return this.locale().endWeek;\r\n } else {\r\n return this.locale().endDate;\r\n }\r\n }\r\n\r\n override writeValue(value: any) {\r\n if (XIsEmpty(value)) {\r\n value = [];\r\n this.numberValue.set([]);\r\n }\r\n if (value.length > 0) {\r\n if (XIsDate(value[0])) {\r\n this.modelType.set('date');\r\n this.numberValue.set(value.map((x: Date) => x.getTime()));\r\n } else if (XIsNumber(value[0])) {\r\n this.modelType.set('number');\r\n this.numberValue.set(value);\r\n } else if (XIsString(value[0])) {\r\n this.modelType.set('string');\r\n const valueTime = value.map((x: string) => new Date(x).getTime());\r\n this.numberValue.set(!isNaN(valueTime[0]) ? valueTime : []);\r\n }\r\n }\r\n this.value.set(value);\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n\r\n enter = signal(false);\r\n inputClearable = signal(false);\r\n animating = signal(false);\r\n displayValue = signal<string[]>([]);\r\n portal!: XPortalOverlayRef<XDateRangePortalComponent>;\r\n icon = signal('fto-calendar');\r\n closeSubject: Subject<void> = new Subject();\r\n startDisplay = signal<string | number>('');\r\n endDisplay = signal<string | number>('');\r\n activeType = signal<'start' | 'end'>('start');\r\n private unSubject = new Subject<void>();\r\n private document = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private datePipe = inject(DatePipe);\r\n private overlay = inject(Overlay);\r\n private i18n = inject(XI18nService);\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker as XI18nDatePicker)), {\r\n initialValue: zh_CN.datePicker\r\n });\r\n\r\n classMap = computed(() => ({\r\n [`${XDateRangePrefix}-${this.size()}`]: !!this.size(),\r\n [`x-justify-${this.justify()}`]: !!this.justify(),\r\n [`x-align-${this.align()}`]: !!this.align(),\r\n [`x-direction-${this.direction()}`]: !!this.direction()\r\n }));\r\n labelMapSignal = computed(() => ({\r\n [`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()\r\n }));\r\n\r\n formatSignal = computed(() => {\r\n if (this.format() !== 'yyyy-MM-dd') return this.format();\r\n if (this.type() === 'date') {\r\n return 'yyyy-MM-dd';\r\n } else if (this.type() === 'year') {\r\n return 'yyyy';\r\n } else if (this.type() === 'month') {\r\n return 'yyyy-MM';\r\n } else if (this.type() === 'date-time') {\r\n return 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type() === 'date-hour') {\r\n return 'yyyy-MM-dd HH';\r\n } else if (this.type() === 'date-minute') {\r\n return 'yyyy-MM-dd HH:mm';\r\n }\r\n return this.format();\r\n });\r\n\r\n getValue = computed(() => {\r\n return this.modelType() === 'date'\r\n ? this.numberValue().map((x) => new Date(x!))\r\n : this.modelType() === 'string'\r\n ? this.numberValue().map((x) => this.datePipe.transform(x!, this.formatSignal()))\r\n : this.numberValue();\r\n });\r\n\r\n getNumberValue = computed(() => {\r\n return this.modelType() === 'date'\r\n ? this.value().map((x: Date) => x.getTime())\r\n : this.modelType() === 'string'\r\n ? this.value().map((x: string) => new Date(x).getTime())\r\n : this.value();\r\n });\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDateRangePortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.numberValue()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('activeType', this.activeType()));\r\n effect(() => this.portalComponent()?.setInput('type', this.type()));\r\n effect(() => this.portalComponent()?.setInput('preset', this.preset()));\r\n effect(() => this.portalComponent()?.setInput('extraFooter', this.extraFooter()));\r\n effect(() => this.portalComponent()?.setInput('disabledDate', this.disabledDate()));\r\n effect(() => this.portalComponent()?.setInput('disabledTime', this.disabledTime()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portalOverlayRef()?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed() || !this.clearable()) return;\r\n this.enter.set(true);\r\n if (!XIsEmpty(this.numberValue())) {\r\n this.icon.set('');\r\n this.showClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed() || !this.clearable()) return;\r\n this.enter.set(false);\r\n if (this.clearable()) {\r\n this.icon.set('fto-calendar');\r\n this.showClearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set([]);\r\n this.numberValue.set([]);\r\n this.startDisplay.set('');\r\n this.endDisplay.set('');\r\n this.mleave();\r\n this.formControlValidator();\r\n this.modelChange();\r\n this.inputStartCom().inputFocus('focus');\r\n }\r\n\r\n onIconClick(event: Event) {\r\n if (this.icon() === 'fto-x') {\r\n this.clearEmit();\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n this.closeReduction();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n closeReduction() {\r\n if (!this.numberValue() || this.numberValue().length === 0 || this.numberValue().includes(null)) {\r\n if (!this.value() || this.value().length === 0) {\r\n this.startDisplay.set('');\r\n this.endDisplay.set('');\r\n this.numberValue.set([]);\r\n } else {\r\n this.numberValue.set(this.getNumberValue());\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n if (!this.numberValue().includes(null) && this.value() && !this.value().includes(null)) {\r\n let numberValue = this.getNumberValue();\r\n if (this.numberValue()[0] !== numberValue[0] || this.numberValue()[1] !== numberValue[1]) {\r\n this.numberValue.set(numberValue);\r\n this.setDisplayValue(this.numberValue());\r\n }\r\n }\r\n }\r\n\r\n showPortal($event: Event, type?: 'start' | 'end') {\r\n type && $event.stopPropagation();\r\n if (this.disabled() || this.animating()) return;\r\n this.activeType.set(type || 'start');\r\n if (this.active()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDateRangePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((event: MouseEvent) => {\r\n const clickTarget = event.target as HTMLElement;\r\n if (\r\n clickTarget !== this.inputStartCom().inputRef().nativeElement &&\r\n clickTarget !== this.inputEndCom().inputRef().nativeElement\r\n ) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, startNodeChanged, endNodeChanged, animating } = componentRef.instance;\r\n nodeClick.subscribe((x) => this.onNodeClick(x.date, x.close));\r\n startNodeChanged.subscribe((x) => this.startNodeClick(x.date!, x.close, x.isDatePicker));\r\n endNodeChanged.subscribe((x) => this.endNodeClick(x.date!, x.close, x.isDatePicker));\r\n animating.subscribe((x) => this.animating.set(x));\r\n }\r\n\r\n startNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.startDisplay.set(\r\n !node\r\n ? ''\r\n : this.type() === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type() === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.formatSignal())!\r\n );\r\n if (!close && isDatePicker) {\r\n this.inputEndCom().inputFocus('focus');\r\n this.activeType.set('end');\r\n }\r\n }\r\n\r\n endNodeClick(node?: Date, close = false, isDatePicker: boolean = true) {\r\n this.endDisplay.set(\r\n !node\r\n ? ''\r\n : this.type() === 'week'\r\n ? XDateYearWeek(node)!\r\n : this.type() === 'quarter'\r\n ? XDateYearQuarter(node)!\r\n : this.datePipe.transform(node, this.formatSignal())!\r\n );\r\n if (!close && isDatePicker) {\r\n this.inputStartCom().inputFocus('focus');\r\n this.activeType.set('start');\r\n }\r\n }\r\n\r\n onNodeClick(dates: Date[], close = true) {\r\n this.isInput.set(false);\r\n this.numberValue.set(dates.map((x) => x.getTime()));\r\n this.value.set(this.getValue());\r\n this.setDisplayValue(this.numberValue());\r\n this.formControlValidator();\r\n if (close) {\r\n this.closeSubject.next();\r\n }\r\n this.modelChange();\r\n }\r\n\r\n onInput() {\r\n this.isInput.set(true);\r\n }\r\n\r\n onFocus(type: 'start' | 'end') {\r\n this.activeType.set(type);\r\n }\r\n\r\n setDisplayValue(dateNumber: (number | null)[]) {\r\n if (!dateNumber) return;\r\n if (!XIsNull(dateNumber[0])) {\r\n if (this.type() === 'week') {\r\n this.startDisplay.set(XDateYearWeek(dateNumber[0]!)!);\r\n } else if (this.type() === 'quarter') {\r\n this.startDisplay.set(XDateYearQuarter(dateNumber[0]!)!);\r\n } else {\r\n this.startDisplay.set(this.datePipe.transform(dateNumber[0], this.formatSignal()) as string);\r\n }\r\n }\r\n if (!XIsNull(dateNumber[1])) {\r\n if (this.type() === 'week') {\r\n this.endDisplay.set(XDateYearWeek(dateNumber[1]!)!);\r\n } else if (this.type() === 'quarter') {\r\n this.endDisplay.set(XDateYearQuarter(dateNumber[1]!)!);\r\n } else {\r\n this.endDisplay.set(this.datePipe.transform(dateNumber[1], this.formatSignal()) as string);\r\n }\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputGroup().elementRef,\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-range-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n }\r\n}\r\n","<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-checked]=\"value()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-date-range-bordered]=\"bordered()\"\r\n [class.x-date-range-filled]=\"variant() === 'filled'\"\r\n [class.x-date-range-borderless]=\"variant() === 'borderless' || (variant() === 'outlined' && !bordered())\"\r\n [class.x-date-range-underlined]=\"variant() === 'underlined'\"\r\n [class.x-date-range-active]=\"active()\"\r\n [class.x-date-range-active-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType() === 'end'\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-date-range-label-required]=\"required()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n *xOutlet=\"label()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-date-range-row\">\r\n <x-input-group\r\n #inputGroup\r\n class=\"x-date-range-group\"\r\n (mouseenter)=\"menter()\"\r\n (mouseleave)=\"mleave()\"\r\n (click)=\"showPortal($event)\"\r\n [style]=\"inputStyle()\"\r\n >\r\n <x-input\r\n #inputStartCom\r\n class=\"x-date-range-input x-date-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [before]=\"before()\"\r\n [label]=\"!!floatLabel() ? startPlaceholder()! : ''\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabledComputed()\"\r\n [placeholder]=\"startPlaceholder()!\"\r\n [pointer]=\"pointer()\"\r\n [required]=\"required()\"\r\n [readonly]=\"readonly()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-date-range-input x-date-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [label]=\"!!floatLabel() ? endPlaceholder()! : ''\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabledComputed()\"\r\n [placeholder]=\"endPlaceholder()!\"\r\n [pointer]=\"pointer()\"\r\n [required]=\"required()\"\r\n [readonly]=\"readonly()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\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 [after]=\"after()\"\r\n ></x-input>\r\n @if (active()) {\r\n <div class=\"x-date-range-active-bar\"></div>\r\n }\r\n </x-input-group>\r\n @if (invalid()) {\r\n <span class=\"x-date-range-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDateRangeComponent } from './date-range.component';\r\n\r\n@NgModule({\r\n exports: [XDatePickerComponent, XDateRangeComponent],\r\n imports: [XDatePickerComponent, XDateRangeComponent]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|