ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
186 lines (185 loc) • 14 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, ViewEncapsulation, Input, HostBinding } from '@angular/core';
import { zh_CN, en_US } from '../../locale-provider/languages';
/**
* @record
*/
export function PropsType() { }
/** @type {?} */
PropsType.prototype.locale;
/** @type {?|undefined} */
PropsType.prototype.prefixCls;
/** @type {?|undefined} */
PropsType.prototype.pickerPrefixCls;
/** @type {?|undefined} */
PropsType.prototype.title;
/** @type {?|undefined} */
PropsType.prototype.defaultValue;
/** @type {?|undefined} */
PropsType.prototype.value;
/** @type {?|undefined} */
PropsType.prototype.onValueChange;
/** @type {?|undefined} */
PropsType.prototype.mode;
/** @type {?|undefined} */
PropsType.prototype.minDate;
/** @type {?|undefined} */
PropsType.prototype.maxDate;
/** @type {?|undefined} */
PropsType.prototype.clientHeight;
/** @type {?|undefined} */
PropsType.prototype.datePickerViewLocale;
export class TimePickerComponent {
constructor() {
this.defaultProps = /** @type {?} */ ({
minDate: new Date(0, 0, 0, 0, 0),
maxDate: new Date(9999, 11, 31, 23, 59, 59),
defaultValue: new Date(2000, 1, 1, 8),
mode: 'time',
datePickerViewLocale: zh_CN
});
this.props = /** @type {?} */ ({
minDate: new Date(0, 0, 0, 0, 0),
maxDate: new Date(9999, 11, 31, 23, 59, 59),
defaultValue: new Date(2000, 1, 1, 8),
mode: 'time',
datePickerViewLocale: zh_CN
});
this.timePicker = true;
this.onDateChange = (date) => {
const { onValueChange } = this.props;
onValueChange && onValueChange(date);
};
}
/**
* @param {?} value
* @return {?}
*/
set propsData(value) {
this.props = Object.assign({}, this.props, value);
if (this.props.locale && this.props.locale.today === 'Today') {
this.props.datePickerViewLocale = en_US;
}
else {
this.props.datePickerViewLocale = zh_CN;
}
}
/**
* @param {?} value
* @return {?}
*/
set title(value) {
this.props.title = value;
}
/**
* @param {?} value
* @return {?}
*/
set value(value) {
this.props.value = value;
}
/**
* @param {?} value
* @return {?}
*/
set prefixCls(value) {
this.props.prefixCls = value;
}
/**
* @param {?} value
* @return {?}
*/
set defaultValue(value) {
this.props.defaultValue = value;
}
/**
* @param {?} value
* @return {?}
*/
set pickerPrefixCls(value) {
this.props.pickerPrefixCls = value;
}
/**
* @param {?} value
* @return {?}
*/
set clientHeight(value) {
this.props.clientHeight = value;
/** @type {?} */
const height = (value && (value * 3) / 8 - 52) || Number.POSITIVE_INFINITY;
this.selfHeight = (height > 164 || height < 0 ? 164 : height) + 'px';
}
/**
* @param {?} value
* @return {?}
*/
set onValueChange(value) {
this.props.onValueChange = value;
}
/**
* @param {?=} date
* @return {?}
*/
getMinTime(date) {
/** @type {?} */
const minDate = /** @type {?} */ (this.props.minDate);
if (!date ||
date.getFullYear() > minDate.getFullYear() ||
date.getMonth() > minDate.getMonth() ||
date.getDate() > minDate.getDate()) {
return this.defaultProps.minDate;
}
return minDate;
}
/**
* @param {?=} date
* @return {?}
*/
getMaxTime(date) {
/** @type {?} */
const maxDate = /** @type {?} */ (this.props.maxDate);
if (!date ||
date.getFullYear() < maxDate.getFullYear() ||
date.getMonth() < maxDate.getMonth() ||
date.getDate() < maxDate.getDate()) {
return this.defaultProps.maxDate;
}
return maxDate;
}
}
TimePickerComponent.decorators = [
{ type: Component, args: [{
selector: 'CalendarTimePicker, nzm-calendar-time-picker',
template: "<div class=\"title\">{{props.title}}</div>\n<DatePickerView [ngStyle]=\"{height: selfHeight, overflow: 'hidden'}\"\n [mode]=\"props.mode\"\n [value]=\"props.value\"\n [locale]=\"props.datePickerViewLocale\"\n [minDate]=\"getMinTime(props.value || props.defaultValue || undefined)\"\n [maxDate]=\"getMaxTime(props.value || props.defaultValue || undefined)\"\n (onValueChange)=\"onDateChange($event)\"\n></DatePickerView>\n",
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
TimePickerComponent.ctorParameters = () => [];
TimePickerComponent.propDecorators = {
propsData: [{ type: Input }],
title: [{ type: Input }],
value: [{ type: Input }],
prefixCls: [{ type: Input }],
defaultValue: [{ type: Input }],
pickerPrefixCls: [{ type: Input }],
clientHeight: [{ type: Input }],
onValueChange: [{ type: Input }],
timePicker: [{ type: HostBinding, args: ['class.time-picker',] }]
};
if (false) {
/** @type {?} */
TimePickerComponent.prototype.defaultProps;
/** @type {?} */
TimePickerComponent.prototype.props;
/** @type {?} */
TimePickerComponent.prototype.selfHeight;
/** @type {?} */
TimePickerComponent.prototype.timePicker;
/** @type {?} */
TimePickerComponent.prototype.onDateChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImNhbGVuZGFyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCL0QsTUFBTTtJQWtFSjs4Q0FqRWU7WUFDYixPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0MsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsTUFBTTtZQUNaLG9CQUFvQixFQUFFLEtBQUs7U0FDZjt1Q0FFTjtZQUNOLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMzQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUks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UUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ2xDO1lBQ0EsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztTQUNsQztRQUNELE9BQU8sT0FBTyxDQUFDO0tBQ2hCOzs7WUF0R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4Q0FBOEM7Z0JBQ3hELDJnQkFBMEM7Z0JBQzFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7Ozt3QkFvQkUsS0FBSztvQkFhTCxLQUFLO29CQUlMLEtBQUs7d0JBSUwsS0FBSzsyQkFJTCxLQUFLOzhCQUlMLEtBQUs7MkJBSUwsS0FBSzs0QkFNTCxLQUFLO3lCQUtMLFdBQVcsU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uL2RhdGUvRGF0YVR5cGVzJztcbmltcG9ydCB7IHpoX0NOLCBlbl9VUyB9IGZyb20gJy4uLy4uL2xvY2FsZS1wcm92aWRlci9sYW5ndWFnZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BzVHlwZSB7XG4gIGxvY2FsZTogTW9kZWxzLkxvY2FsZTtcbiAgcHJlZml4Q2xzPzogc3RyaW5nO1xuICBwaWNrZXJQcmVmaXhDbHM/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZWZhdWx0VmFsdWU/OiBEYXRlO1xuICB2YWx1ZT86IERhdGU7XG4gIG9uVmFsdWVDaGFuZ2U/OiAodGltZTogRGF0ZSkgPT4gdm9pZDtcbiAgbW9kZT86IHN0cmluZztcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xuICBjbGllbnRIZWlnaHQ/OiBudW1iZXI7XG4gIGRhdGVQaWNrZXJWaWV3TG9jYWxlPzogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdDYWxlbmRhclRpbWVQaWNrZXIsIG56bS1jYWxlbmRhci10aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyQ29tcG9uZW50IHtcbiAgZGVmYXVsdFByb3BzID0ge1xuICAgIG1pbkRhdGU6IG5ldyBEYXRlKDAsIDAsIDAsIDAsIDApLFxuICAgIG1heERhdGU6IG5ldyBEYXRlKDk5OTksIDExLCAzMSwgMjMsIDU5LCA1OSksXG4gICAgZGVmYXVsdFZhbHVlOiBuZXcgRGF0ZSgyMDAwLCAxLCAxLCA4KSxcbiAgICBtb2RlOiAndGltZScsXG4gICAgZGF0ZVBpY2tlclZpZXdMb2NhbGU6IHpoX0NOXG4gIH0gYXMgUHJvcHNUeXBlO1xuXG4gIHByb3BzID0ge1xuICAgIG1pbkRhdGU6IG5ldyBEYXRlKDAsIDAsIDAsIDAsIDApLFxuICAgIG1heERhdGU6IG5ldyBEYXRlKDk5OTksIDExLCAzMSwgMjMsIDU5LCA1OSksXG4gICAgZGVmYXVsdFZhbHVlOiBuZXcgRGF0ZSgyMDAwLCAxLCAxLCA4KSxcbiAgICBtb2RlOiAndGltZScsXG4gICAgZGF0ZVBpY2tlclZpZXdMb2NhbGU6IHpoX0NOXG4gIH0gYXMgUHJvcHNUeXBlO1xuXG4gIHNlbGZIZWlnaHQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBzZXQgcHJvcHNEYXRhKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICAuLi52YWx1ZVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5wcm9wcy5sb2NhbGUgJiYgdGhpcy5wcm9wcy5sb2NhbGUudG9kYXkgPT09ICdUb2RheScpIHtcbiAgICAgIHRoaXMucHJvcHMuZGF0ZVBpY2tlclZpZXdMb2NhbGUgPSBlbl9VUztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5kYXRlUGlja2VyVmlld0xvY2FsZSA9IHpoX0NOO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBzZXQgdGl0bGUodmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLnRpdGxlID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwcmVmaXhDbHModmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLnByZWZpeENscyA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBkZWZhdWx0VmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwaWNrZXJQcmVmaXhDbHModmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLnBpY2tlclByZWZpeENscyA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjbGllbnRIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLnByb3BzLmNsaWVudEhlaWdodCA9IHZhbHVlO1xuICAgIGNvbnN0IGhlaWdodCA9ICh2YWx1ZSAmJiAodmFsdWUgKiAzKSAvIDggLSA1MikgfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIHRoaXMuc2VsZkhlaWdodCA9IChoZWlnaHQgPiAxNjQgfHwgaGVpZ2h0IDwgMCA/IDE2NCA6IGhlaWdodCkgKyAncHgnO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBvblZhbHVlQ2hhbmdlKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy5vblZhbHVlQ2hhbmdlID0gdmFsdWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRpbWUtcGlja2VyJylcbiAgdGltZVBpY2tlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG9uRGF0ZUNoYW5nZSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgY29uc3QgeyBvblZhbHVlQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIG9uVmFsdWVDaGFuZ2UgJiYgb25WYWx1ZUNoYW5nZShkYXRlKTtcbiAgfVxuXG4gIGdldE1pblRpbWUoZGF0ZT86IERhdGUpIHtcbiAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5wcm9wcy5taW5EYXRlIGFzIERhdGU7XG4gICAgaWYgKFxuICAgICAgIWRhdGUgfHxcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA+IG1pbkRhdGUuZ2V0RnVsbFllYXIoKSB8fFxuICAgICAgZGF0ZS5nZXRNb250aCgpID4gbWluRGF0ZS5nZXRNb250aCgpIHx8XG4gICAgICBkYXRlLmdldERhdGUoKSA+IG1pbkRhdGUuZ2V0RGF0ZSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UHJvcHMubWluRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIG1pbkRhdGU7XG4gIH1cblxuICBnZXRNYXhUaW1lKGRhdGU/OiBEYXRlKSB7XG4gICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMucHJvcHMubWF4RGF0ZSBhcyBEYXRlO1xuICAgIGlmIChcbiAgICAgICFkYXRlIHx8XG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPCBtYXhEYXRlLmdldEZ1bGxZZWFyKCkgfHxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA8IG1heERhdGUuZ2V0TW9udGgoKSB8fFxuICAgICAgZGF0ZS5nZXREYXRlKCkgPCBtYXhEYXRlLmdldERhdGUoKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFByb3BzLm1heERhdGU7XG4gICAgfVxuICAgIHJldHVybiBtYXhEYXRlO1xuICB9XG59XG4iXX0=