UNPKG

ng-zorro-antd-mobile

Version:

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

258 lines 20.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Input, Output, Component, forwardRef, HostBinding, EventEmitter, ViewEncapsulation } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; 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.showErrorToast = true; _this.showErrorToastInterval = 2000; _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.reloadPicker = /** * @return {?} */ function () { if (this.currentPicker) { /** @type {?} */ var self_1 = this; setTimeout((/** * @return {?} */ function () { self_1.selectedTarget.forEach((/** * @param {?} item * @param {?} i * @return {?} */ 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); } }; /** * @param {?} value * @return {?} */ DatePickerViewComponent.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { if (value) { this.value = value; this.optionInit(); this.init(); } }; /** * @param {?} fn * @return {?} */ DatePickerViewComponent.prototype.registerOnChange = /** * @param {?} fn * @return {?} */ function (fn) { this.ngModelOnChange = fn; }; /** * @param {?} fn * @return {?} */ DatePickerViewComponent.prototype.registerOnTouched = /** * @param {?} fn * @return {?} */ function (fn) { this.ngModelOnTouched = fn; }; /** * @param {?} isDisabled * @return {?} */ DatePickerViewComponent.prototype.setDisabledState = /** * @param {?} isDisabled * @return {?} */ function (isDisabled) { this.disabled = isDisabled; }; /** * @return {?} */ DatePickerViewComponent.prototype.optionInit = /** * @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.showErrorToast = this.showErrorToast; this.options.showErrorToastInterval = this.showErrorToastInterval; 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((/** * @param {?} item * @return {?} */ function (item) { return parseInt(item, 0); })); } }; /** * @return {?} */ DatePickerViewComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.optionInit(); this.localeProvider(); }; /** * @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((/** * @param {?} item * @return {?} */ 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.optionInit(); this.init(); } } if (changes.mode || changes.minDate || changes.maxDate || changes.disabled || changes.locale) { this.optionInit(); 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\">\n {{ val.label ? val.label : val }}\n </div>\n </div>\n</div>\n", encapsulation: ViewEncapsulation.None, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ function () { return DatePickerViewComponent; })), multi: true } ] }] } ]; DatePickerViewComponent.propDecorators = { mode: [{ type: Input }], minDate: [{ type: Input }], maxDate: [{ type: Input }], value: [{ type: Input }], disabled: [{ type: Input }], indicatorStyle: [{ type: Input }], locale: [{ type: Input }], showErrorToast: [{ type: Input }], showErrorToastInterval: [{ 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.showErrorToast; /** @type {?} */ DatePickerViewComponent.prototype.showErrorToastInterval; /** @type {?} */ DatePickerViewComponent.prototype.onValueChange; /** @type {?} */ DatePickerViewComponent.prototype.amPicker; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImRhdGUtcGlja2VyLXZpZXcvZGF0ZS1waWNrZXItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBR1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRTtJQVk2QyxtREFBbUI7SUFaaEU7UUFBQSxxRUFtSUM7UUFwSEMsVUFBSSxHQUFXLE1BQU0sQ0FBQztRQUV0QixhQUFPLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU5QyxhQUFPLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqRCxXQUFLLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUV6QixjQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG9CQUFjLEdBQVcsRUFBRSxDQUFDO1FBVzVCLG9CQUFjLEdBQVksSUFBSSxDQUFDO1FBRS9CLDRCQUFzQixHQUFXLElBQUksQ0FBQztRQUV0QyxtQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RELGNBQVEsR0FBRyxJQUFJLENBQUM7O0lBd0ZsQixDQUFDO0lBekdDLHNCQUNJLDJDQUFNOzs7O1FBRFY7WUFFRSxPQUFPLElBQUksQ0FBQyxP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QUN0QiwwQ0FDOEM7O0lBQzlDLDBDQUNpRDs7SUFDakQsd0NBQ3lCOztJQUN6QiwyQ0FDMEI7O0lBQzFCLGlEQUM0Qjs7SUFVNUIsaURBQytCOztJQUMvQix5REFDc0M7O0lBQ3RDLGdEQUNzRDs7SUFFdEQsMkNBQ2dCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBDb21wb25lbnQsXG4gIE9uQ2hhbmdlcyxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEV2ZW50RW1pdHRlcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnRGF0ZVBpY2tlclZpZXcsIG56bS1kYXRlLXBpY2tlci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJWaWV3Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJWaWV3Q29tcG9uZW50IGV4dGVuZHMgRGF0ZVBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpXG4gIG1vZGU6IHN0cmluZyA9ICdkYXRlJztcbiAgQElucHV0KClcbiAgbWluRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKDIwMDAsIDUsIDEsIDAsIDAsIDApO1xuICBASW5wdXQoKVxuICBtYXhEYXRlOiBEYXRlID0gbmV3IERhdGUoMjAzMCwgMSwgMSwgMjMsIDU5LCA1OSk7XG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgaW5kaWNhdG9yU3R5bGU6IG9iamVjdCA9IHt9O1xuICBASW5wdXQoKVxuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubG9jYWxlO1xuICB9XG4gIHNldCBsb2NhbGUodmFsdWUpIHtcbiAgICB0aGlzLm9wdGlvbnMubG9jYWxlID0gdmFsdWU7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2hvd0Vycm9yVG9hc3Q6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBzaG93RXJyb3JUb2FzdEludGVydmFsOiBudW1iZXIgPSAyMDAwO1xuICBAT3V0cHV0KClcbiAgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1waWNrZXInKVxuICBhbVBpY2tlciA9IHRydWU7XG5cbiAgcmVsb2FkUGlja2VyKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQaWNrZXIpIHtcbiAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNlbGYuc2VsZWN0ZWRUYXJnZXQuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xuICAgICAgICAgIHNlbGYuY3VycmVudFBpY2tlci5jaGlsZHJlbltpXS5jaGlsZHJlblsyXS5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSAuM3MnO1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFyc2VJbnQoaXRlbS5jdXJyZW50WSwgMCk7XG4gICAgICAgICAgc2VsZi5jdXJyZW50UGlja2VyLmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7aW5kZXggKiBzZWxmLmxpbmVIZWlnaHR9cHgpYDtcbiAgICAgICAgfSk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9wdGlvbkluaXQoKTtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBEYXRlKSA9PiB7fSk6IHZvaWQge1xuICAgIHRoaXMubmdNb2RlbE9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcbiAgICB0aGlzLm5nTW9kZWxPblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb3B0aW9uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMubW9kZSA9IHRoaXMubW9kZTtcbiAgICB0aGlzLm9wdGlvbnMubWluRGF0ZSA9IHRoaXMubWluRGF0ZTtcbiAgICB0aGlzLm9wdGlvbnMubWF4RGF0ZSA9IHRoaXMubWF4RGF0ZTtcbiAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgIHRoaXMub3B0aW9ucy5sb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgICB0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMub3B0aW9ucy5zaG93RXJyb3JUb2FzdCA9IHRoaXMuc2hvd0Vycm9yVG9hc3Q7XG4gICAgdGhpcy5vcHRpb25zLnNob3dFcnJvclRvYXN0SW50ZXJ2YWwgPSB0aGlzLnNob3dFcnJvclRvYXN0SW50ZXJ2YWw7XG4gICAgdGhpcy5vcHRpb25zLm9uVmFsdWVDaGFuZ2UgPSB0aGlzLm9uVmFsdWVDaGFuZ2U7XG4gICAgdGhpcy5jaGVja01vZGUodGhpcy5vcHRpb25zLm1vZGUpO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2Zvcm1EYXRlRm9ybWF0KHRoaXMub3B0aW9ucy52YWx1ZSkuc3BsaXQoJy0nKTtcbiAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHZhbHVlLm1hcChpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGl0ZW0sIDApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vcHRpb25Jbml0KCk7XG4gICAgdGhpcy5sb2NhbGVQcm92aWRlcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY3VycmVudFBpY2tlciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMucmVsb2FkUGlja2VyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMudmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSA9IGNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zZm9ybURhdGVGb3JtYXQodGhpcy5vcHRpb25zLnZhbHVlKS5zcGxpdCgnLScpO1xuICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHZhbHVlLm1hcChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoaXRlbSwgMCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5qdWRnZUVxdWFsQXJyYXkodGhpcy5jdXJyZW50VGltZSwgdGhpcy5yZXN1bHRBcnIsIHRoaXMucmVzdWx0QXJyLmxlbmd0aCkgfHxcbiAgICAgICAgdGhpcy5qdWRnZUVxdWFsQXJyYXkodGhpcy5jdXJyZW50VGltZSwgdGhpcy5taW5fZGF0ZSwgdGhpcy5jdXJyZW50VGltZS5sZW5ndGgpIHx8XG4gICAgICAgIHRoaXMuanVkZ2VUaW1lKHRoaXMuY3VycmVudFRpbWUsIHRoaXMubWF4X2RhdGUpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5vcHRpb25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm1vZGUgfHwgY2hhbmdlcy5taW5EYXRlIHx8IGNoYW5nZXMubWF4RGF0ZSB8fCBjaGFuZ2VzLmRpc2FibGVkIHx8IGNoYW5nZXMubG9jYWxlKSB7XG4gICAgICB0aGlzLm9wdGlvbkluaXQoKTtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxufVxuIl19