{"version":3,"file":"iamserver-ngx-countdown.mjs","sources":["../../../src/ngx-countdown/src/lib/ngx-countdown.directive.ts","../../../src/ngx-countdown/src/lib/ngx-countdown.module.ts","../../../src/ngx-countdown/src/iamserver-ngx-countdown.ts"],"sourcesContent":["import {\n  Directive,\n  Input,\n  OnInit,\n  OnDestroy,\n  Output,\n  EventEmitter,\n} from '@angular/core';\n\ninterface Timer {\n  days: number;\n  hours: number;\n  minutes: number;\n  seconds: number;\n}\n\n@Directive({\n  selector: '[countdown]',\n})\nexport class NgxCountdownDirective implements OnInit, OnDestroy {\n  @Input() targetDate: Date = new Date();\n  @Input() additionalSeconds: number = 0;\n  @Input() additionalMinutes: number = 0;\n  @Input() additionalHours: number = 0;\n  @Input() additionalDays: number = 0;\n  @Output() countdownComplete: EventEmitter<void> = new EventEmitter<void>();\n  @Output() countdownUpdate: EventEmitter<Timer> = new EventEmitter<Timer>();\n\n  private timer: any;\n\n  ngOnInit() {\n    const currentTime = new Date().getTime();\n    const targetTime = this.targetDate.getTime();\n    const additionalTime =\n      this.additionalSeconds * 1000 +\n      this.additionalMinutes * 60 * 1000 +\n      this.additionalHours * 60 * 60 * 1000 +\n      this.additionalDays * 24 * 60 * 60 * 1000;\n\n    const timeDifference = targetTime - currentTime + additionalTime;\n\n    if (timeDifference <= 0) {\n      this.countdownComplete.emit();\n    } else {\n      this.startCountdown(timeDifference);\n    }\n  }\n\n  ngOnDestroy() {\n    clearInterval(this.timer);\n  }\n\n  private startCountdown(timeDifference: number) {\n    this.updateTimer(timeDifference);\n\n    this.timer = setInterval(() => {\n      timeDifference -= 1000;\n\n      if (timeDifference <= 0) {\n        clearInterval(this.timer);\n        this.countdownComplete.emit();\n      } else {\n        this.updateTimer(timeDifference);\n      }\n    }, 1000);\n  }\n\n  private updateTimer(timeDifference: number) {\n    const seconds = Math.floor((timeDifference / 1000) % 60);\n    const minutes = Math.floor((timeDifference / (1000 * 60)) % 60);\n    const hours = Math.floor((timeDifference / (1000 * 60 * 60)) % 24);\n    const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24));\n\n    this.countdownUpdate.emit({\n      days: days,\n      hours: hours,\n      minutes: minutes,\n      seconds: seconds,\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxCountdownDirective } from './ngx-countdown.directive';\n\n@NgModule({\n  declarations: [NgxCountdownDirective],\n  imports: [],\n  exports: [NgxCountdownDirective],\n})\nexport class NgxCountdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}