ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
888 lines (887 loc) • 105 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, ElementRef, ViewEncapsulation, HostListener, ViewChild, ViewContainerRef } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { LocaleProviderService } from '../locale-provider/locale-provider.service';
import { DatePickerOptions } from './date-picker-options.provider';
import * as velocity from '../core/util/velocity';
/** @typedef {?} */
var DateMode;
export { DateMode };
export class DatePickerComponent {
/**
* @param {?} elementRef
* @param {?} options
* @param {?} localeProviderService
*/
constructor(elementRef, options, localeProviderService) {
this.elementRef = elementRef;
this.options = options;
this.localeProviderService = localeProviderService;
this.transitionName = 'am-slide-up-enter am-slide-up-enter-active';
this.maskTransitionName = 'am-fade-enter am-fade-enter-active';
this.modeSwitch = [1, 1, 1, 1, 1, 1];
this.localMinDate = [];
this.localMaxDate = [];
this.currentTime = [];
this.indexArray = [];
this.min_date = [];
this.max_date = [];
this.current_time = [
new Date().getFullYear(),
new Date().getMonth() + 1,
new Date().getDate(),
new Date().getHours(),
new Date().getMinutes()
];
this.clos = 0;
this.resultArr = [];
this.data = [];
this.dataWithStr = [];
this.startY = 0;
this.differY = 0;
this.currentY = 0;
this.len = 0;
this.dom = null;
this.index = 0;
this.maxY = 0;
this.lineHeight = 34;
this.selectedTarget = [];
this.isMouseDown = false;
this.localeNew = {};
this.unsubscribe$ = new Subject();
this.Velocity = velocity.getVelocity();
}
/**
* @param {?} event
* @return {?}
*/
panstart(event) {
if (!event.target.classList.contains('am-picker-col-mask')) {
return;
}
this.isMouseDown = true;
event.preventDefault();
this.dom = event.target.parentElement.children[2];
this.len = this.dom.children.length;
this.maxY = -(this.len - 1);
if (this.dom.style.transform === 'translateY(0px)') {
this.currentY = 0;
this.maxY = -(this.len - 1);
}
else if (this.selectedTarget.length > 0) {
this.selectedTarget.forEach(item => {
if (item.targetId === event.target.id) {
this.currentY = item.currentY;
}
});
}
/** @type {?} */
const ev = this.getEventTarget(event);
this.startY = ev.clientY;
}
/**
* @param {?} event
* @return {?}
*/
panmove(event) {
if (!event.target.classList.contains('am-picker-col-mask') || !this.isMouseDown) {
return;
}
event.preventDefault();
/** @type {?} */
const ev = this.getEventTarget(event);
this.differY = ev.clientY - this.startY;
this.Velocity.record(this.differY);
this.dom.style.transition = 'transform 0s';
this.dom.style.transform = `translateY(${this.currentY * this.lineHeight + this.differY}px)`;
}
/**
* @param {?} event
* @return {?}
*/
panend(event) {
if (!event.target.classList.contains('am-picker-col-mask') || !this.isMouseDown) {
return;
}
this.isMouseDown = false;
event.preventDefault();
/** @type {?} */
const ev = this.getEventTarget(event);
this.differY = ev.clientY - this.startY;
/** @type {?} */
let time = 0.3;
/** @type {?} */
const velocityTemp = this.Velocity.getVelocity(this.differY) * 4;
if (velocityTemp) {
this.differY = velocityTemp * 40 + this.differY;
time = Math.abs(velocityTemp) * 0.1;
}
this.dom.style.transition = 'transform ' + (time < 0.3 ? 0.3 : time) + 's';
if (this.differY <= -this.lineHeight / 2) {
this.currentY += Math.floor(this.differY / this.lineHeight);
if (this.currentY <= this.maxY) {
this.currentY = this.maxY;
}
}
else if (this.differY >= this.lineHeight / 2) {
this.currentY += Math.floor(this.differY / this.lineHeight);
if (this.currentY >= 0) {
this.currentY = 0;
}
}
if (this.selectedTarget.length > 0) {
/** @type {?} */
let hasKey = false;
this.selectedTarget.forEach(item => {
if (item.targetId === event.target.id) {
hasKey = true;
item.targetId = event.target.id;
item.currentY = this.currentY;
}
});
if (!hasKey) {
this.selectedTarget.push({ targetId: event.target.id, currentY: this.currentY });
}
}
else {
this.selectedTarget.push({ targetId: event.target.id, currentY: this.currentY });
}
this.dom.style.transform = `translateY(${this.currentY * this.lineHeight}px)`;
this.index = Math.floor(Math.abs(this.currentY / 1)); // 记录当前位移在数组中的索引,必须取整,否则会出现浮点数
this.current_time[this.indexArray[parseInt(event.target.id, 0)]] = this.resultArr[this.indexArray[parseInt(event.target.id, 0)]] = this.data[parseInt(event.target.id, 0)][this.index];
if (this.judgeTime(this.current_time, this.max_date)) {
this.currentTime = this.current_time = this.max_date.slice(0, this.indexArray.length);
this.resultArr = this.current_time;
this.options.onValueChange.emit(this.handleReslut());
this.init();
}
else if (this.judgeTime(this.min_date, this.current_time)) {
this.currentTime = this.current_time = this.min_date.slice(0, this.indexArray.length);
this.resultArr = this.currentTime;
this.options.onValueChange.emit(this.handleReslut());
this.init();
}
else {
this.setCurrentSelected(0, this.differY < 0, this.index);
this.options.onValueChange.emit(this.handleReslut());
}
}
/**
* @return {?}
*/
init() {
this.initResult();
this.checkTime();
this.initReady();
this.getInitValueIndex();
}
/**
* @return {?}
*/
reloadPicker() {
if (!this.picker || this.picker === undefined) {
return;
}
this.currentPicker = this.picker.element.nativeElement;
if (this.currentPicker && this.currentPicker.children.length > 0) {
/** @type {?} */
const self = this;
setTimeout(() => {
self.selectedTarget.forEach((item, i) => {
self.currentPicker.children[i].children[2].style.transition = 'transform .3s';
/** @type {?} */
const index = parseInt(item.currentY, 0);
self.currentPicker.children[i].children[2].style.transform = `translateY(${index * self.lineHeight}px)`;
});
}, 0);
}
}
/**
* @return {?}
*/
localeProvider() {
/** @type {?} */
const self = this;
if (self.options.locale || self.options.locale !== undefined) {
self.localeProviderService.setLocale(self.options.locale);
}
self.localeProviderService.localeChange.pipe(takeUntil(self.unsubscribe$)).subscribe(_ => {
self.options.locale = self.localeProviderService.getLocale();
self.localeNew = self.localeProviderService.getLocaleSubObj('DatePicker');
self.options.okText = self.localeNew.okText;
self.options.dismissText = self.localeNew.dismissText;
self.init();
});
}
/**
* @param {?} date
* @return {?}
*/
transformDateFormat(date) {
if (!date || date === '') {
return '';
}
else {
return 'yyyy-mm-dd-HH-MM'
.replace('yyyy', date.getFullYear() + '')
.replace('mm', date.getMonth() + 1 + '')
.replace('dd', date.getDate() + '')
.replace('HH', date.getHours() + '')
.replace('MM', date.getMinutes() + '');
}
}
/**
* @param {?} val
* @return {?}
*/
preZero(val) {
return val < 10 ? '0' + val : val + '';
}
/**
* @return {?}
*/
getInitValueIndex() {
this.selectedTarget = [];
this.indexArray.map((index, i) => {
this.data.forEach((item, j) => {
item.forEach((item1, k) => {
if (this.currentTime[index] === item1 && i === j) {
this.selectedTarget.push({ targetId: `${i}`, currentY: -k });
}
});
});
});
this.reloadPicker();
}
/**
* @param {?} mode
* @return {?}
*/
checkMode(mode) {
this.modeSwitch = [1, 1, 1, 1, 1, 1];
switch (mode) {
case 'date':
this.modeSwitch = [1, 1, 1, 0, 0, 0];
break;
case 'time':
if (this.options.use12Hours) {
this.modeSwitch = [0, 0, 0, 1, 1, 1];
}
else {
this.modeSwitch = [0, 0, 0, 1, 1, 0];
}
break;
case 'datetime':
if (this.options.use12Hours) {
this.modeSwitch = [1, 1, 1, 1, 1, 1];
}
else {
this.modeSwitch = [1, 1, 1, 1, 1, 0];
}
break;
case 'year':
this.modeSwitch = [1, 0, 0, 0, 0];
break;
case 'month':
this.modeSwitch = [1, 1, 0, 0, 0];
break;
default:
break;
}
/** @type {?} */
const tempIndexArray = [];
for (let i = 0; i < this.modeSwitch.length; i++) {
if (this.modeSwitch[i] > 0) {
tempIndexArray.push(i);
}
}
this.clos = tempIndexArray[tempIndexArray.length - 1] - tempIndexArray[0] + 1;
this.indexArray = tempIndexArray;
}
/**
* @return {?}
*/
initResult() {
this.resultArr = [];
if (this.currentTime.length > 0) {
this.current_time = this.currentTime;
}
for (let i = 0; i < this.clos; i++) {
/** @type {?} */
const res = this.currentTime[i];
if (this.options.mode === 'time') {
this.resultArr = this.currentTime;
}
else {
this.resultArr.push(res);
}
}
}
/**
* @return {?}
*/
checkTime() {
/** @type {?} */
const min_Date = this.transformDateFormat(this.options.minDate).split('-');
if (min_Date.length > 0) {
this.min_date = min_Date.map(item => {
return parseInt(item, 0);
});
}
/** @type {?} */
const max_Date = this.transformDateFormat(this.options.maxDate).split('-');
if (max_Date.length > 0) {
this.max_date = max_Date.map(item => {
return parseInt(item, 0);
});
}
/** @type {?} */
const min_date = this.min_date;
/** @type {?} */
const max_date = this.max_date;
/** @type {?} */
const current_time = this.current_time;
this.localMinDate = [];
if (this.localMinDate.length === 0) {
for (let index = 0; index < this.indexArray.length; index++) {
this.localMinDate.push(min_date[this.indexArray[index]]);
}
}
this.localMaxDate = [];
if (this.localMaxDate.length === 0) {
for (let index = 0; index < this.indexArray.length; index++) {
this.localMaxDate.push(max_date[this.indexArray[index]]);
}
}
if (this.indexArray.length === this.localMinDate.length &&
this.localMinDate.length === this.localMaxDate.length &&
this.localMaxDate.length === this.currentTime.length) {
/** @type {?} */
let _indexArrayIndex = 0;
for (let i = 0; i < this.modeSwitch.length; i++) {
if (this.modeSwitch[i] === 0) {
switch (i) {
case 0:
min_date[i] = new Date().getFullYear();
max_date[i] = new Date().getFullYear();
break;
case 1:
min_date[i] = new Date().getMonth() + 1;
max_date[i] = new Date().getMonth() + 1;
break;
case 2:
min_date[i] = new Date().getDate();
max_date[i] = new Date().getDate();
break;
case 3:
min_date[i] = new Date().getHours();
max_date[i] = new Date().getHours();
break;
case 4:
min_date[i] = new Date().getMinutes();
max_date[i] = new Date().getMinutes();
break;
case 5:
min_date[i] = 0;
max_date[i] = 1;
break;
}
}
else {
switch (i) {
case 0:
this.localMinDate[_indexArrayIndex] = min_date[i] =
this.localMinDate[_indexArrayIndex] >= 1900
? this.localMinDate[_indexArrayIndex]
: new Date().getFullYear();
this.localMaxDate[_indexArrayIndex] = max_date[i] =
this.localMaxDate[_indexArrayIndex] >= 1900
? this.localMaxDate[_indexArrayIndex]
: new Date().getFullYear() + 1;
current_time[i] = this.currentTime[_indexArrayIndex];
break;
case 1:
this.localMinDate[_indexArrayIndex] = min_date[i] =
this.localMinDate[_indexArrayIndex] > 0 && this.localMinDate[_indexArrayIndex] <= 12
? this.localMinDate[_indexArrayIndex]
: 1;
this.localMaxDate[_indexArrayIndex] = max_date[i] =
this.localMaxDate[_indexArrayIndex] > 0 && this.localMaxDate[_indexArrayIndex] <= 12
? this.localMaxDate[_indexArrayIndex]
: 12;
current_time[i] = this.currentTime[_indexArrayIndex];
break;
case 2:
this.localMinDate[_indexArrayIndex] = min_date[i] =
this.localMinDate[_indexArrayIndex] > 0 &&
this.localMinDate[_indexArrayIndex] <= new Date(min_date[0], min_date[1], 0).getDate()
? this.localMinDate[_indexArrayIndex]
: 1;
this.localMaxDate[_indexArrayIndex] = max_date[i] =
this.localMaxDate[_indexArrayIndex] > 0 &&
this.localMaxDate[_indexArrayIndex] <= new Date(max_date[0], max_date[1], 0).getDate()
? this.localMaxDate[_indexArrayIndex]
: new Date(max_date[0], max_date[1], 0).getDate();
current_time[i] = this.currentTime[_indexArrayIndex];
break;
case 3:
this.localMinDate[_indexArrayIndex] = min_date[i] =
this.localMinDate[_indexArrayIndex] >= 0 && this.localMinDate[_indexArrayIndex] <= 23
? this.localMinDate[_indexArrayIndex]
: 0;
if (this.options.use12Hours) {
this.localMaxDate[_indexArrayIndex] = max_date[i] =
this.localMaxDate[_indexArrayIndex] >= 0 && this.localMaxDate[_indexArrayIndex] <= 11
? this.localMaxDate[_indexArrayIndex]
: 11;
}
else {
this.localMaxDate[_indexArrayIndex] = max_date[i] =
this.localMaxDate[_indexArrayIndex] >= 0 && this.localMaxDate[_indexArrayIndex] <= 23
? this.localMaxDate[_indexArrayIndex]
: 23;
}
current_time[i] = this.currentTime[_indexArrayIndex];
break;
case 4:
this.localMinDate[_indexArrayIndex] = min_date[i] =
this.localMinDate[_indexArrayIndex] >= 0 && this.localMinDate[_indexArrayIndex] <= 59
? this.localMinDate[_indexArrayIndex]
: 0;
this.localMaxDate[_indexArrayIndex] = max_date[i] =
this.localMaxDate[_indexArrayIndex] >= 0 && this.localMaxDate[_indexArrayIndex] <= 59
? this.localMaxDate[_indexArrayIndex]
: 59;
current_time[i] = this.currentTime[_indexArrayIndex];
break;
}
_indexArrayIndex++;
}
}
/** @type {?} */
const minT = new Date(min_date[0], min_date[1], min_date[2], min_date[3], min_date[4]).getTime();
/** @type {?} */
const maxT = new Date(max_date[0], max_date[1], max_date[2], max_date[3], max_date[4]).getTime();
/** @type {?} */
const curT = new Date(current_time[0], current_time[1], current_time[2], current_time[3], current_time[4]).getTime();
return minT <= curT && curT <= maxT;
}
else {
return false;
}
}
/**
* @param {?} arr1
* @param {?} arr2
* @return {?}
*/
judgeTime(arr1, arr2) {
/** @type {?} */
let date1;
/** @type {?} */
let date2;
date1 = arr1.slice(0, 3).join('-') + ' ' + arr1.slice(3, 5).join(':');
date2 = arr2.slice(0, 3).join('-') + ' ' + arr2.slice(3, 5).join(':');
return new Date(date1).getTime() >= new Date(date2).getTime();
}
/**
* @param {?} arr1
* @param {?} arr2
* @param {?} length
* @return {?}
*/
judgeEqualArray(arr1, arr2, length) {
/** @type {?} */
let status = true;
for (let i = 0; i < length; i++) {
if (arr1[i] != arr2[i]) {
status = false;
}
}
return status;
}
/**
* @return {?}
*/
initReady() {
/** @type {?} */
let realIdx = 0;
for (let i = 0; i < this.clos; i++) {
realIdx = this.indexArray[i];
/** @type {?} */
let min = 0;
/** @type {?} */
let max = 0;
/** @type {?} */
const tempArray = [];
switch (realIdx) {
case 0:
this.initData(tempArray, this.localMinDate[i], this.localMaxDate[i], this.localeNew.year, i);
break;
case 1:
min = this.judgeEqualArray(this.min_date, this.current_time, 1) ? this.localMinDate[i] : 1;
max = this.judgeEqualArray(this.max_date, this.current_time, 1) ? this.localMaxDate[i] : 12;
this.initData(tempArray, min, max, this.localeNew.month, i);
break;
case 2:
min = this.judgeEqualArray(this.min_date, this.current_time, 2) ? this.localMinDate[i] : 1;
max = this.judgeEqualArray(this.max_date, this.current_time, 2)
? this.localMaxDate[i]
: new Date(this.current_time[0], this.current_time[1], 0).getDate();
this.initData(tempArray, min, max, this.localeNew.day, i);
break;
case 3:
min = this.judgeEqualArray(this.min_date, this.current_time, 3) ? this.localMinDate[i] : 0;
max = this.judgeEqualArray(this.max_date, this.current_time, 3) ? this.localMaxDate[i] : 23;
this.initData(tempArray, min, max, this.localeNew.hour, i);
break;
case 4:
min = this.judgeEqualArray(this.min_date, this.current_time, 4) ? this.localMinDate[i] : 0;
max = this.judgeEqualArray(this.max_date, this.current_time, 4) ? this.localMaxDate[i] : 59;
this.initData(tempArray, min, max, this.localeNew.minute, i);
break;
case 5:
min = 0;
max = 1;
this.initData(tempArray, min, max, 'use12Hours', i);
break;
}
}
}
/**
* @param {?} tempArr
* @param {?} min
* @param {?} max
* @param {?} str
* @param {?} idx
* @return {?}
*/
initData(tempArr, min, max, str, idx) {
/** @type {?} */
const dataWithStr = [];
for (min; min < max + 1; min++) {
tempArr.push(min);
dataWithStr.push(min + str);
}
if (this.data.length > this.indexArray.length) {
this.data = [];
this.dataWithStr = [];
}
if (this.data.length > idx && this.data[idx].toString() !== tempArr.toString()) {
this.data[idx] = tempArr;
}
else if (this.data.length > idx && this.data[idx].toString() === tempArr.toString()) {
this.data[idx] = tempArr;
}
else {
this.data.push(tempArr);
}
if (this.options.locale === undefined || this.options.locale.locale === 'zh_CN') {
if (this.dataWithStr.length > idx && this.dataWithStr[idx].toString() !== dataWithStr.toString()) {
this.dataWithStr[idx] = dataWithStr;
}
else if (this.dataWithStr.length > idx && this.dataWithStr[idx].toString() === dataWithStr.toString()) {
this.dataWithStr[idx] = dataWithStr;
}
else {
this.dataWithStr.push(dataWithStr);
}
}
else {
this.dataWithStr = this.data;
}
}
/**
* @return {?}
*/
ok() {
this.options.onOk.emit(this.handleReslut());
this.setTransitionName();
}
/**
* @return {?}
*/
handleReslut() {
/** @type {?} */
let result = '';
if (this.options.mode === 'datetime' || this.options.mode === 'time') {
/** @type {?} */
const temp = this.resultArr;
result = temp.slice(0, 3).join('-') + ' ' + temp.slice(3, 5).join(':');
}
else {
result = this.resultArr.map(v => v).join('-');
}
this.resultDate = new Date(result.replace(/-/g, '/'));
if (this.options.minDate.getTime() > this.resultDate.getTime()) {
if (this.resultArr.length > 0) {
for (let index = 0; index < this.resultArr.length; index++) {
this.resultArr = this.min_date;
this.currentTime = this.resultArr;
this.current_time = this.currentTime;
}
}
this.resultDate = this.options.minDate;
}
return this.resultDate;
}
/**
* @return {?}
*/
cancel() {
this.options.onDismiss.emit();
this.setTransitionName();
}
/**
* @return {?}
*/
setTransitionName() {
this.transitionName = 'am-slide-up-leave am-slide-up-leave-active';
this.maskTransitionName = 'am-fade-leave am-fade-leave-active';
setTimeout(() => {
this.options.hidePicker();
}, 200);
}
/**
* @param {?} checkIdx
* @param {?} sta
* @param {?} indexT
* @return {?}
*/
setCurrentSelected(checkIdx, sta, indexT) {
if (checkIdx >= this.clos - 1) {
return;
}
/** @type {?} */
let status = null;
if (sta) {
status = this.judgeEqualArray(this.min_date, this.resultArr, checkIdx + 1);
}
else {
status = this.judgeEqualArray(this.max_date, this.resultArr, checkIdx + 1);
}
if (!status) {
/** @type {?} */
let min = 0;
/** @type {?} */
let max = 0;
/** @type {?} */
let str = '';
/** @type {?} */
const realIdx = this.indexArray[checkIdx];
switch (realIdx) {
case 0:
min = 1;
max = 12;
str = '月';
break;
case 1:
min = 1;
max = new Date(this.current_time[0], this.current_time[1], 0).getDate();
str = '日';
break;
case 2:
min = 0;
max = 23;
str = '时';
break;
case 3:
min = 0;
max = 59;
str = '分';
break;
}
this.initRangeArr(min, max, indexT, checkIdx + 1, str);
}
this.setCurrentSelected(checkIdx + 1, sta, indexT);
}
/**
* @param {?} min
* @param {?} max
* @param {?} indexT
* @param {?} checkIdx
* @param {?} str
* @return {?}
*/
initRangeArr(min, max, indexT, checkIdx, str) {
/** @type {?} */
const realIdx = this.indexArray[checkIdx];
/** @type {?} */
const arr = [];
/** @type {?} */
let targetLong = 0;
for (let index = min; index < max + 1; index++) {
arr.push(index);
}
if (arr.indexOf(this.resultArr[checkIdx]) == -1) {
if (-this.selectedTarget[checkIdx].currentY > max - min) {
indexT = max - min;
this.selectedTarget[checkIdx].currentY = -indexT;
}
targetLong = -arr.length * this.lineHeight;
}
else {
targetLong = -arr.indexOf(this.resultArr[checkIdx]) * this.lineHeight;
this.selectedTarget[checkIdx].currentY = -arr.indexOf(this.resultArr[checkIdx]);
}
if (this.data[checkIdx].toString() !== arr.toString()) {
this.current_time[realIdx] = -targetLong / this.lineHeight + 1;
this.resultArr[checkIdx] = -targetLong / this.lineHeight + 1;
this.data[checkIdx] = arr;
this.dataWithStr[checkIdx] =
this.options.locale.locale === 'zh_CN'
? arr.map(item => {
return item + str;
})
: arr;
setTimeout(() => {
this.selectedTarget.forEach((item, i) => {
if (i >= checkIdx) {
this.currentPicker.children[i].children[2].style.transition = '';
/** @type {?} */
const index = parseInt(item.currentY, 0);
this.currentPicker.children[i].children[2].style.transform = `translateY(${index * this.lineHeight}px)`;
}
});
}, 0);
}
}
/**
* @param {?} event
* @return {?}
*/
getEventTarget(event) {
if (event.type === 'mousedown' ||
event.type === 'mousemove' ||
event.type === 'mouseup' ||
event.type === 'mouseleave') {
return event;
}
else {
if (event && event.changedTouches && event.changedTouches[0]) {
return event.changedTouches[0];
}
return null;
}
}
/**
* @return {?}
*/
ngOnInit() {
this.localeProvider();
this.checkMode(this.options.mode);
/** @type {?} */
const value = this.transformDateFormat(this.options.value).split('-');
if (value.length > 0) {
this.currentTime = value.map(item => {
return parseInt(item, 0);
});
}
this.init();
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.reloadPicker();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
}
DatePickerComponent.decorators = [
{ type: Component, args: [{
selector: 'DatePicker, nzm-date-picker',
template: "<div *ngIf=\"options.mask\" class=\"am-picker-popup-mask {{maskTransitionName}}\" (click)=\"cancel()\"></div>\n<div class=\"am-picker-popup {{transitionName}}\" style=\"z-index: 1001\">\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\"\n (click)=\"cancel()\"\n >\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\"\n (click)=\"ok()\"\n >\n {{options.okText}}\n </div>\n </div>\n <div #picker\n class=\"am-picker\"\n style=\"flex-direction: row; align-items: center;\"\n >\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}}\n class=\"am-picker-col-mask\"\n style=\"background-size: 100% 102px;\"\n ></div>\n <div class=\"am-picker-col-content\">\n <div id={{i}}\n class=\"am-picker-col-item\"\n *ngFor=\"let val of item; let i = index\"\n >{{val.label?val.label:val}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n",
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
DatePickerComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: DatePickerOptions },
{ type: LocaleProviderService }
];
DatePickerComponent.propDecorators = {
picker: [{ type: ViewChild, args: ['picker', { read: ViewContainerRef },] }],
panstart: [{ type: HostListener, args: ['mousedown', ['$event'],] }, { type: HostListener, args: ['touchstart', ['$event'],] }],
panmove: [{ type: HostListener, args: ['mousemove', ['$event'],] }, { type: HostListener, args: ['touchmove', ['$event'],] }],
panend: [{ type: HostListener, args: ['mouseleave', ['$event'],] }, { type: HostListener, args: ['mouseup', ['$event'],] }, { type: HostListener, args: ['touchend', ['$event'],] }]
};
if (false) {
/** @type {?} */
DatePickerComponent.prototype.transitionName;
/** @type {?} */
DatePickerComponent.prototype.maskTransitionName;
/** @type {?} */
DatePickerComponent.prototype.modeSwitch;
/** @type {?} */
DatePickerComponent.prototype.localMinDate;
/** @type {?} */
DatePickerComponent.prototype.localMaxDate;
/** @type {?} */
DatePickerComponent.prototype.currentTime;
/** @type {?} */
DatePickerComponent.prototype.indexArray;
/** @type {?} */
DatePickerComponent.prototype.min_date;
/** @type {?} */
DatePickerComponent.prototype.max_date;
/** @type {?} */
DatePickerComponent.prototype.current_time;
/** @type {?} */
DatePickerComponent.prototype.clos;
/** @type {?} */
DatePickerComponent.prototype.resultArr;
/** @type {?} */
DatePickerComponent.prototype.resultDate;
/** @type {?} */
DatePickerComponent.prototype.data;
/** @type {?} */
DatePickerComponent.prototype.dataWithStr;
/** @type {?} */
DatePickerComponent.prototype.startY;
/** @type {?} */
DatePickerComponent.prototype.differY;
/** @type {?} */
DatePickerComponent.prototype.currentY;
/** @type {?} */
DatePickerComponent.prototype.len;
/** @type {?} */
DatePickerComponent.prototype.dom;
/** @type {?} */
DatePickerComponent.prototype.index;
/** @type {?} */
DatePickerComponent.prototype.maxY;
/** @type {?} */
DatePickerComponent.prototype.lineHeight;
/** @type {?} */
DatePickerComponent.prototype.selectedTarget;
/** @type {?} */
DatePickerComponent.prototype.isMouseDown;
/** @type {?} */
DatePickerComponent.prototype.currentPicker;
/** @type {?} */
DatePickerComponent.prototype.localeNew;
/** @type {?} */
DatePickerComponent.prototype.unsubscribe$;
/** @type {?} */
DatePickerComponent.prototype.Velocity;
/** @type {?} */
DatePickerComponent.prototype.picker;
/** @type {?} */
DatePickerComponent.prototype.elementRef;
/** @type {?} */
DatePickerComponent.prototype.options;
/** @type {?} */
DatePickerComponent.prototype.localeProviderService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJkYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULGdCQUFnQixFQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEtBQUssUUFBUSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBUWxELE1BQU07Ozs7OztJQWlKSixZQUNTLFlBQ0EsU0FDQTtRQUZBLGVBQVUsR0FBVixVQUFVO1FBQ1YsWUFBTyxHQUFQLE9BQU87UUFDUCwwQkFBcUIsR0FBckIscUJBQXFCOzhCQW5KTCw0Q0FBNEM7a0NBQ3hDLG9DQUFvQzswQkFDMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDbkIsRUFBRTs0QkFDRixFQUFFOzJCQUNILEVBQUU7MEJBQ0wsRUFBRTt3QkFDRixFQUFFO3dCQUNGLEVBQUU7NEJBQ0U7WUFDcEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDeEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1lBQ3pCLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ3BCLElBQUksSUFBSSxFQUFFLENBQUMsUUFB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