UNPKG

@yelon/abc

Version:

Common business components of ng-yunzai.

1 lines 14.6 kB
{"version":3,"file":"date-picker.mjs","sources":["../../../../packages/abc/date-picker/range-shortcut.component.ts","../../../../packages/abc/date-picker/range.directive.ts","../../../../packages/abc/date-picker/date-picker.module.ts","../../../../packages/abc/date-picker/date-picker.ts"],"sourcesContent":["import { Component, TemplateRef, ViewChild } from '@angular/core';\n\nimport { YunzaiDateRangePickerShortcutItem } from '@yelon/util/config';\n\n@Component({\n selector: '',\n template: `\n <ng-template #tpl>\n @for (i of list; track $index) {\n <a (click)=\"click(i)\" [innerHTML]=\"i._text\" [class.ml-sm]=\"!$first\"></a>\n }\n </ng-template>\n `\n})\nexport class RangePickerShortcutTplComponent {\n @ViewChild('tpl', { static: true })\n readonly tpl!: TemplateRef<void>;\n\n list: YunzaiDateRangePickerShortcutItem[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n click(_: YunzaiDateRangePickerShortcutItem): void {}\n}\n","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport {\n YunzaiConfigService,\n YunzaiDateRangePickerShortcut,\n YunzaiDateRangePickerShortcutItem\n} from '@yelon/util/config';\nimport { fixEndTimeOfRange, getTimeDistance } from '@yelon/util/date-time';\nimport { assert, deepMergeKey } from '@yelon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDatePickerComponent, NzRangePickerComponent, type ɵDatePickerService } from 'ng-zorro-antd/date-picker';\n\nimport { RangePickerShortcutTplComponent } from './range-shortcut.component';\n\n@Directive({\n selector: 'nz-range-picker[extend]',\n exportAs: 'extendRangePicker'\n})\nexport class RangePickerDirective implements OnDestroy, AfterViewInit {\n static ngAcceptInputType_shortcut: YunzaiDateRangePickerShortcut | string | null;\n\n private readonly dom = inject(DomSanitizer);\n private readonly vcr = inject(ViewContainerRef);\n private readonly nativeComp = inject(NzRangePickerComponent, { host: true, optional: true });\n private readonly cogSrv = inject(YunzaiConfigService);\n\n private defaultShortcuts: YunzaiDateRangePickerShortcut;\n private _shortcut: YunzaiDateRangePickerShortcut | null = null;\n private shortcutFactory: ComponentRef<RangePickerShortcutTplComponent> | null = null;\n start: Date | null = null;\n end: Date | null = null;\n\n @Input()\n set shortcut(val: YunzaiDateRangePickerShortcut | null) {\n const item = deepMergeKey(\n { list: [] },\n true,\n this.defaultShortcuts,\n val == null ? {} : val\n ) as YunzaiDateRangePickerShortcut;\n if (typeof val !== 'object') {\n item.enabled = val !== false;\n }\n (item.list || []).forEach(i => {\n i._text = this.dom.bypassSecurityTrustHtml(i.text);\n });\n this._shortcut = item;\n this.refreshShortcut();\n }\n get shortcut(): YunzaiDateRangePickerShortcut | null {\n return this._shortcut;\n }\n @Input({ required: true }) ngModelEnd: NzSafeAny;\n @Output() readonly ngModelEndChange = new EventEmitter<NzSafeAny>();\n\n private get dp(): NzDatePickerComponent {\n return this.nativeComp!.datePicker;\n }\n\n private get srv(): ɵDatePickerService {\n return this.dp.datePickerService;\n }\n\n constructor() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assert(\n !!this.nativeComp,\n `It should be attached to nz-range-picker component, for example: '<nz-range-picker [(ngModel)]=\"i.start\" extend [(ngModelEnd)]=\"i.end\" shortcut></nz-range-picker>'`\n );\n }\n const cog = this.cogSrv.merge('dataRange', {\n nzFormat: 'yyyy-MM-dd',\n nzAllowClear: true,\n nzAutoFocus: false,\n nzPopupStyle: { position: 'relative' },\n nzShowToday: true,\n shortcuts: {\n enabled: false,\n closed: true,\n list: [\n {\n text: '今天',\n fn: () => getTimeDistance('today')\n },\n {\n text: '昨天',\n fn: () => getTimeDistance('yesterday')\n },\n {\n text: '近3天',\n fn: () => getTimeDistance(-2)\n },\n {\n text: '近7天',\n fn: () => getTimeDistance(-6)\n },\n {\n text: '本周',\n fn: () => getTimeDistance('week')\n },\n {\n text: '本月',\n fn: () => getTimeDistance('month')\n },\n {\n text: '全年',\n fn: () => getTimeDistance('year')\n }\n ]\n }\n })!;\n this.defaultShortcuts = { ...cog.shortcuts } as YunzaiDateRangePickerShortcut;\n Object.assign(this, cog);\n }\n\n private cd(): void {\n (this.dp as NzSafeAny).cdr.markForCheck();\n }\n\n private overrideNative(): void {\n const dp = this.dp;\n dp.writeValue = (value: Date) => {\n const dates = (value && this.ngModelEnd ? [value, this.ngModelEnd] : []).filter(w => !!w);\n this.srv.setValue(this.srv.makeValue(dates));\n this.start = dates.length > 0 ? dates[0] : null;\n this.end = dates.length > 0 ? dates[1] : null;\n this.cd();\n };\n\n const oldOnChangeFn = dp.onChangeFn;\n dp.onChangeFn = (list: Array<Date | null>) => {\n let start: Date | null = null;\n let end: Date | null = null;\n if (list.length > 0 && list.filter(w => w != null).length === 2) {\n [start, end] = fixEndTimeOfRange([list[0]!, list[1]!]);\n }\n this.start = start;\n this.end = end;\n oldOnChangeFn(start);\n this.ngModelEnd = end;\n this.ngModelEndChange.emit(end);\n };\n }\n\n private refreshShortcut(): void {\n if (!this._shortcut) {\n return;\n }\n const { enabled, list } = this._shortcut;\n let extraFooter: TemplateRef<NzSafeAny> | undefined;\n if (!this.nativeComp || !enabled) {\n extraFooter = undefined;\n } else {\n if (!this.shortcutFactory) {\n this.shortcutFactory = this.vcr.createComponent(RangePickerShortcutTplComponent);\n }\n const { instance } = this.shortcutFactory;\n instance.list = list!;\n instance.click = (item: YunzaiDateRangePickerShortcutItem) => {\n const res = item.fn([this.start, this.end]);\n this.srv.setValue(this.srv.makeValue(res as Date[]));\n this.dp.onChangeFn(res);\n this.dp.close();\n };\n extraFooter = instance.tpl;\n }\n this.nativeComp!.datePicker.extraFooter = extraFooter;\n Promise.resolve().then(() => this.cd());\n }\n\n ngAfterViewInit(): void {\n this.overrideNative();\n this.refreshShortcut();\n }\n\n private destoryShortcut(): void {\n if (this.shortcutFactory != null) {\n this.shortcutFactory.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this.destoryShortcut();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\n\nimport { RangePickerShortcutTplComponent } from './range-shortcut.component';\nimport { RangePickerDirective } from './range.directive';\n\nconst COMPONENTS = [RangePickerDirective, RangePickerShortcutTplComponent];\n\n@NgModule({\n imports: [CommonModule, FormsModule, NzDatePickerModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}