dynamic-display-shared
Version:
A library for dynamic view
70 lines • 9.79 kB
JavaScript
import { APP_INITIALIZER, Injectable } from '@angular/core';
import { fromEvent, merge, Observable, Subject, Subscription, timer } from 'rxjs';
import { OAuthService } from 'angular-oauth2-oidc';
import * as i0 from "@angular/core";
import * as i1 from "angular-oauth2-oidc";
export class IdleService {
constructor(authService) {
this.authService = authService;
this.idle = new Observable();
this.timer = new Subscription();
this.timeOutMilliSeconds = 1000;
this.idleSubscription = new Subscription();
this.expired = new Subject();
}
startWatching(timeOutMinutes) {
this.idle = merge(fromEvent(document, 'mousemove'), fromEvent(document, 'click'), fromEvent(document, 'mousedown'), fromEvent(document, 'keypress'), fromEvent(document, 'DOMMouseScroll'), fromEvent(document, 'mousewheel'), fromEvent(document, 'touchmove'), fromEvent(document, 'MSPointerMove'), fromEvent(window, 'mousemove'), fromEvent(window, 'resize'));
this.timeOutMilliSeconds = timeOutMinutes * 60 * 1000;
this.idleSubscription = this.idle.subscribe((res) => {
this.resetTimer();
});
this.startTimer();
return this.expired;
}
startTimer() {
this.timer = timer(this.timeOutMilliSeconds, this.timeOutMilliSeconds).subscribe((res) => {
this.expired.next(true);
});
}
resetTimer() {
this.timer.unsubscribe();
this.startTimer();
}
stopTimer() {
this.timer.unsubscribe();
this.idleSubscription.unsubscribe();
}
initialIdleSettings(idleTimeInMinutes, message) {
this.startWatching(idleTimeInMinutes).subscribe((isTimeOut) => {
if (isTimeOut) {
//this.notificationService.showInfo(message,"");
alert(message);
this.authService.logOut();
}
});
}
}
IdleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: IdleService, deps: [{ token: i1.OAuthService }], target: i0.ɵɵFactoryTarget.Injectable });
IdleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: IdleService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: IdleService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i1.OAuthService }]; } });
export function initIdle() {
return {
provide: APP_INITIALIZER,
useFactory: appInitIdleFactory,
deps: [IdleService],
multi: true
};
}
export function appInitIdleFactory(idle) {
// return async () => idle.initialIdleSettings(environment.idleTimeInMinutes, MessagesConfig.RECONNECTED_ALERT);
return true;
}
export const IdleModule = {
init: initIdle
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1kaXNwbGF5LXNoYXJlZC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9pZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTW5ELE1BQU0sT0FBTyxXQUFXO0lBT3RCLFlBQXFCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTHJDLFNBQUksR0FBb0IsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUN6QyxVQUFLLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekMsd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBQ25DLHFCQUFnQixHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELFlBQU8sR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUNULENBQUM7SUFDM0MsYUFBYSxDQUFDLGNBQXVCO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUNmLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQy9CLFNBQVMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsRUFDckMsU0FBUyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFDakMsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFDaEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsRUFDcEMsU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDOUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FDNUIsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxjQUFjLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDTyxVQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNNLFNBQVM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ00sbUJBQW1CLENBQUMsaUJBQXdCLEVBQUMsT0FBYztRQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBa0IsRUFBRSxFQUFFO1lBQ3JFLElBQUksU0FBUyxFQUFFO2dCQUNiLGdEQUFnRDtnQkFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDM0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3dHQWpEWSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQXVERCxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsVUFBVSxFQUFFLGtCQUFrQjtRQUM5QixJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDbkIsS0FBSyxFQUFFLElBQUk7S0FDZCxDQUFBO0FBQ0gsQ0FBQztBQUNELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFpQjtJQUNsRCxnSEFBZ0g7SUFDaEgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBQ0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxRQUFRO0NBQ2YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlc0NvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElkbGVTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBpZGxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgdGltZXIgOlN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIHRpbWVPdXRNaWxsaVNlY29uZHM6IG51bWJlciA9IDEwMDA7XHJcbiAgcHJpdmF0ZSBpZGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHVibGljIGV4cGlyZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGF1dGhTZXJ2aWNlOk9BdXRoU2VydmljZSkgeyB9XHJcbiAgcHVibGljIHN0YXJ0V2F0Y2hpbmcodGltZU91dE1pbnV0ZXMgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5pZGxlID0gbWVyZ2UoXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZWRvd24nKSxcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5cHJlc3MnKSxcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnRE9NTW91c2VTY3JvbGwnKSxcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2V3aGVlbCcpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICd0b3VjaG1vdmUnKSxcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnTVNQb2ludGVyTW92ZScpLFxyXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnbW91c2Vtb3ZlJyksXHJcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKSxcclxuICAgICk7XHJcbiAgICB0aGlzLnRpbWVPdXRNaWxsaVNlY29uZHMgPSB0aW1lT3V0TWludXRlcyAqIDYwICogMTAwMDtcclxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuaWRsZS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnJlc2V0VGltZXIoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdGFydFRpbWVyKCk7XHJcbiAgICByZXR1cm4gdGhpcy5leHBpcmVkO1xyXG4gIH1cclxuICBwcml2YXRlIHN0YXJ0VGltZXIoKSB7XHJcbiAgIHRoaXMudGltZXIgPSB0aW1lcih0aGlzLnRpbWVPdXRNaWxsaVNlY29uZHMsIHRoaXMudGltZU91dE1pbGxpU2Vjb25kcykuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5leHBpcmVkLm5leHQodHJ1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIHJlc2V0VGltZXIoKSB7XHJcbiAgICB0aGlzLnRpbWVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN0YXJ0VGltZXIoKTtcclxuICB9XHJcbiAgcHVibGljIHN0b3BUaW1lcigpIHtcclxuICAgIHRoaXMudGltZXIudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICBwdWJsaWMgaW5pdGlhbElkbGVTZXR0aW5ncyhpZGxlVGltZUluTWludXRlczpudW1iZXIsbWVzc2FnZTpzdHJpbmcpIHtcclxuICAgIHRoaXMuc3RhcnRXYXRjaGluZyhpZGxlVGltZUluTWludXRlcykuc3Vic2NyaWJlKChpc1RpbWVPdXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKGlzVGltZU91dCkge1xyXG4gICAgICAgIC8vdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dJbmZvKG1lc3NhZ2UsXCJcIik7XHJcbiAgICAgICAgYWxlcnQobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dPdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7ICAgXHJcbn1cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdElkbGUoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICB1c2VGYWN0b3J5OiBhcHBJbml0SWRsZUZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtJZGxlU2VydmljZV0sXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBhcHBJbml0SWRsZUZhY3RvcnkoaWRsZTogSWRsZVNlcnZpY2UpOiBib29sZWFuIHsvLygpID0+IFByb21pc2U8YW55PiB7XHJcbiAgLy8gcmV0dXJuIGFzeW5jICgpID0+IGlkbGUuaW5pdGlhbElkbGVTZXR0aW5ncyhlbnZpcm9ubWVudC5pZGxlVGltZUluTWludXRlcywgTWVzc2FnZXNDb25maWcuUkVDT05ORUNURURfQUxFUlQpO1xyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcbmV4cG9ydCBjb25zdCBJZGxlTW9kdWxlID0ge1xyXG4gIGluaXQ6IGluaXRJZGxlXHJcbn0iXX0=