{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/src/babylonian-programming-editor/utils/timer.js"],"names":["Timer","constructor","duration","callback","currentTimeout","start","stop","setTimeout","clearTimeout"],"mappings":";;;;;;;;AAAA;;;AAGe,YAAMA,KAAN,CAAY;AACzBC,oBAAYC,QAAZ,EAAsBC,QAAtB,EAAgC;AAC9B,eAAKD,QAAL,GAAgBA,QAAhB;AACA,eAAKC,QAAL,GAAgBA,QAAhB;AACA,eAAKC,cAAL,GAAsB,IAAtB;AACD;;AAEDC,gBAAQ;AACN,eAAKC,IAAL;AACA,eAAKF,cAAL,GAAsBG,WAAW,KAAKJ,QAAhB,EAA0B,KAAKD,QAA/B,CAAtB;AACD;;AAEDI,eAAO;AACL,cAAG,KAAKF,cAAR,EAAwB;AACtBI,yBAAa,KAAKJ,cAAlB;AACD;AACF;AAhBwB;;yBAANJ,K","file":"timer.js","sourcesContent":["/**\n * A wrapper around setTimeout() to create reusable timers\n */\nexport default class Timer {\n  constructor(duration, callback) {\n    this.duration = duration;\n    this.callback = callback;\n    this.currentTimeout = null;\n  }\n\n  start() {\n    this.stop();\n    this.currentTimeout = setTimeout(this.callback, this.duration);\n  }\n\n  stop() {\n    if(this.currentTimeout) {\n      clearTimeout(this.currentTimeout);\n    }\n  }\n}\n"]}