UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

1 lines 46.8 kB
{"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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"}