{"version":3,"file":"TimerService.4Nt3naDy.js","sources":["../../../../../../app/services/TimerService.ts"],"sourcesContent":["import { ref, type Ref } from \"vue\";\n\nexport class TimerService {\n private timeSec: Ref;\n private timeMin: Ref;\n private sec: Ref;\n private minute: Ref;\n private isTimerExpired: Ref;\n private timerInterval: ReturnType = setTimeout(() => \"\", 1000);\n private endTime: number = 0;\n private numSeconds: number = 0;\n\n constructor() {\n this.timeSec = ref(0);\n this.timeMin = ref(0);\n this.sec = ref(\"\");\n this.minute = ref(\"\");\n this.isTimerExpired = ref(false); \n }\n\n public startTimer(numSeconds: number) { \n this.numSeconds = numSeconds;\n const currentTime = Math.floor(Date.now() / 1000);\n this.endTime = currentTime + numSeconds;\n this.updateTimer(); //let's populate min and sec values as soon as possible\n this.timerInterval = setInterval(this.updateTimer.bind(this), 1000);\n }\n\n public resetTimer() {\n clearInterval(this.timerInterval);\n this.isTimerExpired.value = false;\n this.startTimer(this.numSeconds);\n }\n\n private updateTimer() {\n const currentTime = Math.floor(Date.now() / 1000);\n const remainingTime = Math.max(0, this.endTime - currentTime);\n\n this.timeMin.value = Math.floor(remainingTime / 60);\n this.timeSec.value = remainingTime % 60;\n\n this.minute.value = this.convert(this.timeMin.value);\n this.sec.value = this.convert(this.timeSec.value);\n\n if (remainingTime === 0) {\n clearInterval(this.timerInterval);\n this.isTimerExpired.value = true;\n }\n }\n\n private convert(number: number): string {\n return number < 10 ? \"0\" + number.toString() : number.toString();\n }\n\n public getMinute(): Ref {\n return this.minute;\n }\n\n public getSec(): Ref {\n return this.sec;\n }\n\n public getIsTimerExpired(): Ref {\n return this.isTimerExpired;\n }\n}\n"],"names":["TimerService","__publicField","ref","numSeconds","currentTime","remainingTime","number"],"mappings":"gNAEO,MAAMA,CAAa,CAUtB,aAAc,CATNC,EAAA,gBACAA,EAAA,gBACAA,EAAA,YACAA,EAAA,eACAA,EAAA,uBACAA,EAAA,qBAA+C,WAAW,IAAM,GAAI,GAAI,GACxEA,EAAA,eAAkB,GAClBA,EAAA,kBAAqB,GAGpB,KAAA,QAAUC,EAAI,CAAC,EACf,KAAA,QAAUA,EAAI,CAAC,EACf,KAAA,IAAMA,EAAI,EAAE,EACZ,KAAA,OAASA,EAAI,EAAE,EACf,KAAA,eAAiBA,EAAI,EAAK,CACnC,CAEO,WAAWC,EAAoB,CAClC,KAAK,WAAaA,EAClB,MAAMC,EAAc,KAAK,MAAM,KAAK,IAAA,EAAQ,GAAI,EAChD,KAAK,QAAUA,EAAcD,EAC7B,KAAK,YAAY,EACjB,KAAK,cAAgB,YAAY,KAAK,YAAY,KAAK,IAAI,EAAG,GAAI,CACtE,CAEO,YAAa,CAChB,cAAc,KAAK,aAAa,EAChC,KAAK,eAAe,MAAQ,GACvB,KAAA,WAAW,KAAK,UAAU,CACnC,CAEQ,aAAc,CAClB,MAAMC,EAAc,KAAK,MAAM,KAAK,IAAA,EAAQ,GAAI,EAC1CC,EAAgB,KAAK,IAAI,EAAG,KAAK,QAAUD,CAAW,EAE5D,KAAK,QAAQ,MAAQ,KAAK,MAAMC,EAAgB,EAAE,EAC7C,KAAA,QAAQ,MAAQA,EAAgB,GAErC,KAAK,OAAO,MAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,EACnD,KAAK,IAAI,MAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,EAE5CA,IAAkB,IAClB,cAAc,KAAK,aAAa,EAChC,KAAK,eAAe,MAAQ,GAEpC,CAEQ,QAAQC,EAAwB,CACpC,OAAOA,EAAS,GAAK,IAAMA,EAAO,WAAaA,EAAO,UAC1D,CAEO,WAAyB,CAC5B,OAAO,KAAK,MAChB,CAEO,QAAsB,CACzB,OAAO,KAAK,GAChB,CAEO,mBAAkC,CACrC,OAAO,KAAK,cAChB,CACJ"}