ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
222 lines (221 loc) • 16.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input, ContentChildren, QueryList, HostBinding, Renderer2, ElementRef } from '@angular/core';
import { StatusEnum, DirectionEnum } from './step/step.component';
import { Step } from './step/step.component';
var Steps = /** @class */ (function () {
function Steps(_elf, _render) {
this._elf = _elf;
this._render = _render;
this.prefixCls = 'am-steps';
this._current = 0;
this._status = StatusEnum.PROCESS;
this._direction = DirectionEnum.VERTICAL;
this.clsSteps = true;
}
Object.defineProperty(Steps.prototype, "current", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value >= 0) {
this._current = value;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(Steps.prototype, "size", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._size = value;
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(Steps.prototype, "status", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._status = value;
if (this.stepItems) {
this.setStepStyle();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(Steps.prototype, "direction", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._direction = value;
this.setCls();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
Steps.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 === StatusEnum.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 = StatusEnum.FINISH;
}
else {
step.status = StatusEnum.WAIT;
}
}
if (!icon) {
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 === StatusEnum.ERROR && index === this._current) || step.status === StatusEnum.ERROR) {
icon = 'cross-circle-o';
}
}
step.icon = icon;
step.iconSize = this._size === 'small' ? (this._status === StatusEnum.WAIT ? 'xxs' : 'xs') : 'md';
step.setClass();
}
};
/**
* @return {?}
*/
Steps.prototype.setCls = /**
* @return {?}
*/
function () {
if (this._direction === DirectionEnum.HORIZONTAL) {
this.clsStepsLabelVtl = true;
this.clsStepsHztl = true;
this.clsStepsVtl = false;
}
else if (this._direction === DirectionEnum.VERTICAL) {
this.clsStepsVtl = true;
this.clsStepsHztl = false;
}
if (this._size === 'small') {
this.clsStepsSmall = true;
}
else {
this.clsStepsSmall = false;
}
};
/**
* @return {?}
*/
Steps.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setCls();
};
/**
* @return {?}
*/
Steps.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
setTimeout(function () {
_this.setStepStyle();
}, 0);
};
Steps.decorators = [
{ type: Component, args: [{
selector: 'Steps,nzm-steps',
template: "<ng-content></ng-content>"
}] }
];
/** @nocollapse */
Steps.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
Steps.propDecorators = {
stepItems: [{ type: ContentChildren, args: [Step,] }],
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 Steps;
}());
export { Steps };
if (false) {
/** @type {?} */
Steps.prototype.prefixCls;
/** @type {?} */
Steps.prototype._current;
/** @type {?} */
Steps.prototype._size;
/** @type {?} */
Steps.prototype._status;
/** @type {?} */
Steps.prototype._direction;
/** @type {?} */
Steps.prototype._stepsCls;
/** @type {?} */
Steps.prototype.stepItems;
/** @type {?} */
Steps.prototype.clsSteps;
/** @type {?} */
Steps.prototype.clsStepsSmall;
/** @type {?} */
Steps.prototype.clsStepsLabelVtl;
/** @type {?} */
Steps.prototype.clsStepsVtl;
/** @type {?} */
Steps.prototype.clsStepsHztl;
/** @type {?} */
Steps.prototype._elf;
/** @type {?} */
Steps.prototype._render;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJzdGVwcy9zdGVwcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0lBcUQzQyxlQUFvQixJQUFnQixFQUFVLE9BQWtCO1FBQTVDLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFXO3lCQTlDNUMsVUFBVTt3QkFFSCxDQUFDO3VCQUVFLFVBQVUsQ0FBQyxPQUFPOzBCQUNaLGFBQWEsQ0FBQyxRQUFRO3dCQStCdEMsSUFBSTtLQVU0QztJQW5DcEUsc0JBQ0ksMEJBQU87Ozs7O1FBRFgsVUFDWSxLQUFLO1lBQ2YsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO1NBQ0Y7OztPQUFBO0lBQ0Qsc0JBQ0ksdUJBQUk7Ozs7O1FBRFIsVUFDUyxLQUFLO1lBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7OztPQUFBO0lBQ0Qsc0JBQ0kseUJBQU07Ozs7O1FBRFYsVUFDVyxLQUFpQjtZQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtTQUNGOzs7T0FB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QkE5RDFDOztTQWtCYSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgSG9zdEJpbmRpbmcsXG4gIFJlbmRlcmVyMixcbiAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXR1c0VudW0sIERpcmVjdGlvbkVudW0gfSBmcm9tICcuL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1N0ZXBzLG56bS1zdGVwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHMgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBwcmVmaXhDbHM6IHN0cmluZyA9ICdhbS1zdGVwcyc7XG5cbiAgcHJpdmF0ZSBfY3VycmVudDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nO1xuICBwcml2YXRlIF9zdGF0dXM6IFN0YXR1c0VudW0gPSBTdGF0dXNFbnVtLlBST0NFU1M7XG4gIHByaXZhdGUgX2RpcmVjdGlvbjogRGlyZWN0aW9uRW51bSA9IERpcmVjdGlvbkVudW0uVkVSVElDQUw7XG4gIHByaXZhdGUgX3N0ZXBzQ2xzOiBvYmplY3Q7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTdGVwKVxuICBzdGVwSXRlbXM6IFF1ZXJ5TGlzdDxTdGVwPjtcblxuICBASW5wdXQoKVxuICBzZXQgY3VycmVudCh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA+PSAwKSB7XG4gICAgICB0aGlzLl9jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzaXplKHZhbHVlKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHN0YXR1cyh2YWx1ZTogU3RhdHVzRW51bSkge1xuICAgIHRoaXMuX3N0YXR1cyA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnN0ZXBJdGVtcykge1xuICAgICAgdGhpcy5zZXRTdGVwU3R5bGUoKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGRpcmVjdGlvbih2YWx1ZTogRGlyZWN0aW9uRW51bSkge1xuICAgIHRoaXMuX2RpcmVjdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLXN0ZXBzJylcbiAgY2xzU3RlcHM6IGJvb2xlYW4gPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLXN0ZXBzLXNtYWxsJylcbiAgY2xzU3RlcHNTbWFsbDogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zdGVwcy1sYWJlbC12ZXJ0aWNhbCcpXG4gIGNsc1N0ZXBzTGFiZWxWdGw6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tc3RlcHMtdmVydGljYWwnKVxuICBjbHNTdGVwc1Z0bDogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zdGVwcy1ob3Jpem9udGFsJylcbiAgY2xzU3RlcHNIenRsOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgc2V0U3RlcFN0eWxlKCkge1xuICAgIGNvbnN0IGl0ZW1Db3VudCA9IHRoaXMuc3RlcEl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBpdGVtQXJyID0gdGhpcy5zdGVwSXRlbXNbJ19yZXN1bHRzJ107XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW1Db3VudDsgaW5kZXgrKykge1xuICAgICAgY29uc3Qgc3RlcCA9IGl0ZW1BcnJbaW5kZXhdO1xuICAgICAgc3RlcC5zdGVwTnVtYmVyID0gaW5kZXggKyAxO1xuICAgICAgaWYgKGluZGV4IDwgaXRlbUNvdW50IC0gMSAmJiBpdGVtQXJyW2luZGV4ICsgMV0uc3RhdHVzID09PSBTdGF0dXNFbnVtLkVSUk9SKSB7XG4gICAgICAgIHN0ZXAuc3RlcEl0ZW1DbHMgPSBzdGVwLnN0ZXBJdGVtQ2xzXG4gICAgICAgICAgPyBPYmplY3QuYXNzaWduKHN0ZXAuc3RlcEl0ZW1DbHMsIHsgJ2Vycm9yLXRhaWwnOiB0cnVlIH0pXG4gICAgICAgICAgOiB7ICdlcnJvci10YWlsJzogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgbGV0IGljb24gPSBzdGVwLmljb247XG4gICAgICBpZiAoIXN0ZXAuc3RhdHVzKSB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5fY3VycmVudCkge1xuICAgICAgICAgIHN0ZXAuc3RhdHVzID0gdGhpcy5fc3RhdHVzO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4IDwgdGhpcy5fY3VycmVudCkge1xuICAgICAgICAgIHN0ZXAuc3RhdHVzID0gU3RhdHVzRW51bS5GSU5JU0g7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RlcC5zdGF0dXMgPSBTdGF0dXNFbnVtLldBSVQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaWNvbikge1xuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLl9jdXJyZW50KSB7XG4gICAgICAgICAgaWNvbiA9ICdjaGVjay1jaXJjbGUtbyc7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPiB0aGlzLl9jdXJyZW50KSB7XG4gICAgICAgICAgaWNvbiA9ICdlbGxpcHNpcyc7XG4gICAgICAgICAgc3RlcC5zdGVwSXRlbUNscyA9IHN0ZXAuc3RlcEl0ZW1DbHNcbiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihzdGVwLnN0ZXBJdGVtQ2xzLCB7ICdlbGxpcHNpcy1pdGVtJzogdHJ1ZSB9KVxuICAgICAgICAgICAgOiB7ICdlbGxpcHNpcy1pdGVtJzogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICgodGhpcy5fc3RhdHVzID09PSBTdGF0dXNFbnVtLkVSUk9SICYmIGluZGV4ID09PSB0aGlzLl9jdXJyZW50KSB8fCBzdGVwLnN0YXR1cyA9PT0gU3RhdHVzRW51bS5FUlJPUikge1xuICAgICAgICAgIGljb24gPSAnY3Jvc3MtY2lyY2xlLW8nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdGVwLmljb24gPSBpY29uO1xuICAgICAgc3RlcC5pY29uU2l6ZSA9IHRoaXMuX3NpemUgPT09ICdzbWFsbCcgPyAodGhpcy5fc3RhdHVzID09PSBTdGF0dXNFbnVtLldBSVQgPyAneHhzJyA6ICd4cycpIDogJ21kJztcbiAgICAgIHN0ZXAuc2V0Q2xhc3MoKTtcbiAgICB9XG4gIH1cblxuICBzZXRDbHMoKSB7XG4gICAgaWYgKHRoaXMuX2RpcmVjdGlvbiA9PT0gRGlyZWN0aW9uRW51bS5IT1JJWk9OVEFMKSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzTGFiZWxWdGwgPSB0cnVlO1xuICAgICAgdGhpcy5jbHNTdGVwc0h6dGwgPSB0cnVlO1xuICAgICAgdGhpcy5jbHNTdGVwc1Z0bCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fZGlyZWN0aW9uID09PSBEaXJlY3Rpb25FbnVtLlZFUlRJQ0FMKSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzVnRsID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xzU3RlcHNIenRsID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaXplID09PSAnc21hbGwnKSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzU21hbGwgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsc1N0ZXBzU21hbGwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGVwU3R5bGUoKTtcbiAgICB9LCAwKTtcbiAgfVxufVxuIl19