ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 22.7 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-steps.mjs","sources":["../../components/steps/step.component.ts","../../components/steps/steps.component.ts","../../components/steps/steps.module.ts","../../components/steps/public-api.ts","../../components/steps/ng-zorro-antd-steps.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput, NgClassType } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport { NzProgressFormatter } from 'ng-zorro-antd/progress';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'nz-step',\n exportAs: 'nzStep',\n preserveWhitespaces: false,\n template: `\n <div\n #itemContainer\n class=\"ant-steps-item-container\"\n [attr.role]=\"clickable && !nzDisabled ? 'button' : null\"\n [tabindex]=\"clickable && !nzDisabled ? 0 : null\"\n >\n <div class=\"ant-steps-item-tail\" *ngIf=\"last !== true\"></div>\n <div class=\"ant-steps-item-icon\">\n <ng-template [ngIf]=\"!showProcessDot\">\n <div *ngIf=\"showProgress\" class=\"ant-steps-progress-icon\">\n <nz-progress\n [nzPercent]=\"nzPercentage\"\n nzType=\"circle\"\n [nzWidth]=\"40\"\n [nzFormat]=\"nullProcessFormat\"\n [nzStrokeWidth]=\"4\"\n ></nz-progress>\n </div>\n <span class=\"ant-steps-icon\" *ngIf=\"nzStatus === 'finish' && !nzIcon\"><i nz-icon nzType=\"check\"></i></span>\n <span class=\"ant-steps-icon\" *ngIf=\"nzStatus === 'error'\"><i nz-icon nzType=\"close\"></i></span>\n <span class=\"ant-steps-icon\" *ngIf=\"(nzStatus === 'process' || nzStatus === 'wait') && !nzIcon\">\n {{ index + 1 }}\n </span>\n <span class=\"ant-steps-icon\" *ngIf=\"nzIcon\">\n <ng-container *nzStringTemplateOutlet=\"nzIcon; let icon\">\n <i nz-icon [nzType]=\"!oldAPIIcon && icon\" [ngClass]=\"oldAPIIcon && icon\"></i>\n </ng-container>\n </span>\n </ng-template>\n <ng-template [ngIf]=\"showProcessDot\">\n <span class=\"ant-steps-icon\">\n <ng-template #processDotTemplate>\n <span class=\"ant-steps-icon-dot\"></span>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"customProcessTemplate || processDotTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: processDotTemplate,\n status: nzStatus,\n index: index\n }\"\n ></ng-template>\n </span>\n </ng-template>\n </div>\n <div class=\"ant-steps-item-content\">\n <div class=\"ant-steps-item-title\">\n <ng-container *nzStringTemplateOutlet=\"nzTitle\">{{ nzTitle }}</ng-container>\n <div *ngIf=\"nzSubtitle\" class=\"ant-steps-item-subtitle\">\n <ng-container *nzStringTemplateOutlet=\"nzSubtitle\">{{ nzSubtitle }}</ng-container>\n </div>\n </div>\n <div class=\"ant-steps-item-description\">\n <ng-container *nzStringTemplateOutlet=\"nzDescription\">{{ nzDescription }}</ng-container>\n </div>\n </div>\n </div>\n `,\n host: {\n class: 'ant-steps-item',\n '[class.ant-steps-item-wait]': 'nzStatus === \"wait\"',\n '[class.ant-steps-item-process]': 'nzStatus === \"process\"',\n '[class.ant-steps-item-finish]': 'nzStatus === \"finish\"',\n '[class.ant-steps-item-error]': 'nzStatus === \"error\"',\n '[class.ant-steps-item-active]': 'currentIndex === index',\n '[class.ant-steps-item-disabled]': 'nzDisabled',\n '[class.ant-steps-item-custom]': '!!nzIcon',\n '[class.ant-steps-next-error]': '(outStatus === \"error\") && (currentIndex === index + 1)'\n },\n providers: [NzDestroyService]\n})\nexport class NzStepComponent implements OnInit {\n static ngAcceptInputType_nzDisabled: BooleanInput;\n\n @ViewChild('processDotTemplate', { static: false }) processDotTemplate?: TemplateRef<void>;\n @ViewChild('itemContainer', { static: true }) itemContainer!: ElementRef<HTMLElement>;\n\n @Input() nzTitle?: string | TemplateRef<void>;\n @Input() nzSubtitle?: string | TemplateRef<void>;\n @Input() nzDescription?: string | TemplateRef<void>;\n @Input() @InputBoolean() nzDisabled = false;\n @Input() nzPercentage: number | null = null;\n\n @Input()\n get nzStatus(): string {\n return this._status;\n }\n\n set nzStatus(status: string) {\n this._status = status;\n this.isCustomStatus = true;\n }\n\n isCustomStatus = false;\n private _status = 'wait';\n\n @Input()\n get nzIcon(): NgClassType | TemplateRef<void> | undefined {\n return this._icon;\n }\n\n set nzIcon(value: NgClassType | TemplateRef<void> | undefined) {\n if (!(value instanceof TemplateRef)) {\n this.oldAPIIcon = typeof value === 'string' && value.indexOf('anticon') > -1;\n } else {\n }\n this._icon = value;\n }\n\n oldAPIIcon = true;\n private _icon?: NgClassType | TemplateRef<void>;\n\n customProcessTemplate?: TemplateRef<{ $implicit: TemplateRef<void>; status: string; index: number }>; // Set by parent.\n direction = 'horizontal';\n index = 0;\n last = false;\n outStatus = 'process';\n showProcessDot = false;\n clickable = false;\n\n clickOutsideAngular$ = new Subject<number>();\n\n readonly nullProcessFormat: NzProgressFormatter = () => null;\n\n get showProgress(): boolean {\n return (\n this.nzPercentage !== null &&\n !this.nzIcon &&\n this.nzStatus === 'process' &&\n this.nzPercentage >= 0 &&\n this.nzPercentage <= 100\n );\n }\n\n get currentIndex(): number {\n return this._currentIndex;\n }\n\n set currentIndex(current: number) {\n this._currentIndex = current;\n if (!this.isCustomStatus) {\n this._status = current > this.index ? 'finish' : current === this.index ? this.outStatus || '' : 'wait';\n }\n }\n\n private _currentIndex = 0;\n\n constructor(private cdr: ChangeDetectorRef, private ngZone: NgZone, private destroy$: NzDestroyService) {}\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.itemContainer.nativeElement, 'click')\n .pipe(\n filter(() => this.clickable && this.currentIndex !== this.index && !this.nzDisabled),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.clickOutsideAngular$.next(this.index);\n })\n );\n }\n\n enable(): void {\n this.nzDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.nzDisabled = true;\n this.cdr.markForCheck();\n }\n\n markForCheck(): void {\n this.cdr.markForCheck();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { merge, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput, NgClassType, NzSizeDSType } from 'ng-zorro-antd/core/types';\nimport { toBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzStepComponent } from './step.component';\n\nexport type NzDirectionType = 'horizontal' | 'vertical';\nexport type NzStatusType = 'wait' | 'process' | 'finish' | 'error';\nexport type nzProgressDotTemplate = TemplateRef<{ $implicit: TemplateRef<void>; status: string; index: number }>;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n selector: 'nz-steps',\n exportAs: 'nzSteps',\n template: `\n <div class=\"ant-steps\" [ngClass]=\"classMap\">\n <ng-content></ng-content>\n </div>\n `,\n providers: [NzDestroyService]\n})\nexport class NzStepsComponent implements OnChanges, OnInit, AfterContentInit {\n static ngAcceptInputType_nzProgressDot: BooleanInput | nzProgressDotTemplate | undefined | null;\n\n @ContentChildren(NzStepComponent) steps!: QueryList<NzStepComponent>;\n\n @Input() nzCurrent = 0;\n @Input() nzDirection: NzDirectionType = 'horizontal';\n @Input() nzLabelPlacement: 'horizontal' | 'vertical' = 'horizontal';\n @Input() nzType: 'default' | 'navigation' = 'default';\n @Input() nzSize: NzSizeDSType = 'default';\n @Input() nzStartIndex = 0;\n @Input() nzStatus: NzStatusType = 'process';\n\n @Input()\n set nzProgressDot(value: boolean | nzProgressDotTemplate) {\n if (value instanceof TemplateRef) {\n this.showProcessDot = true;\n this.customProcessDotTemplate = value;\n } else {\n this.showProcessDot = toBoolean(value);\n }\n this.updateChildrenSteps();\n }\n\n @Output() readonly nzIndexChange = new EventEmitter<number>();\n\n private indexChangeSubscription = Subscription.EMPTY;\n\n showProcessDot = false;\n customProcessDotTemplate?: TemplateRef<{ $implicit: TemplateRef<void>; status: string; index: number }>;\n classMap: NgClassType = {};\n dir: Direction = 'ltr';\n\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n @Optional() private directionality: Directionality,\n private destroy$: NzDestroyService\n ) {\n this.setClassMap();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.nzStartIndex || changes.nzDirection || changes.nzStatus || changes.nzCurrent) {\n this.updateChildrenSteps();\n }\n if (changes.nzDirection || changes.nzProgressDot || changes.nzLabelPlacement || changes.nzSize) {\n this.setClassMap();\n }\n }\n\n ngOnInit(): void {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n this.setClassMap();\n this.cdr.detectChanges();\n });\n\n this.dir = this.directionality.value;\n this.setClassMap();\n this.updateChildrenSteps();\n }\n\n ngAfterContentInit(): void {\n if (this.steps) {\n this.steps.changes.pipe(startWith(null), takeUntil(this.destroy$)).subscribe(() => {\n this.updateHostProgressClass();\n this.updateChildrenSteps();\n });\n }\n }\n\n private updateHostProgressClass(): void {\n if (this.steps && !this.showProcessDot) {\n const hasPercent = !!this.steps.toArray().find(step => step.nzPercentage !== null);\n const className = 'ant-steps-with-progress';\n const hasClass = this.elementRef.nativeElement.classList.contains(className);\n if (hasPercent && !hasClass) {\n this.renderer.addClass(this.elementRef.nativeElement, className);\n } else if (!hasPercent && hasClass) {\n this.renderer.removeClass(this.elementRef.nativeElement, className);\n }\n }\n }\n\n private updateChildrenSteps(): void {\n if (this.steps) {\n const length = this.steps.length;\n this.steps.toArray().forEach((step, index) => {\n Promise.resolve().then(() => {\n step.outStatus = this.nzStatus;\n step.showProcessDot = this.showProcessDot;\n if (this.customProcessDotTemplate) {\n step.customProcessTemplate = this.customProcessDotTemplate;\n }\n step.clickable = this.nzIndexChange.observers.length > 0;\n step.direction = this.nzDirection;\n step.index = index + this.nzStartIndex;\n step.currentIndex = this.nzCurrent;\n step.last = length === index + 1;\n step.markForCheck();\n });\n });\n this.indexChangeSubscription.unsubscribe();\n this.indexChangeSubscription = merge(...this.steps.map(step => step.clickOutsideAngular$))\n .pipe(takeUntil(this.destroy$))\n .subscribe(index => {\n if (this.nzIndexChange.observers.length) {\n this.ngZone.run(() => this.nzIndexChange.emit(index));\n }\n });\n }\n }\n\n private setClassMap(): void {\n this.classMap = {\n [`ant-steps-${this.nzDirection}`]: true,\n [`ant-steps-label-horizontal`]: this.nzDirection === 'horizontal',\n [`ant-steps-label-vertical`]:\n (this.showProcessDot || this.nzLabelPlacement === 'vertical') && this.nzDirection === 'horizontal',\n [`ant-steps-dot`]: this.showProcessDot,\n ['ant-steps-small']: this.nzSize === 'small',\n ['ant-steps-navigation']: this.nzType === 'navigation',\n ['ant-steps-rtl']: this.dir === 'rtl'\n };\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\n\nimport { NzStepComponent } from './step.component';\nimport { NzStepsComponent } from './steps.component';\n\n@NgModule({\n imports: [BidiModule, CommonModule, NzIconModule, NzOutletModule, NzProgressModule],\n exports: [NzStepsComponent, NzStepComponent],\n declarations: [NzStepsComponent, NzStepComponent]\n})\nexport class NzStepsModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './steps.component';\nexport * from './step.component';\nexport * from './steps.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}