UNPKG

ng-zorro-antd

Version:

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

195 lines (189 loc) 9.09 kB
import { __esDecorate, __runInitializers } from 'tslib'; import { Directionality } from '@angular/cdk/bidi'; import { NgTemplateOutlet } from '@angular/common'; import * as i0 from '@angular/core'; import { inject, ChangeDetectorRef, DestroyRef, signal, booleanAttribute, numberAttribute, Input, ViewEncapsulation, Component, NgModule } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { BehaviorSubject, ReplaySubject, of, Observable } from 'rxjs'; import { startWith, distinctUntilChanged, switchMap } from 'rxjs/operators'; import { WithConfig, onConfigChangeEventForComponent } from 'ng-zorro-antd/core/config'; const NZ_CONFIG_MODULE_NAME = 'spin'; let NzSpinComponent = (() => { let _nzIndicator_decorators; let _nzIndicator_initializers = []; let _nzIndicator_extraInitializers = []; return class NzSpinComponent { static { const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; _nzIndicator_decorators = [WithConfig()]; __esDecorate(null, null, _nzIndicator_decorators, { kind: "field", name: "nzIndicator", static: false, private: false, access: { has: obj => "nzIndicator" in obj, get: obj => obj.nzIndicator, set: (obj, value) => { obj.nzIndicator = value; } }, metadata: _metadata }, _nzIndicator_initializers, _nzIndicator_extraInitializers); if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); } _nzModuleName = NZ_CONFIG_MODULE_NAME; cdr = inject(ChangeDetectorRef); directionality = inject(Directionality); destroyRef = inject(DestroyRef); nzIndicator = __runInitializers(this, _nzIndicator_initializers, null); nzSize = (__runInitializers(this, _nzIndicator_extraInitializers), 'default'); nzTip = null; nzDelay = 0; nzSimple = false; nzSpinning = true; spinning$ = new BehaviorSubject(this.nzSpinning); delay$ = new ReplaySubject(1); isLoading = signal(false); dir = 'ltr'; constructor() { onConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME, () => this.cdr.markForCheck()); } ngOnInit() { this.delay$ .pipe(startWith(this.nzDelay), distinctUntilChanged(), switchMap(delay => // This construct is used to reduce RxJS dependencies. // It previously used `debounce(() => timer())`, but consumers may not // use these RxJS functions at all, causing them to still be bundled // into the main bundle unnecessarily. this.spinning$.pipe(switchMap(spinning => { if (delay === 0 || !spinning) { return of(spinning); } return new Observable(subscriber => { const timeoutId = setTimeout(() => subscriber.next(spinning), delay); return () => clearTimeout(timeoutId); }); }))), takeUntilDestroyed(this.destroyRef)) .subscribe(isLoading => { this.isLoading.set(isLoading); }); this.directionality.change?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(direction => { this.dir = direction; this.cdr.detectChanges(); }); this.dir = this.directionality.value; } ngOnChanges(changes) { const { nzSpinning, nzDelay } = changes; if (nzSpinning) { this.spinning$.next(this.nzSpinning); } if (nzDelay) { this.delay$.next(this.nzDelay); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: NzSpinComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: NzSpinComponent, isStandalone: true, selector: "nz-spin", inputs: { nzIndicator: "nzIndicator", nzSize: "nzSize", nzTip: "nzTip", nzDelay: ["nzDelay", "nzDelay", numberAttribute], nzSimple: ["nzSimple", "nzSimple", booleanAttribute], nzSpinning: ["nzSpinning", "nzSpinning", booleanAttribute] }, host: { properties: { "class.ant-spin-nested-loading": "!nzSimple" } }, exportAs: ["nzSpin"], usesOnChanges: true, ngImport: i0, template: ` <ng-template #defaultTemplate> <span class="ant-spin-dot ant-spin-dot-spin"> <i class="ant-spin-dot-item"></i> <i class="ant-spin-dot-item"></i> <i class="ant-spin-dot-item"></i> <i class="ant-spin-dot-item"></i> </span> </ng-template> @if (isLoading()) { <div> <div class="ant-spin ant-spin-spinning" [class.ant-spin-rtl]="dir === 'rtl'" [class.ant-spin-lg]="nzSize === 'large'" [class.ant-spin-sm]="nzSize === 'small'" [class.ant-spin-show-text]="nzTip" > <ng-template [ngTemplateOutlet]="nzIndicator || defaultTemplate"></ng-template> @if (nzTip) { <div class="ant-spin-text">{{ nzTip }}</div> } </div> </div> } @if (!nzSimple) { <div class="ant-spin-container" [class.ant-spin-blur]="isLoading()"> <ng-content></ng-content> </div> } `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }; })(); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: NzSpinComponent, decorators: [{ type: Component, args: [{ selector: 'nz-spin', exportAs: 'nzSpin', encapsulation: ViewEncapsulation.None, template: ` <ng-template #defaultTemplate> <span class="ant-spin-dot ant-spin-dot-spin"> <i class="ant-spin-dot-item"></i> <i class="ant-spin-dot-item"></i> <i class="ant-spin-dot-item"></i> <i class="ant-spin-dot-item"></i> </span> </ng-template> @if (isLoading()) { <div> <div class="ant-spin ant-spin-spinning" [class.ant-spin-rtl]="dir === 'rtl'" [class.ant-spin-lg]="nzSize === 'large'" [class.ant-spin-sm]="nzSize === 'small'" [class.ant-spin-show-text]="nzTip" > <ng-template [ngTemplateOutlet]="nzIndicator || defaultTemplate"></ng-template> @if (nzTip) { <div class="ant-spin-text">{{ nzTip }}</div> } </div> </div> } @if (!nzSimple) { <div class="ant-spin-container" [class.ant-spin-blur]="isLoading()"> <ng-content></ng-content> </div> } `, host: { '[class.ant-spin-nested-loading]': '!nzSimple' }, imports: [NgTemplateOutlet] }] }], ctorParameters: () => [], propDecorators: { nzIndicator: [{ type: Input }], nzSize: [{ type: Input }], nzTip: [{ type: Input }], nzDelay: [{ type: Input, args: [{ transform: numberAttribute }] }], nzSimple: [{ type: Input, args: [{ transform: booleanAttribute }] }], nzSpinning: [{ type: Input, args: [{ transform: booleanAttribute }] }] } }); /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ class NzSpinModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: NzSpinModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: NzSpinModule, imports: [NzSpinComponent], exports: [NzSpinComponent] }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: NzSpinModule }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: NzSpinModule, decorators: [{ type: NgModule, args: [{ imports: [NzSpinComponent], exports: [NzSpinComponent] }] }] }); /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ /** * Generated bundle index. Do not edit. */ export { NzSpinComponent, NzSpinModule }; //# sourceMappingURL=ng-zorro-antd-spin.mjs.map