UNPKG

ng-zorro-antd-mobile

Version:

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

176 lines (175 loc) 15.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ViewEncapsulation, Input, Output, EventEmitter, HostBinding } from '@angular/core'; import { DatePickerComponent } from '../date-picker/date-picker.component'; var DatePickerViewComponent = /** @class */ (function (_super) { tslib_1.__extends(DatePickerViewComponent, _super); function DatePickerViewComponent() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.mode = 'date'; _this.minDate = new Date(2000, 5, 1, 0, 0, 0); _this.maxDate = new Date(2030, 1, 1, 23, 59, 59); _this.value = new Date(); _this.disabled = false; _this.indicatorStyle = {}; _this.onValueChange = new EventEmitter(); _this.amPicker = true; return _this; } Object.defineProperty(DatePickerViewComponent.prototype, "locale", { get: /** * @return {?} */ function () { return this.options.locale; }, set: /** * @param {?} value * @return {?} */ function (value) { this.options.locale = value; this.unsubscribe$.next(); this.unsubscribe$.complete(); }, enumerable: true, configurable: true }); /** * @return {?} */ DatePickerViewComponent.prototype.init = /** * @return {?} */ function () { this.options.mode = this.mode; this.options.minDate = this.minDate; this.options.maxDate = this.maxDate; this.options.disabled = this.disabled; this.options.locale = this.locale; this.options.value = this.value; this.options.onValueChange = this.onValueChange; this.checkMode(this.options.mode); /** @type {?} */ var value = this.transformDateFormat(this.options.value).split('-'); if (value.length > 0) { this.currentTime = value.map(function (item) { return parseInt(item, 0); }); } this.initResult(); this.checkTime(); this.initReady(); this.getInitValueIndex(); }; /** * @return {?} */ DatePickerViewComponent.prototype.reloadPicker = /** * @return {?} */ function () { if (this.currentPicker) { /** @type {?} */ var self_1 = this; setTimeout(function () { self_1.selectedTarget.forEach(function (item, i) { self_1.currentPicker.children[i].children[2].style.transition = 'transform .3s'; /** @type {?} */ var index = parseInt(item.currentY, 0); self_1.currentPicker.children[i].children[2].style.transform = "translateY(" + index * self_1.lineHeight + "px)"; }); }, 0); } }; /** * @return {?} */ DatePickerViewComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.localeProvider(); this.init(); }; /** * @return {?} */ DatePickerViewComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.currentPicker = this.elementRef.nativeElement; this.reloadPicker(); }; /** * @param {?} changes * @return {?} */ DatePickerViewComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes["value"]) { this.options.value = changes["value"].currentValue; /** @type {?} */ var value = this.transformDateFormat(this.options.value).split('-'); if (value.length > 0) { this.currentTime = value.map(function (item) { return parseInt(item, 0); }); } if (!this.judgeEqualArray(this.currentTime, this.resultArr, this.resultArr.length) || this.judgeEqualArray(this.currentTime, this.min_date, this.currentTime.length) || this.judgeTime(this.currentTime, this.max_date)) { this.init(); } } if (changes["mode"] || changes["minDate"] || changes["maxDate"] || changes["disabled"] || changes["locale"]) { this.init(); } }; DatePickerViewComponent.decorators = [ { type: Component, args: [{ selector: 'DatePickerView, nzm-date-picker-view', template: "<div *ngFor=\"let item of dataWithStr; let i = index\" class=\"am-picker-col\">\n <div class=\"am-picker-col-indicator \" style=\"top: 102px;\" [ngStyle]=\"indicatorStyle\"></div>\n <div id={{i}} class=\"am-picker-col-mask\" style=\"background-size: 100% 102px;\"></div>\n <div class=\"am-picker-col-content\">\n <div id={{i}} *ngFor=\"let val of item; let i = index\" class=\"am-picker-col-item\">{{val.label?val.label:val}}</div>\n </div>\n</div>\n", encapsulation: ViewEncapsulation.None }] } ]; DatePickerViewComponent.propDecorators = { mode: [{ type: Input }], minDate: [{ type: Input }], maxDate: [{ type: Input }], value: [{ type: Input }], disabled: [{ type: Input }], indicatorStyle: [{ type: Input }], locale: [{ type: Input }], onValueChange: [{ type: Output }], amPicker: [{ type: HostBinding, args: ['class.am-picker',] }] }; return DatePickerViewComponent; }(DatePickerComponent)); export { DatePickerViewComponent }; if (false) { /** @type {?} */ DatePickerViewComponent.prototype.mode; /** @type {?} */ DatePickerViewComponent.prototype.minDate; /** @type {?} */ DatePickerViewComponent.prototype.maxDate; /** @type {?} */ DatePickerViewComponent.prototype.value; /** @type {?} */ DatePickerViewComponent.prototype.disabled; /** @type {?} */ DatePickerViewComponent.prototype.indicatorStyle; /** @type {?} */ DatePickerViewComponent.prototype.onValueChange; /** @type {?} */ DatePickerViewComponent.prototype.amPicker; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImRhdGUtcGlja2VyLXZpZXcvZGF0ZS1waWNrZXItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0lBUTlCLG1EQUFtQjs7O3FCQUUvQyxNQUFNO3dCQUVMLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUU3QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztzQkFFbEMsSUFBSSxJQUFJLEVBQUU7eUJBRUosS0FBSzsrQkFFQSxFQUFFOzhCQVdRLElBQUksWUFBWSxFQUFFO3lCQUcxQyxJQUFJOzs7SUFiZixzQkFDSSwyQ0FBTTs7OztRQURWO1lBRUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUM1Qjs7Ozs7UUFDRCxVQUFXLEtBQUs7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzlCOzs7T0FMQTs7OztJQVlELHNDQUFJOzs7SUFBSjtRQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFD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SyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUk7b0JBQy9CLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDMUIsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxJQUNFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2dCQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMvQztnQkFDQSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDYjtTQUNGO1FBRUQsSUFBSSxPQUFPLFlBQVMsT0FBTyxXQUFRLElBQUksT0FBTyxXQUFRLElBQUksT0FBTyxZQUFTLElBQUksT0FBTyxVQUFPLEVBQUU7WUFDNUYsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7S0FDRjs7Z0JBbEdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxxZEFBZ0Q7b0JBQ2hELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7O3VCQUVFLEtBQUs7MEJBRUwsS0FBSzswQkFFTCxLQUFLO3dCQUVMLEtBQUs7MkJBRUwsS0FBSztpQ0FFTCxLQUFLO3lCQUVMLEtBQUs7Z0NBU0wsTUFBTTsyQkFHTixXQUFXLFNBQUMsaUJBQWlCOztrQ0E3Q2hDO0VBb0I2QyxtQkFBbUI7U0FBbkQsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IHpoX0NOIH0gZnJvbSAnLi4vbG9jYWxlLXByb3ZpZGVyL2xhbmd1YWdlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ0RhdGVQaWNrZXJWaWV3LCBuem0tZGF0ZS1waWNrZXItdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyVmlld0NvbXBvbmVudCBleHRlbmRzIERhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG1vZGU6IHN0cmluZyA9ICdkYXRlJztcbiAgQElucHV0KClcbiAgbWluRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKDIwMDAsIDUsIDEsIDAsIDAsIDApO1xuICBASW5wdXQoKVxuICBtYXhEYXRlOiBEYXRlID0gbmV3IERhdGUoMjAzMCwgMSwgMSwgMjMsIDU5LCA1OSk7XG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgaW5kaWNhdG9yU3R5bGU6IG9iamVjdCA9IHt9O1xuICBASW5wdXQoKVxuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubG9jYWxlO1xuICB9XG4gIHNldCBsb2NhbGUodmFsdWUpIHtcbiAgICB0aGlzLm9wdGlvbnMubG9jYWxlID0gdmFsdWU7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tcGlja2VyJylcbiAgYW1QaWNrZXIgPSB0cnVlO1xuXG4gIGluaXQoKSB7XG4gICAgdGhpcy5vcHRpb25zLm1vZGUgPSB0aGlzLm1vZGU7XG4gICAgdGhpcy5vcHRpb25zLm1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG4gICAgdGhpcy5vcHRpb25zLm1heERhdGUgPSB0aGlzLm1heERhdGU7XG4gICAgdGhpcy5vcHRpb25zLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgICB0aGlzLm9wdGlvbnMubG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLm9wdGlvbnMub25WYWx1ZUNoYW5nZSA9IHRoaXMub25WYWx1ZUNoYW5nZTtcbiAgICB0aGlzLmNoZWNrTW9kZSh0aGlzLm9wdGlvbnMubW9kZSk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zZm9ybURhdGVGb3JtYXQodGhpcy5vcHRpb25zLnZhbHVlKS5zcGxpdCgnLScpO1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdmFsdWUubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoaXRlbSwgMCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5pbml0UmVzdWx0KCk7XG4gICAgdGhpcy5jaGVja1RpbWUoKTtcbiAgICB0aGlzLmluaXRSZWFkeSgpO1xuICAgIHRoaXMuZ2V0SW5pdFZhbHVlSW5kZXgoKTtcbiAgfVxuXG4gIHJlbG9hZFBpY2tlcigpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGlja2VyKSB7XG4gICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZWxmLnNlbGVjdGVkVGFyZ2V0LmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICBzZWxmLmN1cnJlbnRQaWNrZXIuY2hpbGRyZW5baV0uY2hpbGRyZW5bMl0uc3R5bGUudHJhbnNpdGlvbiA9ICd0cmFuc2Zvcm0gLjNzJztcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlSW50KGl0ZW0uY3VycmVudFksIDApO1xuICAgICAgICAgIHNlbGYuY3VycmVudFBpY2tlci5jaGlsZHJlbltpXS5jaGlsZHJlblsyXS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke2luZGV4ICogc2VsZi5saW5lSGVpZ2h0fXB4KWA7XG4gICAgICAgIH0pO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2NhbGVQcm92aWRlcigpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY3VycmVudFBpY2tlciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMucmVsb2FkUGlja2VyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMudmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSA9IGNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zZm9ybURhdGVGb3JtYXQodGhpcy5vcHRpb25zLnZhbHVlKS5zcGxpdCgnLScpO1xuICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHZhbHVlLm1hcChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoaXRlbSwgMCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5qdWRnZUVxdWFsQXJyYXkodGhpcy5jdXJyZW50VGltZSwgdGhpcy5yZXN1bHRBcnIsIHRoaXMucmVzdWx0QXJyLmxlbmd0aCkgfHxcbiAgICAgICAgdGhpcy5qdWRnZUVxdWFsQXJyYXkodGhpcy5jdXJyZW50VGltZSwgdGhpcy5taW5fZGF0ZSwgdGhpcy5jdXJyZW50VGltZS5sZW5ndGgpIHx8XG4gICAgICAgIHRoaXMuanVkZ2VUaW1lKHRoaXMuY3VycmVudFRpbWUsIHRoaXMubWF4X2RhdGUpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMubW9kZSB8fCBjaGFuZ2VzLm1pbkRhdGUgfHwgY2hhbmdlcy5tYXhEYXRlIHx8IGNoYW5nZXMuZGlzYWJsZWQgfHwgY2hhbmdlcy5sb2NhbGUpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxufVxuIl19