{"version":3,"file":"ng-zorro-antd-statistic.mjs","sources":["../../components/statistic/statistic-number.component.ts","../../components/statistic/statistic.component.ts","../../components/statistic/countdown.component.ts","../../components/statistic/statistic.module.ts","../../components/statistic/public-api.ts","../../components/statistic/ng-zorro-antd-statistic.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 { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  Input,\n  LOCALE_ID,\n  OnChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { NzStatisticValueType } from './typings';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  preserveWhitespaces: false,\n  selector: 'nz-statistic-number',\n  exportAs: 'nzStatisticNumber',\n  template: `\n    <span class=\"ant-statistic-content-value\">\n      <ng-container\n        *ngIf=\"nzValueTemplate\"\n        [ngTemplateOutlet]=\"nzValueTemplate\"\n        [ngTemplateOutletContext]=\"{ $implicit: nzValue }\"\n      ></ng-container>\n      <ng-container *ngIf=\"!nzValueTemplate\">\n        <span *ngIf=\"displayInt\" class=\"ant-statistic-content-value-int\">{{ displayInt }}</span>\n        <span *ngIf=\"displayDecimal\" class=\"ant-statistic-content-value-decimal\">{{ displayDecimal }}</span>\n      </ng-container>\n    </span>\n  `\n})\nexport class NzStatisticNumberComponent implements OnChanges {\n  @Input() nzValue?: NzStatisticValueType;\n  @Input() nzValueTemplate?: TemplateRef<{ $implicit: NzStatisticValueType }>;\n\n  displayInt = '';\n  displayDecimal = '';\n\n  constructor(@Inject(LOCALE_ID) private locale_id: string) {}\n\n  ngOnChanges(): void {\n    this.formatNumber();\n  }\n\n  private formatNumber(): void {\n    const decimalSeparator: string =\n      typeof this.nzValue === 'number' ? '.' : getLocaleNumberSymbol(this.locale_id, NumberSymbol.Decimal);\n    const value = String(this.nzValue);\n    const [int, decimal] = value.split(decimalSeparator);\n\n    this.displayInt = int;\n    this.displayDecimal = decimal ? `${decimalSeparator}${decimal}` : '';\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  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NgStyleInterface } from 'ng-zorro-antd/core/types';\n\nimport { NzStatisticValueType } from './typings';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-statistic',\n  exportAs: 'nzStatistic',\n  template: `\n    <div class=\"ant-statistic\" [class.ant-statistic-rtl]=\"dir === 'rtl'\">\n      <div class=\"ant-statistic-title\">\n        <ng-container *nzStringTemplateOutlet=\"nzTitle\">{{ nzTitle }}</ng-container>\n      </div>\n      <div class=\"ant-statistic-content\" [ngStyle]=\"nzValueStyle\">\n        <span *ngIf=\"nzPrefix\" class=\"ant-statistic-content-prefix\">\n          <ng-container *nzStringTemplateOutlet=\"nzPrefix\">{{ nzPrefix }}</ng-container>\n        </span>\n        <nz-statistic-number [nzValue]=\"nzValue\" [nzValueTemplate]=\"nzValueTemplate\"></nz-statistic-number>\n        <span *ngIf=\"nzSuffix\" class=\"ant-statistic-content-suffix\">\n          <ng-container *nzStringTemplateOutlet=\"nzSuffix\">{{ nzSuffix }}</ng-container>\n        </span>\n      </div>\n    </div>\n  `\n})\nexport class NzStatisticComponent implements OnDestroy, OnInit {\n  @Input() nzPrefix?: string | TemplateRef<void>;\n  @Input() nzSuffix?: string | TemplateRef<void>;\n  @Input() nzTitle?: string | TemplateRef<void>;\n  @Input() nzValue?: NzStatisticValueType;\n  @Input() nzValueStyle: NgStyleInterface = {};\n  @Input() nzValueTemplate?: TemplateRef<{ $implicit: NzStatisticValueType }>;\n  dir: Direction = 'ltr';\n\n  private destroy$ = new Subject<void>();\n\n  constructor(protected cdr: ChangeDetectorRef, @Optional() private directionality: Directionality) {}\n\n  ngOnInit(): void {\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n\n    this.dir = this.directionality.value;\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\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 { Directionality } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport { interval, Subscription } from 'rxjs';\n\nimport { NzStatisticComponent } from './statistic.component';\n\nconst REFRESH_INTERVAL = 1000 / 30;\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-countdown',\n  exportAs: 'nzCountdown',\n  template: `\n    <nz-statistic\n      [nzValue]=\"diff\"\n      [nzValueStyle]=\"nzValueStyle\"\n      [nzValueTemplate]=\"nzValueTemplate || countDownTpl\"\n      [nzTitle]=\"nzTitle\"\n      [nzPrefix]=\"nzPrefix\"\n      [nzSuffix]=\"nzSuffix\"\n    ></nz-statistic>\n\n    <ng-template #countDownTpl>{{ diff | nzTimeRange: nzFormat }}</ng-template>\n  `\n})\nexport class NzCountdownComponent extends NzStatisticComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() nzFormat: string = 'HH:mm:ss';\n  @Output() readonly nzCountdownFinish = new EventEmitter<void>();\n\n  diff!: number;\n\n  private target: number = 0;\n  private updater_?: Subscription | null;\n\n  constructor(\n    cdr: ChangeDetectorRef,\n    private ngZone: NgZone,\n    private platform: Platform,\n    @Optional() directionality: Directionality\n  ) {\n    super(cdr, directionality);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.nzValue) {\n      this.target = Number(changes.nzValue.currentValue);\n      if (!changes.nzValue.isFirstChange()) {\n        this.syncTimer();\n      }\n    }\n  }\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n    this.syncTimer();\n  }\n\n  override ngOnDestroy(): void {\n    this.stopTimer();\n  }\n\n  syncTimer(): void {\n    if (this.target >= Date.now()) {\n      this.startTimer();\n    } else {\n      this.stopTimer();\n    }\n  }\n\n  startTimer(): void {\n    if (this.platform.isBrowser) {\n      this.ngZone.runOutsideAngular(() => {\n        this.stopTimer();\n        this.updater_ = interval(REFRESH_INTERVAL).subscribe(() => {\n          this.updateValue();\n          this.cdr.detectChanges();\n        });\n      });\n    }\n  }\n\n  stopTimer(): void {\n    if (this.updater_) {\n      this.updater_.unsubscribe();\n      this.updater_ = null;\n    }\n  }\n\n  /**\n   * Update time that should be displayed on the screen.\n   */\n  protected updateValue(): void {\n    this.diff = Math.max(this.target - Date.now(), 0);\n\n    if (this.diff === 0) {\n      this.stopTimer();\n\n      if (this.nzCountdownFinish.observers.length) {\n        this.ngZone.run(() => this.nzCountdownFinish.emit());\n      }\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 { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzPipesModule as NzPipesModuleFromCore } from 'ng-zorro-antd/core/pipe';\n\nimport { NzCountdownComponent } from './countdown.component';\nimport { NzStatisticNumberComponent } from './statistic-number.component';\nimport { NzStatisticComponent } from './statistic.component';\n\n@NgModule({\n  imports: [BidiModule, CommonModule, PlatformModule, NzOutletModule, NzPipesModuleFromCore],\n  declarations: [NzStatisticComponent, NzCountdownComponent, NzStatisticNumberComponent],\n  exports: [NzStatisticComponent, NzCountdownComponent, NzStatisticNumberComponent]\n})\nexport class NzStatisticModule {}\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 './countdown.component';\nexport * from './statistic.component';\nexport * from './statistic.module';\nexport * from './statistic-number.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["NzPipesModuleFromCore"],"mappings":"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"}