{"version":3,"file":"ng-zorro-antd-mobile-picker.mjs","sources":["../../components/picker/picker-options.provider.ts","../../components/picker/picker-ref.class.ts","../../components/picker/picker.component.ts","../../components/picker/picker.component.html","../../components/picker/picker.directive.ts","../../components/picker/picker.service.ts","../../components/picker/picker.module.ts","../../components/picker/ng-zorro-antd-mobile-picker.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\nexport interface PickerOptionsInterface {\n  data?: Array<any>;\n  cols?: number;\n  mask?: boolean;\n  title?: string;\n  okText?: string;\n  dismissText?: string;\n  disabled?: boolean;\n  cascade?: boolean;\n  appendToBody?: boolean;\n}\n\n@Injectable()\nexport class PickerOptions implements PickerOptionsInterface {\n  data?: Array<any> = [];\n  value?: Array<any> = [];\n  cols?: number = 3;\n  mask?: boolean = true;\n  title?: string = '';\n  okText?: string = '确定';\n  dismissText?: string = '取消';\n  disabled?: boolean = false;\n  cascade?: boolean = true;\n  appendToBody?: boolean = false;\n  onDismiss?: EventEmitter<any> = new EventEmitter();\n  onPickerChange?: EventEmitter<any> = new EventEmitter();\n  indicatorStyle?: object = {};\n  hidePicker?: () => void;\n  confirm?: (result) => void;\n  cancel?: () => void;\n  updateNgModel?: (value: any[]) => void;\n}\n\nexport type PickerCallBack = (result?: any) => PromiseLike<any> | void;\n","import { Observable } from 'rxjs';\n\nimport { PickerComponent } from './picker.component';\n\nexport abstract class PickerRef<T = any, R = any> {\n  abstract close(result?: R): void;\n  abstract destroy(result?: R): void;\n  abstract getElement(): HTMLElement;\n  abstract getInstance(): PickerComponent;\n}\n","import {\n  OnInit,\n  OnDestroy,\n  Component,\n  ViewChild,\n  ElementRef,\n  HostListener,\n  AfterViewInit,\n  ViewContainerRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { PickerOptions } from './picker-options.provider';\nimport { getEventTarget, getVelocity } from 'ng-zorro-antd-mobile/core';\nimport { LocaleProviderService } from 'ng-zorro-antd-mobile/locale-provider';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { PickerRef } from './picker-ref.class';\n\n@Component({\n  selector: 'Picker',\n  templateUrl: './picker.component.html',\n  encapsulation: ViewEncapsulation.None\n})\nexport class PickerComponent<T = any, R = any> extends PickerRef<T, R> implements OnInit, AfterViewInit, OnDestroy {\n  transitionName: string = 'am-slide-up-enter am-slide-up-enter-active';\n  maskTransitionName: string = 'am-fade-enter am-fade-enter-active';\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  dataForRender: any[] = [];\n  selectedTarget: any[] = [];\n  isMouseDown: boolean = false;\n  Velocity = getVelocity();\n  currentPicker: any;\n\n  private _unsubscribe$: Subject<void> = new Subject<void>();\n\n  @ViewChild('picker', { read: ViewContainerRef, static: true })\n  private _picker: ViewContainerRef;\n\n  @HostListener('mousedown', ['$event'])\n  @HostListener('touchstart', ['$event'])\n  panstart(event) {\n    if (!event.target.classList.contains('am-picker-col-mask') || this.options.disabled) {\n      return;\n    }\n    this.isMouseDown = true;\n    event.preventDefault();\n    this.dom = getEventTarget(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    this.startY = getEventTarget(event).clientY;\n  }\n\n  @HostListener('mousemove', ['$event'])\n  @HostListener('touchmove', ['$event'])\n  panmove(event) {\n    if (!event.target.classList.contains('am-picker-col-mask') || !this.isMouseDown || this.options.disabled) {\n      return;\n    }\n    event.preventDefault();\n    const ev = 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\n  @HostListener('mouseup', ['$event'])\n  @HostListener('mouseleave', ['$event'])\n  @HostListener('touchend', ['$event'])\n  panend(event) {\n    if (!event.target.classList.contains('am-picker-col-mask') || !this.isMouseDown || this.options.disabled) {\n      return;\n    }\n    this.isMouseDown = false;\n    event.preventDefault();\n    const ev = 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 (getVelocity) {\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 + 0.5);\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 + 0.5);\n      if (this.currentY >= 0) {\n        this.currentY = 0;\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        } else if (parseInt(item.targetId, 0) > parseInt(event.target.id, 0) && this.options.cascade) {\n          item.currentY = 0;\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.setCurrentSelected(parseInt(event.target.id, 0), this.index);\n    if (this.options.value !== this.combineReslut()) {\n      this.options.onPickerChange.emit(this.combineReslut());\n      this.onChange(this.combineReslut());\n    }\n  }\n\n  constructor(\n    public elementRef: ElementRef,\n    public options: PickerOptions,\n    private _localeProviderService: LocaleProviderService\n  ) {\n    super();\n  }\n\n  onChange = (_: any[]) => {};\n\n  init() {\n    if (this.dataForRender.length === 0 && this.generateArrayData(this.options.data).length > 0) {\n      this.dataForRender.push(this.generateArrayData(this.options.data));\n    }\n    if (this.options.value.length > 0) {\n      this.getInitValueIndex(this.dataForRender);\n    } else {\n      this.checkArrayDeep(this.options.data[0]);\n      for (let index = 0; index < this.dataForRender.length; index++) {\n        this.selectedTarget.push({ targetId: `${index}`, currentY: 0 });\n      }\n    }\n  }\n\n  getInitValueIndex(dataTemp) {\n    const self = this;\n    self.selectedTarget = [];\n    self.options.value.forEach((element, i) => {\n      dataTemp.forEach((item, j) => {\n        item.forEach((item1, k) => {\n          if ((element === item1.label || element === item1.value || element === item1) && i === j) {\n            self.checkArrayDeep(self.dataForRender[i][k], false);\n            self.selectedTarget.push({ targetId: `${i}`, currentY: -k });\n          }\n        });\n      });\n    });\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  generateArrayData(targetArr) {\n    const tempArr = [];\n    if (targetArr instanceof Array) {\n      targetArr.forEach((item, i) => {\n        if (item instanceof Array) {\n          const keys = Object.keys(item);\n          const element = {};\n          keys.forEach(key => {\n            element[key] = targetArr[i][key] || targetArr[i];\n          });\n          tempArr.push(element);\n        } else {\n          tempArr.push(item);\n        }\n      });\n      return tempArr;\n    }\n    return [];\n  }\n\n  checkArrayDeep(parent, init: boolean = true) {\n    if (parent instanceof Object && parent.children && parent.children.length > 0) {\n      if (this.generateArrayData(parent.children).length > 0 && this.dataForRender.length < this.options.cols) {\n        let hasValue = false;\n        this.dataForRender.filter((item, index) => {\n          if (JSON.stringify(item) === JSON.stringify(parent.children)) {\n            hasValue = true;\n          }\n        });\n        if (!hasValue) {\n          this.dataForRender.push(this.generateArrayData(parent.children));\n        }\n        if (init) {\n          this.checkArrayDeep(parent.children[0]);\n        }\n      }\n    }\n  }\n\n  ok() {\n    if (this.options.updateNgModel) {\n      this.options.updateNgModel(this.combineReslut());\n    }\n    if (this.options.confirm) {\n      this.options.confirm(this.combineReslut());\n    }\n    this.setTransitionName();\n  }\n\n  combineReslut() {\n    const result = [];\n    const self = this;\n    self.selectedTarget.forEach(item => {\n      if (self.dataForRender.length > 0 && self.dataForRender.length >= parseInt(item.targetId, 0) + 1) {\n        const curItem = self.dataForRender[parseInt(item.targetId, 0)][-item.currentY];\n        if (curItem !== undefined) {\n          result.push(curItem);\n        }\n      }\n    });\n    return result;\n  }\n\n  cancel() {\n    this.setTransitionName();\n    this.options.onDismiss.emit();\n    if (this.options.cancel) {\n      this.options.cancel();\n    }\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(target, index) {\n    if (!this.options.cascade) {\n      return;\n    }\n    const a = this.dataForRender.slice(0, target + 1);\n    this.dataForRender = a;\n    this.checkArrayDeep(this.dataForRender[target][index]);\n    if (this.selectedTarget.length > 0 && this.selectedTarget.length < this.dataForRender.length) {\n      for (let i = 0; i < this.dataForRender.length; i++) {\n        if (i > target) {\n          if (i < this.selectedTarget.length) {\n            this.selectedTarget[i] = { targetId: `${i}`, currentY: 0 };\n          } else {\n            this.selectedTarget.push({ targetId: `${i}`, currentY: 0 });\n          }\n        }\n      }\n    }\n    setTimeout(() => {\n      this.dataForRender.forEach((item, i) => {\n        if (target !== `${i}` && i > target) {\n          this._picker.element.nativeElement.children[i].children[2].style.transition = 'transform .3s';\n          this._picker.element.nativeElement.children[i].children[2].style.transform = 'translateY(0px)';\n        }\n      });\n    }, 0);\n  }\n\n  getInstance(): PickerComponent {\n    return this;\n  }\n\n  getElement(): HTMLElement {\n    return this.elementRef && this.elementRef.nativeElement;\n  }\n\n  close(): void {\n    if (this.options.hidePicker) {\n      this.options.hidePicker();\n    }\n  }\n\n  destroy(): void {\n    this.close();\n  }\n\n  ngOnInit() {\n    this.init();\n    this._localeProviderService.localeChange.pipe(takeUntil(this._unsubscribe$)).subscribe(_ => {\n      const locale: any = this._localeProviderService.getLocaleSubObj('Picker');\n      this.options.okText = this.options.okText === '确定' ? locale.okText : this.options.okText;\n      this.options.dismissText = this.options.dismissText === '取消' ? locale.dismissText : this.options.dismissText;\n    });\n  }\n\n  ngAfterViewInit() {\n    this.reloadPicker();\n  }\n\n  ngOnDestroy(): void {\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 am-picker-popup-wrap {{ transitionName }}\" style=\" min-height: 280px\">\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()\">{{ options.okText }}</div>\n        </div>\n        <div class=\"am-picker\" style=\"flex-direction: row; align-items: center;\" #picker>\n          <div *ngFor=\"let item of dataForRender; let i = index\" class=\"am-picker-col\">\n            <div class=\"am-picker-col-indicator \" style=\"top: 102px;\" [ngStyle]=\"options.indicatorStyle\"></div>\n            <div class=\"am-picker-col-mask\" style=\"background-size: 100% 102px;\" id=\"{{ i }}\"></div>\n            <div class=\"am-picker-col-content\">\n              <div *ngFor=\"let val of item; let i = index\" class=\"am-picker-col-item\" id=\"{{ i }}\">\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  NgZone,\n  Injector,\n  Renderer2,\n  OnChanges,\n  OnDestroy,\n  Directive,\n  ElementRef,\n  forwardRef,\n  HostListener,\n  EventEmitter,\n  ComponentRef,\n  ViewContainerRef,\n  ComponentFactory,\n  ComponentFactoryResolver\n} from '@angular/core';\nimport { PickerComponent } from './picker.component';\nimport { PickerOptions } from './picker-options.provider';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n  selector: '[Picker], [nzm-picker]',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PickerDirective),\n      multi: true\n    }\n  ]\n})\nexport class PickerDirective implements OnDestroy, OnInit, OnChanges, ControlValueAccessor {\n  picker: ComponentRef<PickerComponent>;\n  appendToBodyElement: HTMLElement;\n  value: Array<any>;\n  private _eventListeners: Array<() => void> = [];\n\n  @Input()\n  data: Array<any>;\n  @Input()\n  cols: Number;\n  @Input()\n  mask: boolean;\n  @Input()\n  title: string;\n  @Input()\n  visible: boolean;\n  @Input()\n  okText: string;\n  @Input()\n  dismissText: string;\n  @Input()\n  disabled: boolean;\n  @Input()\n  cascade: boolean;\n  @Input()\n  appendToBody: boolean;\n  @Input()\n  indicatorStyle: object;\n  @Output()\n  onVisibleChange: EventEmitter<boolean> = new EventEmitter(true);\n  @Output()\n  onPickerChange: EventEmitter<any> = new EventEmitter();\n  @Output()\n  onDismiss: EventEmitter<any> = new EventEmitter();\n\n  onChange: (value: any[]) => void = () => null;\n  onTouched: () => void = () => null;\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 _elm: ElementRef,\n    private _defaultOptions: PickerOptions,\n    private _cfr: ComponentFactoryResolver,\n    private _renderer: Renderer2,\n    private _zone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    this.onVisibleChange.emit(false);\n  }\n\n  ngOnChanges(value) {\n    if (value.cols && this.picker) {\n      this.picker.instance.options.cols = value.cols.currentValue;\n    }\n    if (value.data && this.picker) {\n      if (!this.isPickerDataEqual(this.picker.instance.options.data, value.data.currentValue)) {\n        this.picker.instance.options.data = value.data.currentValue;\n        this.showPicker();\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.hidePicker();\n  }\n\n  private onDocumentClick(event: Event): void {\n    if (\n      this.picker &&\n      !this._elm.nativeElement.contains(event.target) &&\n      !this.picker.location.nativeElement.contains(event.target)\n    ) {\n      this.hidePicker();\n    }\n  }\n\n  private showPicker(): void {\n    if (this.picker) {\n      this._zone.run(() => {\n        this.picker.instance.init();\n      });\n    } else if (!this.picker && !this.disabled) {\n      setTimeout(() => {\n        this._eventListeners = [\n          this._renderer.listen('document', 'click', (event: Event) => this.onDocumentClick(event)),\n          this._renderer.listen('document', 'touchend', (event: Event) => this.onDocumentClick(event))\n        ];\n      });\n\n      const options = new PickerOptions();\n      Object.assign(options, this._defaultOptions, {\n        hidePicker: (event): void => {\n          this.hidePicker();\n        },\n        updateNgModel: (value: any[]): void => {\n          this.value = value;\n          this.onChange(value);\n        }\n      });\n\n      const optionalParams: Array<keyof PickerDirective> = [\n        'data',\n        'value',\n        'cols',\n        'mask',\n        'title',\n        'okText',\n        'dismissText',\n        'disabled',\n        'cascade',\n        'appendToBody',\n        'indicatorStyle',\n        'onPickerChange',\n        'onVisibleChange',\n        'onDismiss'\n      ];\n      optionalParams.forEach(param => {\n        if (typeof this[param] !== 'undefined') {\n          (options as any)[param] = this[param];\n        }\n      });\n      const componentFactory: ComponentFactory<PickerComponent> = this._cfr.resolveComponentFactory(PickerComponent);\n      const childInjector = Injector.create([\n        {\n          provide: PickerOptions,\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  private 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: any[]): void {\n    this.value = Array.isArray(value) ? value : [];\n    if (this.picker) {\n      this.picker.instance.options.value = this.value;\n      this.showPicker();\n      this.picker.instance.reloadPicker();\n    }\n  }\n\n  registerOnChange(fn: (value: any[]) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  isPickerDataEqual(data1, data2) {\n    if (!data1 && !data2) {\n      return true;\n    }\n    if (!Array.isArray(data1) || !Array.isArray(data2) || data1.length !== data2.length) {\n      return false;\n    }\n    for (let i = 0; i < data1.length; i++) {\n      const item1 = data1[i];\n      const item2 = data2[i];\n      if ((item1 && !item2) || (!item1 && item2)) {\n        return false;\n      }\n      if (item1.value !== item2.value) {\n        return false;\n      }\n      if (item1.label !== item2.label) {\n        return false;\n      }\n      if (item1.children && item2.children) {\n        return this.isPickerDataEqual(item1.children, item2.children);\n      }\n    }\n    return true;\n  }\n}\n","import { Injectable, Injector, ComponentRef } from '@angular/core';\nimport { PickerComponent } from './picker.component';\nimport { PickerCallBack, PickerOptions } from './picker-options.provider';\nimport { PopupService } from 'ng-zorro-antd-mobile/core';\n\n@Injectable()\nexport class PickerService extends PopupService {\n  comRef: ComponentRef<PickerComponent> = null;\n  defaultOptions: PickerOptions = new PickerOptions();\n\n  showPicker(\n    config: PickerOptions = this.defaultOptions,\n    confirmCallback?: PickerCallBack,\n    cancelCallback?: PickerCallBack\n  ): any {\n    const options = new PickerOptions();\n    Object.assign(options, config, {\n      hidePicker: (event): void => {\n        this.hidePicker();\n      },\n      confirm: (event): void => {\n        if (confirmCallback) {\n          confirmCallback(event);\n        }\n      },\n      cancel: (): void => {\n        if (cancelCallback) {\n          cancelCallback();\n        }\n      }\n    });\n\n    const childInjector = Injector.create([\n      {\n        provide: PickerOptions,\n        useValue: options\n      }\n    ]);\n    this.comRef = this.showPopup(PickerComponent, childInjector);\n    return this.comRef && this.comRef.instance;\n  }\n\n  hidePicker(): void {\n    this.hidePopup();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PickerComponent } from './picker.component';\nimport { PickerDirective } from './picker.directive';\nimport { PickerOptions } from './picker-options.provider';\nimport { PopupService } from 'ng-zorro-antd-mobile/core';\nimport { PickerService } from './picker.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n  imports: [CommonModule, OverlayModule],\n  exports: [PickerComponent, PickerDirective],\n  declarations: [PickerComponent, PickerDirective],\n  providers: [PickerOptions, PopupService, PickerService]\n})\nexport class PickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PickerOptions"],"mappings":"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"}