{
  "version": 3,
  "sources": ["../src/index.ts"],
  "sourcesContent": ["export class Clock {\n  public running: boolean = false;\n\n  public deltaTime: number;\n  public currentTime: number;\n  public elapsedTime: number;\n\n  protected now: Function = (typeof(window) !== \"undefined\" && window.performance && window.performance.now && (window.performance.now).bind(window.performance)) || Date.now;\n  protected _interval: any; // number or NodeJS.Timer\n\n  constructor (useInterval: boolean = false) {\n    this.start(useInterval);\n  }\n\n  start (useInterval: boolean = false) {\n    this.deltaTime = 0;\n    this.currentTime = this.now();\n    this.elapsedTime = 0;\n    this.running = true;\n\n    if (useInterval) {\n      // auto set interval to 60 ticks per second\n      this._interval = setInterval(this.tick.bind(this), 1000 / 60);\n    }\n  }\n\n  stop () {\n    this.running = false;\n\n    if (this._interval) {\n      clearInterval(this._interval);\n    }\n  }\n\n  tick (newTime = this.now()) {\n    this.deltaTime = newTime - this.currentTime;\n    this.currentTime = newTime;\n    this.elapsedTime += this.deltaTime;\n  }\n\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,QAAN,MAAY;AAAA;AAAA,EAUjB,YAAa,cAAuB,OAAO;AAT3C,SAAO,UAAmB;AAM1B,SAAU,MAAiB,OAAO,WAAY,eAAe,OAAO,eAAe,OAAO,YAAY,OAAQ,OAAO,YAAY,IAAK,KAAK,OAAO,WAAW,KAAM,KAAK;AAItK,SAAK,MAAM,WAAW;AAAA,EACxB;AAAA,EAEA,MAAO,cAAuB,OAAO;AACnC,SAAK,YAAY;AACjB,SAAK,cAAc,KAAK,IAAI;AAC5B,SAAK,cAAc;AACnB,SAAK,UAAU;AAEf,QAAI,aAAa;AAEf,WAAK,YAAY,YAAY,KAAK,KAAK,KAAK,IAAI,GAAG,MAAO,EAAE;AAAA,IAC9D;AAAA,EACF;AAAA,EAEA,OAAQ;AACN,SAAK,UAAU;AAEf,QAAI,KAAK,WAAW;AAClB,oBAAc,KAAK,SAAS;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,KAAM,UAAU,KAAK,IAAI,GAAG;AAC1B,SAAK,YAAY,UAAU,KAAK;AAChC,SAAK,cAAc;AACnB,SAAK,eAAe,KAAK;AAAA,EAC3B;AAEF;",
  "names": []
}
