{"version":3,"file":"angular-cd-timer.mjs","sources":["../../../projects/angular-cd-timer/src/lib/angular-cd-timer.component.ts","../../../projects/angular-cd-timer/src/lib/angular-cd-timer.module.ts","../../../projects/angular-cd-timer/src/public-api.ts","../../../projects/angular-cd-timer/src/angular-cd-timer.ts"],"sourcesContent":["\nimport {\n  AfterViewInit,\n  Component, ElementRef, EventEmitter, Input, OnDestroy, Output, Renderer2\n} from '@angular/core';\nimport {TimeInterface} from './angular-cd-timer.interface';\n\n@Component({\n  selector: 'cd-timer',\n  template: ' <ng-content></ng-content>'\n})\nexport class CdTimerComponent implements AfterViewInit, OnDestroy {\n  private timeoutId: any;\n  private tickCounter: number;\n  private ngContentSchema: string;\n\n  private seconds: number;\n  private minutes: number;\n  private hours: number;\n  private days: number;\n\n  @Input() startTime: number;\n  @Input() endTime: number;\n  @Input() countdown: boolean;\n  @Input() autoStart: boolean;\n  @Input() maxTimeUnit: string;\n  @Input() format: string;\n  @Output() onStart: EventEmitter<CdTimerComponent> = new EventEmitter<CdTimerComponent>();\n  @Output() onStop: EventEmitter<CdTimerComponent> = new EventEmitter<CdTimerComponent>();\n  @Output() onTick: EventEmitter<TimeInterface> = new EventEmitter<TimeInterface>();\n  @Output() onComplete: EventEmitter<CdTimerComponent> = new EventEmitter<CdTimerComponent>();\n\n  constructor(private elt: ElementRef, private renderer: Renderer2) {\n    // Initialization\n    this.autoStart  = true;\n    this.startTime  = 0;\n    this.endTime    = 0;\n    this.timeoutId  = null;\n    this.countdown  = false;\n    this.format     = 'default';\n  }\n\n  ngAfterViewInit() {\n    const ngContentNode = this.elt.nativeElement.lastChild;    // Get last child, defined by user or span\n    this.ngContentSchema = ngContentNode ? ngContentNode.nodeValue : '';\n    if (this.autoStart === undefined || this.autoStart === true) {\n      this.start();\n    }\n  }\n\n  ngOnDestroy() {\n    this.resetTimeout();\n  }\n\n  /**\n   * Start the timer\n   */\n  public start() {\n    this.initVar();\n    this.resetTimeout();\n    this.computeTimeUnits();\n    this.startTickCount();\n\n    this.onStart.emit(this);\n  }\n\n  /**\n   * Resume the timer\n   */\n  public resume() {\n    this.resetTimeout();\n\n    this.startTickCount();\n  }\n\n  /**\n   * Stop the timer\n   */\n  public stop() {\n    this.clear();\n\n    this.onStop.emit(this);\n  }\n\n  /**\n   * Reset the timer\n   */\n  public reset() {\n    this.initVar();\n    this.resetTimeout();\n    this.clear();\n    this.computeTimeUnits();\n    this.renderText();\n  }\n\n  /**\n   * Get the time information\n   * @returns TimeInterface\n   */\n  public get() {\n    return {\n      seconds: this.seconds,\n      minutes: this.minutes,\n      hours: this.hours,\n      days: this.days,\n      timer: this.timeoutId,\n      tick_count: this.tickCounter\n    };\n  }\n\n  /**\n   * Initialize variable before start\n   */\n  private initVar() {\n    this.startTime = this.startTime || 0;\n    this.endTime   = this.endTime || 0;\n    this.countdown = this.countdown || false;\n    this.tickCounter = this.startTime;\n\n    // Disable countdown if start time not defined\n    if (this.countdown && this.startTime === 0) {\n      this.countdown = false;\n    }\n\n    // Determine auto format\n    if (!this.format) {\n      this.format = (this.ngContentSchema.length > 5) ? 'user' : 'default';\n    }\n  }\n\n  /**\n   * Reset timeout\n   */\n  private resetTimeout() {\n    if (this.timeoutId) {\n      clearInterval(this.timeoutId);\n    }\n  }\n\n  /**\n   * Render the time to DOM\n   */\n  private renderText() {\n    let outputText;\n    if (this.format === 'user') {\n      // User presentation\n      const items = {\n        'seconds': this.seconds,\n        'minutes': this.minutes,\n        'hours': this.hours,\n        'days': this.days\n      };\n\n      outputText = this.ngContentSchema;\n\n      for (const key of Object.keys(items)) {\n        outputText = outputText.replace('[' + key + ']', (items as any)[key].toString());\n      }\n    } else if (this.format === 'intelli') {\n      // Intelli presentation\n      outputText = '';\n      if (this.days > 0) {\n        outputText += this.days.toString() + 'day' + ((this.days > 1) ? 's' : '') + ' ';\n      }\n      if ((this.hours > 0) || (this.days > 0)) {\n        outputText += this.hours.toString() + 'h ';\n      }\n      if (((this.minutes > 0) || (this.hours > 0)) && (this.days === 0)) {\n        outputText += this.minutes.toString().padStart(2, '0') + 'min ';\n      }\n      if ((this.hours === 0) && (this.days === 0)) {\n        outputText += this.seconds.toString().padStart(2, '0') + 's';\n      }\n    } else if (this.format === 'hms') {\n      // Hms presentation\n      outputText = this.hours.toString().padStart(2, '0') + ':';\n      outputText += this.minutes.toString().padStart(2, '0') + ':';\n      outputText += this.seconds.toString().padStart(2, '0');\n    } else if (this.format === 'ms') {\n      // ms presentation\n      outputText = '';\n      if(this.hours>0) {\n        outputText = this.hours.toString().padStart(2, '0') + ':';\n      }\n      outputText += this.minutes.toString().padStart(2, '0') + ':';\n      outputText += this.seconds.toString().padStart(2, '0');\n    } else {\n      // Default presentation\n      outputText = this.days.toString() + 'd ';\n      outputText += this.hours.toString() + 'h ';\n      outputText += this.minutes.toString() + 'm ';\n      outputText += this.seconds.toString() + 's';\n    }\n\n    this.renderer.setProperty(this.elt.nativeElement, 'innerHTML', outputText);\n  }\n\n  private clear() {\n    this.resetTimeout();\n    this.timeoutId = null;\n  }\n\n  /**\n   * Compute each unit (seconds, minutes, hours, days) for further manipulation\n   * @protected\n   */\n  protected computeTimeUnits() {\n    if (!this.maxTimeUnit || this.maxTimeUnit === 'day') {\n      this.seconds  = Math.floor(this.tickCounter % 60);\n      this.minutes  = Math.floor((this.tickCounter / 60) % 60);\n      this.hours    = Math.floor((this.tickCounter / 3600) % 24);\n      this.days     = Math.floor((this.tickCounter / 3600) / 24);\n    } else if (this.maxTimeUnit === 'second') {\n      this.seconds  = this.tickCounter;\n      this.minutes  = 0;\n      this.hours    = 0;\n      this.days     = 0;\n    } else if (this.maxTimeUnit === 'minute') {\n      this.seconds  = Math.floor(this.tickCounter % 60);\n      this.minutes  = Math.floor(this.tickCounter / 60);\n      this.hours    = 0;\n      this.days     = 0;\n    } else if (this.maxTimeUnit === 'hour') {\n      this.seconds  = Math.floor(this.tickCounter % 60);\n      this.minutes  = Math.floor((this.tickCounter / 60) % 60);\n      this.hours    = Math.floor(this.tickCounter / 3600);\n      this.days     = 0;\n    }\n\n    this.renderText();\n  }\n\n  /**\n   * Start tick count, base of this component\n   * @protected\n   */\n  protected startTickCount () {\n    const that = this;\n\n    that.timeoutId = setInterval(function() {\n      let counter;\n\n      if (that.countdown) {\n        // Compute finish counter for countdown\n        counter = that.tickCounter;\n\n        if (that.startTime > that.endTime) {\n          counter = that.tickCounter - that.endTime - 1;\n        }\n      } else {\n        // Compute finish counter for timer\n        counter = that.tickCounter - that.startTime;\n\n        if (that.endTime > that.startTime) {\n          counter = that.endTime - that.tickCounter - 1;\n        }\n      }\n\n      that.computeTimeUnits();\n\n      const timer: TimeInterface = {\n        seconds: that.seconds,\n        minutes: that.minutes,\n        hours: that.hours,\n        days: that.days,\n        timer: that.timeoutId,\n        tick_count: that.tickCounter\n      };\n\n      that.onTick.emit(timer);\n\n      if (counter < 0) {\n        that.stop();\n\n        that.onComplete.emit(that);\n        return;\n      }\n\n      if (that.countdown) {\n        that.tickCounter--;\n      } else {\n        that.tickCounter++;\n      }\n    }, 1000); // Each seconds\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CdTimerComponent } from './angular-cd-timer.component';\n\n\n\n@NgModule({\n  declarations: [CdTimerComponent],\n  imports: [\n  ],\n  exports: [CdTimerComponent]\n})\nexport class CdTimerModule { }\n","/*\n * Public API Surface of angular-cd-timer\n */\n\nexport * from './lib/angular-cd-timer.component';\nexport * from './lib/angular-cd-timer.interface';\nexport * from './lib/angular-cd-timer.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}