ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
207 lines • 15.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ViewEncapsulation, Input, HostBinding } from '@angular/core';
import { zh_CN, en_US } from '../../locale-provider/locale';
var CalendarTimePickerComponent = /** @class */ (function () {
function CalendarTimePickerComponent() {
var _this = this;
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 = (/**
* @param {?} date
* @return {?}
*/
function (date) {
var onValueChange = _this.props.onValueChange;
if (onValueChange) {
onValueChange(date.date);
}
});
}
Object.defineProperty(CalendarTimePickerComponent.prototype, "propsData", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props = tslib_1.__assign({}, this.props, value);
if (this.props.locale && this.props.locale.today === 'Today') {
this.props.datePickerViewLocale = en_US;
}
else {
this.props.datePickerViewLocale = zh_CN;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "title", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.title = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "value", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.value = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "prefixCls", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.prefixCls = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "defaultValue", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.defaultValue = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "pickerPrefixCls", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.pickerPrefixCls = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "clientHeight", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.clientHeight = value;
/** @type {?} */
var height = (value && (value * 3) / 8 - 52) || Number.POSITIVE_INFINITY;
this.selfHeight = (height > 164 || height < 0 ? 164 : height) + 'px';
},
enumerable: true,
configurable: true
});
Object.defineProperty(CalendarTimePickerComponent.prototype, "onValueChange", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.props.onValueChange = value;
},
enumerable: true,
configurable: true
});
/**
* @param {?=} date
* @return {?}
*/
CalendarTimePickerComponent.prototype.getMinTime = /**
* @param {?=} date
* @return {?}
*/
function (date) {
/** @type {?} */
var 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 {?}
*/
CalendarTimePickerComponent.prototype.getMaxTime = /**
* @param {?=} date
* @return {?}
*/
function (date) {
/** @type {?} */
var 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;
};
CalendarTimePickerComponent.decorators = [
{ type: Component, args: [{
selector: 'CalendarTimePicker, nzm-calendar-time-picker',
template: "<div class=\"title\">{{ props.title }}</div>\n<DatePickerView\n [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 */
CalendarTimePickerComponent.ctorParameters = function () { return []; };
CalendarTimePickerComponent.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',] }]
};
return CalendarTimePickerComponent;
}());
export { CalendarTimePickerComponent };
if (false) {
/** @type {?} */
CalendarTimePickerComponent.prototype.defaultProps;
/** @type {?} */
CalendarTimePickerComponent.prototype.props;
/** @type {?} */
CalendarTimePickerComponent.prototype.selfHeight;
/** @type {?} */
CalendarTimePickerComponent.prototype.timePicker;
/** @type {?} */
CalendarTimePickerComponent.prototype.onDateChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImNhbGVuZGFyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RDtJQXVFRTtRQUFBLGlCQUFnQjtRQWpFaEIsaUJBQVksR0FBRyxtQkFBQTtZQUNiLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMzQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxNQUFNO1lBQ1osb0JBQW9CLEVBQUUsS0FBSztTQUM1QixFQUErQixDQUFDO1FBRWpDLFVBQUssR0FBRyxtQkFBQTtZQUNOLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMzQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVB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Q0FBQztTQUNsQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7O0lBRUQsZ0RBQVU7Ozs7SUFBVixVQUFXLElBQVc7O1lBQ2QsT0FBTyxHQUFHLG1CQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFRO1FBQzFDLElBQ0UsQ0FBQyxJQUFJO1lBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFDbEM7WUFDQSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Z0JBeEdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsOENBQThDO29CQUN4RCw4YkFBMEM7b0JBQzFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7Ozs7NEJBb0JFLEtBQUs7d0JBYUwsS0FBSzt3QkFJTCxLQUFLOzRCQUlMLEtBQUs7K0JBSUwsS0FBSztrQ0FJTCxLQUFLOytCQUlMLEtBQUs7Z0NBTUwsS0FBSzs2QkFLTCxXQUFXLFNBQUMsbUJBQW1COztJQXFDbEMsa0NBQUM7Q0FBQSxBQXpHRCxJQXlHQztTQXBHWSwyQkFBMkI7OztJQUN0QyxtREFNaUM7O0lBRWpDLDRDQU1pQzs7SUFFakMsaURBQW1COztJQThDbkIsaURBQzJCOztJQUkzQixtREFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgemhfQ04sIGVuX1VTIH0gZnJvbSAnLi4vLi4vbG9jYWxlLXByb3ZpZGVyL2xvY2FsZSc7XG5pbXBvcnQgeyBDYWxlbmRhclRpbWVQaWNrZXJQcm9wc1R5cGUgfSBmcm9tICcuL1Byb3BzVHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ0NhbGVuZGFyVGltZVBpY2tlciwgbnptLWNhbGVuZGFyLXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyVGltZVBpY2tlckNvbXBvbmVudCB7XG4gIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtaW5EYXRlOiBuZXcgRGF0ZSgwLCAwLCAwLCAwLCAwKSxcbiAgICBtYXhEYXRlOiBuZXcgRGF0ZSg5OTk5LCAxMSwgMzEsIDIzLCA1OSwgNTkpLFxuICAgIGRlZmF1bHRWYWx1ZTogbmV3IERhdGUoMjAwMCwgMSwgMSwgOCksXG4gICAgbW9kZTogJ3RpbWUnLFxuICAgIGRhdGVQaWNrZXJWaWV3TG9jYWxlOiB6aF9DTlxuICB9IGFzIENhbGVuZGFyVGltZVBpY2tlclByb3BzVHlwZTtcblxuICBwcm9wcyA9IHtcbiAgICBtaW5EYXRlOiBuZXcgRGF0ZSgwLCAwLCAwLCAwLCAwKSxcbiAgICBtYXhEYXRlOiBuZXcgRGF0ZSg5OTk5LCAxMSwgMzEsIDIzLCA1OSwgNTkpLFxuICAgIGRlZmF1bHRWYWx1ZTogbmV3IERhdGUoMjAwMCwgMSwgMSwgOCksXG4gICAgbW9kZTogJ3RpbWUnLFxuICAgIGRhdGVQaWNrZXJWaWV3TG9jYWxlOiB6aF9DTlxuICB9IGFzIENhbGVuZGFyVGltZVBpY2tlclByb3BzVHlwZTtcblxuICBzZWxmSGVpZ2h0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2V0IHByb3BzRGF0YSh2YWx1ZSkge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgLi4udmFsdWVcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMucHJvcHMubG9jYWxlICYmIHRoaXMucHJvcHMubG9jYWxlLnRvZGF5ID09PSAnVG9kYXknKSB7XG4gICAgICB0aGlzLnByb3BzLmRhdGVQaWNrZXJWaWV3TG9jYWxlID0gZW5fVVM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvcHMuZGF0ZVBpY2tlclZpZXdMb2NhbGUgPSB6aF9DTjtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHRpdGxlKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy50aXRsZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMucHJvcHMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgcHJlZml4Q2xzKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy5wcmVmaXhDbHMgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgZGVmYXVsdFZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgcGlja2VyUHJlZml4Q2xzKHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy5waWNrZXJQcmVmaXhDbHMgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgY2xpZW50SGVpZ2h0KHZhbHVlKSB7XG4gICAgdGhpcy5wcm9wcy5jbGllbnRIZWlnaHQgPSB2YWx1ZTtcbiAgICBjb25zdCBoZWlnaHQgPSAodmFsdWUgJiYgKHZhbHVlICogMykgLyA4IC0gNTIpIHx8IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICB0aGlzLnNlbGZIZWlnaHQgPSAoaGVpZ2h0ID4gMTY0IHx8IGhlaWdodCA8IDAgPyAxNjQgOiBoZWlnaHQpICsgJ3B4JztcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgb25WYWx1ZUNoYW5nZSh2YWx1ZSkge1xuICAgIHRoaXMucHJvcHMub25WYWx1ZUNoYW5nZSA9IHZhbHVlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aW1lLXBpY2tlcicpXG4gIHRpbWVQaWNrZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbkRhdGVDaGFuZ2UgPSAoZGF0ZTogeyBkYXRlOiBEYXRlOyBpbmRleDogbnVtYmVyIH0pID0+IHtcbiAgICBjb25zdCB7IG9uVmFsdWVDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKG9uVmFsdWVDaGFuZ2UpIHtcbiAgICAgIG9uVmFsdWVDaGFuZ2UoZGF0ZS5kYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXRNaW5UaW1lKGRhdGU/OiBEYXRlKSB7XG4gICAgY29uc3QgbWluRGF0ZSA9IHRoaXMucHJvcHMubWluRGF0ZSBhcyBEYXRlO1xuICAgIGlmIChcbiAgICAgICFkYXRlIHx8XG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPiBtaW5EYXRlLmdldEZ1bGxZZWFyKCkgfHxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA+IG1pbkRhdGUuZ2V0TW9udGgoKSB8fFxuICAgICAgZGF0ZS5nZXREYXRlKCkgPiBtaW5EYXRlLmdldERhdGUoKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFByb3BzLm1pbkRhdGU7XG4gICAgfVxuICAgIHJldHVybiBtaW5EYXRlO1xuICB9XG5cbiAgZ2V0TWF4VGltZShkYXRlPzogRGF0ZSkge1xuICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLnByb3BzLm1heERhdGUgYXMgRGF0ZTtcbiAgICBpZiAoXG4gICAgICAhZGF0ZSB8fFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpIDwgbWF4RGF0ZS5nZXRGdWxsWWVhcigpIHx8XG4gICAgICBkYXRlLmdldE1vbnRoKCkgPCBtYXhEYXRlLmdldE1vbnRoKCkgfHxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpIDwgbWF4RGF0ZS5nZXREYXRlKClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQcm9wcy5tYXhEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gbWF4RGF0ZTtcbiAgfVxufVxuIl19