{"version":3,"file":"ngx-countup.mjs","sources":["../../../projects/count-up/src/lib/count-up.directive.ts","../../../projects/count-up/src/lib/count-up.module.ts","../../../projects/count-up/src/public_api.ts","../../../projects/count-up/src/ngx-countup.ts"],"sourcesContent":["import {\n  Directive,\n  ElementRef,\n  Input,\n  Output,\n  HostListener,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n  NgZone, Inject, PLATFORM_ID\n} from '@angular/core';\nimport { CountUp, CountUpOptions } from 'countup.js';\nimport {isPlatformBrowser} from '@angular/common';\n\n@Directive({\n  selector: '[countUp]'\n})\nexport class CountUpDirective implements OnChanges {\n\n  countUp: CountUp;\n  // the value you want to count to\n  @Input('countUp') endVal: number;\n\n  @Input() options: CountUpOptions = {};\n  @Input() reanimateOnClick = true;\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() complete = new EventEmitter<void>();\n\n  // Re-animate if preference is set.\n  @HostListener('click')\n  onClick() {\n    if (this.reanimateOnClick) {\n      this.animate();\n    }\n  }\n\n  constructor(\n    private el: ElementRef,\n    private zone: NgZone,\n    @Inject(PLATFORM_ID) private platformId: Object,\n  ) {}\n  \n  ngOnChanges(changes: SimpleChanges): void {\n    // don't animate server-side (universal)\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n  \n    const { options, endVal } = changes;\n  \n    if (this.countUp) {\n      if (options?.currentValue !== undefined || endVal?.currentValue !== undefined) {\n        // If options have changed, reinitialize\n        if (options?.currentValue !== undefined) {\n          this.initAndRun();\n        } else {\n          // Only endVal has changed, update with current options\n          if (!this.options.startVal) {\n            this.options.startVal = this.countUp.frameVal;\n          }\n          this.zone.runOutsideAngular(() => {\n            this.countUp.update(this.endVal);\n          });\n        }\n      }\n    } else {\n      this.initAndRun();\n    }\n  }\n  animate(): void {\n    this.zone.runOutsideAngular(() => {\n      this.countUp.reset();\n      this.countUp.start(() => {\n        this.zone.run(() => {\n          this.complete.emit();\n        });\n      });\n    });\n  }\n\n  private initAndRun(): void {\n    this.zone.runOutsideAngular(() => {\n      this.countUp = new CountUp(this.el.nativeElement, this.endVal, this.options);\n      if (!this.options.enableScrollSpy) {\n        this.animate();\n      }\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CountUpDirective } from './count-up.directive';\n\n@NgModule({\n  imports: [],\n  declarations: [CountUpDirective],\n  exports: [CountUpDirective]\n})\nexport class CountUpModule { }\n","/*\n * Public API Surface of count-up\n */\n\nexport * from './lib/count-up.module';\nexport * from './lib/count-up.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}