idle-detector
Version:
[Description:] This library is created to detect the Inactivity of the User. You can specify the Inactivity [timeout] in [milliseconds].
34 lines • 3.76 kB
JavaScript
import { Directive, EventEmitter, Output, Input } from '@angular/core';
import * as i0 from "@angular/core";
export class IdleDetectorDirective {
constructor() {
this.timedOut = new EventEmitter();
}
ngOnInit() {
this.inactivityTime();
}
inactivityTime() {
window.onload = this.resetTimer;
document.onmousemove = this.resetTimer.bind(this);
document.onkeypress = this.resetTimer.bind(this);
}
resetTimer() {
clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.timedOut.emit('true');
}, this.timeout);
}
}
IdleDetectorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: IdleDetectorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
IdleDetectorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: IdleDetectorDirective, selector: "[libIdleDetector]", inputs: { timeout: "timeout" }, outputs: { timedOut: "timedOut" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: IdleDetectorDirective, decorators: [{
type: Directive,
args: [{
selector: '[libIdleDetector]'
}]
}], ctorParameters: function () { return []; }, propDecorators: { timeout: [{
type: Input
}], timedOut: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS1kZXRlY3Rvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pZGxlLWRldGVjdG9yL3NyYy9saWIvaWRsZS1kZXRlY3Rvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQzs7QUFLM0UsTUFBTSxPQUFPLHFCQUFxQjtJQW1CaEM7UUFqQlUsYUFBUSxHQUFPLElBQUksWUFBWSxFQUFFLENBQUM7SUFpQjVCLENBQUM7SUFmakIsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsY0FBYztRQUNSLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNoQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFVBQVU7UUFDUixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xCLENBQUM7O21IQWxCVSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzBFQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLEV2ZW50RW1pdHRlcixPdXRwdXQsSW5wdXQsT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsaWJJZGxlRGV0ZWN0b3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZGxlRGV0ZWN0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0aW1lb3V0OmFueTtcbiAgQE91dHB1dCgpIHRpbWVkT3V0OmFueSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgdGltZXI6YW55O1xuICBuZ09uSW5pdCgpe1xuICAgIHRoaXMuaW5hY3Rpdml0eVRpbWUoKTtcbiAgfVxuICBpbmFjdGl2aXR5VGltZSgpe1xuICAgICAgICB3aW5kb3cub25sb2FkID0gdGhpcy5yZXNldFRpbWVyO1xuICAgICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IHRoaXMucmVzZXRUaW1lci5iaW5kKHRoaXMpO1xuICAgICAgICBkb2N1bWVudC5vbmtleXByZXNzID0gdGhpcy5yZXNldFRpbWVyLmJpbmQodGhpcyk7XG4gIH1cbiAgICAgICAgXG4gIHJlc2V0VGltZXIoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpPT57XG4gICAgICB0aGlzLnRpbWVkT3V0LmVtaXQoJ3RydWUnKVxuICAgIH0sIHRoaXMudGltZW91dClcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iXX0=