Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-user-idle

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-user-idle - npm Package Compare versions

Comparing version 2.0.0 to 2.1.1

2

angular-user-idle.metadata.json

@@ -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":70,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"UserIdleConfig"}]}],"startWatching":[{"__symbolic":"method"}],"stopWatching":[{"__symbolic":"method"}],"stopTimer":[{"__symbolic":"method"}],"resetTimer":[{"__symbolic":"method"}],"onTimerStart":[{"__symbolic":"method"}],"onTimeout":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"setConfigValues":[{"__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":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":15}}],null],"parameters":[{"__symbolic":"reference","name":"UserIdleConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":71,"character":67}]}],"startWatching":[{"__symbolic":"method"}],"stopWatching":[{"__symbolic":"method"}],"stopTimer":[{"__symbolic":"method"}],"resetTimer":[{"__symbolic":"method"}],"onTimerStart":[{"__symbolic":"method"}],"onTimeout":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"setConfigValues":[{"__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"}

@@ -9,5 +9,5 @@ (function (global, factory) {

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var UserIdleConfig = (function () {
var UserIdleConfig = /** @class */ (function () {
function UserIdleConfig() {

@@ -20,3 +20,3 @@ }

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -26,4 +26,5 @@ /**

*/
var UserIdleService = (function () {
function UserIdleService(config) {
var UserIdleService = /** @class */ (function () {
function UserIdleService(config, _ngZone) {
this._ngZone = _ngZone;
this.timerStart$ = new rxjs.Subject();

@@ -72,6 +73,10 @@ this.timeout$ = new rxjs.Subject();

this.idleSubscription = this.idle$
.pipe(operators.bufferTime(5000), // Starting point of detecting of user's inactivity
// Starting point of detecting of user's inactivity
operators.filter(function (arr) { return !arr.length && !_this.isInactivityTimer; }), operators.tap(function () { return _this.isInactivityTimer = true; }), operators.switchMap(function () {
return rxjs.interval(1000).pipe(operators.takeUntil(rxjs.merge(_this.activityEvents$, rxjs.timer(_this.idle * 1000).pipe(operators.tap(function () { return _this.timerStart$.next(true); })))), operators.finalize(function () { return (_this.isInactivityTimer = false); }));
.pipe(operators.bufferTime(500), // Starting point of detecting of user's inactivity
operators.filter(function (arr) { return !arr.length && !_this.isIdleDetected && !_this.isInactivityTimer; }), operators.tap(function () { return (_this.isIdleDetected = true); }), operators.switchMap(function () {
return _this._ngZone.runOutsideAngular(function () {
return rxjs.interval(1000).pipe(operators.takeUntil(rxjs.merge(_this.activityEvents$, rxjs.timer(_this.idle * 1000).pipe(operators.tap(function () {
_this.isInactivityTimer = true;
_this.timerStart$.next(true);
})))), operators.finalize(function () { return (_this.isIdleDetected = false); }));
});
}))

@@ -101,2 +106,3 @@ .subscribe();

function () {
this.isInactivityTimer = false;
this.timerStart$.next(false);

@@ -142,3 +148,3 @@ };

var _this = this;
return this.timeout$.pipe(operators.filter(function (timeout) { return !!timeout; }), operators.tap(function () { return _this.isTimeout = true; }), operators.map(function () { return true; }));
return this.timeout$.pipe(operators.filter(function (timeout) { return !!timeout; }), operators.tap(function () { return (_this.isTimeout = true); }), operators.map(function () { return true; }));
};

@@ -188,2 +194,44 @@ /**

/**
* Set custom activity events
*
* @param customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
*/
/**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
UserIdleService.prototype.setCustomActivityEvents = /**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
function (customEvents) {
if (this.idleSubscription && !this.idleSubscription.closed) {
console.error('Call stopWatching() before set custom activity events');
return;
}
this.activityEvents$ = customEvents;
};
/**
* Setup timer.

@@ -198,2 +246,3 @@ *

* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -206,2 +255,3 @@ * @return {?}

* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -212,7 +262,9 @@ * @return {?}

var _this = this;
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._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);
}
}));
});
};

@@ -229,2 +281,3 @@ /**

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -237,2 +290,3 @@ * @return {?}

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -253,6 +307,7 @@ * @return {?}

return [
{ type: UserIdleConfig, decorators: [{ type: i0.Optional },] },
{ type: UserIdleConfig, decorators: [{ type: i0.Optional }] },
{ type: i0.NgZone }
];
};
/** @nocollapse */ UserIdleService.ngInjectableDef = i0.defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(i0.inject(UserIdleConfig, 8)); }, token: UserIdleService, providedIn: "root" });
/** @nocollapse */ UserIdleService.ngInjectableDef = i0.defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(i0.inject(UserIdleConfig, 8), i0.inject(i0.NgZone)); }, token: UserIdleService, providedIn: "root" });
return UserIdleService;

@@ -263,5 +318,5 @@ }());

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var UserIdleModule = (function () {
var UserIdleModule = /** @class */ (function () {
function UserIdleModule() {

@@ -295,3 +350,3 @@ }

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -301,3 +356,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -313,2 +368,2 @@

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS50cyIsIm5nOi8vYW5ndWxhci11c2VyLWlkbGUvbGliL2FuZ3VsYXItdXNlci1pZGxlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlcklkbGVDb25maWcge1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZTogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dDogbnVtYmVyO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcGluZzogbnVtYmVyO1xufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgbWVyZ2UsXG4gIGZyb21FdmVudCxcbiAgZnJvbSxcbiAgaW50ZXJ2YWwsXG4gIHRpbWVyLFxuICBvZlxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNjYW4sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIHRpbWVvdXQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGUkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByb3RlY3RlZCB0aW1lciQ6IE9ic2VydmFibGU8YW55PjtcbiAgLyoqXG4gICAqIElkbGUgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlID0gNjAwO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBEZWZhdWx0IGVxdWFscyB0byA1IG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGltZW91dCA9IDMwMDtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogKiBEZWZhdWx0IGVxdWFscyB0byAyIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcGluZyA9IDEyMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgc3RhdHVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVGltZW91dDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRpbWVyIG9mIHVzZXIncyBpbmFjdGl2aXR5IGlzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzSW5hY3Rpdml0eVRpbWVyOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuaWRsZSA9IGNvbmZpZy5pZGxlO1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgKTtcblxuICAgIHRoaXMuaWRsZSQgPSBmcm9tKHRoaXMuYWN0aXZpdHlFdmVudHMkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKDUwMDApLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lciksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gdHJ1ZSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlICogMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc2V0dXBUaW1lcih0aGlzLnRpbWVvdXQpO1xuICAgIHRoaXMuc2V0dXBQaW5nKHRoaXMucGluZyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0VGltZXIoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICB0aGlzLmlzVGltZW91dCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lcidzIGNvdW50ZG93biBudW1iZXIgdGhhdCBlbWl0cyBhZnRlciBpZGxlLlxuICAgKi9cbiAgb25UaW1lclN0YXJ0KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXJTdGFydCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoc3RhcnQgPT4gKHN0YXJ0ID8gdGhpcy50aW1lciQgOiBvZihudWxsKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmlzVGltZW91dCA9IHRydWUpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlID0gY29uZmlnLmlkbGU7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICB0YWtlKHRpbWVvdXQpLFxuICAgICAgbWFwKCgpID0+IDEpLFxuICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgIHRhcChjb3VudCA9PiB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gdGltZW91dCkge1xuICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nOiBudW1iZXIpIHtcbiAgICB0aGlzLnBpbmckID0gaW50ZXJ2YWwocGluZyAqIDEwMDApLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KVxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBVc2VySWRsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogVXNlcklkbGVDb25maWcsIHVzZVZhbHVlOiBjb25maWd9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlN1YmplY3QiLCJtZXJnZSIsImZyb21FdmVudCIsImZyb20iLCJidWZmZXJUaW1lIiwiZmlsdGVyIiwidGFwIiwic3dpdGNoTWFwIiwiaW50ZXJ2YWwiLCJ0YWtlVW50aWwiLCJ0aW1lciIsImZpbmFsaXplIiwiZGlzdGluY3RVbnRpbENoYW5nZWQiLCJvZiIsIm1hcCIsInRha2UiLCJzY2FuIiwiSW5qZWN0YWJsZSIsIk9wdGlvbmFsIiwiTmdNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxRQUFBOzs7NkJBQUE7UUFhQzs7Ozs7O0FDYkQ7Ozs7UUFzRUUseUJBQXdCOytCQTlCQSxJQUFJQSxZQUFPLEVBQVc7NEJBQ3pCLElBQUlBLFlBQU8sRUFBVzs7Ozs7d0JBTzFCLEdBQUc7Ozs7OzJCQUtBLEdBQUc7Ozs7O3dCQUtOLEdBQUc7WUFhbEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzthQUN6QjtZQUVELElBQUksQ0FBQyxlQUFlLEdBQUdDLFVB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS50cyIsIm5nOi8vYW5ndWxhci11c2VyLWlkbGUvbGliL2FuZ3VsYXItdXNlci1pZGxlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlcklkbGVDb25maWcge1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZTogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dDogbnVtYmVyO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcGluZzogbnVtYmVyO1xufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICBtZXJnZSxcbiAgZnJvbUV2ZW50LFxuICBmcm9tLFxuICBpbnRlcnZhbCxcbiAgdGltZXIsXG4gIG9mXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxMCBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGUgPSA2MDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nID0gMTIwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0lkbGVEZXRlY3RlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5pZGxlID0gY29uZmlnLmlkbGU7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICAgIHRoaXMucGluZyA9IGNvbmZpZy5waW5nO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICApO1xuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGZvciB1c2VyIGlkbGUgYW5kIHNldHVwIHRpbWVyIGFuZCBwaW5nLlxuICAgKi9cbiAgc3RhcnRXYXRjaGluZygpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUoNTAwKSwgLy8gU3RhcnRpbmcgcG9pbnQgb2YgZGV0ZWN0aW5nIG9mIHVzZXIncyBpbmFjdGl2aXR5XG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICBhcnIgPT4gIWFyci5sZW5ndGggJiYgIXRoaXMuaXNJZGxlRGV0ZWN0ZWQgJiYgIXRoaXMuaXNJbmFjdGl2aXR5VGltZXJcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzSWRsZURldGVjdGVkID0gdHJ1ZSkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgIGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlICogMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0lkbGVEZXRlY3RlZCA9IGZhbHNlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc2V0dXBUaW1lcih0aGlzLnRpbWVvdXQpO1xuICAgIHRoaXMuc2V0dXBQaW5nKHRoaXMucGluZyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlO1xuICAgIHRoaXMudGltZXJTdGFydCQubmV4dChmYWxzZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5pc1RpbWVvdXQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZXIncyBjb3VudGRvd24gbnVtYmVyIHRoYXQgZW1pdHMgYWZ0ZXIgaWRsZS5cbiAgICovXG4gIG9uVGltZXJTdGFydCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHN0YXJ0ID0+IChzdGFydCA/IHRoaXMudGltZXIkIDogb2YobnVsbCkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSkpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlID0gY29uZmlnLmlkbGU7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzXG4gICAqXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudHMgRXhhbXBsZTogbWVyZ2UoXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hzdGFydCcpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJylcbiAgICogKVxuICAgKi9cbiAgc2V0Q3VzdG9tQWN0aXZpdHlFdmVudHMoY3VzdG9tRXZlbnRzOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gY3VzdG9tRXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciQgPSBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICB0YWtlKHRpbWVvdXQpLFxuICAgICAgICBtYXAoKCkgPT4gMSksXG4gICAgICAgIHNjYW4oKGFjYywgbikgPT4gYWNjICsgbiksXG4gICAgICAgIHRhcChjb3VudCA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ID09PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdcbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFBpbmcocGluZzogbnVtYmVyKSB7XG4gICAgdGhpcy5waW5nJCA9IGludGVydmFsKHBpbmcgKiAxMDAwKS5waXBlKGZpbHRlcigoKSA9PiAhdGhpcy5pc1RpbWVvdXQpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogVXNlcklkbGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVzZXJJZGxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBVc2VySWRsZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ31cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU3ViamVjdCIsIm1lcmdlIiwiZnJvbUV2ZW50IiwiZnJvbSIsImJ1ZmZlclRpbWUiLCJmaWx0ZXIiLCJ0YXAiLCJzd2l0Y2hNYXAiLCJpbnRlcnZhbCIsInRha2VVbnRpbCIsInRpbWVyIiwiZmluYWxpemUiLCJkaXN0aW5jdFVudGlsQ2hhbmdlZCIsIm9mIiwibWFwIiwidGFrZSIsInNjYW4iLCJJbmplY3RhYmxlIiwiT3B0aW9uYWwiLCJOZ1pvbmUiLCJOZ01vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO1FBQUE7U0FhQztRQUFELHFCQUFDO0lBQUQsQ0FBQzs7Ozs7O0FDYkQ7OztBQTZCQTtRQTBDRSx5QkFBd0IsTUFBc0IsRUFBVSxPQUFlO1lBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtZQS9CN0QsZ0JBQVcsR0FBRyxJQUFJQSxZQUFPLEVBQVcsQ0FBQztZQUNyQyxhQUFRLEdBQUcsSUFBSUEsWUFBTyxFQUFXLENBQUM7Ozs7O1lBT2xDLFNBQUksR0FBRyxHQUFHLENBQUM7Ozs7O1lBS1gsWUFBTyxHQUFHLEdBQUcsQ0FBQzs7Ozs7WUFLZCxTQUFJLEdBQUcsR0FBRyxDQUFDO1lBY25CLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDekI7WUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHQyxVQUFLLENBQzFCQyxjQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUM5QkEsY0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDM0JBLGNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQy9CLENBQUM7WUFFRixJQUFJLENBQUMsS0FBSyxHQUFHQyxTQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3pDOzs7Ozs7OztRQUtELHVDQUFhOzs7O1lBQWI7Z0JBQUEsaUJBb0NDO2dCQW5DQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUNyQzs7Z0JBR0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLO3FCQUMvQixJQUFJLENBQ0hDLG9CQUFVLENBQUMsR0FBRyxDQUFDO2dCQUNmQyxnQkFBTSxDQUNKLFVBQUEsR0FBRyxJQUFJLE9BQUEsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUksQ0FBQyxpQkFBaUIsR0FBQSxDQUN0RSxFQUNEQyxhQUFHLENBQUMsY0FBTSxRQUFDLEtBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFDLENBQUMsRUFDdkNDLG1CQUFTLENBQUM7b0JBQ1IsT0FBQSxLQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO3dCQUM3QixPQUFBQyxhQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNqQkMsbUJBQVMsQ0FDUFIsVUFBSyxDQUNILEtBQUksQ0FBQyxlQUFlLEVBQ3BCUyxVQUFLLENBQUMsS0FBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzFCSixhQUFHLENBQUM7NEJBQ0YsS0FBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQzs0QkFDOUIsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzdCLENBQUMsQ0FDSCxDQUNGLENBQ0YsRUFDREssa0JBQVEsQ0FBQyxjQUFNLFFBQUMsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLElBQUMsQ0FBQyxDQUM5QztxQkFBQSxDQUNGO2lCQUFBLENBQ0YsQ0FDRjtxQkFDQSxTQUFTLEVBQUUsQ0FBQztnQkFFZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0I7Ozs7UUFFRCxzQ0FBWTs7O1lBQVo7Z0JBQ0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUNyQzthQUNGOzs7O1FBRUQsbUNBQVM7OztZQUFUO2dCQUNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCOzs7O1FBRUQsb0NBQVU7OztZQUFWO2dCQUNFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDeEI7Ozs7Ozs7O1FBS0Qsc0NBQVk7Ozs7WUFBWjtnQkFBQSxpQkFLQztnQkFKQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQkMsOEJBQW9CLEVBQUUsRUFDdEJMLG1CQUFTLENBQUMsVUFBQSxLQUFLLElBQUksUUFBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLE1BQU0sR0FBR00sT0FBRSxDQUFDLElBQUksQ0FBQyxJQUFDLENBQUMsQ0FDckQsQ0FBQzthQUNIOzs7Ozs7OztRQUtELG1DQUFTOzs7O1lBQVQ7Z0JBQUEsaUJBTUM7Z0JBTEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkJSLGdCQUFNLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxDQUFDLENBQUMsT0FBTyxHQUFBLENBQUMsRUFDNUJDLGFBQUcsQ0FBQyxjQUFNLFFBQUMsS0FBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUMsQ0FBQyxFQUNsQ1EsYUFBRyxDQUFDLGNBQU0sT0FBQSxJQUFJLEdBQUEsQ0FBQyxDQUNoQixDQUFDO2FBQ0g7Ozs7UUFFRCx3Q0FBYzs7O1lBQWQ7Z0JBQ0UsT0FBTztvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7aUJBQ2hCLENBQUM7YUFDSDs7Ozs7Ozs7OztRQU1ELHlDQUFlOzs7OztZQUFmLFVBQWdCLE1BQXNCO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQzFELE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztvQkFDOUQsT0FBTztpQkFDUjtnQkFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2lCQUN6QjtnQkFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2lCQUN6QjtnQkFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztpQkFDL0I7YUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBYUQsaURBQXVCOzs7Ozs7Ozs7Ozs7WUFBdkIsVUFBd0IsWUFBNkI7Z0JBQ25ELElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtvQkFDMUQsT0FBTyxDQUFDLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO29CQUN2RSxPQUFPO2lCQUNSO2dCQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDO2FBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7UUFRUyxvQ0FBVTs7Ozs7Ozs7WUFBcEIsVUFBcUIsT0FBZTtnQkFBcEMsaUJBYUM7Z0JBWkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztvQkFDN0IsS0FBSSxDQUFDLE1BQU0sR0FBR04sYUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDL0JPLGNBQUksQ0FBQyxPQUFPLENBQUMsRUFDYkQsYUFBRyxDQUFDLGNBQU0sT0FBQSxDQUFDLEdBQUEsQ0FBQyxFQUNaRSxjQUFJLENBQUMsVUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFLLE9BQUEsR0FBRyxHQUFHLENBQUMsR0FBQSxDQUFDLEVBQ3pCVixhQUFHLENBQUMsVUFBQSxLQUFLO3dCQUNQLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRTs0QkFDckIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzFCO3FCQUNGLENBQUMsQ0FDSCxDQUFDO2lCQUNILENBQUMsQ0FBQzthQUNKOzs7Ozs7Ozs7Ozs7Ozs7UUFRUyxtQ0FBUzs7Ozs7Ozs7WUFBbkIsVUFBb0IsSUFBWTtnQkFBaEMsaUJBRUM7Z0JBREMsSUFBSSxDQUFDLEtBQUssR0FBR0UsYUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUNILGdCQUFNLENBQUMsY0FBTSxPQUFBLENBQUMsS0FBSSxDQUFDLFNBQVMsR0FBQSxDQUFDLENBQUMsQ0FBQzthQUN4RTs7b0JBdk5GWSxhQUFVLFNBQUM7d0JBQ1YsVUFBVSxFQUFFLE1BQU07cUJBQ25COzs7Ozt3QkFQUSxjQUFjLHVCQStDUkMsV0FBUTt3QkF2RVFDLFNBQU07Ozs7OEJBQXJDO0tBcVBDOzs7Ozs7QUNyUEQ7UUFHQTtTQVlDOzs7OztRQVJRLHNCQUFPOzs7O1lBQWQsVUFBZSxNQUFzQjtnQkFDbkMsT0FBTztvQkFDTCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFO3dCQUNULEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO3FCQUM1QztpQkFDRixDQUFDO2FBQ0g7O29CQVhGQyxXQUFRLFNBQUM7d0JBQ1IsT0FBTyxFQUFFLEVBQUU7cUJBQ1o7O1FBVUQscUJBQUM7S0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9

@@ -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,r){"use strict";var o=function(){},e=function(){function t(t){this.timerStart$=new n.Subject,this.timeout$=new n.Subject,this.idle=600,this.timeout=300,this.ping=120,t&&(this.idle=t.idle,this.timeout=t.timeout,this.ping=t.ping),this.activityEvents$=n.merge(n.fromEvent(window,"mousemove"),n.fromEvent(window,"resize"),n.fromEvent(document,"keydown")),this.idle$=n.from(this.activityEvents$)}return t.prototype.startWatching=function(){var e=this;this.idleSubscription&&this.idleSubscription.unsubscribe(),this.idleSubscription=this.idle$.pipe(r.bufferTime(5e3),r.filter(function(t){return!t.length&&!e.isInactivityTimer}),r.tap(function(){return e.isInactivityTimer=!0}),r.switchMap(function(){return n.interval(1e3).pipe(r.takeUntil(n.merge(e.activityEvents$,n.timer(1e3*e.idle).pipe(r.tap(function(){return e.timerStart$.next(!0)})))),r.finalize(function(){return e.isInactivityTimer=!1}))})).subscribe(),this.setupTimer(this.timeout),this.setupPing(this.ping)},t.prototype.stopWatching=function(){this.stopTimer(),this.idleSubscription&&this.idleSubscription.unsubscribe()},t.prototype.stopTimer=function(){this.timerStart$.next(!1)},t.prototype.resetTimer=function(){this.stopTimer(),this.isTimeout=!1},t.prototype.onTimerStart=function(){var e=this;return this.timerStart$.pipe(r.distinctUntilChanged(),r.switchMap(function(t){return t?e.timer$:n.of(null)}))},t.prototype.onTimeout=function(){var t=this;return this.timeout$.pipe(r.filter(function(t){return!!t}),r.tap(function(){return t.isTimeout=!0}),r.map(function(){return!0}))},t.prototype.getConfigValue=function(){return{idle:this.idle,timeout:this.timeout,ping:this.ping}},t.prototype.setConfigValues=function(t){!this.idleSubscription||this.idleSubscription.closed?(t.idle&&(this.idle=t.idle),t.ping&&(this.ping=t.ping),t.timeout&&(this.timeout=t.timeout)):console.error("Call stopWatching() before set config values")},t.prototype.setupTimer=function(e){var i=this;this.timer$=n.interval(1e3).pipe(r.take(e),r.map(function(){return 1}),r.scan(function(t,e){return t+e}),r.tap(function(t){t===e&&i.timeout$.next(!0)}))},t.prototype.setupPing=function(t){var e=this;this.ping$=n.interval(1e3*t).pipe(r.filter(function(){return!e.isTimeout}))},t.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:o,decorators:[{type:i.Optional}]}]},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(o,8))},token:t,providedIn:"root"}),t}(),s=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:o,useValue:t}]}},e.decorators=[{type:i.NgModule,args:[{imports:[]}]}],e}();t.UserIdleService=e,t.UserIdleConfig=o,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,r){"use strict";var o=function(){},e=function(){function t(t,e){this._ngZone=e,this.timerStart$=new n.Subject,this.timeout$=new n.Subject,this.idle=600,this.timeout=300,this.ping=120,t&&(this.idle=t.idle,this.timeout=t.timeout,this.ping=t.ping),this.activityEvents$=n.merge(n.fromEvent(window,"mousemove"),n.fromEvent(window,"resize"),n.fromEvent(document,"keydown")),this.idle$=n.from(this.activityEvents$)}return t.prototype.startWatching=function(){var e=this;this.idleSubscription&&this.idleSubscription.unsubscribe(),this.idleSubscription=this.idle$.pipe(r.bufferTime(500),r.filter(function(t){return!t.length&&!e.isIdleDetected&&!e.isInactivityTimer}),r.tap(function(){return e.isIdleDetected=!0}),r.switchMap(function(){return e._ngZone.runOutsideAngular(function(){return n.interval(1e3).pipe(r.takeUntil(n.merge(e.activityEvents$,n.timer(1e3*e.idle).pipe(r.tap(function(){e.isInactivityTimer=!0,e.timerStart$.next(!0)})))),r.finalize(function(){return e.isIdleDetected=!1}))})})).subscribe(),this.setupTimer(this.timeout),this.setupPing(this.ping)},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(r.distinctUntilChanged(),r.switchMap(function(t){return t?e.timer$:n.of(null)}))},t.prototype.onTimeout=function(){var t=this;return this.timeout$.pipe(r.filter(function(t){return!!t}),r.tap(function(){return t.isTimeout=!0}),r.map(function(){return!0}))},t.prototype.getConfigValue=function(){return{idle:this.idle,timeout:this.timeout,ping:this.ping}},t.prototype.setConfigValues=function(t){!this.idleSubscription||this.idleSubscription.closed?(t.idle&&(this.idle=t.idle),t.ping&&(this.ping=t.ping),t.timeout&&(this.timeout=t.timeout)):console.error("Call stopWatching() before set config values")},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(r.take(e),r.map(function(){return 1}),r.scan(function(t,e){return t+e}),r.tap(function(t){t===e&&i.timeout$.next(!0)}))})},t.prototype.setupPing=function(t){var e=this;this.ping$=n.interval(1e3*t).pipe(r.filter(function(){return!e.isTimeout}))},t.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:o,decorators:[{type:i.Optional}]},{type:i.NgZone}]},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(o,8),i.inject(i.NgZone))},token:t,providedIn:"root"}),t}(),s=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:o,useValue:t}]}},e.decorators=[{type:i.NgModule,args:[{imports:[]}]}],e}();t.UserIdleService=e,t.UserIdleConfig=o,t.UserIdleModule=s,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=angular-user-idle.umd.min.js.map
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -9,3 +9,2 @@ /**

export { UserIdleService, UserIdleConfig, UserIdleModule } from './public_api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS8iLCJzb3VyY2VzIjpbImFuZ3VsYXItdXNlci1pZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnRUFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export class UserIdleConfig {
}
function UserIdleConfig_tsickle_Closure_declarations() {
if (false) {
/**

@@ -24,3 +24,2 @@ * Idle value in seconds.

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNO0NBYUwiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlcklkbGVDb25maWcge1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZTogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dDogbnVtYmVyO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcGluZzogbnVtYmVyO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sY0FBYztDQWExQjs7Ozs7O0lBVEMsOEJBQWE7Ozs7O0lBSWIsaUNBQWdCOzs7OztJQUloQiw4QkFBYSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nOiBudW1iZXI7XG59XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -26,12 +26,2 @@ import { NgModule } from '@angular/core';

];
function UserIdleModule_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
UserIdleModule.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
UserIdleModule.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFLNUQsTUFBTTs7Ozs7SUFDSixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXNCO1FBQ25DLE1BQU0sQ0FBQztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVCxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQzthQUM1QztTQUNGLENBQUM7S0FDSDs7O1lBWEYsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBVc2VySWRsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFLNUQsTUFBTSxPQUFPLGNBQWM7Ozs7O0lBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDbkMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVCxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQzthQUM1QztTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFYRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLEVBQUU7YUFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBVc2VySWRsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogVXNlcklkbGVDb25maWcsIHVzZVZhbHVlOiBjb25maWd9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, Optional } from '@angular/core';
import { Injectable, Optional, NgZone } from '@angular/core';
import { Subject, merge, fromEvent, from, interval, timer, of } from 'rxjs';

@@ -17,4 +17,6 @@ import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators';

* @param {?} config
* @param {?} _ngZone
*/
constructor(config) {
constructor(config, _ngZone) {
this._ngZone = _ngZone;
this.timerStart$ = new Subject();

@@ -55,5 +57,7 @@ this.timeout$ = new Subject();

this.idleSubscription = this.idle$
.pipe(bufferTime(5000), // Starting point of detecting of user's inactivity
// Starting point of detecting of user's inactivity
filter(arr => !arr.length && !this.isInactivityTimer), tap(() => this.isInactivityTimer = true), switchMap(() => interval(1000).pipe(takeUntil(merge(this.activityEvents$, timer(this.idle * 1000).pipe(tap(() => this.timerStart$.next(true))))), finalize(() => (this.isInactivityTimer = false)))))
.pipe(bufferTime(500), // Starting point of detecting of user's inactivity
filter(arr => !arr.length && !this.isIdleDetected && !this.isInactivityTimer), tap(() => (this.isIdleDetected = true)), switchMap(() => this._ngZone.runOutsideAngular(() => interval(1000).pipe(takeUntil(merge(this.activityEvents$, timer(this.idle * 1000).pipe(tap(() => {
this.isInactivityTimer = true;
this.timerStart$.next(true);
})))), finalize(() => (this.isIdleDetected = false))))))
.subscribe();

@@ -76,2 +80,3 @@ this.setupTimer(this.timeout);

stopTimer() {
this.isInactivityTimer = false;
this.timerStart$.next(false);

@@ -98,3 +103,3 @@ }

onTimeout() {
return this.timeout$.pipe(filter(timeout => !!timeout), tap(() => this.isTimeout = true), map(() => true));
return this.timeout$.pipe(filter(timeout => !!timeout), tap(() => (this.isTimeout = true)), map(() => true));
}

@@ -132,5 +137,25 @@ /**

/**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
setCustomActivityEvents(customEvents) {
if (this.idleSubscription && !this.idleSubscription.closed) {
console.error('Call stopWatching() before set custom activity events');
return;
}
this.activityEvents$ = customEvents;
}
/**
* Setup timer.
*
* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -140,7 +165,9 @@ * @return {?}

setupTimer(timeout) {
this.timer$ = interval(1000).pipe(take(timeout), map(() => 1), scan((acc, n) => acc + n), tap(count => {
if (count === timeout) {
this.timeout$.next(true);
}
}));
this._ngZone.runOutsideAngular(() => {
this.timer$ = interval(1000).pipe(take(timeout), map(() => 1), scan((acc, n) => acc + n), tap(count => {
if (count === timeout) {
this.timeout$.next(true);
}
}));
});
}

@@ -151,2 +178,3 @@ /**

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -166,13 +194,7 @@ * @return {?}

UserIdleService.ctorParameters = () => [
{ type: UserIdleConfig, decorators: [{ type: Optional },] },
{ type: UserIdleConfig, decorators: [{ type: Optional }] },
{ type: NgZone }
];
/** @nocollapse */ UserIdleService.ngInjectableDef = i0.defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(i0.inject(i1.UserIdleConfig, 8)); }, token: UserIdleService, providedIn: "root" });
function UserIdleService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
UserIdleService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
UserIdleService.ctorParameters;
/** @nocollapse */ UserIdleService.ngInjectableDef = i0.defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(i0.inject(i1.UserIdleConfig, 8), i0.inject(i0.NgZone)); }, token: UserIdleService, providedIn: "root" });
if (false) {
/** @type {?} */

@@ -183,11 +205,24 @@ UserIdleService.prototype.ping$;

* @type {?}
* @protected
*/
UserIdleService.prototype.activityEvents$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.timerStart$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.timeout$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.idle$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.timer$;

@@ -198,2 +233,3 @@ /**

* @type {?}
* @protected
*/

@@ -205,2 +241,3 @@ UserIdleService.prototype.idle;

* @type {?}
* @protected
*/

@@ -212,2 +249,3 @@ UserIdleService.prototype.timeout;

* @type {?}
* @protected
*/

@@ -218,2 +256,3 @@ UserIdleService.prototype.ping;

* @type {?}
* @protected
*/

@@ -224,8 +263,21 @@ UserIdleService.prototype.isTimeout;

* @type {?}
* @protected
*/
UserIdleService.prototype.isInactivityTimer;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.isIdleDetected;
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.idleSubscription;
/**
* @type {?}
* @private
*/
UserIdleService.prototype._ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFFTCxPQUFPLEVBRVAsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxFQUFFLEVBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRNUQsTUFBTTs7OztJQXNDSixZQUF3QjsyQkE5QkEsSUFBSSxPQUFPLEVBQVc7d0JBQ3pCLElBQUksT0FBTyxFQUFXOzs7OztvQkFPMUIsR0FBRzs7Ozs7dUJBS0EsR0FBRzs7Ozs7b0JBS04sR0FBRztRQWFsQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDOUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMs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QVMsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3JDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDOUIsQ0FBQztLQUNIOzs7WUF6TEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBUFEsY0FBYyx1QkE4Q1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIG1lcmdlLFxuICBmcm9tRXZlbnQsXG4gIGZyb20sXG4gIGludGVydmFsLFxuICB0aW1lcixcbiAgb2Zcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBidWZmZXJUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzY2FuLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG4vKipcbiAqIFVzZXIncyBpZGxlIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlU2VydmljZSB7XG4gIHBpbmckOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqXG4gICAqIEV2ZW50cyB0aGF0IGNhbiBpbnRlcnJ1cHRzIHVzZXIncyBpbmFjdGl2aXR5IHRpbWVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFjdGl2aXR5RXZlbnRzJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByb3RlY3RlZCB0aW1lclN0YXJ0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZSA9IDYwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmcgPSAxMjA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgaWRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICk7XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIElmIGFueSBvZiB1c2VyIGV2ZW50cyBpcyBub3QgYWN0aXZlIGZvciBpZGxlLXNlY29uZHMgd2hlbiBzdGFydCB0aW1lci5cbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24gPSB0aGlzLmlkbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgYnVmZmVyVGltZSg1MDAwKSwgLy8gU3RhcnRpbmcgcG9pbnQgb2YgZGV0ZWN0aW5nIG9mIHVzZXIncyBpbmFjdGl2aXR5XG4gICAgICAgIGZpbHRlcihhcnIgPT4gIWFyci5sZW5ndGggJiYgIXRoaXMuaXNJbmFjdGl2aXR5VGltZXIpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IHRydWUpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQsXG4gICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZSAqIDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZSkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldHVwVGltZXIodGhpcy50aW1lb3V0KTtcbiAgICB0aGlzLnNldHVwUGluZyh0aGlzLnBpbmcpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMudGltZXJTdGFydCQubmV4dChmYWxzZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgdGhpcy5pc1RpbWVvdXQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZXIncyBjb3VudGRvd24gbnVtYmVyIHRoYXQgZW1pdHMgYWZ0ZXIgaWRsZS5cbiAgICovXG4gIG9uVGltZXJTdGFydCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKHN0YXJ0ID0+IChzdGFydCA/IHRoaXMudGltZXIkIDogb2YobnVsbCkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVvdXQgaXMgZmlyZWQuXG4gICAqL1xuICBvblRpbWVvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZW91dCQucGlwZShcbiAgICAgIGZpbHRlcih0aW1lb3V0ID0+ICEhdGltZW91dCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5pc1RpbWVvdXQgPSB0cnVlKSxcbiAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgICk7XG4gIH1cblxuICBnZXRDb25maWdWYWx1ZSgpOiBVc2VySWRsZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkbGU6IHRoaXMuaWRsZSxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmlkbGUpIHtcbiAgICAgIHRoaXMuaWRsZSA9IGNvbmZpZy5pZGxlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnBpbmcpIHtcbiAgICAgIHRoaXMucGluZyA9IGNvbmZpZy5waW5nO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnRpbWVvdXQpIHtcbiAgICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCB0aW1lci5cbiAgICpcbiAgICogQ291bnRzIGV2ZXJ5IHNlY29uZHMgYW5kIHJldHVybiBuKzEgYW5kIGZpcmUgdGltZW91dCBmb3IgbGFzdCBjb3VudC5cbiAgICogQHBhcmFtIHRpbWVvdXQgVGltZW91dCBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwVGltZXIodGltZW91dDogbnVtYmVyKSB7XG4gICAgdGhpcy50aW1lciQgPSBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgdGFrZSh0aW1lb3V0KSxcbiAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgIHNjYW4oKGFjYywgbikgPT4gYWNjICsgbiksXG4gICAgICB0YXAoY291bnQgPT4ge1xuICAgICAgICBpZiAoY291bnQgPT09IHRpbWVvdXQpIHtcbiAgICAgICAgICB0aGlzLnRpbWVvdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBwaW5nLlxuICAgKlxuICAgKiBQaW5ncyBldmVyeSBwaW5nLXNlY29uZHMgb25seSBpZiBpcyBub3QgdGltZW91dC5cbiAgICogQHBhcmFtIHBpbmdcbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFBpbmcocGluZzogbnVtYmVyKSB7XG4gICAgdGhpcy5waW5nJCA9IGludGVydmFsKHBpbmcgKiAxMDAwKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dClcbiAgICApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBRUwsT0FBTyxFQUVQLEtBQUssRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNILE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBUTVELE1BQU0sT0FBTyxlQUFlOzs7OztJQXVDMUIsWUFBd0IsTUFBc0IsRUFBVSxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQS9CN0QsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDOzs7OztRQU9sQyxTQUFJLEdBQUcsR0FBRyxDQUFDOzs7OztRQUtYLFlBQU8sR0FBRyxHQUFHLENBQUM7Ozs7O1FBS2QsU0FBSSxHQUFHLEdBQUcsQ0FBQztRQWNuQixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFB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Ozs7Ozs7SUFJN0IsNENBQXFDOzs7OztJQUNyQyx5Q0FBa0M7Ozs7O0lBRWxDLDJDQUF5Qzs7Ozs7SUFFTyxrQ0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIG1lcmdlLFxuICBmcm9tRXZlbnQsXG4gIGZyb20sXG4gIGludGVydmFsLFxuICB0aW1lcixcbiAgb2Zcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBidWZmZXJUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzY2FuLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG4vKipcbiAqIFVzZXIncyBpZGxlIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlU2VydmljZSB7XG4gIHBpbmckOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqXG4gICAqIEV2ZW50cyB0aGF0IGNhbiBpbnRlcnJ1cHRzIHVzZXIncyBpbmFjdGl2aXR5IHRpbWVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFjdGl2aXR5RXZlbnRzJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByb3RlY3RlZCB0aW1lclN0YXJ0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZSA9IDYwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmcgPSAxMjA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICk7XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIElmIGFueSBvZiB1c2VyIGV2ZW50cyBpcyBub3QgYWN0aXZlIGZvciBpZGxlLXNlY29uZHMgd2hlbiBzdGFydCB0aW1lci5cbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24gPSB0aGlzLmlkbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgYnVmZmVyVGltZSg1MDApLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICAgICAgaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQsXG4gICAgICAgICAgICAgICAgICB0aW1lcih0aGlzLmlkbGUgKiAxMDAwKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2UpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nKTtcbiAgfVxuXG4gIHN0b3BXYXRjaGluZygpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BUaW1lcigpIHtcbiAgICB0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gZmFsc2U7XG4gICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0VGltZXIoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICB0aGlzLmlzVGltZW91dCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lcidzIGNvdW50ZG93biBudW1iZXIgdGhhdCBlbWl0cyBhZnRlciBpZGxlLlxuICAgKi9cbiAgb25UaW1lclN0YXJ0KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXJTdGFydCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoc3RhcnQgPT4gKHN0YXJ0ID8gdGhpcy50aW1lciQgOiBvZihudWxsKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGUsXG4gICAgICB0aW1lb3V0OiB0aGlzLnRpbWVvdXQsXG4gICAgICBwaW5nOiB0aGlzLnBpbmdcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgdmFsdWVzLlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBzZXRDb25maWdWYWx1ZXMoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjb25maWcgdmFsdWVzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgIHRha2UodGltZW91dCksXG4gICAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgICBpZiAoY291bnQgPT09IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nOiBudW1iZXIpIHtcbiAgICB0aGlzLnBpbmckID0gaW50ZXJ2YWwocGluZyAqIDEwMDApLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,2 @@ /*

export { UserIdleModule } from './lib/angular-user-idle.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsK0JBQWMsZ0NBQWdDLENBQUM7QUFDL0MsK0JBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItdXNlci1pZGxlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci11c2VyLWlkbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlJztcbiJdfQ==
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -9,3 +9,2 @@ /**

export { UserIdleService, UserIdleConfig, UserIdleModule } from './public_api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS8iLCJzb3VyY2VzIjpbImFuZ3VsYXItdXNlci1pZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnRUFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,3 @@ var UserIdleConfig = /** @class */ (function () {

export { UserIdleConfig };
function UserIdleConfig_tsickle_Closure_declarations() {
if (false) {
/**

@@ -29,3 +29,2 @@ * Idle value in seconds.

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBOzs7eUJBQUE7SUFhQyxDQUFBO0FBYkQsMEJBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlcklkbGVDb25maWcge1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgaWRsZTogbnVtYmVyO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgdGltZW91dDogbnVtYmVyO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcGluZzogbnVtYmVyO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtJQUFBO0lBYUEsQ0FBQztJQUFELHFCQUFDO0FBQUQsQ0FBQyxBQWJELElBYUM7Ozs7Ozs7SUFUQyw4QkFBYTs7Ozs7SUFJYixpQ0FBZ0I7Ozs7O0lBSWhCLDhCQUFhIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXJJZGxlQ29uZmlnIHtcbiAgLyoqXG4gICAqIElkbGUgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIGlkbGU6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHRpbWVvdXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICovXG4gIHBpbmc6IG51bWJlcjtcbn1cbiJdfQ==
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -34,12 +34,2 @@ import { NgModule } from '@angular/core';

export { UserIdleModule };
function UserIdleModule_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
UserIdleModule.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
UserIdleModule.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0lBTW5ELHNCQUFPOzs7O0lBQWQsVUFBZSxNQUFzQjtRQUNuQyxNQUFNLENBQUM7WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7YUFDNUM7U0FDRixDQUFDO0tBQ0g7O2dCQVhGLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtpQkFDWjs7eUJBTEQ7O1NBTWEsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBVc2VySWRsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogVXNlcklkbGVDb25maWcsIHVzZVZhbHVlOiBjb25maWd9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci11c2VyLWlkbGUvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQ7SUFBQTtJQVlBLENBQUM7Ozs7O0lBUlEsc0JBQU87Ozs7SUFBZCxVQUFlLE1BQXNCO1FBQ25DLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7YUFDNUM7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBWEYsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO2lCQUNaOztJQVVELHFCQUFDO0NBQUEsQUFaRCxJQVlDO1NBVFksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFVzZXJJZGxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBVc2VySWRsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogVXNlcklkbGVDb25maWcsIHVzZVZhbHVlOiBjb25maWd9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, Optional } from '@angular/core';
import { Injectable, Optional, NgZone } from '@angular/core';
import { Subject, merge, fromEvent, from, interval, timer, of } from 'rxjs';

@@ -15,3 +15,4 @@ import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators';

var UserIdleService = /** @class */ (function () {
function UserIdleService(config) {
function UserIdleService(config, _ngZone) {
this._ngZone = _ngZone;
this.timerStart$ = new Subject();

@@ -60,6 +61,10 @@ this.timeout$ = new Subject();

this.idleSubscription = this.idle$
.pipe(bufferTime(5000), // Starting point of detecting of user's inactivity
// Starting point of detecting of user's inactivity
filter(function (arr) { return !arr.length && !_this.isInactivityTimer; }), tap(function () { return _this.isInactivityTimer = true; }), switchMap(function () {
return interval(1000).pipe(takeUntil(merge(_this.activityEvents$, timer(_this.idle * 1000).pipe(tap(function () { return _this.timerStart$.next(true); })))), finalize(function () { return (_this.isInactivityTimer = false); }));
.pipe(bufferTime(500), // Starting point of detecting of user's inactivity
filter(function (arr) { return !arr.length && !_this.isIdleDetected && !_this.isInactivityTimer; }), tap(function () { return (_this.isIdleDetected = true); }), switchMap(function () {
return _this._ngZone.runOutsideAngular(function () {
return interval(1000).pipe(takeUntil(merge(_this.activityEvents$, timer(_this.idle * 1000).pipe(tap(function () {
_this.isInactivityTimer = true;
_this.timerStart$.next(true);
})))), finalize(function () { return (_this.isIdleDetected = false); }));
});
}))

@@ -89,2 +94,3 @@ .subscribe();

function () {
this.isInactivityTimer = false;
this.timerStart$.next(false);

@@ -130,3 +136,3 @@ };

var _this = this;
return this.timeout$.pipe(filter(function (timeout) { return !!timeout; }), tap(function () { return _this.isTimeout = true; }), map(function () { return true; }));
return this.timeout$.pipe(filter(function (timeout) { return !!timeout; }), tap(function () { return (_this.isTimeout = true); }), map(function () { return true; }));
};

@@ -176,2 +182,44 @@ /**

/**
* Set custom activity events
*
* @param customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
*/
/**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
UserIdleService.prototype.setCustomActivityEvents = /**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
function (customEvents) {
if (this.idleSubscription && !this.idleSubscription.closed) {
console.error('Call stopWatching() before set custom activity events');
return;
}
this.activityEvents$ = customEvents;
};
/**
* Setup timer.

@@ -186,2 +234,3 @@ *

* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -194,2 +243,3 @@ * @return {?}

* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -200,7 +250,9 @@ * @return {?}

var _this = this;
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.timeout$.next(true);
}
}));
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.timeout$.next(true);
}
}));
});
};

@@ -217,2 +269,3 @@ /**

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -225,2 +278,3 @@ * @return {?}

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -240,16 +294,10 @@ * @return {?}

UserIdleService.ctorParameters = function () { return [
{ type: UserIdleConfig, decorators: [{ type: Optional },] },
{ type: UserIdleConfig, decorators: [{ type: Optional }] },
{ type: NgZone }
]; };
/** @nocollapse */ UserIdleService.ngInjectableDef = i0.defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(i0.inject(i1.UserIdleConfig, 8)); }, token: UserIdleService, providedIn: "root" });
/** @nocollapse */ UserIdleService.ngInjectableDef = i0.defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(i0.inject(i1.UserIdleConfig, 8), i0.inject(i0.NgZone)); }, token: UserIdleService, providedIn: "root" });
return UserIdleService;
}());
export { UserIdleService };
function UserIdleService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
UserIdleService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
UserIdleService.ctorParameters;
if (false) {
/** @type {?} */

@@ -260,11 +308,24 @@ UserIdleService.prototype.ping$;

* @type {?}
* @protected
*/
UserIdleService.prototype.activityEvents$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.timerStart$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.timeout$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.idle$;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.timer$;

@@ -275,2 +336,3 @@ /**

* @type {?}
* @protected
*/

@@ -282,2 +344,3 @@ UserIdleService.prototype.idle;

* @type {?}
* @protected
*/

@@ -289,2 +352,3 @@ UserIdleService.prototype.timeout;

* @type {?}
* @protected
*/

@@ -295,2 +359,3 @@ UserIdleService.prototype.ping;

* @type {?}
* @protected
*/

@@ -301,8 +366,21 @@ UserIdleService.prototype.isTimeout;

* @type {?}
* @protected
*/
UserIdleService.prototype.isInactivityTimer;
/** @type {?} */
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.isIdleDetected;
/**
* @type {?}
* @protected
*/
UserIdleService.prototype.idleSubscription;
/**
* @type {?}
* @private
*/
UserIdleService.prototype._ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFFTCxPQUFPLEVBRVAsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxFQUFFLEVBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0lBOEMxRCx5QkFBd0I7MkJBOUJBLElBQUksT0FBTyxFQUFXO3dCQUN6QixJQUFJLE9BQU8sRUFBVzs7Ozs7b0JBTzFCLEdBQUc7Ozs7O3VCQUtBLEdBQUc7Ozs7O29CQUtOLEdBQUc7UUFhbEIsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQzFCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQzlCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQzNCLFNBQVMs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QyxDQUFDLEVBQ1osSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFFLENBQUMsSUFBSyxPQUFBLEdBQUcsR0FBRyxDQUFDLEVBQVAsQ0FBTyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxVQUFBLEtBQUs7WUFDUCxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7U0FDRixDQUFDLENBQ0gsQ0FBQztLQUNIO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ08sbUNBQVM7Ozs7Ozs7SUFBbkIsVUFBb0IsSUFBWTtRQUFoQyxpQkFJQztRQUhDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3JDLE1BQU0sQ0FBQyxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsU0FBUyxFQUFmLENBQWUsQ0FBQyxDQUM5QixDQUFDO0tBQ0g7O2dCQXpMRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQVBRLGNBQWMsdUJBOENSLFFBQVE7OzswQkF0RXZCOztTQWdDYSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgbWVyZ2UsXG4gIGZyb21FdmVudCxcbiAgZnJvbSxcbiAgaW50ZXJ2YWwsXG4gIHRpbWVyLFxuICBvZlxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNjYW4sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIHRpbWVvdXQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGUkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByb3RlY3RlZCB0aW1lciQ6IE9ic2VydmFibGU8YW55PjtcbiAgLyoqXG4gICAqIElkbGUgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlID0gNjAwO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBEZWZhdWx0IGVxdWFscyB0byA1IG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGltZW91dCA9IDMwMDtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogKiBEZWZhdWx0IGVxdWFscyB0byAyIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcGluZyA9IDEyMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgc3RhdHVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVGltZW91dDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRpbWVyIG9mIHVzZXIncyBpbmFjdGl2aXR5IGlzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzSW5hY3Rpdml0eVRpbWVyOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuaWRsZSA9IGNvbmZpZy5pZGxlO1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgKTtcblxuICAgIHRoaXMuaWRsZSQgPSBmcm9tKHRoaXMuYWN0aXZpdHlFdmVudHMkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKDUwMDApLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lciksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gdHJ1ZSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbChcbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgdGltZXIodGhpcy5pZGxlICogMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc2V0dXBUaW1lcih0aGlzLnRpbWVvdXQpO1xuICAgIHRoaXMuc2V0dXBQaW5nKHRoaXMucGluZyk7XG4gIH1cblxuICBzdG9wV2F0Y2hpbmcoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdG9wVGltZXIoKSB7XG4gICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0VGltZXIoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICB0aGlzLmlzVGltZW91dCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lcidzIGNvdW50ZG93biBudW1iZXIgdGhhdCBlbWl0cyBhZnRlciBpZGxlLlxuICAgKi9cbiAgb25UaW1lclN0YXJ0KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXJTdGFydCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoc3RhcnQgPT4gKHN0YXJ0ID8gdGhpcy50aW1lciQgOiBvZihudWxsKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmlzVGltZW91dCA9IHRydWUpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbmZpZ1ZhbHVlKCk6IFVzZXJJZGxlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRsZTogdGhpcy5pZGxlLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgcGluZzogdGhpcy5waW5nXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29uZmlnIHZhbHVlcy5cbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgc2V0Q29uZmlnVmFsdWVzKGNvbmZpZzogVXNlcklkbGVDb25maWcpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uICYmICF0aGlzLmlkbGVTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYWxsIHN0b3BXYXRjaGluZygpIGJlZm9yZSBzZXQgY29uZmlnIHZhbHVlcycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaWRsZSkge1xuICAgICAgdGhpcy5pZGxlID0gY29uZmlnLmlkbGU7XG4gICAgfVxuICAgIGlmIChjb25maWcucGluZykge1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHRpbWVyLlxuICAgKlxuICAgKiBDb3VudHMgZXZlcnkgc2Vjb25kcyBhbmQgcmV0dXJuIG4rMSBhbmQgZmlyZSB0aW1lb3V0IGZvciBsYXN0IGNvdW50LlxuICAgKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIHNlY29uZHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBUaW1lcih0aW1lb3V0OiBudW1iZXIpIHtcbiAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICB0YWtlKHRpbWVvdXQpLFxuICAgICAgbWFwKCgpID0+IDEpLFxuICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgIHRhcChjb3VudCA9PiB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gdGltZW91dCkge1xuICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nOiBudW1iZXIpIHtcbiAgICB0aGlzLnBpbmckID0gaW50ZXJ2YWwocGluZyAqIDEwMDApLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItdXNlci1pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBRUwsT0FBTyxFQUVQLEtBQUssRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNILE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBSzVEO0lBMENFLHlCQUF3QixNQUFzQixFQUFVLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBL0I3RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDckMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7Ozs7O1FBT2xDLFNBQUksR0FBRyxHQUFHLENBQUM7Ozs7O1FBS1gsWUFBTyxHQUFHLEdBQUcsQ0FBQzs7Ozs7UUFLZCxTQUFJLEdBQUcsR0FBRyxDQUFDO1FBY25CLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFFRCxJ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QyxLQUFJLENBQUMsU0FBUyxFQUFmLENBQWUsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7Z0JBdk5GLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBUFEsY0FBYyx1QkErQ1IsUUFBUTtnQkF2RVEsTUFBTTs7OzBCQUFyQztDQXFQQyxBQXhORCxJQXdOQztTQXJOWSxlQUFlOzs7SUFDMUIsZ0NBQXVCOzs7Ozs7SUFLdkIsMENBQTJDOzs7OztJQUUzQyxzQ0FBK0M7Ozs7O0lBQy9DLG1DQUE0Qzs7Ozs7SUFDNUMsZ0NBQWlDOzs7OztJQUNqQyxpQ0FBa0M7Ozs7Ozs7SUFLbEMsK0JBQXFCOzs7Ozs7O0lBS3JCLGtDQUF3Qjs7Ozs7OztJQUt4QiwrQkFBcUI7Ozs7OztJQUlyQixvQ0FBNkI7Ozs7OztJQUk3Qiw0Q0FBcUM7Ozs7O0lBQ3JDLHlDQUFrQzs7Ozs7SUFFbEMsMkNBQXlDOzs7OztJQUVPLGtDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgbWVyZ2UsXG4gIGZyb21FdmVudCxcbiAgZnJvbSxcbiAgaW50ZXJ2YWwsXG4gIHRpbWVyLFxuICBvZlxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlclRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNjYW4sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbi8qKlxuICogVXNlcidzIGlkbGUgc2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlcklkbGVTZXJ2aWNlIHtcbiAgcGluZyQ6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogRXZlbnRzIHRoYXQgY2FuIGludGVycnVwdHMgdXNlcidzIGluYWN0aXZpdHkgdGltZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aXZpdHlFdmVudHMkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIHRpbWVvdXQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJvdGVjdGVkIGlkbGUkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByb3RlY3RlZCB0aW1lciQ6IE9ic2VydmFibGU8YW55PjtcbiAgLyoqXG4gICAqIElkbGUgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gMTAgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBpZGxlID0gNjAwO1xuICAvKipcbiAgICogVGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBEZWZhdWx0IGVxdWFscyB0byA1IG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGltZW91dCA9IDMwMDtcbiAgLyoqXG4gICAqIFBpbmcgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogKiBEZWZhdWx0IGVxdWFscyB0byAyIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcGluZyA9IDEyMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgc3RhdHVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVGltZW91dDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRpbWVyIG9mIHVzZXIncyBpbmFjdGl2aXR5IGlzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzSW5hY3Rpdml0eVRpbWVyOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgaXNJZGxlRGV0ZWN0ZWQ6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGlkbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb25maWc6IFVzZXJJZGxlQ29uZmlnLCBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuaWRsZSA9IGNvbmZpZy5pZGxlO1xuICAgICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21vdXNlbW92ZScpLFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgKTtcblxuICAgIHRoaXMuaWRsZSQgPSBmcm9tKHRoaXMuYWN0aXZpdHlFdmVudHMkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB3YXRjaGluZyBmb3IgdXNlciBpZGxlIGFuZCBzZXR1cCB0aW1lciBhbmQgcGluZy5cbiAgICovXG4gIHN0YXJ0V2F0Y2hpbmcoKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG9mIHVzZXIgZXZlbnRzIGlzIG5vdCBhY3RpdmUgZm9yIGlkbGUtc2Vjb25kcyB3aGVuIHN0YXJ0IHRpbWVyLlxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBidWZmZXJUaW1lKDUwMCksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSWRsZURldGVjdGVkICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiAodGhpcy5pc0lkbGVEZXRlY3RlZCA9IHRydWUpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCxcbiAgICAgICAgICAgICAgICAgIHRpbWVyKHRoaXMuaWRsZSAqIDEwMDApLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0luYWN0aXZpdHlUaW1lciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSBmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldHVwVGltZXIodGhpcy50aW1lb3V0KTtcbiAgICB0aGlzLnNldHVwUGluZyh0aGlzLnBpbmcpO1xuICB9XG5cbiAgc3RvcFdhdGNoaW5nKCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lb3V0IGlzIGZpcmVkLlxuICAgKi9cbiAgb25UaW1lb3V0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVvdXQkLnBpcGUoXG4gICAgICBmaWx0ZXIodGltZW91dCA9PiAhIXRpbWVvdXQpLFxuICAgICAgdGFwKCgpID0+ICh0aGlzLmlzVGltZW91dCA9IHRydWUpKSxcbiAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgICk7XG4gIH1cblxuICBnZXRDb25maWdWYWx1ZSgpOiBVc2VySWRsZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkbGU6IHRoaXMuaWRsZSxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIHBpbmc6IHRoaXMucGluZ1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbmZpZyB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHNldENvbmZpZ1ZhbHVlcyhjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGNvbmZpZyB2YWx1ZXMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmlkbGUpIHtcbiAgICAgIHRoaXMuaWRsZSA9IGNvbmZpZy5pZGxlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnBpbmcpIHtcbiAgICAgIHRoaXMucGluZyA9IGNvbmZpZy5waW5nO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnRpbWVvdXQpIHtcbiAgICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VzdG9tIGFjdGl2aXR5IGV2ZW50c1xuICAgKlxuICAgKiBAcGFyYW0gY3VzdG9tRXZlbnRzIEV4YW1wbGU6IG1lcmdlKFxuICAgKiAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoc3RhcnQnKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaGVuZCcpXG4gICAqIClcbiAgICovXG4gIHNldEN1c3RvbUFjdGl2aXR5RXZlbnRzKGN1c3RvbUV2ZW50czogT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgaWYgKHRoaXMuaWRsZVN1YnNjcmlwdGlvbiAmJiAhdGhpcy5pZGxlU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FsbCBzdG9wV2F0Y2hpbmcoKSBiZWZvcmUgc2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2aXR5RXZlbnRzJCA9IGN1c3RvbUV2ZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCB0aW1lci5cbiAgICpcbiAgICogQ291bnRzIGV2ZXJ5IHNlY29uZHMgYW5kIHJldHVybiBuKzEgYW5kIGZpcmUgdGltZW91dCBmb3IgbGFzdCBjb3VudC5cbiAgICogQHBhcmFtIHRpbWVvdXQgVGltZW91dCBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwVGltZXIodGltZW91dDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMudGltZXIkID0gaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgdGFrZSh0aW1lb3V0KSxcbiAgICAgICAgbWFwKCgpID0+IDEpLFxuICAgICAgICBzY2FuKChhY2MsIG4pID0+IGFjYyArIG4pLFxuICAgICAgICB0YXAoY291bnQgPT4ge1xuICAgICAgICAgIGlmIChjb3VudCA9PT0gdGltZW91dCkge1xuICAgICAgICAgICAgdGhpcy50aW1lb3V0JC5uZXh0KHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgcGluZy5cbiAgICpcbiAgICogUGluZ3MgZXZlcnkgcGluZy1zZWNvbmRzIG9ubHkgaWYgaXMgbm90IHRpbWVvdXQuXG4gICAqIEBwYXJhbSBwaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmc6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nICogMTAwMCkucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuaXNUaW1lb3V0KSk7XG4gIH1cbn1cbiJdfQ==
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,2 @@ /*

export { UserIdleModule } from './lib/angular-user-idle.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItdXNlci1pZGxlLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsK0JBQWMsZ0NBQWdDLENBQUM7QUFDL0MsK0JBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItdXNlci1pZGxlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci11c2VyLWlkbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlJztcbiJdfQ==

@@ -1,2 +0,2 @@

import { Injectable, Optional, NgModule, defineInjectable, inject } from '@angular/core';
import { Injectable, Optional, NgZone, NgModule, defineInjectable, inject } from '@angular/core';
import { Subject, merge, fromEvent, from, interval, timer, of } from 'rxjs';

@@ -7,3 +7,3 @@ import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators';

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -15,3 +15,3 @@ class UserIdleConfig {

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -24,4 +24,6 @@ /**

* @param {?} config
* @param {?} _ngZone
*/
constructor(config) {
constructor(config, _ngZone) {
this._ngZone = _ngZone;
this.timerStart$ = new Subject();

@@ -62,5 +64,7 @@ this.timeout$ = new Subject();

this.idleSubscription = this.idle$
.pipe(bufferTime(5000), // Starting point of detecting of user's inactivity
// Starting point of detecting of user's inactivity
filter(arr => !arr.length && !this.isInactivityTimer), tap(() => this.isInactivityTimer = true), switchMap(() => interval(1000).pipe(takeUntil(merge(this.activityEvents$, timer(this.idle * 1000).pipe(tap(() => this.timerStart$.next(true))))), finalize(() => (this.isInactivityTimer = false)))))
.pipe(bufferTime(500), // Starting point of detecting of user's inactivity
filter(arr => !arr.length && !this.isIdleDetected && !this.isInactivityTimer), tap(() => (this.isIdleDetected = true)), switchMap(() => this._ngZone.runOutsideAngular(() => interval(1000).pipe(takeUntil(merge(this.activityEvents$, timer(this.idle * 1000).pipe(tap(() => {
this.isInactivityTimer = true;
this.timerStart$.next(true);
})))), finalize(() => (this.isIdleDetected = false))))))
.subscribe();

@@ -83,2 +87,3 @@ this.setupTimer(this.timeout);

stopTimer() {
this.isInactivityTimer = false;
this.timerStart$.next(false);

@@ -105,3 +110,3 @@ }

onTimeout() {
return this.timeout$.pipe(filter(timeout => !!timeout), tap(() => this.isTimeout = true), map(() => true));
return this.timeout$.pipe(filter(timeout => !!timeout), tap(() => (this.isTimeout = true)), map(() => true));
}

@@ -139,5 +144,25 @@ /**

/**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
setCustomActivityEvents(customEvents) {
if (this.idleSubscription && !this.idleSubscription.closed) {
console.error('Call stopWatching() before set custom activity events');
return;
}
this.activityEvents$ = customEvents;
}
/**
* Setup timer.
*
* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -147,7 +172,9 @@ * @return {?}

setupTimer(timeout) {
this.timer$ = interval(1000).pipe(take(timeout), map(() => 1), scan((acc, n) => acc + n), tap(count => {
if (count === timeout) {
this.timeout$.next(true);
}
}));
this._ngZone.runOutsideAngular(() => {
this.timer$ = interval(1000).pipe(take(timeout), map(() => 1), scan((acc, n) => acc + n), tap(count => {
if (count === timeout) {
this.timeout$.next(true);
}
}));
});
}

@@ -158,2 +185,3 @@ /**

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -173,9 +201,10 @@ * @return {?}

UserIdleService.ctorParameters = () => [
{ type: UserIdleConfig, decorators: [{ type: Optional },] },
{ type: UserIdleConfig, decorators: [{ type: Optional }] },
{ type: NgZone }
];
/** @nocollapse */ UserIdleService.ngInjectableDef = defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(inject(UserIdleConfig, 8)); }, token: UserIdleService, providedIn: "root" });
/** @nocollapse */ UserIdleService.ngInjectableDef = defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(inject(UserIdleConfig, 8), inject(NgZone)); }, token: UserIdleService, providedIn: "root" });
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -204,3 +233,3 @@ class UserIdleModule {

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -210,3 +239,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -216,2 +245,2 @@

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nOiBudW1iZXI7XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICBtZXJnZSxcbiAgZnJvbUV2ZW50LFxuICBmcm9tLFxuICBpbnRlcnZhbCxcbiAgdGltZXIsXG4gIG9mXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxMCBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGUgPSA2MDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nID0gMTIwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGlkbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5pZGxlID0gY29uZmlnLmlkbGU7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICAgIHRoaXMucGluZyA9IGNvbmZpZy5waW5nO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICApO1xuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGZvciB1c2VyIGlkbGUgYW5kIHNldHVwIHRpbWVyIGFuZCBwaW5nLlxuICAgKi9cbiAgc3RhcnRXYXRjaGluZygpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUoNTAwMCksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICB0aW1lcih0aGlzLmlkbGUgKiAxMDAwKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnRpbWVyU3RhcnQkLm5leHQodHJ1ZSkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gZmFsc2UpKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nKTtcbiAgfVxuXG4gIHN0b3BXYXRjaGluZygpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BUaW1lcigpIHtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lb3V0IGlzIGZpcmVkLlxuICAgKi9cbiAgb25UaW1lb3V0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVvdXQkLnBpcGUoXG4gICAgICBmaWx0ZXIodGltZW91dCA9PiAhIXRpbWVvdXQpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGUsXG4gICAgICB0aW1lb3V0OiB0aGlzLnRpbWVvdXQsXG4gICAgICBwaW5nOiB0aGlzLnBpbmdcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgdmFsdWVzLlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBzZXRDb25maWdWYWx1ZXMoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjb25maWcgdmFsdWVzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMudGltZXIkID0gaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgIHRha2UodGltZW91dCksXG4gICAgICBtYXAoKCkgPT4gMSksXG4gICAgICBzY2FuKChhY2MsIG4pID0+IGFjYyArIG4pLFxuICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgaWYgKGNvdW50ID09PSB0aW1lb3V0KSB7XG4gICAgICAgICAgdGhpcy50aW1lb3V0JC5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgcGluZy5cbiAgICpcbiAgICogUGluZ3MgZXZlcnkgcGluZy1zZWNvbmRzIG9ubHkgaWYgaXMgbm90IHRpbWVvdXQuXG4gICAqIEBwYXJhbSBwaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmc6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nICogMTAwMCkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5pc1RpbWVvdXQpXG4gICAgKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogVXNlcklkbGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVzZXJJZGxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBVc2VySWRsZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ31cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtDQWFDOzs7Ozs7QUNiRDs7O0FBZ0NBOzs7O0lBc0NFLFlBQXdCOzJCQTlCQSxJQUFJLE9BQU8sRUFBVzt3QkFDekIsSUFBSSxPQUFPLEVBQVc7Ozs7O29CQU8xQixHQUFHOzs7Ozt1QkFLQSxHQUFHOzs7OztvQkFLTixHQUFHO1FBYWxCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDOUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDM0IsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDL0IsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUN6Qzs7Ozs7SUFLRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nOiBudW1iZXI7XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIG1lcmdlLFxuICBmcm9tRXZlbnQsXG4gIGZyb20sXG4gIGludGVydmFsLFxuICB0aW1lcixcbiAgb2Zcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBidWZmZXJUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzY2FuLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG4vKipcbiAqIFVzZXIncyBpZGxlIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlU2VydmljZSB7XG4gIHBpbmckOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqXG4gICAqIEV2ZW50cyB0aGF0IGNhbiBpbnRlcnJ1cHRzIHVzZXIncyBpbmFjdGl2aXR5IHRpbWVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFjdGl2aXR5RXZlbnRzJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByb3RlY3RlZCB0aW1lclN0YXJ0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZSA9IDYwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmcgPSAxMjA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICk7XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIElmIGFueSBvZiB1c2VyIGV2ZW50cyBpcyBub3QgYWN0aXZlIGZvciBpZGxlLXNlY29uZHMgd2hlbiBzdGFydCB0aW1lci5cbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24gPSB0aGlzLmlkbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgYnVmZmVyVGltZSg1MDApLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICAgICAgaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQsXG4gICAgICAgICAgICAgICAgICB0aW1lcih0aGlzLmlkbGUgKiAxMDAwKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2UpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nKTtcbiAgfVxuXG4gIHN0b3BXYXRjaGluZygpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BUaW1lcigpIHtcbiAgICB0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gZmFsc2U7XG4gICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0VGltZXIoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICB0aGlzLmlzVGltZW91dCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lcidzIGNvdW50ZG93biBudW1iZXIgdGhhdCBlbWl0cyBhZnRlciBpZGxlLlxuICAgKi9cbiAgb25UaW1lclN0YXJ0KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXJTdGFydCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoc3RhcnQgPT4gKHN0YXJ0ID8gdGhpcy50aW1lciQgOiBvZihudWxsKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGUsXG4gICAgICB0aW1lb3V0OiB0aGlzLnRpbWVvdXQsXG4gICAgICBwaW5nOiB0aGlzLnBpbmdcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgdmFsdWVzLlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBzZXRDb25maWdWYWx1ZXMoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjb25maWcgdmFsdWVzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgIHRha2UodGltZW91dCksXG4gICAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgICBpZiAoY291bnQgPT09IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nOiBudW1iZXIpIHtcbiAgICB0aGlzLnBpbmckID0gaW50ZXJ2YWwocGluZyAqIDEwMDApLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBVc2VySWRsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQWEsY0FBYztDQWExQjs7Ozs7O0FDYkQ7OztBQWdDQSxNQUFhLGVBQWU7Ozs7O0lBdUMxQixZQUF3QixNQUFzQixFQUFVLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBL0I3RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDckMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7Ozs7O1FBT2xDLFNBQUksR0FBRyxHQUFHLENBQUM7Ozs7O1FBS1gsWUFBTyxHQUFHLEdBQUcsQ0FBQzs7Ozs7UUFLZCxTQUFJLEdBQUcsR0FBRyxDQUFDO1FBY25CLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFF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

@@ -1,2 +0,2 @@

import { Injectable, Optional, NgModule, defineInjectable, inject } from '@angular/core';
import { Injectable, Optional, NgZone, NgModule, defineInjectable, inject } from '@angular/core';
import { Subject, merge, fromEvent, from, interval, timer, of } from 'rxjs';

@@ -7,3 +7,3 @@ import { bufferTime, distinctUntilChanged, filter, finalize, map, scan, switchMap, take, takeUntil, tap } from 'rxjs/operators';

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -18,3 +18,3 @@ var UserIdleConfig = /** @class */ (function () {

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -25,3 +25,4 @@ /**

var UserIdleService = /** @class */ (function () {
function UserIdleService(config) {
function UserIdleService(config, _ngZone) {
this._ngZone = _ngZone;
this.timerStart$ = new Subject();

@@ -70,6 +71,10 @@ this.timeout$ = new Subject();

this.idleSubscription = this.idle$
.pipe(bufferTime(5000), // Starting point of detecting of user's inactivity
// Starting point of detecting of user's inactivity
filter(function (arr) { return !arr.length && !_this.isInactivityTimer; }), tap(function () { return _this.isInactivityTimer = true; }), switchMap(function () {
return interval(1000).pipe(takeUntil(merge(_this.activityEvents$, timer(_this.idle * 1000).pipe(tap(function () { return _this.timerStart$.next(true); })))), finalize(function () { return (_this.isInactivityTimer = false); }));
.pipe(bufferTime(500), // Starting point of detecting of user's inactivity
filter(function (arr) { return !arr.length && !_this.isIdleDetected && !_this.isInactivityTimer; }), tap(function () { return (_this.isIdleDetected = true); }), switchMap(function () {
return _this._ngZone.runOutsideAngular(function () {
return interval(1000).pipe(takeUntil(merge(_this.activityEvents$, timer(_this.idle * 1000).pipe(tap(function () {
_this.isInactivityTimer = true;
_this.timerStart$.next(true);
})))), finalize(function () { return (_this.isIdleDetected = false); }));
});
}))

@@ -99,2 +104,3 @@ .subscribe();

function () {
this.isInactivityTimer = false;
this.timerStart$.next(false);

@@ -140,3 +146,3 @@ };

var _this = this;
return this.timeout$.pipe(filter(function (timeout) { return !!timeout; }), tap(function () { return _this.isTimeout = true; }), map(function () { return true; }));
return this.timeout$.pipe(filter(function (timeout) { return !!timeout; }), tap(function () { return (_this.isTimeout = true); }), map(function () { return true; }));
};

@@ -186,2 +192,44 @@ /**

/**
* Set custom activity events
*
* @param customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
*/
/**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
UserIdleService.prototype.setCustomActivityEvents = /**
* Set custom activity events
*
* @param {?} customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
* @return {?}
*/
function (customEvents) {
if (this.idleSubscription && !this.idleSubscription.closed) {
console.error('Call stopWatching() before set custom activity events');
return;
}
this.activityEvents$ = customEvents;
};
/**
* Setup timer.

@@ -196,2 +244,3 @@ *

* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -204,2 +253,3 @@ * @return {?}

* Counts every seconds and return n+1 and fire timeout for last count.
* @protected
* @param {?} timeout Timeout in seconds.

@@ -210,7 +260,9 @@ * @return {?}

var _this = this;
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.timeout$.next(true);
}
}));
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.timeout$.next(true);
}
}));
});
};

@@ -227,2 +279,3 @@ /**

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -235,2 +288,3 @@ * @return {?}

* Pings every ping-seconds only if is not timeout.
* @protected
* @param {?} ping

@@ -250,5 +304,6 @@ * @return {?}

UserIdleService.ctorParameters = function () { return [
{ type: UserIdleConfig, decorators: [{ type: Optional },] },
{ type: UserIdleConfig, decorators: [{ type: Optional }] },
{ type: NgZone }
]; };
/** @nocollapse */ UserIdleService.ngInjectableDef = defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(inject(UserIdleConfig, 8)); }, token: UserIdleService, providedIn: "root" });
/** @nocollapse */ UserIdleService.ngInjectableDef = defineInjectable({ factory: function UserIdleService_Factory() { return new UserIdleService(inject(UserIdleConfig, 8), inject(NgZone)); }, token: UserIdleService, providedIn: "root" });
return UserIdleService;

@@ -259,3 +314,3 @@ }());

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -291,3 +346,3 @@ var UserIdleModule = /** @class */ (function () {

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -297,3 +352,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -303,2 +358,2 @@

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nOiBudW1iZXI7XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICBtZXJnZSxcbiAgZnJvbUV2ZW50LFxuICBmcm9tLFxuICBpbnRlcnZhbCxcbiAgdGltZXIsXG4gIG9mXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VySWRsZUNvbmZpZyB9IGZyb20gJy4vYW5ndWxhci11c2VyLWlkbGUuY29uZmlnJztcblxuLyoqXG4gKiBVc2VyJ3MgaWRsZSBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZVNlcnZpY2Uge1xuICBwaW5nJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBFdmVudHMgdGhhdCBjYW4gaW50ZXJydXB0cyB1c2VyJ3MgaW5hY3Rpdml0eSB0aW1lci5cbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpdml0eUV2ZW50cyQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcm90ZWN0ZWQgdGltZXJTdGFydCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgdGltZW91dCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgaWRsZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJvdGVjdGVkIHRpbWVyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAvKipcbiAgICogSWRsZSB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBEZWZhdWx0IGVxdWFscyB0byAxMCBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGUgPSA2MDA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDUgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCB0aW1lb3V0ID0gMzAwO1xuICAvKipcbiAgICogUGluZyB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKiAqIERlZmF1bHQgZXF1YWxzIHRvIDIgbWludXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBwaW5nID0gMTIwO1xuICAvKipcbiAgICogVGltZW91dCBzdGF0dXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUaW1lb3V0OiBib29sZWFuO1xuICAvKipcbiAgICogVGltZXIgb2YgdXNlcidzIGluYWN0aXZpdHkgaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNJbmFjdGl2aXR5VGltZXI6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGlkbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb25maWc6IFVzZXJJZGxlQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5pZGxlID0gY29uZmlnLmlkbGU7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICAgIHRoaXMucGluZyA9IGNvbmZpZy5waW5nO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkID0gbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyksXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICApO1xuXG4gICAgdGhpcy5pZGxlJCA9IGZyb20odGhpcy5hY3Rpdml0eUV2ZW50cyQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGZvciB1c2VyIGlkbGUgYW5kIHNldHVwIHRpbWVyIGFuZCBwaW5nLlxuICAgKi9cbiAgc3RhcnRXYXRjaGluZygpIHtcbiAgICBpZiAodGhpcy5pZGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbnkgb2YgdXNlciBldmVudHMgaXMgbm90IGFjdGl2ZSBmb3IgaWRsZS1zZWNvbmRzIHdoZW4gc3RhcnQgdGltZXIuXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlclRpbWUoNTAwMCksIC8vIFN0YXJ0aW5nIHBvaW50IG9mIGRldGVjdGluZyBvZiB1c2VyJ3MgaW5hY3Rpdml0eVxuICAgICAgICBmaWx0ZXIoYXJyID0+ICFhcnIubGVuZ3RoICYmICF0aGlzLmlzSW5hY3Rpdml0eVRpbWVyKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlFdmVudHMkLFxuICAgICAgICAgICAgICB0aW1lcih0aGlzLmlkbGUgKiAxMDAwKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnRpbWVyU3RhcnQkLm5leHQodHJ1ZSkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gZmFsc2UpKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nKTtcbiAgfVxuXG4gIHN0b3BXYXRjaGluZygpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BUaW1lcigpIHtcbiAgICB0aGlzLnRpbWVyU3RhcnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIHRoaXMuaXNUaW1lb3V0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG9ic2VydmFibGUgZm9yIHRpbWVyJ3MgY291bnRkb3duIG51bWJlciB0aGF0IGVtaXRzIGFmdGVyIGlkbGUuXG4gICAqL1xuICBvblRpbWVyU3RhcnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lclN0YXJ0JC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcChzdGFydCA9PiAoc3RhcnQgPyB0aGlzLnRpbWVyJCA6IG9mKG51bGwpKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lb3V0IGlzIGZpcmVkLlxuICAgKi9cbiAgb25UaW1lb3V0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVvdXQkLnBpcGUoXG4gICAgICBmaWx0ZXIodGltZW91dCA9PiAhIXRpbWVvdXQpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNUaW1lb3V0ID0gdHJ1ZSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGUsXG4gICAgICB0aW1lb3V0OiB0aGlzLnRpbWVvdXQsXG4gICAgICBwaW5nOiB0aGlzLnBpbmdcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgdmFsdWVzLlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBzZXRDb25maWdWYWx1ZXMoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjb25maWcgdmFsdWVzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMudGltZXIkID0gaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgIHRha2UodGltZW91dCksXG4gICAgICBtYXAoKCkgPT4gMSksXG4gICAgICBzY2FuKChhY2MsIG4pID0+IGFjYyArIG4pLFxuICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgaWYgKGNvdW50ID09PSB0aW1lb3V0KSB7XG4gICAgICAgICAgdGhpcy50aW1lb3V0JC5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgcGluZy5cbiAgICpcbiAgICogUGluZ3MgZXZlcnkgcGluZy1zZWNvbmRzIG9ubHkgaWYgaXMgbm90IHRpbWVvdXQuXG4gICAqIEBwYXJhbSBwaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQaW5nKHBpbmc6IG51bWJlcikge1xuICAgIHRoaXMucGluZyQgPSBpbnRlcnZhbChwaW5nICogMTAwMCkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5pc1RpbWVvdXQpXG4gICAgKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VySWRsZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogVXNlcklkbGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVzZXJJZGxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBVc2VySWRsZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ31cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBOzs7eUJBQUE7SUFhQzs7Ozs7O0FDYkQ7Ozs7SUFzRUUseUJBQXdCOzJCQTlCQSxJQUFJLE9BQU8sRUFBVzt3QkFDekIsSUFBSSxPQUFPLEVBQVc7Ozs7O29CQU8xQixHQUFHOzs7Ozt1QkFLQSxHQUFHOzs7OztvQkFLTixHQUFHO1FBYWxCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDOUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDM0IsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDL0IsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUN6Qzs7Ozs7Ozs7SUFLRCx1Q0FBYTs7OztJQUFi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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11c2VyLWlkbGUuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcudHMiLCJuZzovL2FuZ3VsYXItdXNlci1pZGxlL2xpYi9hbmd1bGFyLXVzZXItaWRsZS5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLXVzZXItaWRsZS9saWIvYW5ndWxhci11c2VyLWlkbGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VySWRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBpZGxlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqL1xuICBwaW5nOiBudW1iZXI7XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIG1lcmdlLFxuICBmcm9tRXZlbnQsXG4gIGZyb20sXG4gIGludGVydmFsLFxuICB0aW1lcixcbiAgb2Zcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBidWZmZXJUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwLFxuICBzY2FuLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJJZGxlQ29uZmlnIH0gZnJvbSAnLi9hbmd1bGFyLXVzZXItaWRsZS5jb25maWcnO1xuXG4vKipcbiAqIFVzZXIncyBpZGxlIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlU2VydmljZSB7XG4gIHBpbmckOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqXG4gICAqIEV2ZW50cyB0aGF0IGNhbiBpbnRlcnJ1cHRzIHVzZXIncyBpbmFjdGl2aXR5IHRpbWVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFjdGl2aXR5RXZlbnRzJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByb3RlY3RlZCB0aW1lclN0YXJ0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCB0aW1lb3V0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBpZGxlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwcm90ZWN0ZWQgdGltZXIkOiBPYnNlcnZhYmxlPGFueT47XG4gIC8qKlxuICAgKiBJZGxlIHZhbHVlIGluIHNlY29uZHMuXG4gICAqIERlZmF1bHQgZXF1YWxzIHRvIDEwIG1pbnV0ZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZSA9IDYwMDtcbiAgLyoqXG4gICAqIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcy5cbiAgICogRGVmYXVsdCBlcXVhbHMgdG8gNSBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAzMDA7XG4gIC8qKlxuICAgKiBQaW5nIHZhbHVlIGluIHNlY29uZHMuXG4gICAqICogRGVmYXVsdCBlcXVhbHMgdG8gMiBtaW51dGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHBpbmcgPSAxMjA7XG4gIC8qKlxuICAgKiBUaW1lb3V0IHN0YXR1cy5cbiAgICovXG4gIHByb3RlY3RlZCBpc1RpbWVvdXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaW1lciBvZiB1c2VyJ3MgaW5hY3Rpdml0eSBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBpc0luYWN0aXZpdHlUaW1lcjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzSWRsZURldGVjdGVkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnOiBVc2VySWRsZUNvbmZpZywgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuICAgICAgdGhpcy5waW5nID0gY29uZmlnLnBpbmc7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICk7XG5cbiAgICB0aGlzLmlkbGUkID0gZnJvbSh0aGlzLmFjdGl2aXR5RXZlbnRzJCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgZm9yIHVzZXIgaWRsZSBhbmQgc2V0dXAgdGltZXIgYW5kIHBpbmcuXG4gICAqL1xuICBzdGFydFdhdGNoaW5nKCkge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIElmIGFueSBvZiB1c2VyIGV2ZW50cyBpcyBub3QgYWN0aXZlIGZvciBpZGxlLXNlY29uZHMgd2hlbiBzdGFydCB0aW1lci5cbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24gPSB0aGlzLmlkbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgYnVmZmVyVGltZSg1MDApLCAvLyBTdGFydGluZyBwb2ludCBvZiBkZXRlY3Rpbmcgb2YgdXNlcidzIGluYWN0aXZpdHlcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGFyciA9PiAhYXJyLmxlbmd0aCAmJiAhdGhpcy5pc0lkbGVEZXRlY3RlZCAmJiAhdGhpcy5pc0luYWN0aXZpdHlUaW1lclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNJZGxlRGV0ZWN0ZWQgPSB0cnVlKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICAgICAgaW50ZXJ2YWwoMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQsXG4gICAgICAgICAgICAgICAgICB0aW1lcih0aGlzLmlkbGUgKiAxMDAwKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbmFjdGl2aXR5VGltZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXJTdGFydCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzSWRsZURldGVjdGVkID0gZmFsc2UpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXR1cFRpbWVyKHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5zZXR1cFBpbmcodGhpcy5waW5nKTtcbiAgfVxuXG4gIHN0b3BXYXRjaGluZygpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BUaW1lcigpIHtcbiAgICB0aGlzLmlzSW5hY3Rpdml0eVRpbWVyID0gZmFsc2U7XG4gICAgdGhpcy50aW1lclN0YXJ0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0VGltZXIoKSB7XG4gICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICB0aGlzLmlzVGltZW91dCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBvYnNlcnZhYmxlIGZvciB0aW1lcidzIGNvdW50ZG93biBudW1iZXIgdGhhdCBlbWl0cyBhZnRlciBpZGxlLlxuICAgKi9cbiAgb25UaW1lclN0YXJ0KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXJTdGFydCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoc3RhcnQgPT4gKHN0YXJ0ID8gdGhpcy50aW1lciQgOiBvZihudWxsKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gb2JzZXJ2YWJsZSBmb3IgdGltZW91dCBpcyBmaXJlZC5cbiAgICovXG4gIG9uVGltZW91dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lb3V0JC5waXBlKFxuICAgICAgZmlsdGVyKHRpbWVvdXQgPT4gISF0aW1lb3V0KSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1RpbWVvdXQgPSB0cnVlKSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnVmFsdWUoKTogVXNlcklkbGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBpZGxlOiB0aGlzLmlkbGUsXG4gICAgICB0aW1lb3V0OiB0aGlzLnRpbWVvdXQsXG4gICAgICBwaW5nOiB0aGlzLnBpbmdcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgdmFsdWVzLlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBzZXRDb25maWdWYWx1ZXMoY29uZmlnOiBVc2VySWRsZUNvbmZpZykge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjb25maWcgdmFsdWVzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5pZGxlKSB7XG4gICAgICB0aGlzLmlkbGUgPSBjb25maWcuaWRsZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5waW5nKSB7XG4gICAgICB0aGlzLnBpbmcgPSBjb25maWcucGluZztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBhY3Rpdml0eSBldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGN1c3RvbUV2ZW50cyBFeGFtcGxlOiBtZXJnZShcbiAgICogICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXG4gICAqICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxuICAgKiAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKSxcbiAgICogICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaHN0YXJ0JyksXG4gICAqICAgZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKVxuICAgKiApXG4gICAqL1xuICBzZXRDdXN0b21BY3Rpdml0eUV2ZW50cyhjdXN0b21FdmVudHM6IE9ic2VydmFibGU8YW55Pikge1xuICAgIGlmICh0aGlzLmlkbGVTdWJzY3JpcHRpb24gJiYgIXRoaXMuaWRsZVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NhbGwgc3RvcFdhdGNoaW5nKCkgYmVmb3JlIHNldCBjdXN0b20gYWN0aXZpdHkgZXZlbnRzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpdml0eUV2ZW50cyQgPSBjdXN0b21FdmVudHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgdGltZXIuXG4gICAqXG4gICAqIENvdW50cyBldmVyeSBzZWNvbmRzIGFuZCByZXR1cm4gbisxIGFuZCBmaXJlIHRpbWVvdXQgZm9yIGxhc3QgY291bnQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gc2Vjb25kcy5cbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cFRpbWVyKHRpbWVvdXQ6IG51bWJlcikge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gICAgICAgIHRha2UodGltZW91dCksXG4gICAgICAgIG1hcCgoKSA9PiAxKSxcbiAgICAgICAgc2NhbigoYWNjLCBuKSA9PiBhY2MgKyBuKSxcbiAgICAgICAgdGFwKGNvdW50ID0+IHtcbiAgICAgICAgICBpZiAoY291bnQgPT09IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHBpbmcuXG4gICAqXG4gICAqIFBpbmdzIGV2ZXJ5IHBpbmctc2Vjb25kcyBvbmx5IGlmIGlzIG5vdCB0aW1lb3V0LlxuICAgKiBAcGFyYW0gcGluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwUGluZyhwaW5nOiBudW1iZXIpIHtcbiAgICB0aGlzLnBpbmckID0gaW50ZXJ2YWwocGluZyAqIDEwMDApLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLmlzVGltZW91dCkpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlcklkbGVDb25maWcgfSBmcm9tICcuL2FuZ3VsYXItdXNlci1pZGxlLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJJZGxlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBVc2VySWRsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlcklkbGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFVzZXJJZGxlQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0lBQUE7S0FhQztJQUFELHFCQUFDO0NBQUE7Ozs7OztBQ2JEOzs7QUE2QkE7SUEwQ0UseUJBQXdCLE1BQXNCLEVBQVUsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUEvQjdELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNyQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQzs7Ozs7UUFPbEMsU0FBSSxHQUFHLEdBQUcsQ0FBQzs7Ozs7UUFLWCxZQUFPLEdBQUcsR0FBRyxDQUFDOzs7OztRQUtkLFNBQUksR0FBRyxHQUFHLENBQUM7UUFjbkIsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUMxQixTQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUM5QixTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUMzQixTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUMvQixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3pDOzs7Ozs7OztJQUtELHVDQUFhOzs7O0lBQWI7UUFBQSxpQkFvQ0M7UUFuQ0MsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JDOztRQUdELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSzthQUMvQixJQUFJLENBQ0gsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUNmLE1BQU0sQ0FDSixVQUFBLEdBQUcsSUFBSSxPQUFBLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFJLENBQUMsaUJBQWlCLEdBQUEsQ0FDdEUsRUFDRCxHQUFHLENBQUMsY0FBTSxRQUFDLEtBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFDLENBQUMsRUFDdkMsU0FBUyxDQUFDO1lBQ1IsT0FBQSxLQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO2dCQUM3QixPQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2pCLFNBQVMsQ0FDUCxLQUFLLENBQ0gsS0FBSSxDQUFDLGVBQWUsRUFDcEIsS0FBSyxDQUFDLEtBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUM7b0JBQ0YsS0FBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztvQkFDOUIsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdCLENBQUMsQ0FDSCxDQUNGLENBQ0YsRUFDRCxRQUFRLENBQUMsY0FBTSxRQUFDLEtBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxJQUFDLENBQUMsQ0FDOUM7YUFBQSxDQUNGO1NBQUEsQ0FDRixDQUNGO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7OztJQUVELHNDQUFZOzs7SUFBWjtRQUNFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDckM7S0FDRjs7OztJQUVELG1DQUFTOzs7SUFBVDtRQUNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDOUI7Ozs7SUFFRCxvQ0FBVTs7O0lBQVY7UUFDRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7S0FDeEI7Ozs7Ozs7O0lBS0Qsc0NBQVk7Ozs7SUFBWjtRQUFBLGlCQUtDO1FBSkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLFVBQUEsS0FBSyxJQUFJLFFBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFDLENBQUMsQ0FDckQsQ0FBQztLQUNIOzs7Ozs7OztJQUtELG1DQUFTOzs7O0lBQVQ7UUFBQSxpQkFNQztRQUxDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZCLE1BQU0sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUEsQ0FBQyxFQUM1QixHQUFHLENBQUMsY0FBTSxRQUFDLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFDLENBQUMsRUFDbEMsR0FBRyxDQUFDLGNBQU0sT0FBQSxJQUFJLEdBQUEsQ0FBQyxDQUNoQixDQUFDO0tBQ0g7Ozs7SUFFRCx3Q0FBYzs7O0lBQWQ7UUFDRSxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDO0tBQ0g7Ozs7Ozs7Ozs7SUFNRCx5Q0FBZTs7Ozs7SUFBZixVQUFnQixNQUFzQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDMUQsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lBQzlELE9BQU87U0FDUjtRQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztTQUN6QjtRQUNELElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztTQUN6QjtRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDL0I7S0FDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBYUQsaURBQXVCOzs7Ozs7Ozs7Ozs7SUFBdkIsVUFBd0IsWUFBNkI7UUFDbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzFELE9BQU8sQ0FBQyxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztZQUN2RSxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQztLQUNyQzs7Ozs7Ozs7Ozs7Ozs7O0lBUVMsb0NBQVU7Ozs7Ozs7O0lBQXBCLFVBQXFCLE9BQWU7UUFBcEMsaUJBYUM7UUFaQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQzdCLEtBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUNiLEdBQUcsQ0FBQyxjQUFNLE9BQUEsQ0FBQyxHQUFBLENBQUMsRUFDWixJQUFJLENBQUMsVUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFLLE9BQUEsR0FBRyxHQUFHLENBQUMsR0FBQSxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxVQUFBLEtBQUs7Z0JBQ1AsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFO29CQUNyQixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUI7YUFDRixDQUFDLENBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztLQUNKOzs7Ozs7Ozs7Ozs7Ozs7SUFRUyxtQ0FBUzs7Ozs7Ozs7SUFBbkIsVUFBb0IsSUFBWTtRQUFoQyxpQkFFQztRQURDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQU0sT0FBQSxDQUFDLEtBQUksQ0FBQyxTQUFTLEdBQUEsQ0FBQyxDQUFDLENBQUM7S0FDeEU7O2dCQXZORixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQVBRLGNBQWMsdUJBK0NSLFFBQVE7Z0JBdkVRLE1BQU07OzswQkFBckM7Q0FxUEM7Ozs7OztBQ3JQRDtJQUdBO0tBWUM7Ozs7O0lBUlEsc0JBQU87Ozs7SUFBZCxVQUFlLE1BQXNCO1FBQ25DLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7YUFDNUM7U0FDRixDQUFDO0tBQ0g7O2dCQVhGLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtpQkFDWjs7SUFVRCxxQkFBQztDQUFBOzs7Ozs7Ozs7Ozs7OzsifQ==

@@ -0,1 +1,2 @@

import { NgZone } from '@angular/core';
import { Observable, Subject, Subscription } from 'rxjs';

@@ -7,2 +8,3 @@ import { UserIdleConfig } from './angular-user-idle.config';

export declare class UserIdleService {
private _ngZone;
ping$: Observable<any>;

@@ -40,4 +42,5 @@ /**

protected isInactivityTimer: boolean;
protected isIdleDetected: boolean;
protected idleSubscription: Subscription;
constructor(config: UserIdleConfig);
constructor(config: UserIdleConfig, _ngZone: NgZone);
/**

@@ -65,2 +68,14 @@ * Start watching for user idle and setup timer and ping.

/**
* Set custom activity events
*
* @param customEvents Example: merge(
* fromEvent(window, 'mousemove'),
* fromEvent(window, 'resize'),
* fromEvent(document, 'keydown'),
* fromEvent(document, 'touchstart'),
* fromEvent(document, 'touchend')
* )
*/
setCustomActivityEvents(customEvents: Observable<any>): void;
/**
* Setup timer.

@@ -67,0 +82,0 @@ *

{
"name": "angular-user-idle",
"version": "2.0.0",
"description": "User's idle service for Angular 6",
"version": "2.1.1",
"description": "User's idle service for Angular 6+",
"repository": {

@@ -12,4 +12,4 @@ "type": "git",

"peerDependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0",
"@angular/common": "^6.0.0 || ^7.0.0",
"@angular/core": "^6.0.0 || ^7.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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc