{"version":3,"file":"ng-zorro-antd-mobile-date-picker.mjs","sources":["../../components/date-picker/date-picker-options.provider.ts","../../components/date-picker/date-picker.component.ts","../../components/date-picker/date-picker.component.html","../../components/date-picker/date-picker.directive.ts","../../components/date-picker/date-picker.module.ts","../../components/date-picker/ng-zorro-antd-mobile-date-picker.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\n\nexport interface DatePickerOptionsInterface {\n  mode: string;\n  value: Date;\n  minDate: Date;\n  maxDate: Date;\n  use12Hours: boolean;\n  minuteStep: Number;\n  locale: any;\n  disabled: boolean;\n  mask: boolean;\n  title: string;\n  okText: string;\n  dismissText: string;\n  appendToBody: boolean;\n  showErrorToast: boolean;\n  showErrorToastInterval: number;\n}\n\n@Injectable()\nexport class DatePickerOptions implements DatePickerOptionsInterface {\n  mode = 'date';\n  value = new Date();\n  minDate = new Date(2000, 6, 1, 0, 0, 0);\n  maxDate = new Date(2030, 1, 1, 23, 59, 59);\n  use12Hours = false;\n  minuteStep = 1;\n  data = [];\n  mask: boolean = true;\n  title = '';\n  okText = '确定';\n  dismissText = '取消';\n  disabled = false;\n  locale;\n  appendToBody = false;\n  showErrorToast = true;\n  showErrorToastInterval = 2000;\n  onOk: EventEmitter<any> = new EventEmitter();\n  onDismiss: EventEmitter<any> = new EventEmitter();\n  onValueChange: EventEmitter<any> = new EventEmitter();\n  onChange: EventEmitter<any> = new EventEmitter();\n  hidePicker: () => void;\n  updateNgModel?: (value: Date) => void;\n}\n","import {\n  Component,\n  OnInit,\n  ElementRef,\n  ViewEncapsulation,\n  HostListener,\n  ViewChild,\n  ViewContainerRef,\n  OnDestroy,\n  AfterViewInit\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LocaleProviderService } from 'ng-zorro-antd-mobile/locale-provider';\nimport { DatePickerOptions } from './date-picker-options.provider';\nimport { ToastService } from 'ng-zorro-antd-mobile/toast';\nimport { getVelocity } from 'ng-zorro-antd-mobile/core';\nexport type DateMode = 'date' | 'time' | 'datetime' | 'year' | 'month';\n\n@Component({\n  selector: 'DatePicker, nzm-date-picker',\n  templateUrl: './date-picker.component.html',\n  encapsulation: ViewEncapsulation.None\n})\nexport class DatePickerComponent implements OnInit, OnDestroy, AfterViewInit {\n  transitionName: string = 'am-slide-up-enter am-slide-up-enter-active';\n  maskTransitionName: string = 'am-fade-enter am-fade-enter-active';\n  modeSwitch: number[] = [1, 1, 1, 1, 1, 1];\n  localMinDate: any[] = [];\n  localMaxDate: any[] = [];\n  currentTime: any[] = [];\n  indexArray: any = [];\n  min_date: number[] = [];\n  max_date: number[] = [];\n  current_time: any[] = [\n    new Date().getFullYear(),\n    new Date().getMonth() + 1,\n    new Date().getDate(),\n    new Date().getHours(),\n    new Date().getMinutes()\n  ];\n  clos: number = 0;\n  resultArr: any = [];\n  resultDate: Date;\n  data: any[] = [];\n  dataWithStr: any[] = [];\n  startY: number = 0;\n  differY: number = 0;\n  currentY: number = 0;\n  len: number = 0;\n  dom: any = null;\n  index: number = 0;\n  maxY: number = 0;\n  lineHeight: number = 34;\n  selectedTarget: any[] = [];\n  isMouseDown: boolean = false;\n  currentPicker: any;\n  localeNew: any = {};\n  unsubscribe$ = new Subject<void>();\n  Velocity = getVelocity();\n  errorMessage = '';\n  curTLessThanMin = false;\n  curTMoreThanMax = false;\n  ngModelOnChange: (value: Date) => {};\n  ngModelOnTouched: () => {};\n\n  @ViewChild('picker', { read: ViewContainerRef })\n  picker: ViewContainerRef;\n\n  @HostListener('mousedown', ['$event'])\n  @HostListener('touchstart', ['$event'])\n  panstart(event) {\n    if (!event.target.classList.contains('am-picker-col-mask')) {\n      return;\n    }\n    this.isMouseDown = true;\n    event.preventDefault();\n    this.dom = event.target.parentElement.children[2];\n    this.len = this.dom.children.length;\n    this.maxY = -(this.len - 1);\n\n    if (this.dom.style.transform === 'translateY(0px)') {\n      this.currentY = 0;\n      this.maxY = -(this.len - 1);\n    } else if (this.selectedTarget.length > 0) {\n      this.selectedTarget.forEach(item => {\n        if (item.targetId === event.target.id) {\n          this.currentY = item.currentY;\n        }\n      });\n    }\n    const ev = this.getEventTarget(event);\n    this.startY = ev.clientY;\n  }\n  @HostListener('mousemove', ['$event'])\n  @HostListener('touchmove', ['$event'])\n  panmove(event) {\n    if (!event.target.classList.contains('am-picker-col-mask') || !this.isMouseDown) {\n      return;\n    }\n    event.preventDefault();\n    const ev = this.getEventTarget(event);\n    this.differY = ev.clientY - this.startY;\n    this.Velocity.record(this.differY);\n    this.dom.style.transition = 'transform 0s';\n    this.dom.style.transform = `translateY(${this.currentY * this.lineHeight + this.differY}px)`;\n  }\n  @HostListener('mouseleave', ['$event'])\n  @HostListener('mouseup', ['$event'])\n  @HostListener('touchend', ['$event'])\n  panend(event) {\n    if (!event.target.classList.contains('am-picker-col-mask') || !this.isMouseDown) {\n      return;\n    }\n    this.isMouseDown = false;\n    event.preventDefault();\n    const ev = this.getEventTarget(event);\n    this.differY = ev.clientY - this.startY;\n    let time = 0.3;\n    const velocityTemp = this.Velocity.getVelocity(this.differY) * 4;\n    if (velocityTemp) {\n      this.differY = velocityTemp * 40 + this.differY;\n      time = Math.abs(velocityTemp) * 0.1;\n    }\n    this.dom.style.transition = 'transform ' + (time < 0.3 ? 0.3 : time) + 's';\n    if (this.differY <= -this.lineHeight / 2) {\n      this.currentY += Math.floor(this.differY / this.lineHeight);\n      if (this.currentY <= this.maxY) {\n        this.currentY = this.maxY;\n      }\n    } else if (this.differY >= this.lineHeight / 2) {\n      this.currentY += Math.floor(this.differY / this.lineHeight);\n      if (this.currentY >= 0) {\n        this.currentY = 0;\n      }\n    }\n\n    if (this.selectedTarget.length > 0) {\n      let hasKey = false;\n      this.selectedTarget.forEach(item => {\n        if (item.targetId === event.target.id) {\n          hasKey = true;\n          item.targetId = event.target.id;\n          item.currentY = this.currentY;\n        }\n      });\n      if (!hasKey) {\n        this.selectedTarget.push({ targetId: event.target.id, currentY: this.currentY });\n      }\n    } else {\n      this.selectedTarget.push({ targetId: event.target.id, currentY: this.currentY });\n    }\n    this.dom.style.transform = `translateY(${this.currentY * this.lineHeight}px)`;\n    this.index = Math.floor(Math.abs(this.currentY / 1)); // 记录当前位移在数组中的索引,必须取整，否则会出现浮点数\n    this.current_time[this.indexArray[parseInt(event.target.id, 0)]] = this.resultArr[\n      this.indexArray[parseInt(event.target.id, 0)]\n    ] = this.data[parseInt(event.target.id, 0)][this.index];\n    if (this.judgeTime(this.current_time, this.max_date)) {\n      this.currentTime = this.current_time =\n        this.max_date.slice(0, this.options.mode === 'time' ? this.modeSwitch.length : this.indexArray.length);\n      this.resultArr = this.current_time;\n      this.options.onValueChange.emit({ date: this.handleReslut(), index: event.target.id });\n      if (this.options.updateNgModel) {\n        this.options.updateNgModel(this.handleReslut());\n      }\n      if (this.ngModelOnChange) {\n        this.ngModelOnChange(this.handleReslut());\n      }\n      this.init();\n    } else if (this.judgeTime(this.min_date, this.current_time)) {\n      this.currentTime = this.current_time =\n        this.min_date.slice(0, this.options.mode === 'time' ? this.modeSwitch.length : this.indexArray.length);\n      this.resultArr = this.currentTime;\n      this.options.onValueChange.emit({ date: this.handleReslut(), index: event.target.id });\n      if (this.options.updateNgModel) {\n        this.options.updateNgModel(this.handleReslut());\n      }\n      if (this.ngModelOnChange) {\n        this.ngModelOnChange(this.handleReslut());\n      }\n      this.init();\n    } else {\n      this.updateLessMoreState();\n      this.setCurrentSelected(0, this.differY < 0, this.index);\n      this.options.onValueChange.emit({ date: this.handleReslut(), index: event.target.id });\n      if (this.options.updateNgModel) {\n        this.options.updateNgModel(this.handleReslut());\n      }\n      if (this.ngModelOnChange) {\n        this.ngModelOnChange(this.handleReslut());\n      }\n    }\n  }\n\n  updateLessMoreState() {\n    const minT = new Date(this.min_date[0], this.min_date[1], this.min_date[2], this.min_date[3], this.min_date[4]).getTime();\n    const maxT = new Date(this.max_date[0],this.max_date[1], this.max_date[2], this.max_date[3], this.max_date[4]).getTime();\n    const curT = new Date(\n      this.current_time[0],\n      this.current_time[1],\n      this.current_time[2],\n      this.current_time[3] || 0,\n      this.current_time[4] || 0\n    ).getTime();\n    this.curTLessThanMin = curT < minT;\n    this.curTMoreThanMax = curT > maxT;\n  }\n\n  constructor(\n    public elementRef: ElementRef,\n    public options: DatePickerOptions,\n    public toast: ToastService,\n    public localeProviderService: LocaleProviderService\n  ) {}\n\n  init() {\n    if (!this.checkTime() && this.options.showErrorToast) {\n      setTimeout(() => {\n        this.toast.fail(this.errorMessage, this.options.showErrorToastInterval);\n      }, 0);\n    }\n    this.initResult();\n    this.initReady();\n    this.getInitValueIndex();\n  }\n\n  reloadPicker() {\n    if (!this.picker || this.picker === undefined) {\n      return;\n    }\n    this.currentPicker = this.picker.element.nativeElement;\n    if (this.currentPicker && this.currentPicker.children.length > 0) {\n      const self = this;\n      setTimeout(() => {\n        self.selectedTarget.forEach((item, i) => {\n          self.currentPicker.children[i].children[2].style.transition = 'transform .3s';\n          const index = parseInt(item.currentY, 0);\n          self.currentPicker.children[i].children[2].style.transform = `translateY(${index * self.lineHeight}px)`;\n        });\n      }, 0);\n    }\n  }\n\n  localeProvider() {\n    const self = this;\n    if (self.options.locale || self.options.locale !== undefined) {\n      self.localeProviderService.setLocale(self.options.locale);\n    }\n    self.localeProviderService.localeChange.pipe(takeUntil(self.unsubscribe$)).subscribe(_ => {\n      self.options.locale = self.localeProviderService.getLocale();\n      self.localeNew = self.localeProviderService.getLocaleSubObj('DatePicker');\n      self.options.okText = self.localeNew.okText;\n      self.options.dismissText = self.localeNew.dismissText;\n      self.init();\n    });\n  }\n\n  transformDateFormat(date: Date): any {\n    if (!date) {\n      return '';\n    } else {\n      return 'yyyy-mm-dd-HH-MM'\n        .replace('yyyy', date.getFullYear() + '')\n        .replace('mm', date.getMonth() + 1 + '')\n        .replace('dd', date.getDate() + '')\n        .replace('HH', date.getHours() + '')\n        .replace('MM', date.getMinutes() + '');\n    }\n  }\n\n  preZero(val: number): string {\n    return val < 10 ? '0' + val : val + '';\n  }\n\n  getInitValueIndex() {\n    this.selectedTarget = [];\n    this.indexArray.map((index, i) => {\n      this.data.forEach((item, j) => {\n        item.forEach((item1, k) => {\n          if (this.currentTime[index] === item1 && i === j) {\n            this.selectedTarget.push({ targetId: `${i}`, currentY: -k });\n          }\n        });\n      });\n    });\n    this.reloadPicker();\n  }\n\n  checkMode(mode) {\n    this.modeSwitch = [1, 1, 1, 1, 1, 1];\n    switch (mode) {\n      case 'date':\n        this.modeSwitch = [1, 1, 1, 0, 0, 0];\n        break;\n      case 'time':\n        if (this.options.use12Hours) {\n          this.modeSwitch = [0, 0, 0, 1, 1, 1];\n        } else {\n          this.modeSwitch = [0, 0, 0, 1, 1, 0];\n        }\n        break;\n      case 'datetime':\n        if (this.options.use12Hours) {\n          this.modeSwitch = [1, 1, 1, 1, 1, 1];\n        } else {\n          this.modeSwitch = [1, 1, 1, 1, 1, 0];\n        }\n        break;\n      case 'year':\n        this.modeSwitch = [1, 0, 0, 0, 0];\n        break;\n      case 'month':\n        this.modeSwitch = [1, 1, 0, 0, 0];\n        break;\n      default:\n        break;\n    }\n    const tempIndexArray = [];\n    for (let i = 0; i < this.modeSwitch.length; i++) {\n      if (this.modeSwitch[i] > 0) {\n        tempIndexArray.push(i);\n      }\n    }\n    this.clos = tempIndexArray[tempIndexArray.length - 1] - tempIndexArray[0] + 1;\n    this.indexArray = tempIndexArray;\n  }\n\n  initResult() {\n    this.resultArr = [];\n    for (let i = 0; i < this.clos; i++) {\n      const res = this.currentTime[i];\n      if (this.options.mode === 'time') {\n        this.resultArr = this.currentTime;\n      } else {\n        this.resultArr.push(res);\n      }\n    }\n  }\n\n  checkTime() {\n    const min_Date = this.transformDateFormat(this.options.minDate).split('-');\n    if (min_Date.length > 0) {\n      this.min_date = min_Date.map(item => {\n        return parseInt(item, 0);\n      });\n    }\n    const max_Date = this.transformDateFormat(this.options.maxDate).split('-');\n    if (max_Date.length > 0) {\n      this.max_date = max_Date.map(item => {\n        return parseInt(item, 0);\n      });\n    }\n    const min_date = [...this.min_date];\n    const max_date = [...this.max_date];\n    const current_time = [...this.currentTime];\n    this.localMinDate = [];\n    if (this.localMinDate.length === 0) {\n      for (let index = 0; index < this.indexArray.length; index++) {\n        this.localMinDate.push(min_date[this.indexArray[index]]);\n      }\n    }\n    this.localMaxDate = [];\n    if (this.localMaxDate.length === 0) {\n      for (let index = 0; index < this.indexArray.length; index++) {\n        this.localMaxDate.push(max_date[this.indexArray[index]]);\n      }\n    }\n    if (this.indexArray.length === this.localMinDate.length && this.localMinDate.length === this.localMaxDate.length) {\n      const minT = new Date(min_date[0], min_date[1], min_date[2], min_date[3], min_date[4]).getTime();\n      const maxT = new Date(max_date[0], max_date[1], max_date[2], max_date[3], max_date[4]).getTime();\n      const curT = new Date(\n        current_time[0],\n        current_time[1],\n        current_time[2],\n        current_time[3] || 0,\n        current_time[4] || 0\n      ).getTime();\n      this.curTLessThanMin = false;\n      this.curTMoreThanMax = false;\n      if (curT < minT) {\n        this.curTLessThanMin = true;\n        this.currentTime = this.min_date;\n        this.errorMessage = this.localeNew.curTLessthanMin;\n      }\n      if (curT > maxT) {\n        this.curTMoreThanMax = true;\n        this.currentTime = this.max_date;\n        this.errorMessage = this.localeNew.curTMorethanMax;\n      }\n      let _indexArrayIndex = 0;\n      let timeModeIndex = this.options.mode === 'time' ? 3 : 0;\n      for (let i = 0; i < this.modeSwitch.length; i++) {\n        if (this.modeSwitch[i] === 0) {\n          switch (i) {\n            case 0:\n              min_date[i] = new Date().getFullYear();\n              max_date[i] = new Date().getFullYear();\n              break;\n            case 1:\n              min_date[i] = new Date().getMonth() + 1;\n              max_date[i] = new Date().getMonth() + 1;\n              break;\n            case 2:\n              min_date[i] = new Date().getDate();\n              max_date[i] = new Date().getDate();\n              break;\n            case 3:\n              min_date[i] = new Date().getHours();\n              max_date[i] = new Date().getHours();\n              break;\n            case 4:\n              min_date[i] = new Date().getMinutes();\n              max_date[i] = new Date().getMinutes();\n              break;\n            case 5:\n              min_date[i] = 0;\n              max_date[i] = 1;\n              break;\n          }\n        } else {\n          switch (i) {\n            case 0:\n              this.localMinDate[_indexArrayIndex] = min_date[i] =\n                this.localMinDate[_indexArrayIndex] >= 1900\n                  ? this.localMinDate[_indexArrayIndex]\n                  : new Date().getFullYear();\n              this.localMaxDate[_indexArrayIndex] = max_date[i] =\n                this.localMaxDate[_indexArrayIndex] >= 1900\n                  ? this.localMaxDate[_indexArrayIndex]\n                  : new Date().getFullYear() + 1;\n              break;\n            case 1:\n              this.localMinDate[_indexArrayIndex] = min_date[i] =\n                this.localMinDate[_indexArrayIndex] > 0 && this.localMinDate[_indexArrayIndex] <= 12\n                  ? this.localMinDate[_indexArrayIndex]\n                  : 1;\n              this.localMaxDate[_indexArrayIndex] = max_date[i] =\n                this.localMaxDate[_indexArrayIndex] > 0 && this.localMaxDate[_indexArrayIndex] <= 12\n                  ? this.localMaxDate[_indexArrayIndex]\n                  : 12;\n              break;\n            case 2:\n              this.localMinDate[_indexArrayIndex] = min_date[i] =\n                this.localMinDate[_indexArrayIndex] > 0 &&\n                this.localMinDate[_indexArrayIndex] <= new Date(min_date[0], min_date[1], 0).getDate()\n                  ? this.localMinDate[_indexArrayIndex]\n                  : 1;\n              this.localMaxDate[_indexArrayIndex] = max_date[i] =\n                this.localMaxDate[_indexArrayIndex] > 0 &&\n                this.localMaxDate[_indexArrayIndex] <= new Date(max_date[0], max_date[1], 0).getDate()\n                  ? this.localMaxDate[_indexArrayIndex]\n                  : new Date(max_date[0], max_date[1], 0).getDate();\n              break;\n            case 3:\n              this.localMinDate[_indexArrayIndex] = min_date[i] =\n                this.localMinDate[_indexArrayIndex - timeModeIndex] >= 0 && this.localMinDate[_indexArrayIndex - timeModeIndex] <= 23\n                  ? this.localMinDate[_indexArrayIndex - timeModeIndex]\n                  : 0;\n              if (this.options.use12Hours) {\n                this.localMaxDate[_indexArrayIndex] = max_date[i] =\n                  this.localMaxDate[_indexArrayIndex - timeModeIndex] >= 0 && this.localMaxDate[_indexArrayIndex - timeModeIndex] <= 11\n                    ? this.localMaxDate[_indexArrayIndex - timeModeIndex]\n                    : 11;\n              } else {\n                this.localMaxDate[_indexArrayIndex] = max_date[i] =\n                  this.localMaxDate[_indexArrayIndex - timeModeIndex] >= 0 && this.localMaxDate[_indexArrayIndex - timeModeIndex] <= 23\n                    ? this.localMaxDate[_indexArrayIndex - timeModeIndex]\n                    : 23;\n              }\n              break;\n            case 4:\n              this.localMinDate[_indexArrayIndex] = min_date[i] =\n                this.localMinDate[_indexArrayIndex - timeModeIndex] >= 0 && this.localMinDate[_indexArrayIndex - timeModeIndex] <= 59\n                  ? this.localMinDate[_indexArrayIndex - timeModeIndex]\n                  : 0;\n              this.localMaxDate[_indexArrayIndex] = max_date[i] =\n                this.localMaxDate[_indexArrayIndex - timeModeIndex] >= 0 && this.localMaxDate[_indexArrayIndex - timeModeIndex] <= 59\n                  ? this.localMaxDate[_indexArrayIndex - timeModeIndex]\n                  : 59;\n              break;\n          }\n        }\n        _indexArrayIndex++;\n      }\n      return minT <= curT && curT <= maxT;\n    } else {\n      this.errorMessage = this.localeNew.errorMessage;\n      return false;\n    }\n  }\n\n  judgeTime(arr1: number[], arr2: number[]): boolean {\n    let date1;\n    let date2;\n    date1 = arr1.slice(0, 3).join('-') + ' ' + arr1.slice(3, 5).join(':');\n    date2 = arr2.slice(0, 3).join('-') + ' ' + arr2.slice(3, 5).join(':');\n    return new Date(date1).getTime() > new Date(date2).getTime();\n  }\n\n  judgeEqualArray(arr1, arr2, length) {\n    let status = true;\n    for (let i = 0; i < length; i++) {\n      if (arr1[i] != arr2[i]) {\n        status = false;\n      }\n    }\n    return status;\n  }\n\n  initReady() {\n    let realIdx = 0;\n    for (let i = 0; i < this.clos; i++) {\n      realIdx = this.indexArray[i];\n      let min = 0;\n      let max = 0;\n      const tempArray = [];\n      switch (realIdx) {\n        case 0:\n          this.initData(tempArray, this.localMinDate[i], this.localMaxDate[i], this.localeNew.year, i);\n          break;\n        case 1:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 1) ? this.localMinDate[i] : 1;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 1) ? this.localMaxDate[i] : 12;\n          this.initData(tempArray, min, max, this.localeNew.month, i);\n          break;\n        case 2:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 2)\n            ? this.localMinDate[i]\n            : this.curTLessThanMin\n            ? this.localMinDate[i]\n            : 1;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 2)\n            ? this.localMaxDate[i]\n            : new Date(this.current_time[0], this.current_time[1], 0).getDate();\n          this.initData(tempArray, min, max, this.localeNew.day, i);\n          break;\n        case 3:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 3)\n            ? this.localMinDate[i]\n            : this.curTLessThanMin\n            ? this.localMinDate[i]\n            : 0;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 3)\n            ? this.localMaxDate[i]\n            : this.curTMoreThanMax\n            ? this.localMaxDate[i]\n            : 23;\n          this.initData(tempArray, min, max, this.localeNew.hour, i);\n          break;\n        case 4:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 4)\n            ? this.localMinDate[i]\n            : this.curTLessThanMin\n            ? this.localMinDate[i]\n            : 0;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 4)\n            ? this.localMaxDate[i]\n            : this.curTMoreThanMax\n            ? this.localMaxDate[i]\n            : 59;\n          this.initData(tempArray, min, max, this.localeNew.minute, i);\n          break;\n        case 5:\n          min = 0;\n          max = 1;\n          this.initData(tempArray, min, max, 'use12Hours', i);\n          break;\n      }\n    }\n  }\n\n  initData(tempArr, min, max, str, idx) {\n    const dataWithStr = [];\n    const increaseValue = str === this.localeNew.minute ? this.options.minuteStep : 1;\n    for (min; min < max + 1; min += increaseValue) {\n      tempArr.push(min);\n      dataWithStr.push(min + str);\n    }\n    if (this.data.length > this.indexArray.length) {\n      this.data = [];\n      this.dataWithStr = [];\n    }\n    if (this.data.length > idx && this.data[idx].toString() !== tempArr.toString()) {\n      this.data[idx] = tempArr;\n    } else if (this.data.length > idx && this.data[idx].toString() === tempArr.toString()) {\n      this.data[idx] = tempArr;\n    } else {\n      this.data.push(tempArr);\n    }\n    if (this.options.locale === undefined || this.options.locale.locale === 'zh_CN') {\n      if (this.dataWithStr.length > idx && this.dataWithStr[idx].toString() !== dataWithStr.toString()) {\n        this.dataWithStr[idx] = dataWithStr;\n      } else if (this.dataWithStr.length > idx && this.dataWithStr[idx].toString() === dataWithStr.toString()) {\n        this.dataWithStr[idx] = dataWithStr;\n      } else {\n        this.dataWithStr.push(dataWithStr);\n      }\n    } else {\n      this.dataWithStr = this.data;\n    }\n  }\n\n  ok() {\n    this.options.onOk.emit(this.handleReslut());\n    this.setTransitionName();\n  }\n\n  handleReslut() {\n    let result = '';\n    if (this.options.mode === 'datetime' || this.options.mode === 'time') {\n      const temp = this.resultArr;\n      result = temp.slice(0, 3).join('-') + ' ' + temp.slice(3, 5).join(':');\n    } else {\n      if (this.resultArr.length < 3) {\n        this.resultArr.push('1');\n      }\n      result = this.resultArr\n        .slice(0, 3)\n        .map(v => {\n          return this.preZero(parseInt(v, 0));\n        })\n        .join('-');\n    }\n    this.resultDate = new Date(result.replace(/-/g, '/'));\n    if (this.options.minDate.getTime() > this.resultDate.getTime()) {\n      if (this.resultArr.length > 0) {\n        for (let index = 0; index < this.resultArr.length; index++) {\n          this.resultArr = [...this.min_date];\n          this.currentTime = this.resultArr;\n          this.current_time = this.currentTime;\n        }\n      }\n      this.resultDate = this.options.minDate;\n    }\n    return this.resultDate;\n  }\n\n  cancel() {\n    this.options.onDismiss.emit();\n    this.setTransitionName();\n  }\n\n  setTransitionName() {\n    this.transitionName = 'am-slide-up-leave am-slide-up-leave-active';\n    this.maskTransitionName = 'am-fade-leave am-fade-leave-active';\n    setTimeout(() => {\n      this.options.hidePicker();\n    }, 200);\n  }\n\n  setCurrentSelected(checkIdx, sta, indexT) {\n    if (checkIdx >= this.clos - 1) {\n      return;\n    }\n    let status = null;\n    if (sta) {\n      status = this.judgeEqualArray(this.min_date, this.resultArr, this.options.mode === 'time' ? checkIdx + 4 : checkIdx + 1);\n    } else {\n      status = this.judgeEqualArray(this.max_date, this.resultArr, this.options.mode === 'time' ? checkIdx + 4 : checkIdx + 1);\n    }\n    if (!status) {\n      let min = 0;\n      let max = 0;\n      let str = '';\n      const realIdx = this.indexArray[checkIdx];\n      switch (realIdx) {\n        case 0:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 1) ? this.localMinDate[checkIdx + 1] : 1;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 1) ? this.localMaxDate[checkIdx + 1] : 12;\n          str = '月';\n          break;\n        case 1:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 2)\n            ? this.localMinDate[checkIdx + 1]\n            : this.curTLessThanMin\n            ? this.localMinDate[checkIdx + 1]\n            : 1;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 2)\n            ? this.localMaxDate[checkIdx + 1]\n            : new Date(this.current_time[0], this.current_time[1], 0).getDate();\n          str = '日';\n          break;\n        case 2:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 3)\n            ? this.localMinDate[checkIdx + 1]\n            : this.curTLessThanMin\n            ? this.localMinDate[checkIdx + 1]\n            : 0;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 3)\n            ? this.localMaxDate[checkIdx + 1]\n            : this.curTMoreThanMax\n            ? this.localMaxDate[checkIdx + 1]\n            : 23;\n          str = '时';\n          break;\n        case 3:\n          min = this.judgeEqualArray(this.min_date, this.current_time, 4)\n            ? this.localMinDate[checkIdx + 1]\n            : this.curTLessThanMin\n            ? this.localMinDate[checkIdx + 1]\n            : 0;\n          max = this.judgeEqualArray(this.max_date, this.current_time, 4)\n            ? this.localMaxDate[checkIdx + 1]\n            : this.curTMoreThanMax\n            ? this.localMaxDate[checkIdx + 1]\n            : 59;\n          str = '分';\n          break;\n      }\n\n      this.initRangeArr(min, max, indexT, checkIdx + 1, str);\n    }\n    this.setCurrentSelected(checkIdx + 1, sta, indexT);\n  }\n\n  initRangeArr(min, max, indexT, checkIdx, str) {\n    const realIdx = this.indexArray[checkIdx];\n    const arr = [];\n    let targetLong = 0;\n    const increaseValue = str === this.localeNew.minute ? this.options.minuteStep : 1;\n\n    for (let index = min; index < max + 1; index += increaseValue) {\n      arr.push(index);\n    }\n\n    if (arr.indexOf(this.resultArr[realIdx]) == -1) {\n      if (-this.selectedTarget[checkIdx].currentY > max - min) {\n        indexT = max - min;\n        this.selectedTarget[checkIdx].currentY = -indexT;\n      }\n      targetLong = -arr.length * this.lineHeight;\n    } else {\n      targetLong = -arr.indexOf(this.resultArr[realIdx]) * this.lineHeight;\n      this.selectedTarget[checkIdx].currentY = -arr.indexOf(this.resultArr[realIdx]);\n    }\n    if (this.data[checkIdx].toString() !== arr.toString()) {\n      if (checkIdx >= 3) {\n        this.current_time[realIdx] = -targetLong / this.lineHeight;\n        this.resultArr[realIdx] = -targetLong / this.lineHeight;\n      } else {\n        const delta = this.judgeEqualArray(this.current_time, this.min_date, realIdx) ? this.min_date[realIdx] : 1;\n        this.current_time[realIdx] = -targetLong / this.lineHeight + delta;\n        this.resultArr[realIdx] = -targetLong / this.lineHeight + delta;\n      }\n\n      this.data[checkIdx] = arr;\n      this.dataWithStr[checkIdx] =\n        this.options.locale.locale === 'zh_CN'\n          ? arr.map(item => {\n              return item + str;\n            })\n          : arr;\n      setTimeout(() => {\n        this.selectedTarget.forEach((item, i) => {\n          if (i >= checkIdx) {\n            this.currentPicker.children[i].children[2].style.transition = '';\n            const index = parseInt(item.currentY, 0);\n            this.currentPicker.children[i].children[2].style.transform = `translateY(${index * this.lineHeight}px)`;\n          }\n        });\n      }, 0);\n    }\n  }\n\n  getEventTarget(event) {\n    if (\n      event.type === 'mousedown' ||\n      event.type === 'mousemove' ||\n      event.type === 'mouseup' ||\n      event.type === 'mouseleave'\n    ) {\n      return event;\n    } else {\n      if (event && event.changedTouches && event.changedTouches[0]) {\n        return event.changedTouches[0];\n      }\n      return null;\n    }\n  }\n\n  ngOnInit() {\n    this.checkMode(this.options.mode);\n    const value = this.transformDateFormat(this.options.value).split('-');\n    if (value.length > 1) {\n      this.current_time = this.currentTime = value.map(item => {\n        return parseInt(item, 0);\n      });\n    } else {\n      this.currentTime = this.current_time;\n    }\n    this.localeProvider();\n  }\n\n  ngAfterViewInit() {\n    this.reloadPicker();\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n}\n","<div *ngIf=\"options.mask\" class=\"am-picker-popup-mask {{ maskTransitionName }}\" (click)=\"cancel()\"></div>\n<div class=\"am-picker-popup {{ transitionName }}\" style=\"z-index: 1000\">\n  <div class=\"am-picker-popup-content\">\n    <div class=\"am-picker-popup-body\">\n      <div>\n        <div class=\"am-picker-popup-header\">\n          <div class=\"am-picker-popup-item am-picker-popup-header-left\" (click)=\"cancel()\">\n            {{ options.dismissText }}\n          </div>\n          <div class=\"am-picker-popup-item am-picker-popup-title\">{{ options.title }}</div>\n          <div class=\"am-picker-popup-item am-picker-popup-header-right\" (click)=\"ok()\">\n            {{ options.okText }}\n          </div>\n        </div>\n        <div #picker class=\"am-picker\" style=\"flex-direction: row; align-items: center;\">\n          <div *ngFor=\"let item of dataWithStr; let i = index\" class=\"am-picker-col\">\n            <div class=\"am-picker-col-indicator \" style=\"top: 102px;\"></div>\n            <div id=\"{{ i }}\" class=\"am-picker-col-mask\" style=\"background-size: 100% 102px;\"></div>\n            <div class=\"am-picker-col-content\">\n              <div id=\"{{ i }}\" class=\"am-picker-col-item\" *ngFor=\"let val of item; let i = index\">\n                {{ val.label ? val.label : val }}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import {\n  Input,\n  Output,\n  OnInit,\n  Injector,\n  OnChanges,\n  OnDestroy,\n  Directive,\n  forwardRef,\n  EventEmitter,\n  HostListener,\n  ComponentRef,\n  SimpleChanges,\n  ComponentFactory,\n  ViewContainerRef,\n  ComponentFactoryResolver\n} from '@angular/core';\nimport { DatePickerComponent } from './date-picker.component';\nimport { DatePickerOptions } from './date-picker-options.provider';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n@Directive({\n  selector: '[DatePicker]',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => DatePickerDirective),\n      multi: true\n    }\n  ]\n})\nexport class DatePickerDirective implements OnDestroy, OnChanges, OnInit, ControlValueAccessor {\n  picker: ComponentRef<DatePickerComponent>;\n  appendToBodyElement: HTMLElement;\n  private _eventListeners: Array<() => void> = [];\n  private _ngModelOnChange: (value: Date) => {};\n  private _ngModelOnTouched: () => {};\n\n  @Input()\n  isOpen: boolean;\n  @Input()\n  mode: string;\n  @Input()\n  minDate: string;\n  @Input()\n  maxDate: string;\n  @Input()\n  use12Hours: boolean;\n  @Input()\n  minuteStep: number = 1;\n  @Input()\n  value: Date = new Date();\n  @Input()\n  mask: boolean;\n  @Input()\n  title: string;\n  @Input()\n  okText: string;\n  @Input()\n  dismissText: string;\n  @Input()\n  disabled: boolean;\n  @Input()\n  locale: any;\n  @Input()\n  appendToBody: boolean;\n  @Input()\n  showErrorToast: boolean;\n  @Input()\n  showErrorToastInterval: number;\n  @Output()\n  onVisibleChange: EventEmitter<boolean> = new EventEmitter(true);\n  @Output()\n  onValueChange: EventEmitter<any> = new EventEmitter();\n  @Output()\n  onOk: EventEmitter<any> = new EventEmitter();\n  @Output()\n  onDismiss: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('click')\n  togglePicker(): void {\n    if (!this.picker) {\n      this.showPicker();\n    } else {\n      this.hidePicker();\n    }\n  }\n\n  constructor(\n    private _viewContainerRef: ViewContainerRef,\n    private _defaultOptions: DatePickerOptions,\n    private _cfr: ComponentFactoryResolver\n  ) {}\n\n  showPicker(): void {\n    if (!this.picker && !this.disabled) {\n      setTimeout(() => {\n        this._eventListeners = [];\n      });\n\n      const options = new DatePickerOptions();\n      Object.assign(options, this._defaultOptions, {\n        hidePicker: (event): void => {\n          this.hidePicker();\n        },\n        updateNgModel: (value: Date): void => {\n          if (this._ngModelOnChange) {\n            this.value = value;\n            this._ngModelOnChange(value);\n          }\n        }\n      });\n\n      const optionalParams: Array<keyof DatePickerDirective> = [\n        'mode',\n        'minDate',\n        'maxDate',\n        'minuteStep',\n        'value',\n        'mask',\n        'title',\n        'okText',\n        'dismissText',\n        'disabled',\n        'locale',\n        'appendToBody',\n        'showErrorToast',\n        'showErrorToastInterval',\n        'onOk',\n        'onDismiss',\n        'onValueChange'\n      ];\n      optionalParams.forEach(param => {\n        if (typeof this[param] !== 'undefined') {\n          (options as any)[param] = this[param];\n        }\n      });\n      const componentFactory: ComponentFactory<DatePickerComponent> = this._cfr.resolveComponentFactory(\n        DatePickerComponent\n      );\n      const childInjector = Injector.create([\n        {\n          provide: DatePickerOptions,\n          useValue: options\n        }\n      ]);\n      this.picker = this._viewContainerRef.createComponent(\n        componentFactory,\n        this._viewContainerRef.length,\n        childInjector\n      );\n      if (options.appendToBody) {\n        this.appendToBodyElement = document.body.appendChild(this.picker.location.nativeElement);\n      }\n      this.onVisibleChange.emit(true);\n    }\n  }\n\n  hidePicker(): void {\n    if (this.appendToBodyElement) {\n      document.body.removeChild(this.appendToBodyElement);\n      this.appendToBodyElement = null;\n    }\n    if (this.picker) {\n      this.picker.destroy();\n      delete this.picker;\n      this.onVisibleChange.emit(false);\n      this._eventListeners.forEach(fn => fn());\n      this._eventListeners = [];\n    }\n  }\n\n  writeValue(value: Date): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: (_: Date) => {}): void {\n    this._ngModelOnChange = fn;\n  }\n\n  registerOnTouched(fn: () => {}): void {\n    this._ngModelOnTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  ngOnInit(): void {\n    this.onVisibleChange.emit(false);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.isOpen) {\n      if (changes.isOpen.currentValue === true) {\n        this.showPicker();\n      } else {\n        this.hidePicker();\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.hidePicker();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DatePickerComponent } from './date-picker.component';\nimport { DatePickerDirective } from './date-picker.directive';\nimport { DatePickerOptions } from './date-picker-options.provider';\nimport { LocaleProviderModule } from 'ng-zorro-antd-mobile/locale-provider';\nimport { ToastModule } from 'ng-zorro-antd-mobile/toast';\n\n@NgModule({\n  imports: [CommonModule, LocaleProviderModule, ToastModule, FormsModule],\n  exports: [DatePickerComponent, DatePickerDirective],\n  declarations: [DatePickerComponent, DatePickerDirective],\n  providers: [DatePickerOptions]\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DatePickerOptions"],"mappings":"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"}