{"version":3,"file":"ngx-timer-new.mjs","sources":["../../../projects/ngx-timer-new/src/lib/countup-timer/countup-timer.model.ts","../../../projects/ngx-timer-new/src/lib/countup-timer/countup-timer.service.ts","../../../projects/ngx-timer-new/src/lib/countup-timer/countup-timer.component.ts","../../../projects/ngx-timer-new/src/lib/countup-timer/countup-timer.component.html","../../../projects/ngx-timer-new/src/lib/countdown-timer/countdown-timer.model.ts","../../../projects/ngx-timer-new/src/lib/countdown-timer/countdown-timer.service.ts","../../../projects/ngx-timer-new/src/lib/countdown-timer/countdown-timer.component.ts","../../../projects/ngx-timer-new/src/lib/countdown-timer/countdown-timer.component.html","../../../projects/ngx-timer-new/src/lib/ngx-timer.module.ts","../../../projects/ngx-timer-new/src/public-api.ts","../../../projects/ngx-timer-new/src/ngx-timer-new.ts"],"sourcesContent":["export class countUpTimerConfigModel {\r\n    timerClass?:string;\r\n    timerTexts?:timerTexts;\r\n}\r\n\r\nexport class timerTexts{\r\n    hourText?:string;\r\n    minuteText?:string;\r\n    secondsText?:string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, Subscription, interval } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CountupTimerService {\r\n\r\n  //Init\r\n  public timerValue = {\r\n    seconds: '00',\r\n    mins: '00',\r\n    hours: '00',\r\n  }\r\n  public isTimerStart: boolean = false;\r\n  public interval: Observable<any>;\r\n  public intervalSubscription!: Subscription;\r\n  public totalSeconds: number = 0;\r\n  public currentOperationId: number = 0;\r\n\r\n  constructor() {\r\n    this.interval = interval(1000);\r\n  }\r\n\r\n  //start timer\r\n  startTimer = (startTime?: any) => {\r\n    if (startTime) {\r\n      let currentDate = new Date();\r\n      let startedTime = new Date(startTime);\r\n      this.totalSeconds = Math.round((currentDate.getTime() - startedTime.getTime()) / 1000);\r\n    }\r\n    this.isTimerStart = true;\r\n    return true;\r\n  }\r\n\r\n  //end timer\r\n  pauseTimer = (startTime?: any, endTime?: any) => {\r\n    if (startTime && endTime) {\r\n      let endedDate = new Date(endTime);\r\n      let startedTime = new Date(startTime);\r\n      this.totalSeconds = Math.round((endedDate.getTime() - startedTime.getTime()) / 1000);\r\n    }\r\n    this.isTimerStart = false;\r\n    return false;\r\n  }\r\n\r\n  //reset Timer\r\n  stopTimer = () => {\r\n    this.isTimerStart = false;\r\n    this.totalSeconds = 0;\r\n  }\r\n\r\n  //get timer value Obj\r\n  getTimerValue = (): Observable<any> => {\r\n    return new Observable(obs => {\r\n      if (this.intervalSubscription) {\r\n        this.intervalSubscription.unsubscribe();\r\n      }\r\n      this.intervalSubscription = this.interval.subscribe(int => {\r\n        if (this.isTimerStart) {\r\n          ++this.totalSeconds;\r\n          this.timerValue.seconds = this.setTimervalue(this.totalSeconds % 60);\r\n          let totalSecondsForMinutes = 0;\r\n          totalSecondsForMinutes = (Math.trunc(this.totalSeconds / 60) >= 60) ? (this.totalSeconds / 60) % 60 : this.totalSeconds / 60;\r\n          this.timerValue.mins = this.setTimervalue(Math.trunc(totalSecondsForMinutes));\r\n          this.timerValue.hours = this.setTimervalue(Math.trunc(this.totalSeconds / 3600));\r\n          obs.next(this.timerValue);\r\n          obs.complete();\r\n        } else {\r\n          if (this.totalSeconds > 0) {\r\n            this.timerValue.seconds = this.setTimervalue(this.totalSeconds % 60);\r\n            let totalSecondsForMinutes = 0;\r\n            totalSecondsForMinutes = (Math.trunc(this.totalSeconds / 60) >= 60) ? (this.totalSeconds / 60) % 60 : this.totalSeconds / 60;\r\n            this.timerValue.mins = this.setTimervalue(Math.trunc(totalSecondsForMinutes));\r\n            this.timerValue.hours = this.setTimervalue(Math.trunc(this.totalSeconds / 3600));\r\n          } else {\r\n            this.timerValue.hours = \"00\";\r\n            this.timerValue.mins = \"00\";\r\n            this.timerValue.seconds = \"00\";\r\n          }\r\n          obs.next(this.timerValue);\r\n          obs.complete();\r\n        }\r\n      }, error => {\r\n        obs.error(error);\r\n        obs.complete();\r\n      });\r\n    });\r\n  }\r\n\r\n  //set timer value\r\n  setTimervalue = (val: string | number) => {\r\n    let valString = val + \"\";\r\n    return (valString.length < 2) ? \"0\" + valString : valString;\r\n  }\r\n}\r\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { CountupTimerService } from './countup-timer.service';\r\nimport { countUpTimerConfigModel, timerTexts } from './countup-timer.model';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'countup-timer',\r\n  templateUrl: './countup-timer.component.html',\r\n  styleUrls: ['./countup-timer.component.scss']\r\n})\r\nexport class CountupTimerComponent implements OnInit, OnDestroy {\r\n\r\n  @Input() startTime!: String;\r\n  @Input() countUpTimerConfig!: countUpTimerConfigModel;\r\n\r\n  //Init\r\n  timerObj: any = {};\r\n  private timerSubscription!: Subscription;\r\n  timerConfig!: countUpTimerConfigModel;\r\n  timerTextConfig!: timerTexts;\r\n\r\n  constructor(private countupTimerService: CountupTimerService) {}\r\n\r\n  ngOnInit() {\r\n    this.getTimerValue();\r\n    this.timerConfig = new countUpTimerConfigModel();\r\n    this.timerTextConfig = new timerTexts();\r\n    this.timerConfig = this.countUpTimerConfig ? Object.assign(this.countUpTimerConfig) : null;\r\n    this.timerTextConfig = this.countUpTimerConfig && this.countUpTimerConfig.timerTexts ? Object.assign(this.countUpTimerConfig.timerTexts) :  null;\r\n  }\r\n\r\n  //get timer value\r\n  getTimerValue = () => {\r\n    this.timerSubscription = this.countupTimerService.getTimerValue().subscribe(res => {\r\n      this.timerObj = Object.assign(res);\r\n    }, error => {\r\n      console.log(error);\r\n      console.log('Failed to get timer value');\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.timerSubscription.unsubscribe();\r\n  }\r\n\r\n}\r\n","<div [class]=\"timerConfig ? timerConfig.timerClass : ''\">\r\n  <span>{{timerObj.hours}}</span><span class=\"time-category\">{{timerTextConfig && timerTextConfig.hourText ? timerTextConfig.hourText : 'hh'}} </span> \r\n  <span>{{timerObj.mins}}</span><span class=\"time-category\">{{timerTextConfig && timerTextConfig.minuteText ? timerTextConfig.minuteText : 'mm'}}  </span> \r\n  <span>{{timerObj.seconds}}</span><span class=\"time-category\">{{timerTextConfig && timerTextConfig.secondsText ? timerTextConfig.secondsText : 'ss'}}</span>\r\n</div>","export class countDownTimerConfigModel {\r\n    timerClass?:string;\r\n    timerTexts?:countDownTimerTexts;\r\n}\r\n\r\nexport class countDownTimerTexts{\r\n    hourText?:string;\r\n    minuteText?:string;\r\n    secondsText?:string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, Subscription, interval } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CountdownTimerService {\r\n\r\n\r\n  //Init\r\n  public timerValue = {\r\n    seconds: '00',\r\n    mins: '00',\r\n    hours: '00',\r\n  }\r\n  public isTimerStart: boolean = false;\r\n  public interval: Observable<any>;\r\n  public intervalSubscription!: Subscription;\r\n  public totalSeconds: number = 0;\r\n  public currentOperationId: number = 0;\r\n\r\n  constructor() {\r\n    this.interval = interval(1000);\r\n  }\r\n\r\n  //start timer\r\n  startTimer = (startTime: any) => {\r\n    if (startTime) {\r\n      let currentDate = new Date();\r\n      let startedTime = new Date(startTime);\r\n      this.totalSeconds = (Math.round((currentDate.getTime() - startedTime.getTime()) / 1000)) * -1;\r\n      debugger;\r\n    }\r\n    this.isTimerStart = true;\r\n    return true;\r\n  }\r\n\r\n  //end timer\r\n  pauseTimer = (startTime?: any, endTime?: any) => {\r\n    if (startTime && endTime) {\r\n      let endedDate = new Date(endTime);\r\n      let startedTime = new Date(startTime);\r\n      this.totalSeconds = Math.round((endedDate.getTime() - startedTime.getTime()) / 1000);\r\n    }\r\n    this.isTimerStart = false;\r\n    return false;\r\n  }\r\n\r\n  //reset Timer\r\n  stopTimer = () => {\r\n    this.isTimerStart = false;\r\n    this.totalSeconds = 0;\r\n  }\r\n\r\n  //resume Timer\r\n  resumeTimer = () => {\r\n    this.isTimerStart = true;\r\n  }\r\n\r\n  //get timer value Obj\r\n  getTimerValue = (): Observable<any> => {\r\n    return new Observable(obs => {\r\n      if (this.intervalSubscription) {\r\n        this.intervalSubscription.unsubscribe();\r\n      }\r\n      this.intervalSubscription = this.interval.subscribe(int => {\r\n        if (this.isTimerStart && this.totalSeconds > 0) {\r\n          --this.totalSeconds;\r\n          this.timerValue.seconds = this.setTimervalue(this.totalSeconds % 60);\r\n          let totalSecondsForMinutes = 0;\r\n          totalSecondsForMinutes = (Math.trunc(this.totalSeconds / 60) >= 60) ? (this.totalSeconds / 60) % 60 : this.totalSeconds / 60;\r\n          this.timerValue.mins = this.setTimervalue(Math.trunc(totalSecondsForMinutes));\r\n          this.timerValue.hours = this.setTimervalue(Math.trunc(this.totalSeconds / 3600));\r\n          obs.next(this.timerValue);\r\n          obs.complete();\r\n        } else {\r\n          if (this.totalSeconds > 0) {\r\n            this.timerValue.seconds = this.setTimervalue(this.totalSeconds % 60);\r\n            let totalSecondsForMinutes = 0;\r\n            totalSecondsForMinutes = (Math.trunc(this.totalSeconds / 60) >= 60) ? (this.totalSeconds / 60) % 60 : this.totalSeconds / 60;\r\n            this.timerValue.mins = this.setTimervalue(Math.trunc(totalSecondsForMinutes));\r\n            this.timerValue.hours = this.setTimervalue(Math.trunc(this.totalSeconds / 3600));\r\n          } else {\r\n            this.timerValue.hours = \"00\";\r\n            this.timerValue.mins = \"00\";\r\n            this.timerValue.seconds = \"00\";\r\n          }\r\n          obs.next(this.timerValue);\r\n          obs.complete();\r\n        }\r\n      }, error => {\r\n        obs.error(error);\r\n        obs.complete();\r\n      });\r\n    });\r\n  }\r\n\r\n  //set timer value\r\n  setTimervalue = (val: string | number) => {\r\n    let valString = val + \"\";\r\n    return (valString.length < 2) ? \"0\" + valString : valString;\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { countDownTimerConfigModel, countDownTimerTexts } from './countdown-timer.model';\r\nimport { CountdownTimerService } from './countdown-timer.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'countdown-timer',\r\n  templateUrl: './countdown-timer.component.html',\r\n  styleUrls: ['./countdown-timer.component.scss']\r\n})\r\nexport class CountdownTimerComponent implements OnInit {\r\n\r\n  @Input() startTime!: String;\r\n  @Input() countDownTimerConfig!: countDownTimerConfigModel;\r\n\r\n  //Init\r\n  private timerSubscription!: Subscription;\r\n  timerObj: any = {};\r\n  timerConfig!: countDownTimerConfigModel;\r\n  timerTextConfig!: countDownTimerTexts;\r\n\r\n  constructor(private countdownTimerService: CountdownTimerService) { }\r\n\r\n  ngOnInit() {\r\n    this.getTimerValue();\r\n    this.timerConfig = new countDownTimerConfigModel();\r\n    this.timerTextConfig = new countDownTimerTexts();\r\n    this.timerConfig = this.countDownTimerConfig ? Object.assign(this.countDownTimerConfig) : null;\r\n    this.timerTextConfig = this.countDownTimerConfig && this.countDownTimerConfig.timerTexts ? Object.assign(this.countDownTimerConfig.timerTexts) : null;\r\n  }\r\n\r\n  //get timer value\r\n  getTimerValue = () => {\r\n    this.timerSubscription = this.countdownTimerService.getTimerValue().subscribe(res => {\r\n      this.timerObj = Object.assign(res);\r\n    }, error => {\r\n      console.log(error);\r\n      console.log('Failed to get timer value');\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.timerSubscription.unsubscribe();\r\n  }\r\n\r\n}\r\n","<div [class]=\"timerConfig ? timerConfig.timerClass : ''\">\r\n  <span>{{timerObj.hours}}</span><span class=\"time-category\">{{timerTextConfig && timerTextConfig.hourText ? timerTextConfig.hourText : 'hh'}} </span> \r\n  <span>{{timerObj.mins}}</span><span class=\"time-category\">{{timerTextConfig && timerTextConfig.minuteText ? timerTextConfig.minuteText : 'mm'}}  </span> \r\n  <span>{{timerObj.seconds}}</span><span class=\"time-category\">{{timerTextConfig && timerTextConfig.secondsText ? timerTextConfig.secondsText : 'ss'}}</span>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CountupTimerComponent } from './countup-timer/countup-timer.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CountdownTimerComponent } from './countdown-timer/countdown-timer.component';\r\nimport { CountupTimerService } from './countup-timer/countup-timer.service';\r\nimport { CountdownTimerService } from './countdown-timer/countdown-timer.service';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CountupTimerComponent, \r\n    CountdownTimerComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [\r\n    CountupTimerComponent,\r\n    CountdownTimerComponent\r\n  ],\r\n  providers:[\r\n    CountupTimerService,\r\n    CountdownTimerService\r\n  ]\r\n})\r\nexport class NgxTimerModule { }\r\n","/*\r\n * Public API Surface of ngx-timer-new\r\n */\r\n\r\nexport * from './lib/ngx-timer.module';\r\n\r\n//Countup timer\r\nexport * from './lib/countup-timer/countup-timer.component';\r\nexport * from './lib/countup-timer/countup-timer.service';\r\nexport * from './lib/countup-timer/countup-timer.model';\r\n\r\n//Countdown timer\r\nexport * from './lib/countdown-timer/countdown-timer.component';\r\nexport * from './lib/countdown-timer/countdown-timer.service';\r\nexport * from './lib/countdown-timer/countdown-timer.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CountupTimerService","i1.CountdownTimerService"],"mappings":"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"}