{"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 { AlainDateRangePickerShortcutItem } from '@delon/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: AlainDateRangePickerShortcutItem[] = [];\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  click(_: AlainDateRangePickerShortcutItem): 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 { AlainConfigService, AlainDateRangePickerShortcut, AlainDateRangePickerShortcutItem } from '@delon/util/config';\nimport { fixEndTimeOfRange, getTimeDistance } from '@delon/util/date-time';\nimport { assert, deepMergeKey } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDatePickerComponent, NzRangePickerComponent } from 'ng-zorro-antd/date-picker';\nimport { DatePickerService } from 'ng-zorro-antd/date-picker/date-picker.service';\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: AlainDateRangePickerShortcut | 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\n  private defaultShortcuts: AlainDateRangePickerShortcut;\n  private _shortcut: AlainDateRangePickerShortcut | 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: AlainDateRangePickerShortcut | null) {\n    const item = deepMergeKey(\n      { list: [] },\n      true,\n      this.defaultShortcuts,\n      val == null ? {} : val\n    ) as AlainDateRangePickerShortcut;\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(): AlainDateRangePickerShortcut | 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(configSrv: AlainConfigService) {\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 = configSrv.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 AlainDateRangePickerShortcut;\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: AlainDateRangePickerShortcutItem) => {\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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"}