ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
256 lines • 18.9 kB
JavaScript
/**
* @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