angular-user-idle
Advanced tools
Comparing version 2.2.5 to 2.2.6
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"UserIdleService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":77,"character":15}}],null],"parameters":[{"__symbolic":"reference","name":"UserIdleConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":77,"character":67}]}],"startWatching":[{"__symbolic":"method"}],"stopWatching":[{"__symbolic":"method"}],"stopTimer":[{"__symbolic":"method"}],"resetTimer":[{"__symbolic":"method"}],"onTimerStart":[{"__symbolic":"method"}],"onIdleStatusChanged":[{"__symbolic":"method"}],"onTimeout":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"setConfigValues":[{"__symbolic":"method"}],"setConfig":[{"__symbolic":"method"}],"setCustomActivityEvents":[{"__symbolic":"method"}],"setupTimer":[{"__symbolic":"method"}],"setupPing":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"UserIdleConfig":{"__symbolic":"class","members":{}},"UserIdleModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"imports":[]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"UserIdleModule"},"providers":[{"provide":{"__symbolic":"reference","name":"UserIdleConfig"},"useValue":{"__symbolic":"reference","name":"config"}}]}}}}},"origins":{"UserIdleService":"./lib/angular-user-idle.service","UserIdleConfig":"./lib/angular-user-idle.config","UserIdleModule":"./lib/angular-user-idle.module"},"importAs":"angular-user-idle"} | ||
{"__symbolic":"module","version":4,"metadata":{"UserIdleService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":75,"character":15}}],null],"parameters":[{"__symbolic":"reference","name":"UserIdleConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":75,"character":67}]}],"startWatching":[{"__symbolic":"method"}],"stopWatching":[{"__symbolic":"method"}],"stopTimer":[{"__symbolic":"method"}],"resetTimer":[{"__symbolic":"method"}],"onTimerStart":[{"__symbolic":"method"}],"onIdleStatusChanged":[{"__symbolic":"method"}],"onTimeout":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"setConfigValues":[{"__symbolic":"method"}],"setConfig":[{"__symbolic":"method"}],"setCustomActivityEvents":[{"__symbolic":"method"}],"setupTimer":[{"__symbolic":"method"}],"setupPing":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"UserIdleConfig":{"__symbolic":"class","members":{}},"UserIdleModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"imports":[]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"UserIdleModule"},"providers":[{"provide":{"__symbolic":"reference","name":"UserIdleConfig"},"useValue":{"__symbolic":"reference","name":"config"}}]}}}}},"origins":{"UserIdleService":"./lib/angular-user-idle.service","UserIdleConfig":"./lib/angular-user-idle.config","UserIdleModule":"./lib/angular-user-idle.module"},"importAs":"angular-user-idle"} |
@@ -297,6 +297,9 @@ (function (global, factory) { | ||
this._ngZone.runOutsideAngular(function () { | ||
_this.timer$ = rxjs.interval(1000).pipe(operators.take(timeout), operators.map(function () { return 1; }), operators.scan(function (acc, n) { return acc + n; }), operators.tap(function (count) { | ||
if (count === timeout) { | ||
_this.timeout$.next(true); | ||
} | ||
_this.timer$ = rxjs.of(new Date()).pipe(operators.switchMap(function (startDate) { | ||
return rxjs.interval(1000).pipe(operators.map(function () { return Math.round((new Date().valueOf() - startDate.valueOf()) / 1000); }), // convert elapsed count to seconds | ||
operators.tap(function (elapsed) { | ||
if (elapsed >= timeout) { | ||
_this.timeout$.next(true); | ||
} | ||
})); | ||
})); | ||
@@ -396,2 +399,2 @@ }); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS50cyIsIm5nOi8vYW5ndWxhci11c2VyLWlkbGUvbGliL2FuZ3VsYXItdXNlci1pZGxlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlcklkbGVDb25maWcge1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nPzogbnVtYmVyO1xuICAvKipcbiAgICogSWRsZVNlbnNpdGl2aXR5IHRpbWUgdGhhdCBhY3Rpdml0eSBtdXN0IHJlbWFpbiBiZWxvdyB0aGUgaWRsZSBkZXRlY3Rpb24gdGhyZXNob2xkIGJlZm9yZVxuICAgKiBpZGxlIGJ1ZmZlciB0aW1lciBjb3VudCB1c2VyJ3MgYWN0aXZpdHkgYWN0aW9ucywgaW4gc2Vjb25kcy5cbiAgICovXG4gIGlkbGVTZW5zaXRpdml0eT86IG51bWJlcjtcbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb20sXG4gIGZyb21FdmVudCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNjYW4sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGVEZXRlY3RlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZU1pbGxpc2VjID0gNjAwICogMTAwMDtcbiAgLyoqXG4gICAqIElkbGUgYnVmZmVyIHdhaXQgdGltZSBtaWxsaXNlY29uZHMgdG8gY29sbGVjdCB1c2VyIGFjdGlvblxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxIFNlYy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyA9IDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nTWlsbGlzZWMgPSAxMjAgKiAxMDAwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICghdGhpcy5hY3Rpdml0eUV2ZW50cyQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuXG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMpLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaWRsZURldGVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZU1pbGxpc2VjKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nTWlsbGlzZWMpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciBpZGxlIHN0YXR1cyBjaGFuZ2VkXG4gICAqL1xuICBvbklkbGVTdGF0dXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlkbGVEZXRlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlTWlsbGlzZWMgLyAxMDAwLFxuICAgICAgaWRsZVNlbnNpdGl2aXR5OiB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjIC8gMTAwMCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ01pbGxpc2VjIC8gMTAwMFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWcoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlTWlsbGlzZWMgPSBjb25maWcuaWRsZSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nTWlsbGlzZWMgPSBjb25maWcucGluZyAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcuaWRsZVNlbnNpdGl2aXR5KSB7XG4gICAgICB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gY29uZmlnLmlkbGVTZW5zaXRpdml0eSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICB0YWtlKHRpbWVvdXQpLFxuICAgICAgICBtYXAoKCkgPT4gMSksXG4gICAgICAgIHNjYW4oKGFjYywgbikgPT4gYWNjICsgbiksXG4gICAgICAgIHRhcChjb3VudCA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ID09PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdNaWxsaXNlY1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nTWlsbGlzZWM6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nTWlsbGlzZWMpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBVc2VySWRsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VXNlcklkbGVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVzZXJJZGxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBVc2VySWRsZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ31cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU3ViamVjdCIsIm1lcmdlIiwiZnJvbUV2ZW50IiwiZnJvbSIsImJ1ZmZlclRpbWUiLCJmaWx0ZXIiLCJ0YXAiLCJzd2l0Y2hNYXAiLCJpbnRlcnZhbCIsInRha2VVbnRpbCIsInRpbWVyIiwiZmluYWxpemUiLCJkaXN0aW5jdFVudGlsQ2hhbmdlZCIsIm9mIiwibWFwIiwidGFrZSIsInNjYW4iLCJJbmplY3RhYmxlIiwiT3B0aW9uYWwiLCJOZ1pvbmUiLCJOZ01vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO1FBQUE7U0FrQkM7UUFBRCxxQkFBQztJQUFELENBQUM7Ozs7OztBQ2xCRDs7O0FBNkJBO1FBZ0RFLHlCQUF3QixNQUFzQixFQUFVLE9BQWU7WUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1lBckM3RCxnQkFBVyxHQUFHLElBQUlBLFlBQU8sRUFBVyxDQUFDO1lBQ3JDLGtCQUFhLEdBQUcsSUFBSUEsWUFBTyxFQUFXLENBQUM7WUFDdkMsYUFBUSxHQUFHLElBQUlBLFlBQU8sRUFBVyxDQUFDOzs7OztZQU9sQyxpQkFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7Ozs7O1lBSzFCLDRCQUF1QixHQUFHLElBQUksQ0FBQzs7Ozs7WUFLL0IsWUFBTyxHQUFHLEdBQUcsQ0FBQzs7Ozs7WUFLZCxpQkFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFjbEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QjtTQUNGOzs7Ozs7OztRQUtELHVDQUFhOzs7O1lBQWI7Z0JBQUEsaUJBb0RDO2dCQW5EQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGVBQWUsR0FBR0MsVUFBSyxDQUMxQkMsY0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDOUJBLGNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQzNCQSxjQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUMvQixDQUFDO2lCQUNIO2dCQUVELElBQUksQ0FBQyxLQUFLLEdBQUdDLFNBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBRXhDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3JDOztnQkFHRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUs7cUJBQy9CLElBQUksQ0FDSEMsb0JBQVUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3hDQyxnQkFBTSxDQUNKLFVBQUEsR0FBRyxJQUFJLE9BQUEsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUksQ0FBQyxpQkFBaUIsR0FBQSxDQUN0RSxFQUNEQyxhQUFHLENBQUM7b0JBQ0YsS0FBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQzNCLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvQixDQUFDLEVBQ0ZDLG1CQUFTLENBQUM7b0JBQ1IsT0FBQSxLQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO3dCQUM3QixPQUFBQyxhQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNqQkMsbUJBQVMsQ0FDUFIsVUFBSyxDQUNILEtBQUksQ0FBQyxlQUFlLEVBQ3BCUyxVQUFLLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDM0JKLGFBQUcsQ0FBQzs0QkFDRixLQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDOzRCQUM5QixLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDN0IsQ0FBQyxDQUNILENBQ0YsQ0FDRixFQUNESyxrQkFBUSxDQUFDOzRCQUNQLEtBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDOzRCQUM1QixLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDaEMsQ0FBQyxDQUNIO3FCQUFBLENBQ0Y7aUJBQUEsQ0FDRixDQUNGO3FCQUNBLFNBQVMsRUFBRSxDQUFDO2dCQUVmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNuQzs7OztRQUVELHNDQUFZOzs7WUFBWjtnQkFDRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3JDO2FBQ0Y7Ozs7UUFFRCxtQ0FBUzs7O1lBQVQ7Z0JBQ0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUI7Ozs7UUFFRCxvQ0FBVTs7O1lBQVY7Z0JBQ0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQzthQUN4Qjs7Ozs7Ozs7UUFLRCxzQ0FBWTs7OztZQUFaO2dCQUFBLGlCQUtDO2dCQUpDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCQyw4QkFBb0IsRUFBRSxFQUN0QkwsbUJBQVMsQ0FBQyxVQUFBLEtBQUssSUFBSSxRQUFDLEtBQUssR0FBRyxLQUFJLENBQUMsTUFBTSxHQUFHTSxPQUFFLENBQUMsSUFBSSxDQUFDLElBQUMsQ0FBQyxDQUNyRCxDQUFDO2FBQ0g7Ozs7Ozs7O1FBS0QsNkNBQW1COzs7O1lBQW5CO2dCQUNFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMxQzs7Ozs7Ozs7UUFLRCxtQ0FBUzs7OztZQUFUO2dCQUFBLGlCQU1DO2dCQUxDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZCUixnQkFBTSxDQUFDLFVBQUEsT0FBTyxJQUFJLE9BQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQSxDQUFDLEVBQzVCQyxhQUFHLENBQUMsY0FBTSxRQUFDLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFDLENBQUMsRUFDbENRLGFBQUcsQ0FBQyxjQUFNLE9BQUEsSUFBSSxHQUFBLENBQUMsQ0FDaEIsQ0FBQzthQUNIOzs7O1FBRUQsd0NBQWM7OztZQUFkO2dCQUNFLE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSTtvQkFDOUIsZUFBZSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJO29CQUNwRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUk7aUJBQy9CLENBQUM7YUFDSDs7Ozs7Ozs7OztRQU1ELHlDQUFlOzs7OztZQUFmLFVBQWdCLE1BQXNCO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQzFELE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztvQkFDOUQsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hCOzs7Ozs7UUFFTyxtQ0FBUzs7Ozs7WUFBakIsVUFBa0IsTUFBc0I7Z0JBQ3RDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtvQkFDZixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2lCQUN4QztnQkFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFO29CQUMxQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7aUJBQzlEO2dCQUNELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO2lCQUMvQjthQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFhRCxpREFBdUI7Ozs7Ozs7Ozs7OztZQUF2QixVQUF3QixZQUE2QjtnQkFDbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO29CQUMxRCxPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7b0JBQ3ZFLE9BQU87aUJBQ1I7Z0JBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7YUFDckM7Ozs7Ozs7Ozs7Ozs7OztRQVFTLG9DQUFVOzs7Ozs7OztZQUFwQixVQUFxQixPQUFlO2dCQUFwQyxpQkFhQztnQkFaQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO29CQUM3QixLQUFJLENBQUMsTUFBTSxHQUFHTixhQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUMvQk8sY0FBSSxDQUFDLE9BQU8sQ0FBQyxFQUNiRCxhQUFHLENBQUMsY0FBTSxPQUFBLENBQUMsR0FBQSxDQUFDLEVBQ1pFLGNBQUksQ0FBQyxVQUFDLEdBQUcsRUFBRSxDQUFDLElBQUssT0FBQSxHQUFHLEdBQUcsQ0FBQyxHQUFBLENBQUMsRUFDekJWLGFBQUcsQ0FBQyxVQUFBLEtBQUs7d0JBQ1AsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFOzRCQUNyQixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDMUI7cUJBQ0YsQ0FBQyxDQUNILENBQUM7aUJBQ0gsQ0FBQyxDQUFDO2FBQ0o7Ozs7Ozs7Ozs7Ozs7OztRQVFTLG1DQUFTOzs7Ozs7OztZQUFuQixVQUFvQixZQUFvQjtnQkFBeEMsaUJBRUM7Z0JBREMsSUFBSSxDQUFDLEtBQUssR0FBR0UsYUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQ0gsZ0JBQU0sQ0FBQyxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsU0FBUyxHQUFBLENBQUMsQ0FBQyxDQUFDO2FBQ3pFOztvQkFsUEZZLGFBQVUsU0FBQzt3QkFDVixVQUFVLEVBQUUsTUFBTTtxQkFDbkI7Ozs7O3dCQVBRLGNBQWMsdUJBcURSQyxXQUFRO3dCQTdFRkMsU0FBTTs7Ozs4QkFBM0I7S0FnUkM7Ozs7OztBQ2hSRDtRQUdBO1NBWUM7Ozs7O1FBUlEsc0JBQU87Ozs7WUFBZCxVQUFlLE1BQXNCO2dCQUNuQyxPQUFPO29CQUNMLFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUU7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7cUJBQzVDO2lCQUNGLENBQUM7YUFDSDs7b0JBWEZDLFdBQVEsU0FBQzt3QkFDUixPQUFPLEVBQUUsRUFBRTtxQkFDWjs7UUFVRCxxQkFBQztLQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS50cyIsIm5nOi8vYW5ndWxhci11c2VyLWlkbGUvbGliL2FuZ3VsYXItdXNlci1pZGxlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlcklkbGVDb25maWcge1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nPzogbnVtYmVyO1xuICAvKipcbiAgICogSWRsZVNlbnNpdGl2aXR5IHRpbWUgdGhhdCBhY3Rpdml0eSBtdXN0IHJlbWFpbiBiZWxvdyB0aGUgaWRsZSBkZXRlY3Rpb24gdGhyZXNob2xkIGJlZm9yZVxuICAgKiBpZGxlIGJ1ZmZlciB0aW1lciBjb3VudCB1c2VyJ3MgYWN0aXZpdHkgYWN0aW9ucywgaW4gc2Vjb25kcy5cbiAgICovXG4gIGlkbGVTZW5zaXRpdml0eT86IG51bWJlcjtcbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb20sXG4gIGZyb21FdmVudCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGVEZXRlY3RlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZU1pbGxpc2VjID0gNjAwICogMTAwMDtcbiAgLyoqXG4gICAqIElkbGUgYnVmZmVyIHdhaXQgdGltZSBtaWxsaXNlY29uZHMgdG8gY29sbGVjdCB1c2VyIGFjdGlvblxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxIFNlYy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyA9IDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nTWlsbGlzZWMgPSAxMjAgKiAxMDAwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICghdGhpcy5hY3Rpdml0eUV2ZW50cyQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuXG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMpLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaWRsZURldGVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZU1pbGxpc2VjKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nTWlsbGlzZWMpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciBpZGxlIHN0YXR1cyBjaGFuZ2VkXG4gICAqL1xuICBvbklkbGVTdGF0dXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlkbGVEZXRlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlTWlsbGlzZWMgLyAxMDAwLFxuICAgICAgaWRsZVNlbnNpdGl2aXR5OiB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjIC8gMTAwMCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ01pbGxpc2VjIC8gMTAwMFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWcoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlTWlsbGlzZWMgPSBjb25maWcuaWRsZSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nTWlsbGlzZWMgPSBjb25maWcucGluZyAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcuaWRsZVNlbnNpdGl2aXR5KSB7XG4gICAgICB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gY29uZmlnLmlkbGVTZW5zaXRpdml0eSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBvZihuZXcgRGF0ZSgpKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc3RhcnREYXRlID0+IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IE1hdGgucm91bmQoKG5ldyBEYXRlKCkudmFsdWVPZigpIC0gc3RhcnREYXRlLnZhbHVlT2YoKSkgLyAxMDAwKSksICAvLyAgIGNvbnZlcnQgZWxhcHNlZCBjb3VudCB0byBzZWNvbmRzXG4gICAgICAgICAgdGFwKGVsYXBzZWQgPT4ge1xuICAgICAgICAgICAgaWYgKGVsYXBzZWQgPj0gdGltZW91dCkge1xuICAgICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICApKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdNaWxsaXNlY1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nTWlsbGlzZWM6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nTWlsbGlzZWMpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBVc2VySWRsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VXNlcklkbGVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVzZXJJZGxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBVc2VySWRsZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ31cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU3ViamVjdCIsIm1lcmdlIiwiZnJvbUV2ZW50IiwiZnJvbSIsImJ1ZmZlclRpbWUiLCJmaWx0ZXIiLCJ0YXAiLCJzd2l0Y2hNYXAiLCJpbnRlcnZhbCIsInRha2VVbnRpbCIsInRpbWVyIiwiZmluYWxpemUiLCJkaXN0aW5jdFVudGlsQ2hhbmdlZCIsIm9mIiwibWFwIiwiSW5qZWN0YWJsZSIsIk9wdGlvbmFsIiwiTmdab25lIiwiTmdNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtRQUFBO1NBa0JDO1FBQUQscUJBQUM7SUFBRCxDQUFDOzs7Ozs7QUNsQkQ7OztBQTJCQTtRQWdERSx5QkFBd0IsTUFBc0IsRUFBVSxPQUFlO1lBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtZQXJDN0QsZ0JBQVcsR0FBRyxJQUFJQSxZQUFPLEVBQVcsQ0FBQztZQUNyQyxrQkFBYSxHQUFHLElBQUlBLFlBQU8sRUFBVyxDQUFDO1lBQ3ZDLGFBQVEsR0FBRyxJQUFJQSxZQUFPLEVBQVcsQ0FBQzs7Ozs7WUFPbEMsaUJBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDOzs7OztZQUsxQiw0QkFBdUIsR0FBRyxJQUFJLENBQUM7Ozs7O1lBSy9CLFlBQU8sR0FBRyxHQUFHLENBQUM7Ozs7O1lBS2QsaUJBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBY2xDLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEI7U0FDRjs7Ozs7Ozs7UUFLRCx1Q0FBYTs7OztZQUFiO2dCQUFBLGlCQW9EQztnQkFuREMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUdDLFVBQUssQ0FDMUJDLGNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQzlCQSxjQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUMzQkEsY0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDL0IsQ0FBQztpQkFDSDtnQkFFRCxJQUFJLENBQUMsS0FBSyxHQUFHQyxTQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGdCQUFnQixD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 |
@@ -1,2 +0,2 @@ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("angular-user-idle",["exports","@angular/core","rxjs","rxjs/operators"],e):e(t["angular-user-idle"]={},t.ng.core,null,t.Rx.Observable.prototype)}(this,function(t,i,n,o){"use strict";var r=function(){},e=function(){function t(t,e){this._ngZone=e,this.timerStart$=new n.Subject,this.idleDetected$=new n.Subject,this.timeout$=new n.Subject,this.idleMillisec=6e5,this.idleSensitivityMillisec=1e3,this.timeout=300,this.pingMillisec=12e4,t&&this.setConfig(t)}return t.prototype.startWatching=function(){var e=this;this.activityEvents$||(this.activityEvents$=n.merge(n.fromEvent(window,"mousemove"),n.fromEvent(window,"resize"),n.fromEvent(document,"keydown"))),this.idle$=n.from(this.activityEvents$),this.idleSubscription&&this.idleSubscription.unsubscribe(),this.idleSubscription=this.idle$.pipe(o.bufferTime(this.idleSensitivityMillisec),o.filter(function(t){return!t.length&&!e.isIdleDetected&&!e.isInactivityTimer}),o.tap(function(){e.isIdleDetected=!0,e.idleDetected$.next(!0)}),o.switchMap(function(){return e._ngZone.runOutsideAngular(function(){return n.interval(1e3).pipe(o.takeUntil(n.merge(e.activityEvents$,n.timer(e.idleMillisec).pipe(o.tap(function(){e.isInactivityTimer=!0,e.timerStart$.next(!0)})))),o.finalize(function(){e.isIdleDetected=!1,e.idleDetected$.next(!1)}))})})).subscribe(),this.setupTimer(this.timeout),this.setupPing(this.pingMillisec)},t.prototype.stopWatching=function(){this.stopTimer(),this.idleSubscription&&this.idleSubscription.unsubscribe()},t.prototype.stopTimer=function(){this.isInactivityTimer=!1,this.timerStart$.next(!1)},t.prototype.resetTimer=function(){this.stopTimer(),this.isTimeout=!1},t.prototype.onTimerStart=function(){var e=this;return this.timerStart$.pipe(o.distinctUntilChanged(),o.switchMap(function(t){return t?e.timer$:n.of(null)}))},t.prototype.onIdleStatusChanged=function(){return this.idleDetected$.asObservable()},t.prototype.onTimeout=function(){var t=this;return this.timeout$.pipe(o.filter(function(t){return!!t}),o.tap(function(){return t.isTimeout=!0}),o.map(function(){return!0}))},t.prototype.getConfigValue=function(){return{idle:this.idleMillisec/1e3,idleSensitivity:this.idleSensitivityMillisec/1e3,timeout:this.timeout,ping:this.pingMillisec/1e3}},t.prototype.setConfigValues=function(t){!this.idleSubscription||this.idleSubscription.closed?this.setConfig(t):console.error("Call stopWatching() before set config values")},t.prototype.setConfig=function(t){t.idle&&(this.idleMillisec=1e3*t.idle),t.ping&&(this.pingMillisec=1e3*t.ping),t.idleSensitivity&&(this.idleSensitivityMillisec=1e3*t.idleSensitivity),t.timeout&&(this.timeout=t.timeout)},t.prototype.setCustomActivityEvents=function(t){!this.idleSubscription||this.idleSubscription.closed?this.activityEvents$=t:console.error("Call stopWatching() before set custom activity events")},t.prototype.setupTimer=function(e){var i=this;this._ngZone.runOutsideAngular(function(){i.timer$=n.interval(1e3).pipe(o.take(e),o.map(function(){return 1}),o.scan(function(t,e){return t+e}),o.tap(function(t){t===e&&i.timeout$.next(!0)}))})},t.prototype.setupPing=function(t){var e=this;this.ping$=n.interval(t).pipe(o.filter(function(){return!e.isTimeout}))},t.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:r,decorators:[{type:i.Optional}]},{type:i.NgZone}]},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(r,8),i.inject(i.NgZone))},token:t,providedIn:"root"}),t}(),s=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:r,useValue:t}]}},e.decorators=[{type:i.NgModule,args:[{imports:[]}]}],e}();t.UserIdleService=e,t.UserIdleConfig=r,t.UserIdleModule=s,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("angular-user-idle",["exports","@angular/core","rxjs","rxjs/operators"],e):e(t["angular-user-idle"]={},t.ng.core,null,t.Rx.Observable.prototype)}(this,function(t,i,n,o){"use strict";var r=function(){},e=function(){function t(t,e){this._ngZone=e,this.timerStart$=new n.Subject,this.idleDetected$=new n.Subject,this.timeout$=new n.Subject,this.idleMillisec=6e5,this.idleSensitivityMillisec=1e3,this.timeout=300,this.pingMillisec=12e4,t&&this.setConfig(t)}return t.prototype.startWatching=function(){var e=this;this.activityEvents$||(this.activityEvents$=n.merge(n.fromEvent(window,"mousemove"),n.fromEvent(window,"resize"),n.fromEvent(document,"keydown"))),this.idle$=n.from(this.activityEvents$),this.idleSubscription&&this.idleSubscription.unsubscribe(),this.idleSubscription=this.idle$.pipe(o.bufferTime(this.idleSensitivityMillisec),o.filter(function(t){return!t.length&&!e.isIdleDetected&&!e.isInactivityTimer}),o.tap(function(){e.isIdleDetected=!0,e.idleDetected$.next(!0)}),o.switchMap(function(){return e._ngZone.runOutsideAngular(function(){return n.interval(1e3).pipe(o.takeUntil(n.merge(e.activityEvents$,n.timer(e.idleMillisec).pipe(o.tap(function(){e.isInactivityTimer=!0,e.timerStart$.next(!0)})))),o.finalize(function(){e.isIdleDetected=!1,e.idleDetected$.next(!1)}))})})).subscribe(),this.setupTimer(this.timeout),this.setupPing(this.pingMillisec)},t.prototype.stopWatching=function(){this.stopTimer(),this.idleSubscription&&this.idleSubscription.unsubscribe()},t.prototype.stopTimer=function(){this.isInactivityTimer=!1,this.timerStart$.next(!1)},t.prototype.resetTimer=function(){this.stopTimer(),this.isTimeout=!1},t.prototype.onTimerStart=function(){var e=this;return this.timerStart$.pipe(o.distinctUntilChanged(),o.switchMap(function(t){return t?e.timer$:n.of(null)}))},t.prototype.onIdleStatusChanged=function(){return this.idleDetected$.asObservable()},t.prototype.onTimeout=function(){var t=this;return this.timeout$.pipe(o.filter(function(t){return!!t}),o.tap(function(){return t.isTimeout=!0}),o.map(function(){return!0}))},t.prototype.getConfigValue=function(){return{idle:this.idleMillisec/1e3,idleSensitivity:this.idleSensitivityMillisec/1e3,timeout:this.timeout,ping:this.pingMillisec/1e3}},t.prototype.setConfigValues=function(t){!this.idleSubscription||this.idleSubscription.closed?this.setConfig(t):console.error("Call stopWatching() before set config values")},t.prototype.setConfig=function(t){t.idle&&(this.idleMillisec=1e3*t.idle),t.ping&&(this.pingMillisec=1e3*t.ping),t.idleSensitivity&&(this.idleSensitivityMillisec=1e3*t.idleSensitivity),t.timeout&&(this.timeout=t.timeout)},t.prototype.setCustomActivityEvents=function(t){!this.idleSubscription||this.idleSubscription.closed?this.activityEvents$=t:console.error("Call stopWatching() before set custom activity events")},t.prototype.setupTimer=function(e){var i=this;this._ngZone.runOutsideAngular(function(){i.timer$=n.of(new Date).pipe(o.switchMap(function(t){return n.interval(1e3).pipe(o.map(function(){return Math.round(((new Date).valueOf()-t.valueOf())/1e3)}),o.tap(function(t){e<=t&&i.timeout$.next(!0)}))}))})},t.prototype.setupPing=function(t){var e=this;this.ping$=n.interval(t).pipe(o.filter(function(){return!e.isTimeout}))},t.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:r,decorators:[{type:i.Optional}]},{type:i.NgZone}]},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(r,8),i.inject(i.NgZone))},token:t,providedIn:"root"}),t}(),s=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:r,useValue:t}]}},e.decorators=[{type:i.NgModule,args:[{imports:[]}]}],e}();t.UserIdleService=e,t.UserIdleConfig=r,t.UserIdleModule=s,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=angular-user-idle.umd.min.js.map |
@@ -7,3 +7,3 @@ /** | ||
import { from, fromEvent, interval, merge, of, Subject, timer } from 'rxjs'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators'; | ||
import { UserIdleConfig } from './angular-user-idle.config'; | ||
@@ -193,7 +193,8 @@ import * as i0 from "@angular/core"; | ||
this._ngZone.runOutsideAngular(() => { | ||
this.timer$ = interval(1000).pipe(take(timeout), map(() => 1), scan((acc, n) => acc + n), tap(count => { | ||
if (count === timeout) { | ||
this.timer$ = of(new Date()).pipe(switchMap(startDate => interval(1000).pipe(map(() => Math.round((new Date().valueOf() - startDate.valueOf()) / 1000)), // convert elapsed count to seconds | ||
tap(elapsed => { | ||
if (elapsed >= timeout) { | ||
this.timeout$.next(true); | ||
} | ||
})); | ||
})))); | ||
}); | ||
@@ -314,2 +315,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUVMLEVBQUUsRUFDRixPQUFPLEVBRVAsS0FBSyxFQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBUTVELE1BQU0sT0FBTyxlQUFlOzs7OztJQTZDMUIsWUFBd0IsTUFBc0IsRUFBVSxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXJDN0QsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQzs7Ozs7UUFPbEMsaUJBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDOzs7OztRQUsxQiw0QkFBdUIsR0FBRyxJQUFJLENBQUM7Ozs7O1FBSy9CLFlBQU8sR0FBRyxHQUFHLENBQUM7Ozs7O1FBS2QsaUJBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBY2xDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FB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Q0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7Ozs7O0lBUVMsU0FBUyxDQUFDLFlBQW9CO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDOzs7WUFsUEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBUFEsY0FBYyx1QkFxRFIsUUFBUTtZQTdFRixNQUFNOzs7OztJQWlDekIsZ0NBQXVCOzs7Ozs7SUFLdkIsMENBQTJDOzs7OztJQUUzQyxzQ0FBK0M7Ozs7O0lBQy9DLHdDQUFpRDs7Ozs7SUFDakQsbUNBQTRDOzs7OztJQUM1QyxnQ0FBaUM7Ozs7O0lBQ2pDLGlDQUFrQzs7Ozs7OztJQUtsQyx1Q0FBb0M7Ozs7Ozs7SUFLcEMsa0RBQXlDOzs7Ozs7O0lBS3pDLGtDQUF3Qjs7Ozs7OztJQUt4Qix1Q0FBb0M7Ozs7OztJQUlwQyxvQ0FBNkI7Ozs7OztJQUk3Qiw0Q0FBcUM7Ozs7O0lBQ3JDLHlDQUFrQzs7Ozs7SUFFbEMsMkNBQXlDOzs7OztJQUVPLGtDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb20sXG4gIGZyb21FdmVudCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNjYW4sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGVEZXRlY3RlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZU1pbGxpc2VjID0gNjAwICogMTAwMDtcbiAgLyoqXG4gICAqIElkbGUgYnVmZmVyIHdhaXQgdGltZSBtaWxsaXNlY29uZHMgdG8gY29sbGVjdCB1c2VyIGFjdGlvblxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxIFNlYy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyA9IDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nTWlsbGlzZWMgPSAxMjAgKiAxMDAwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICghdGhpcy5hY3Rpdml0eUV2ZW50cyQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuXG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMpLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaWRsZURldGVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZU1pbGxpc2VjKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nTWlsbGlzZWMpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciBpZGxlIHN0YXR1cyBjaGFuZ2VkXG4gICAqL1xuICBvbklkbGVTdGF0dXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlkbGVEZXRlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlTWlsbGlzZWMgLyAxMDAwLFxuICAgICAgaWRsZVNlbnNpdGl2aXR5OiB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjIC8gMTAwMCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ01pbGxpc2VjIC8gMTAwMFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWcoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlTWlsbGlzZWMgPSBjb25maWcuaWRsZSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nTWlsbGlzZWMgPSBjb25maWcucGluZyAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcuaWRsZVNlbnNpdGl2aXR5KSB7XG4gICAgICB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gY29uZmlnLmlkbGVTZW5zaXRpdml0eSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICB0YWtlKHRpbWVvdXQpLFxuICAgICAgICBtYXAoKCkgPT4gMSksXG4gICAgICAgIHNjYW4oKGFjYywgbikgPT4gYWNjICsgbiksXG4gICAgICAgIHRhcChjb3VudCA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ID09PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdNaWxsaXNlY1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nTWlsbGlzZWM6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nTWlsbGlzZWMpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUVMLEVBQUUsRUFDRixPQUFPLEVBRVAsS0FBSyxFQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVE1RCxNQUFNLE9BQU8sZUFBZTs7Ozs7SUE2QzFCLFlBQXdCLE1BQXNCLEVBQVUsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFyQzdELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7Ozs7O1FBT2xDLGlCQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQzs7Ozs7UUFLMUIsNEJBQXVCLEdBQUcsSUFBSSxDQUFDOzs7OztRQUsvQixZQUFPLEdBQUcsR0FBRyxDQUFDOzs7OztRQUtkLGlCQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQWNsQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7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QUFFO29CQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUI7WUFDSCxDQUFDLENBQUMsQ0FDRCxDQUNGLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7Ozs7O0lBUVMsU0FBUyxDQUFDLFlBQW9CO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDOzs7WUFsUEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBUFEsY0FBYyx1QkFxRFIsUUFBUTtZQTNFRixNQUFNOzs7OztJQStCekIsZ0NBQXVCOzs7Ozs7SUFLdkIsMENBQTJDOzs7OztJQUUzQyxzQ0FBK0M7Ozs7O0lBQy9DLHdDQUFpRDs7Ozs7SUFDakQsbUNBQTRDOzs7OztJQUM1QyxnQ0FBaUM7Ozs7O0lBQ2pDLGlDQUFrQzs7Ozs7OztJQUtsQyx1Q0FBb0M7Ozs7Ozs7SUFLcEMsa0RBQXlDOzs7Ozs7O0lBS3pDLGtDQUF3Qjs7Ozs7OztJQUt4Qix1Q0FBb0M7Ozs7OztJQUlwQyxvQ0FBNkI7Ozs7OztJQUk3Qiw0Q0FBcUM7Ozs7O0lBQ3JDLHlDQUFrQzs7Ozs7SUFFbEMsMkNBQXlDOzs7OztJQUVPLGtDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb20sXG4gIGZyb21FdmVudCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGVEZXRlY3RlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZU1pbGxpc2VjID0gNjAwICogMTAwMDtcbiAgLyoqXG4gICAqIElkbGUgYnVmZmVyIHdhaXQgdGltZSBtaWxsaXNlY29uZHMgdG8gY29sbGVjdCB1c2VyIGFjdGlvblxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxIFNlYy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyA9IDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nTWlsbGlzZWMgPSAxMjAgKiAxMDAwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICghdGhpcy5hY3Rpdml0eUV2ZW50cyQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuXG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMpLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaWRsZURldGVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZU1pbGxpc2VjKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nTWlsbGlzZWMpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciBpZGxlIHN0YXR1cyBjaGFuZ2VkXG4gICAqL1xuICBvbklkbGVTdGF0dXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlkbGVEZXRlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlTWlsbGlzZWMgLyAxMDAwLFxuICAgICAgaWRsZVNlbnNpdGl2aXR5OiB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjIC8gMTAwMCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ01pbGxpc2VjIC8gMTAwMFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWcoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlTWlsbGlzZWMgPSBjb25maWcuaWRsZSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nTWlsbGlzZWMgPSBjb25maWcucGluZyAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcuaWRsZVNlbnNpdGl2aXR5KSB7XG4gICAgICB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gY29uZmlnLmlkbGVTZW5zaXRpdml0eSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBvZihuZXcgRGF0ZSgpKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc3RhcnREYXRlID0+IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IE1hdGgucm91bmQoKG5ldyBEYXRlKCkudmFsdWVPZigpIC0gc3RhcnREYXRlLnZhbHVlT2YoKSkgLyAxMDAwKSksICAvLyAgIGNvbnZlcnQgZWxhcHNlZCBjb3VudCB0byBzZWNvbmRzXG4gICAgICAgICAgdGFwKGVsYXBzZWQgPT4ge1xuICAgICAgICAgICAgaWYgKGVsYXBzZWQgPj0gdGltZW91dCkge1xuICAgICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICApKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdNaWxsaXNlY1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nTWlsbGlzZWM6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nTWlsbGlzZWMpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iXX0= |
@@ -7,3 +7,3 @@ /** | ||
import { from, fromEvent, interval, merge, of, Subject, timer } from 'rxjs'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators'; | ||
import { UserIdleConfig } from './angular-user-idle.config'; | ||
@@ -288,7 +288,8 @@ import * as i0 from "@angular/core"; | ||
this._ngZone.runOutsideAngular(function () { | ||
_this.timer$ = interval(1000).pipe(take(timeout), map(function () { return 1; }), scan(function (acc, n) { return acc + n; }), tap(function (count) { | ||
if (count === timeout) { | ||
_this.timer$ = of(new Date()).pipe(switchMap(function (startDate) { return interval(1000).pipe(map(function () { return Math.round((new Date().valueOf() - startDate.valueOf()) / 1000); }), // convert elapsed count to seconds | ||
tap(function (elapsed) { | ||
if (elapsed >= timeout) { | ||
_this.timeout$.next(true); | ||
} | ||
})); | ||
})); })); | ||
}); | ||
@@ -426,2 +427,2 @@ }; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUVMLEVBQUUsRUFDRixPQUFPLEVBRVAsS0FBSyxFQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBSzVEO0lBZ0RFLHlCQUF3QixNQUFzQixFQUFVLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBckM3RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDckMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDOzs7OztRQU9sQyxpQkFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7Ozs7O1FBSzFCLDRCQUF1QixHQUFHLElBQUksQ0FBQzs7Ozs7UUFLL0IsWUFBTyxHQUFHLEdBQUcsQ0FBQzs7Ozs7UUFLZCxpQkFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFjbEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJ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SUFFbEMsMkNBQXlDOzs7OztJQUVPLGtDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb20sXG4gIGZyb21FdmVudCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNjYW4sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGVEZXRlY3RlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZU1pbGxpc2VjID0gNjAwICogMTAwMDtcbiAgLyoqXG4gICAqIElkbGUgYnVmZmVyIHdhaXQgdGltZSBtaWxsaXNlY29uZHMgdG8gY29sbGVjdCB1c2VyIGFjdGlvblxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxIFNlYy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyA9IDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nTWlsbGlzZWMgPSAxMjAgKiAxMDAwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICghdGhpcy5hY3Rpdml0eUV2ZW50cyQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuXG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMpLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaWRsZURldGVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZU1pbGxpc2VjKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nTWlsbGlzZWMpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciBpZGxlIHN0YXR1cyBjaGFuZ2VkXG4gICAqL1xuICBvbklkbGVTdGF0dXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlkbGVEZXRlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlTWlsbGlzZWMgLyAxMDAwLFxuICAgICAgaWRsZVNlbnNpdGl2aXR5OiB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjIC8gMTAwMCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ01pbGxpc2VjIC8gMTAwMFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWcoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlTWlsbGlzZWMgPSBjb25maWcuaWRsZSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nTWlsbGlzZWMgPSBjb25maWcucGluZyAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcuaWRsZVNlbnNpdGl2aXR5KSB7XG4gICAgICB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gY29uZmlnLmlkbGVTZW5zaXRpdml0eSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICB0YWtlKHRpbWVvdXQpLFxuICAgICAgICBtYXAoKCkgPT4gMSksXG4gICAgICAgIHNjYW4oKGFjYywgbikgPT4gYWNjICsgbiksXG4gICAgICAgIHRhcChjb3VudCA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ID09PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdNaWxsaXNlY1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nTWlsbGlzZWM6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nTWlsbGlzZWMpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUVMLEVBQUUsRUFDRixPQUFPLEVBRVAsS0FBSyxFQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQUs1RDtJQWdERSx5QkFBd0IsTUFBc0IsRUFBVSxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXJDN0QsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQzs7Ozs7UUFPbEMsaUJBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDOzs7OztRQUsxQiw0QkFBdUIsR0FBRyxJQUFJLENBQUM7Ozs7O1FBSy9CLFlBQU8sR0FBRyxHQUFHLENBQUM7Ozs7O1FBS2QsaUJBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBY2xDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSCx1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S3pDLGtDQUF3Qjs7Ozs7OztJQUt4Qix1Q0FBb0M7Ozs7OztJQUlwQyxvQ0FBNkI7Ozs7OztJQUk3Qiw0Q0FBcUM7Ozs7O0lBQ3JDLHlDQUFrQzs7Ozs7SUFFbEMsMkNBQXlDOzs7OztJQUVPLGtDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZyb20sXG4gIGZyb21FdmVudCxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0aW1lclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGVEZXRlY3RlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZU1pbGxpc2VjID0gNjAwICogMTAwMDtcbiAgLyoqXG4gICAqIElkbGUgYnVmZmVyIHdhaXQgdGltZSBtaWxsaXNlY29uZHMgdG8gY29sbGVjdCB1c2VyIGFjdGlvblxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxIFNlYy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyA9IDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nTWlsbGlzZWMgPSAxMjAgKiAxMDAwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICghdGhpcy5hY3Rpdml0eUV2ZW50cyQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuXG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMpLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaWRsZURldGVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZU1pbGxpc2VjKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nTWlsbGlzZWMpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciBpZGxlIHN0YXR1cyBjaGFuZ2VkXG4gICAqL1xuICBvbklkbGVTdGF0dXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlkbGVEZXRlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlTWlsbGlzZWMgLyAxMDAwLFxuICAgICAgaWRsZVNlbnNpdGl2aXR5OiB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjIC8gMTAwMCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ01pbGxpc2VjIC8gMTAwMFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWcoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlTWlsbGlzZWMgPSBjb25maWcuaWRsZSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nTWlsbGlzZWMgPSBjb25maWcucGluZyAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcuaWRsZVNlbnNpdGl2aXR5KSB7XG4gICAgICB0aGlzLmlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gY29uZmlnLmlkbGVTZW5zaXRpdml0eSAqIDEwMDA7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBvZihuZXcgRGF0ZSgpKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc3RhcnREYXRlID0+IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IE1hdGgucm91bmQoKG5ldyBEYXRlKCkudmFsdWVPZigpIC0gc3RhcnREYXRlLnZhbHVlT2YoKSkgLyAxMDAwKSksICAvLyAgIGNvbnZlcnQgZWxhcHNlZCBjb3VudCB0byBzZWNvbmRzXG4gICAgICAgICAgdGFwKGVsYXBzZWQgPT4ge1xuICAgICAgICAgICAgaWYgKGVsYXBzZWQgPj0gdGltZW91dCkge1xuICAgICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICApKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdNaWxsaXNlY1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nTWlsbGlzZWM6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nTWlsbGlzZWMpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iXX0= |
import { Injectable, NgZone, Optional, NgModule, defineInjectable, inject } from '@angular/core'; | ||
import { from, fromEvent, interval, merge, of, Subject, timer } from 'rxjs'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators'; | ||
@@ -197,7 +197,8 @@ /** | ||
this._ngZone.runOutsideAngular(() => { | ||
this.timer$ = interval(1000).pipe(take(timeout), map(() => 1), scan((acc, n) => acc + n), tap(count => { | ||
if (count === timeout) { | ||
this.timer$ = of(new Date()).pipe(switchMap(startDate => interval(1000).pipe(map(() => Math.round((new Date().valueOf() - startDate.valueOf()) / 1000)), // convert elapsed count to seconds | ||
tap(elapsed => { | ||
if (elapsed >= timeout) { | ||
this.timeout$.next(true); | ||
} | ||
})); | ||
})))); | ||
}); | ||
@@ -265,2 +266,2 @@ } | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlPzogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHBpbmc/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJZGxlU2Vuc2l0aXZpdHkgdGltZSB0aGF0IGFjdGl2aXR5IG11c3QgcmVtYWluIGJlbG93IHRoZSBpZGxlIGRldGVjdGlvbiB0aHJlc2hvbGQgYmVmb3JlXG4gICAqIGlkbGUgYnVmZmVyIHRpbWVyIGNvdW50IHVzZXIncyBhY3Rpdml0eSBhY3Rpb25zLCBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZVNlbnNpdGl2aXR5PzogbnVtYmVyO1xufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZnJvbSxcbiAgZnJvbUV2ZW50LFxuICBpbnRlcnZhbCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHRpbWVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZURldGVjdGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlTWlsbGlzZWMgPSA2MDAgKiAxMDAwO1xuICAvKipcbiAgICogSWRsZSBidWZmZXIgd2FpdCB0aW1lIG1pbGxpc2Vjb25kcyB0byBjb2xsZWN0IHVzZXIgYWN0aW9uXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEgU2VjLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gMTAwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmdNaWxsaXNlYyA9IDEyMCAqIDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5RXZlbnRzJCkge1xuICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG5cbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUodGhpcy5pZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSWRsZURldGVjdGVkICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0lkbGVEZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgIGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlTWlsbGlzZWMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlkbGVEZXRlY3RlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldHVwVGltZXIodGhpcy50aW1lb3V0KTtcbiAgICB0aGlzLnNldHVwUGluZyh0aGlzLnBpbmdNaWxsaXNlYyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlO1xuICAgIHRoaXMudGltZXJTdGFydCQubmV4dChmYWxzZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5pc1RpbWVvdXQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZXIncyBjb3VudGRvd24gbnVtYmVyIHRoYXQgZW1pdHMgYWZ0ZXIgaWRsZS5cbiAgICovXG4gIG9uVGltZXJTdGFydCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHN0YXJ0ID0+IChzdGFydCA/IHRoaXMudGltZXIkIDogb2YobnVsbCkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIGlkbGUgc3RhdHVzIGNoYW5nZWRcbiAgICovXG4gIG9uSWRsZVN0YXR1c0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaWRsZURldGVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGVNaWxsaXNlYyAvIDEwMDAsXG4gICAgICBpZGxlU2Vuc2l0aXZpdHk6IHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgLyAxMDAwLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nTWlsbGlzZWMgLyAxMDAwXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGVNaWxsaXNlYyA9IGNvbmZpZy5pZGxlICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmdNaWxsaXNlYyA9IGNvbmZpZy5waW5nICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5pZGxlU2Vuc2l0aXZpdHkpIHtcbiAgICAgIHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgPSBjb25maWcuaWRsZVNlbnNpdGl2aXR5ICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgIHRha2UodGltZW91dCksXG4gICAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgICBpZiAoY291bnQgPT09IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ01pbGxpc2VjXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmdNaWxsaXNlYzogbnVtYmVyKSB7XG4gICAgdGhpcy5waW5nJCA9IGludGVydmFsKHBpbmdNaWxsaXNlYykucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVc2VySWRsZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQWEsY0FBYztDQWtCMUI7Ozs7OztBQ2xCRDs7O0FBZ0NBLE1BQWEsZUFBZTs7Ozs7SUE2QzFCLFlBQXdCLE1BQXNCLEVBQVUsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFyQzdELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdkMsYUFBUSxHQUFHLElBQUksT0FB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlPzogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHBpbmc/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJZGxlU2Vuc2l0aXZpdHkgdGltZSB0aGF0IGFjdGl2aXR5IG11c3QgcmVtYWluIGJlbG93IHRoZSBpZGxlIGRldGVjdGlvbiB0aHJlc2hvbGQgYmVmb3JlXG4gICAqIGlkbGUgYnVmZmVyIHRpbWVyIGNvdW50IHVzZXIncyBhY3Rpdml0eSBhY3Rpb25zLCBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZVNlbnNpdGl2aXR5PzogbnVtYmVyO1xufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZnJvbSxcbiAgZnJvbUV2ZW50LFxuICBpbnRlcnZhbCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHRpbWVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZURldGVjdGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlTWlsbGlzZWMgPSA2MDAgKiAxMDAwO1xuICAvKipcbiAgICogSWRsZSBidWZmZXIgd2FpdCB0aW1lIG1pbGxpc2Vjb25kcyB0byBjb2xsZWN0IHVzZXIgYWN0aW9uXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEgU2VjLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gMTAwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmdNaWxsaXNlYyA9IDEyMCAqIDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5RXZlbnRzJCkge1xuICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG5cbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUodGhpcy5pZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSWRsZURldGVjdGVkICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0lkbGVEZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgIGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlTWlsbGlzZWMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlkbGVEZXRlY3RlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldHVwVGltZXIodGhpcy50aW1lb3V0KTtcbiAgICB0aGlzLnNldHVwUGluZyh0aGlzLnBpbmdNaWxsaXNlYyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlO1xuICAgIHRoaXMudGltZXJTdGFydCQubmV4dChmYWxzZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5pc1RpbWVvdXQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZXIncyBjb3VudGRvd24gbnVtYmVyIHRoYXQgZW1pdHMgYWZ0ZXIgaWRsZS5cbiAgICovXG4gIG9uVGltZXJTdGFydCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHN0YXJ0ID0+IChzdGFydCA/IHRoaXMudGltZXIkIDogb2YobnVsbCkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIGlkbGUgc3RhdHVzIGNoYW5nZWRcbiAgICovXG4gIG9uSWRsZVN0YXR1c0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaWRsZURldGVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGVNaWxsaXNlYyAvIDEwMDAsXG4gICAgICBpZGxlU2Vuc2l0aXZpdHk6IHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgLyAxMDAwLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nTWlsbGlzZWMgLyAxMDAwXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGVNaWxsaXNlYyA9IGNvbmZpZy5pZGxlICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmdNaWxsaXNlYyA9IGNvbmZpZy5waW5nICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5pZGxlU2Vuc2l0aXZpdHkpIHtcbiAgICAgIHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgPSBjb25maWcuaWRsZVNlbnNpdGl2aXR5ICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IG9mKG5ldyBEYXRlKCkpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChzdGFydERhdGUgPT4gaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gTWF0aC5yb3VuZCgobmV3IERhdGUoKS52YWx1ZU9mKCkgLSBzdGFydERhdGUudmFsdWVPZigpKSAvIDEwMDApKSwgIC8vICAgY29udmVydCBlbGFwc2VkIGNvdW50IHRvIHNlY29uZHNcbiAgICAgICAgICB0YXAoZWxhcHNlZCA9PiB7XG4gICAgICAgICAgICBpZiAoZWxhcHNlZCA+PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICAgICkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ01pbGxpc2VjXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmdNaWxsaXNlYzogbnVtYmVyKSB7XG4gICAgdGhpcy5waW5nJCA9IGludGVydmFsKHBpbmdNaWxsaXNlYykucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVc2VySWRsZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQWEsY0FBYztDQWtCMUI7Ozs7OztBQ2xCRDs7O0FBOEJBLE1BQWEsZUFBZTs7Ozs7SUE2QzFCLFlBQXdCLE1BQXNCLEVBQVUsT0FBZTtRQUFmLFlBQU8sR0FBUCxP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 |
import { Injectable, NgZone, Optional, NgModule, defineInjectable, inject } from '@angular/core'; | ||
import { from, fromEvent, interval, merge, of, Subject, timer } from 'rxjs'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators'; | ||
import { bufferTime, distinctUntilChanged, filter, finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators'; | ||
@@ -295,7 +295,8 @@ /** | ||
this._ngZone.runOutsideAngular(function () { | ||
_this.timer$ = interval(1000).pipe(take(timeout), map(function () { return 1; }), scan(function (acc, n) { return acc + n; }), tap(function (count) { | ||
if (count === timeout) { | ||
_this.timer$ = of(new Date()).pipe(switchMap(function (startDate) { return interval(1000).pipe(map(function () { return Math.round((new Date().valueOf() - startDate.valueOf()) / 1000); }), // convert elapsed count to seconds | ||
tap(function (elapsed) { | ||
if (elapsed >= timeout) { | ||
_this.timeout$.next(true); | ||
} | ||
})); | ||
})); })); | ||
}); | ||
@@ -386,2 +387,2 @@ }; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlPzogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHBpbmc/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJZGxlU2Vuc2l0aXZpdHkgdGltZSB0aGF0IGFjdGl2aXR5IG11c3QgcmVtYWluIGJlbG93IHRoZSBpZGxlIGRldGVjdGlvbiB0aHJlc2hvbGQgYmVmb3JlXG4gICAqIGlkbGUgYnVmZmVyIHRpbWVyIGNvdW50IHVzZXIncyBhY3Rpdml0eSBhY3Rpb25zLCBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZVNlbnNpdGl2aXR5PzogbnVtYmVyO1xufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZnJvbSxcbiAgZnJvbUV2ZW50LFxuICBpbnRlcnZhbCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHRpbWVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZURldGVjdGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlTWlsbGlzZWMgPSA2MDAgKiAxMDAwO1xuICAvKipcbiAgICogSWRsZSBidWZmZXIgd2FpdCB0aW1lIG1pbGxpc2Vjb25kcyB0byBjb2xsZWN0IHVzZXIgYWN0aW9uXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEgU2VjLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gMTAwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmdNaWxsaXNlYyA9IDEyMCAqIDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5RXZlbnRzJCkge1xuICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG5cbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUodGhpcy5pZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSWRsZURldGVjdGVkICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0lkbGVEZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgIGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlTWlsbGlzZWMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlkbGVEZXRlY3RlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldHVwVGltZXIodGhpcy50aW1lb3V0KTtcbiAgICB0aGlzLnNldHVwUGluZyh0aGlzLnBpbmdNaWxsaXNlYyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlO1xuICAgIHRoaXMudGltZXJTdGFydCQubmV4dChmYWxzZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5pc1RpbWVvdXQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZXIncyBjb3VudGRvd24gbnVtYmVyIHRoYXQgZW1pdHMgYWZ0ZXIgaWRsZS5cbiAgICovXG4gIG9uVGltZXJTdGFydCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHN0YXJ0ID0+IChzdGFydCA/IHRoaXMudGltZXIkIDogb2YobnVsbCkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIGlkbGUgc3RhdHVzIGNoYW5nZWRcbiAgICovXG4gIG9uSWRsZVN0YXR1c0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaWRsZURldGVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGVNaWxsaXNlYyAvIDEwMDAsXG4gICAgICBpZGxlU2Vuc2l0aXZpdHk6IHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgLyAxMDAwLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nTWlsbGlzZWMgLyAxMDAwXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGVNaWxsaXNlYyA9IGNvbmZpZy5pZGxlICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmdNaWxsaXNlYyA9IGNvbmZpZy5waW5nICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5pZGxlU2Vuc2l0aXZpdHkpIHtcbiAgICAgIHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgPSBjb25maWcuaWRsZVNlbnNpdGl2aXR5ICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgIHRha2UodGltZW91dCksXG4gICAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgICBpZiAoY291bnQgPT09IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ01pbGxpc2VjXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmdNaWxsaXNlYzogbnVtYmVyKSB7XG4gICAgdGhpcy5waW5nJCA9IGludGVydmFsKHBpbmdNaWxsaXNlYykucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVc2VySWRsZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0lBQUE7S0FrQkM7SUFBRCxxQkFBQztDQUFBOzs7Ozs7QUNsQkQ7OztBQTZCQTtJQWdERSx5QkFBd0IsTUFBc0IsRUFBVSxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXJDN0QsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlPzogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHBpbmc/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJZGxlU2Vuc2l0aXZpdHkgdGltZSB0aGF0IGFjdGl2aXR5IG11c3QgcmVtYWluIGJlbG93IHRoZSBpZGxlIGRldGVjdGlvbiB0aHJlc2hvbGQgYmVmb3JlXG4gICAqIGlkbGUgYnVmZmVyIHRpbWVyIGNvdW50IHVzZXIncyBhY3Rpdml0eSBhY3Rpb25zLCBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZVNlbnNpdGl2aXR5PzogbnVtYmVyO1xufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZnJvbSxcbiAgZnJvbUV2ZW50LFxuICBpbnRlcnZhbCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHRpbWVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZURldGVjdGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlTWlsbGlzZWMgPSA2MDAgKiAxMDAwO1xuICAvKipcbiAgICogSWRsZSBidWZmZXIgd2FpdCB0aW1lIG1pbGxpc2Vjb25kcyB0byBjb2xsZWN0IHVzZXIgYWN0aW9uXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEgU2VjLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVTZW5zaXRpdml0eU1pbGxpc2VjID0gMTAwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIG1pbGxpc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmdNaWxsaXNlYyA9IDEyMCAqIDEwMDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5RXZlbnRzJCkge1xuICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG5cbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUodGhpcy5pZGxlU2Vuc2l0aXZpdHlNaWxsaXNlYyksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSWRsZURldGVjdGVkICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0lkbGVEZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pZGxlRGV0ZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgIGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlTWlsbGlzZWMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlkbGVEZXRlY3RlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldHVwVGltZXIodGhpcy50aW1lb3V0KTtcbiAgICB0aGlzLnNldHVwUGluZyh0aGlzLnBpbmdNaWxsaXNlYyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlO1xuICAgIHRoaXMudGltZXJTdGFydCQubmV4dChmYWxzZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5pc1RpbWVvdXQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZXIncyBjb3VudGRvd24gbnVtYmVyIHRoYXQgZW1pdHMgYWZ0ZXIgaWRsZS5cbiAgICovXG4gIG9uVGltZXJTdGFydCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHN0YXJ0ID0+IChzdGFydCA/IHRoaXMudGltZXIkIDogb2YobnVsbCkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIGlkbGUgc3RhdHVzIGNoYW5nZWRcbiAgICovXG4gIG9uSWRsZVN0YXR1c0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaWRsZURldGVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGVNaWxsaXNlYyAvIDEwMDAsXG4gICAgICBpZGxlU2Vuc2l0aXZpdHk6IHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgLyAxMDAwLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nTWlsbGlzZWMgLyAxMDAwXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGVNaWxsaXNlYyA9IGNvbmZpZy5pZGxlICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmdNaWxsaXNlYyA9IGNvbmZpZy5waW5nICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5pZGxlU2Vuc2l0aXZpdHkpIHtcbiAgICAgIHRoaXMuaWRsZVNlbnNpdGl2aXR5TWlsbGlzZWMgPSBjb25maWcuaWRsZVNlbnNpdGl2aXR5ICogMTAwMDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IG9mKG5ldyBEYXRlKCkpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChzdGFydERhdGUgPT4gaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gTWF0aC5yb3VuZCgobmV3IERhdGUoKS52YWx1ZU9mKCkgLSBzdGFydERhdGUudmFsdWVPZigpKSAvIDEwMDApKSwgIC8vICAgY29udmVydCBlbGFwc2VkIGNvdW50IHRvIHNlY29uZHNcbiAgICAgICAgICB0YXAoZWxhcHNlZCA9PiB7XG4gICAgICAgICAgICBpZiAoZWxhcHNlZCA+PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICAgICkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ01pbGxpc2VjXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmdNaWxsaXNlYzogbnVtYmVyKSB7XG4gICAgdGhpcy5waW5nJCA9IGludGVydmFsKHBpbmdNaWxsaXNlYykucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVc2VySWRsZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0lBQUE7S0FrQkM7SUFBRCxxQkFBQztDQUFBOzs7Ozs7QUNsQkQ7OztBQTJCQTtJQWdERSx5QkFBd0IsTUFBc0IsRUFBVSxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8s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 |
{ | ||
"name": "angular-user-idle", | ||
"version": "2.2.5", | ||
"version": "2.2.6", | ||
"description": "User's idle service for Angular 6+", | ||
@@ -12,4 +12,4 @@ "repository": { | ||
"peerDependencies": { | ||
"@angular/common": "^6.0.0 || ^11.0.0", | ||
"@angular/core": "^6.0.0 || ^11.0.0", | ||
"@angular/common": "^6.0.0 || ^12.0.0", | ||
"@angular/core": "^6.0.0 || ^12.0.0", | ||
"rxjs": "^6.0.0" | ||
@@ -16,0 +16,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
215288
2064