ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
195 lines (194 loc) • 15.3 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';
export class Steps {
/**
* @param {?} _elf
* @param {?} _render
*/
constructor(_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;
}
/**
* @param {?} value
* @return {?}
*/
set current(value) {
if (value >= 0) {
this._current = value;
}
}
/**
* @param {?} value
* @return {?}
*/
set size(value) {
this._size = value;
this.setCls();
}
/**
* @param {?} value
* @return {?}
*/
set status(value) {
this._status = value;
if (this.stepItems) {
this.setStepStyle();
}
}
/**
* @param {?} value
* @return {?}
*/
set direction(value) {
this._direction = value;
this.setCls();
}
/**
* @return {?}
*/
setStepStyle() {
/** @type {?} */
const itemCount = this.stepItems.length;
/** @type {?} */
const itemArr = this.stepItems['_results'];
for (let index = 0; index < itemCount; index++) {
/** @type {?} */
const 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 {?} */
let 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 {?}
*/
setCls() {
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 {?}
*/
ngOnInit() {
this.setCls();
}
/**
* @return {?}
*/
ngAfterContentInit() {
setTimeout(() => {
this.setStepStyle();
}, 0);
}
}
Steps.decorators = [
{ type: Component, args: [{
selector: 'Steps,nzm-steps',
template: "<ng-content></ng-content>"
}] }
];
/** @nocollapse */
Steps.ctorParameters = () => [
{ 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',] }]
};
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJzdGVwcy9zdGVwcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNN0MsTUFBTTs7Ozs7SUErQ0osWUFBb0IsSUFBZ0IsRUFBVSxPQUFrQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBVzt5QkE5QzVDLFVBQVU7d0JBRUgsQ0FBQzt1QkFFRSxVQUFVLENBQUMsT0FBTzswQkFDWixhQUFhLENBQUMsUUFBUTt3QkErQnRDLElBQUk7S0FVNEM7Ozs7O0lBbkNwRSxJQUNJLE9BQU8sQ0FBQyxLQUFLO1FBQ2YsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7S0FDRjs7Ozs7SUFDRCxJQUNJLElBQUksQ0FBQyxLQUFLO1FBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ2Y7Ozs7O0lBQ0QsSUFDSSxNQUFNLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtLQUNGOzs7OztJQUNELElBQ0ksU0FBUyxDQUFDLEtBQW9C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QUFhLENBQUMsVUFBVSxFQUFFO1lBQ2hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDMUI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzVCO0tBQ0Y7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ2Y7Ozs7SUFFRCxrQkFBa0I7UUFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQixFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ1A7OztZQXJIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IscUNBQXFDO2FBQ3RDOzs7O1lBUkMsVUFBVTtZQURWLFNBQVM7Ozt3QkFtQlIsZUFBZSxTQUFDLElBQUk7c0JBR3BCLEtBQUs7bUJBTUwsS0FBSztxQkFLTCxLQUFLO3dCQU9MLEtBQUs7dUJBTUwsV0FBVyxTQUFDLGdCQUFnQjs0QkFFNUIsV0FBVyxTQUFDLHNCQUFzQjsrQkFFbEMsV0FBVyxTQUFDLCtCQUErQjswQkFFM0MsV0FBVyxTQUFDLHlCQUF5QjsyQkFFckMsV0FBVyxTQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEhvc3RCaW5kaW5nLFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtLCBEaXJlY3Rpb25FbnVtIH0gZnJvbSAnLi9zdGVwL3N0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXAgfSBmcm9tICcuL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdTdGVwcyxuem0tc3RlcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBzIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJlZml4Q2xzOiBzdHJpbmcgPSAnYW0tc3RlcHMnO1xuXG4gIHByaXZhdGUgX2N1cnJlbnQ6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX3NpemU6IHN0cmluZztcbiAgcHJpdmF0ZSBfc3RhdHVzOiBTdGF0dXNFbnVtID0gU3RhdHVzRW51bS5QUk9DRVNTO1xuICBwcml2YXRlIF9kaXJlY3Rpb246IERpcmVjdGlvbkVudW0gPSBEaXJlY3Rpb25FbnVtLlZFUlRJQ0FMO1xuICBwcml2YXRlIF9zdGVwc0Nsczogb2JqZWN0O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU3RlcClcbiAgc3RlcEl0ZW1zOiBRdWVyeUxpc3Q8U3RlcD47XG5cbiAgQElucHV0KClcbiAgc2V0IGN1cnJlbnQodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPj0gMCkge1xuICAgICAgdGhpcy5fY3VycmVudCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBzZXQgc2l6ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzdGF0dXModmFsdWU6IFN0YXR1c0VudW0pIHtcbiAgICB0aGlzLl9zdGF0dXMgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5zdGVwSXRlbXMpIHtcbiAgICAgIHRoaXMuc2V0U3RlcFN0eWxlKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBkaXJlY3Rpb24odmFsdWU6IERpcmVjdGlvbkVudW0pIHtcbiAgICB0aGlzLl9kaXJlY3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zdGVwcycpXG4gIGNsc1N0ZXBzOiBib29sZWFuID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zdGVwcy1zbWFsbCcpXG4gIGNsc1N0ZXBzU21hbGw6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tc3RlcHMtbGFiZWwtdmVydGljYWwnKVxuICBjbHNTdGVwc0xhYmVsVnRsOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLXN0ZXBzLXZlcnRpY2FsJylcbiAgY2xzU3RlcHNWdGw6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tc3RlcHMtaG9yaXpvbnRhbCcpXG4gIGNsc1N0ZXBzSHp0bDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JlbmRlcjogUmVuZGVyZXIyKSB7fVxuXG4gIHNldFN0ZXBTdHlsZSgpIHtcbiAgICBjb25zdCBpdGVtQ291bnQgPSB0aGlzLnN0ZXBJdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgaXRlbUFyciA9IHRoaXMuc3RlcEl0ZW1zWydfcmVzdWx0cyddO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtQ291bnQ7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBpdGVtQXJyW2luZGV4XTtcbiAgICAgIHN0ZXAuc3RlcE51bWJlciA9IGluZGV4ICsgMTtcbiAgICAgIGlmIChpbmRleCA8IGl0ZW1Db3VudCAtIDEgJiYgaXRlbUFycltpbmRleCArIDFdLnN0YXR1cyA9PT0gU3RhdHVzRW51bS5FUlJPUikge1xuICAgICAgICBzdGVwLnN0ZXBJdGVtQ2xzID0gc3RlcC5zdGVwSXRlbUNsc1xuICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihzdGVwLnN0ZXBJdGVtQ2xzLCB7ICdlcnJvci10YWlsJzogdHJ1ZSB9KVxuICAgICAgICAgIDogeyAnZXJyb3ItdGFpbCc6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIGxldCBpY29uID0gc3RlcC5pY29uO1xuICAgICAgaWYgKCFzdGVwLnN0YXR1cykge1xuICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuX2N1cnJlbnQpIHtcbiAgICAgICAgICBzdGVwLnN0YXR1cyA9IHRoaXMuX3N0YXR1cztcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA8IHRoaXMuX2N1cnJlbnQpIHtcbiAgICAgICAgICBzdGVwLnN0YXR1cyA9IFN0YXR1c0VudW0uRklOSVNIO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0ZXAuc3RhdHVzID0gU3RhdHVzRW51bS5XQUlUO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWljb24pIHtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5fY3VycmVudCkge1xuICAgICAgICAgIGljb24gPSAnY2hlY2stY2lyY2xlLW8nO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID4gdGhpcy5fY3VycmVudCkge1xuICAgICAgICAgIGljb24gPSAnZWxsaXBzaXMnO1xuICAgICAgICAgIHN0ZXAuc3RlcEl0ZW1DbHMgPSBzdGVwLnN0ZXBJdGVtQ2xzXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oc3RlcC5zdGVwSXRlbUNscywgeyAnZWxsaXBzaXMtaXRlbSc6IHRydWUgfSlcbiAgICAgICAgICAgIDogeyAnZWxsaXBzaXMtaXRlbSc6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHRoaXMuX3N0YXR1cyA9PT0gU3RhdHVzRW51bS5FUlJPUiAmJiBpbmRleCA9PT0gdGhpcy5fY3VycmVudCkgfHwgc3RlcC5zdGF0dXMgPT09IFN0YXR1c0VudW0uRVJST1IpIHtcbiAgICAgICAgICBpY29uID0gJ2Nyb3NzLWNpcmNsZS1vJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RlcC5pY29uID0gaWNvbjtcbiAgICAgIHN0ZXAuaWNvblNpemUgPSB0aGlzLl9zaXplID09PSAnc21hbGwnID8gKHRoaXMuX3N0YXR1cyA9PT0gU3RhdHVzRW51bS5XQUlUID8gJ3h4cycgOiAneHMnKSA6ICdtZCc7XG4gICAgICBzdGVwLnNldENsYXNzKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2xzKCkge1xuICAgIGlmICh0aGlzLl9kaXJlY3Rpb24gPT09IERpcmVjdGlvbkVudW0uSE9SSVpPTlRBTCkge1xuICAgICAgdGhpcy5jbHNTdGVwc0xhYmVsVnRsID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xzU3RlcHNIenRsID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xzU3RlcHNWdGwgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2RpcmVjdGlvbiA9PT0gRGlyZWN0aW9uRW51bS5WRVJUSUNBTCkge1xuICAgICAgdGhpcy5jbHNTdGVwc1Z0bCA9IHRydWU7XG4gICAgICB0aGlzLmNsc1N0ZXBzSHp0bCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2l6ZSA9PT0gJ3NtYWxsJykge1xuICAgICAgdGhpcy5jbHNTdGVwc1NtYWxsID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbHNTdGVwc1NtYWxsID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RlcFN0eWxlKCk7XG4gICAgfSwgMCk7XG4gIH1cbn1cbiJdfQ==