UNPKG

ng-zorro-antd-mobile

Version:

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

256 lines 18.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, ContentChildren, QueryList, HostBinding, Renderer2, ElementRef } from '@angular/core'; import { StepStatusEnum, StepDirectionEnum } from './step/step.component'; import { StepComponent } from './step/step.component'; var StepsComponent = /** @class */ (function () { function StepsComponent(_elf, _render) { this._elf = _elf; this._render = _render; this.prefixCls = 'am-steps'; this._current = 0; this._status = StepStatusEnum.PROCESS; this._direction = StepDirectionEnum.VERTICAL; this.clsSteps = true; } Object.defineProperty(StepsComponent.prototype, "current", { set: /** * @param {?} value * @return {?} */ function (value) { if (value >= 0) { this._current = value; } }, enumerable: true, configurable: true }); Object.defineProperty(StepsComponent.prototype, "size", { set: /** * @param {?} value * @return {?} */ function (value) { this._size = value; this.setCls(); }, enumerable: true, configurable: true }); Object.defineProperty(StepsComponent.prototype, "status", { set: /** * @param {?} value * @return {?} */ function (value) { this._status = value; if (this.stepItems) { this.setStepStyle(); } }, enumerable: true, configurable: true }); Object.defineProperty(StepsComponent.prototype, "direction", { set: /** * @param {?} value * @return {?} */ function (value) { this._direction = value; this.setCls(); }, enumerable: true, configurable: true }); /** * @return {?} */ StepsComponent.prototype.setStepStyle = /** * @return {?} */ function () { /** @type {?} */ var itemCount = this.stepItems.length; /** @type {?} */ var itemArr = this.stepItems['_results']; for (var index = 0; index < itemCount; index++) { /** @type {?} */ var step = itemArr[index]; step.stepNumber = index + 1; if (index < itemCount - 1 && itemArr[index + 1].status === StepStatusEnum.ERROR) { step.stepItemCls = step.stepItemCls ? Object.assign(step.stepItemCls, { 'error-tail': true }) : { 'error-tail': true }; } /** @type {?} */ var icon = step.icon; if (!step.status) { if (index === this._current) { step.status = this._status; } else if (index < this._current) { step.status = StepStatusEnum.FINISH; } else { step.status = StepStatusEnum.WAIT; } } else if (step.status && !icon) { switch (step.status) { case StepStatusEnum.FINISH: icon = 'check-circle-o'; break; case StepStatusEnum.ERROR: icon = 'cross-circle-o'; break; } } if (!icon && step.status !== StepStatusEnum.PROCESS) { if (index < this._current) { icon = 'check-circle-o'; } else if (index > this._current) { icon = 'ellipsis'; step.stepItemCls = step.stepItemCls ? Object.assign(step.stepItemCls, { 'ellipsis-item': true }) : { 'ellipsis-item': true }; } if ((this._status === StepStatusEnum.ERROR && index === this._current) || step.status === StepStatusEnum.ERROR) { icon = 'cross-circle-o'; } } step.icon = icon; step.iconSize = this._size === 'small' ? (this._status === StepStatusEnum.WAIT ? 'xxs' : 'xs') : 'md'; step.setClass(); } }; /** * @return {?} */ StepsComponent.prototype.setCls = /** * @return {?} */ function () { if (this._direction === StepDirectionEnum.HORIZONTAL) { this.clsStepsLabelVtl = true; this.clsStepsHztl = true; this.clsStepsVtl = false; } else if (this._direction === StepDirectionEnum.VERTICAL) { this.clsStepsVtl = true; this.clsStepsHztl = false; } if (this._size === 'small') { this.clsStepsSmall = true; } else { this.clsStepsSmall = false; } }; /** * @return {?} */ StepsComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.setCls(); }; /** * @return {?} */ StepsComponent.prototype.ngAfterContentInit = /** * @return {?} */ function () { var _this = this; setTimeout((/** * @return {?} */ function () { _this.setStepStyle(); }), 0); }; StepsComponent.decorators = [ { type: Component, args: [{ selector: 'Steps,nzm-steps', template: "<ng-content></ng-content>\n" }] } ]; /** @nocollapse */ StepsComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; StepsComponent.propDecorators = { stepItems: [{ type: ContentChildren, args: [StepComponent,] }], current: [{ type: Input }], size: [{ type: Input }], status: [{ type: Input }], direction: [{ type: Input }], clsSteps: [{ type: HostBinding, args: ['class.am-steps',] }], clsStepsSmall: [{ type: HostBinding, args: ['class.am-steps-small',] }], clsStepsLabelVtl: [{ type: HostBinding, args: ['class.am-steps-label-vertical',] }], clsStepsVtl: [{ type: HostBinding, args: ['class.am-steps-vertical',] }], clsStepsHztl: [{ type: HostBinding, args: ['class.am-steps-horizontal',] }] }; return StepsComponent; }()); export { StepsComponent }; if (false) { /** @type {?} */ StepsComponent.prototype.prefixCls; /** * @type {?} * @private */ StepsComponent.prototype._current; /** * @type {?} * @private */ StepsComponent.prototype._size; /** * @type {?} * @private */ StepsComponent.prototype._status; /** * @type {?} * @private */ StepsComponent.prototype._direction; /** * @type {?} * @private */ StepsComponent.prototype._stepsCls; /** @type {?} */ StepsComponent.prototype.stepItems; /** @type {?} */ StepsComponent.prototype.clsSteps; /** @type {?} */ StepsComponent.prototype.clsStepsSmall; /** @type {?} */ StepsComponent.prototype.clsStepsLabelVtl; /** @type {?} */ StepsComponent.prototype.clsStepsVtl; /** @type {?} */ StepsComponent.prototype.clsStepsHztl; /** * @type {?} * @private */ StepsComponent.prototype._elf; /** * @type {?} * @private */ StepsComponent.prototype._render; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJzdGVwcy9zdGVwcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RDtJQW1ERSx3QkFBb0IsSUFBZ0IsRUFBVSxPQUFrQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQTlDaEUsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUV2QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBRXJCLFlBQU8sR0FBbUIsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUNqRCxlQUFVLEdBQXNCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQStCbkUsYUFBUSxHQUFZLElBQUksQ0FBQztJQVUyQyxDQUFDO0lBbkNyRSxzQkFDSSxtQ0FBTzs7Ozs7UUFEWCxVQUNZLEtBQUs7WUFDZixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDdkI7UUFDSCxDQUFDOzs7T0FBQTtJQUNELHNCQUNJLGdDQUFJOzs7OztRQURSLFVBQ1MsS0FBSztZQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDOzs7T0FBQTtJQUNELHNCQUNJLGtDQUFNOzs7OztRQURWLFVBQ1csS0FBcUI7WUFDOUIsSUFBSSxDQUFD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LGlCQUlDO1FBSEMsVUFBVTs7O1FBQUM7WUFDVCxLQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7Z0JBaklGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQix1Q0FBcUM7aUJBQ3RDOzs7O2dCQVJDLFVBQVU7Z0JBRFYsU0FBUzs7OzRCQW1CUixlQUFlLFNBQUMsYUFBYTswQkFHN0IsS0FBSzt1QkFNTCxLQUFLO3lCQUtMLEtBQUs7NEJBT0wsS0FBSzsyQkFNTCxXQUFXLFNBQUMsZ0JBQWdCO2dDQUU1QixXQUFXLFNBQUMsc0JBQXNCO21DQUVsQyxXQUFXLFNBQUMsK0JBQStCOzhCQUUzQyxXQUFXLFNBQUMseUJBQXlCOytCQUVyQyxXQUFXLFNBQUMsMkJBQTJCOztJQWtGMUMscUJBQUM7Q0FBQSxBQWxJRCxJQWtJQztTQTlIWSxjQUFjOzs7SUFDekIsbUNBQStCOzs7OztJQUUvQixrQ0FBNkI7Ozs7O0lBQzdCLCtCQUFzQjs7Ozs7SUFDdEIsaUNBQXlEOzs7OztJQUN6RCxvQ0FBbUU7Ozs7O0lBQ25FLG1DQUEwQjs7SUFFMUIsbUNBQ29DOztJQTBCcEMsa0NBQ3lCOztJQUN6Qix1Q0FDdUI7O0lBQ3ZCLDBDQUMwQjs7SUFDMUIscUNBQ3FCOztJQUNyQixzQ0FDc0I7Ozs7O0lBRVYsOEJBQXdCOzs7OztJQUFFLGlDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEhvc3RCaW5kaW5nLFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGVwU3RhdHVzRW51bSwgU3RlcERpcmVjdGlvbkVudW0gfSBmcm9tICcuL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1N0ZXBzLG56bS1zdGVwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBwcmVmaXhDbHM6IHN0cmluZyA9ICdhbS1zdGVwcyc7XG5cbiAgcHJpdmF0ZSBfY3VycmVudDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nO1xuICBwcml2YXRlIF9zdGF0dXM6IFN0ZXBTdGF0dXNFbnVtID0gU3RlcFN0YXR1c0VudW0uUFJPQ0VTUztcbiAgcHJpdmF0ZSBfZGlyZWN0aW9uOiBTdGVwRGlyZWN0aW9uRW51bSA9IFN0ZXBEaXJlY3Rpb25FbnVtLlZFUlRJQ0FMO1xuICBwcml2YXRlIF9zdGVwc0Nsczogb2JqZWN0O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU3RlcENvbXBvbmVudClcbiAgc3RlcEl0ZW1zOiBRdWVyeUxpc3Q8U3RlcENvbXBvbmVudD47XG5cbiAgQElucHV0KClcbiAgc2V0IGN1cnJlbnQodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPj0gMCkge1xuICAgICAgdGhpcy5fY3VycmVudCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBzZXQgc2l6ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzdGF0dXModmFsdWU6IFN0ZXBTdGF0dXNFbnVtKSB7XG4gICAgdGhpcy5fc3RhdHVzID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuc3RlcEl0ZW1zKSB7XG4gICAgICB0aGlzLnNldFN0ZXBTdHlsZSgpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBzZXQgZGlyZWN0aW9uKHZhbHVlOiBTdGVwRGlyZWN0aW9uRW51bSkge1xuICAgIHRoaXMuX2RpcmVjdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLXN0ZXBzJylcbiAgY2xzU3RlcHM6IGJvb2xlYW4gPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLXN0ZXBzLXNtYWxsJylcbiAgY2xzU3RlcHNTbWFsbDogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zdGVwcy1sYWJlbC12ZXJ0aWNhbCcpXG4gIGNsc1N0ZXBzTGFiZWxWdGw6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tc3RlcHMtdmVydGljYWwnKVxuICBjbHNTdGVwc1Z0bDogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zdGVwcy1ob3Jpem9udGFsJylcbiAgY2xzU3RlcHNIenRsOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjIpIHsgfVxuXG4gIHNldFN0ZXBTdHlsZSgpIHtcbiAgICBjb25zdCBpdGVtQ291bnQgPSB0aGlzLnN0ZXBJdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgaXRlbUFyciA9IHRoaXMuc3RlcEl0ZW1zWydfcmVzdWx0cyddO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtQ291bnQ7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBpdGVtQXJyW2luZGV4XTtcbiAgICAgIHN0ZXAuc3RlcE51bWJlciA9IGluZGV4ICsgMTtcbiAgICAgIGlmIChpbmRleCA8IGl0ZW1Db3VudCAtIDEgJiYgaXRlbUFycltpbmRleCArIDFdLnN0YXR1cyA9PT0gU3RlcFN0YXR1c0VudW0uRVJST1IpIHtcbiAgICAgICAgc3RlcC5zdGVwSXRlbUNscyA9IHN0ZXAuc3RlcEl0ZW1DbHNcbiAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oc3RlcC5zdGVwSXRlbUNscywgeyAnZXJyb3ItdGFpbCc6IHRydWUgfSlcbiAgICAgICAgICA6IHsgJ2Vycm9yLXRhaWwnOiB0cnVlIH07XG4gICAgICB9XG4gICAgICBsZXQgaWNvbiA9IHN0ZXAuaWNvbjtcbiAgICAgIGlmICghc3RlcC5zdGF0dXMpIHtcbiAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLl9jdXJyZW50KSB7XG4gICAgICAgICAgc3RlcC5zdGF0dXMgPSB0aGlzLl9zdGF0dXM7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPCB0aGlzLl9jdXJyZW50KSB7XG4gICAgICAgICAgc3RlcC5zdGF0dXMgPSBTdGVwU3RhdHVzRW51bS5GSU5JU0g7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RlcC5zdGF0dXMgPSBTdGVwU3RhdHVzRW51bS5XQUlUO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHN0ZXAuc3RhdHVzICYmICFpY29uKSB7XG4gICAgICAgIHN3aXRjaCAoc3RlcC5zdGF0dXMpIHtcbiAgICAgICAgICBjYXNlICBTdGVwU3RhdHVzRW51bS5GSU5JU0g6XG4gICAgICAgICAgICBpY29uID0gJ2NoZWNrLWNpcmNsZS1vJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU3RlcFN0YXR1c0VudW0uRVJST1I6XG4gICAgICAgICAgICBpY29uID0gJ2Nyb3NzLWNpcmNsZS1vJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWljb24gJiYgc3RlcC5zdGF0dXMgIT09IFN0ZXBTdGF0dXNFbnVtLlBST0NFU1MpIHtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5fY3VycmVudCkge1xuICAgICAgICAgIGljb24gPSAnY2hlY2stY2lyY2xlLW8nO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID4gdGhpcy5fY3VycmVudCkge1xuICAgICAgICAgIGljb24gPSAnZWxsaXBzaXMnO1xuICAgICAgICAgIHN0ZXAuc3RlcEl0ZW1DbHMgPSBzdGVwLnN0ZXBJdGVtQ2xzXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oc3RlcC5zdGVwSXRlbUNscywgeyAnZWxsaXBzaXMtaXRlbSc6IHRydWUgfSlcbiAgICAgICAgICAgIDogeyAnZWxsaXBzaXMtaXRlbSc6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuX3N0YXR1cyA9PT0gU3RlcFN0YXR1c0VudW0uRVJST1IgJiYgaW5kZXggPT09IHRoaXMuX2N1cnJlbnQpIHx8XG4gICAgICAgICAgc3RlcC5zdGF0dXMgPT09IFN0ZXBTdGF0dXNFbnVtLkVSUk9SXG4gICAgICAgICkge1xuICAgICAgICAgIGljb24gPSAnY3Jvc3MtY2lyY2xlLW8nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdGVwLmljb24gPSBpY29uO1xuICAgICAgc3RlcC5pY29uU2l6ZSA9IHRoaXMuX3NpemUgPT09ICdzbWFsbCcgPyAodGhpcy5fc3RhdHVzID09PSBTdGVwU3RhdHVzRW51bS5XQUlUID8gJ3h4cycgOiAneHMnKSA6ICdtZCc7XG4gICAgICBzdGVwLnNldENsYXNzKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2xzKCkge1xuICAgIGlmICh0aGlzLl9kaXJlY3Rpb24gPT09IFN0ZXBEaXJlY3Rpb25FbnVtLkhPUklaT05UQUwpIHtcbiAgICAgIHRoaXMuY2xzU3RlcHNMYWJlbFZ0bCA9IHRydWU7XG4gICAgICB0aGlzLmNsc1N0ZXBzSHp0bCA9IHRydWU7XG4gICAgICB0aGlzLmNsc1N0ZXBzVnRsID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9kaXJlY3Rpb24gPT09IFN0ZXBEaXJlY3Rpb25FbnVtLlZFUlRJQ0FMKSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzVnRsID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xzU3RlcHNIenRsID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaXplID09PSAnc21hbGwnKSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzU21hbGwgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzU21hbGwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGVwU3R5bGUoKTtcbiAgICB9LCAwKTtcbiAgfVxufVxuIl19