UNPKG

@omostan/ngx-idle

Version:

A module for responding to idle users in Angular applications. this is a forked version of the original @ng-Idle

38 lines 4.81 kB
import { EventEmitter } from '@angular/core'; /* * A base for classes that act as a source for interrupts. */ export class InterruptSource { constructor(attachFn, detachFn) { this.attachFn = attachFn; this.detachFn = detachFn; this.isAttached = false; this.onInterrupt = new EventEmitter(); } /* * Attaches to the specified events on the specified source. */ attach() { // If the current zone is the 'angular' zone (a.k.a. NgZone) then re-enter this method in its parent zone // The parent zone is usually the '<root>' zone but it can also be 'long-stack-trace-zone' in debug mode // In tests, the current zone is typically a 'ProxyZone' created by async/fakeAsync (from @angular/core/testing) if (Zone.current.get('isAngularZone') === true) { Zone.current.parent.run(() => this.attach()); return; } if (!this.isAttached && this.attachFn) { this.attachFn(this); } this.isAttached = true; } /* * Detaches from the specified events on the specified source. */ detach() { if (this.isAttached && this.detachFn) { this.detachFn(this); } this.isAttached = false; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJydXB0c291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2ludGVycnVwdHNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzdDOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0lBT25DLFlBQ1ksUUFBNEMsRUFDNUMsUUFBNEM7UUFENUMsYUFBUSxHQUFSLFFBQVEsQ0FBb0M7UUFDNUMsYUFBUSxHQUFSLFFBQVEsQ0FBb0M7UUFSeEQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVaLGdCQUFXLEdBQWdDLElBQUksWUFBWSxFQUUvRCxDQUFDO0lBS0QsQ0FBQztJQUVKOztPQUVHO0lBQ0gsTUFBTTtRQUNKLHlHQUF5RztRQUN6Ryx3R0FBd0c7UUFDeEcsZ0hBQWdIO1FBQ2hILElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSW50ZXJydXB0QXJncyB9IGZyb20gJy4vaW50ZXJydXB0YXJncyc7XHJcbmltcG9ydCB7IEludGVycnVwdE9wdGlvbnMgfSBmcm9tICcuL2ludGVycnVwdG9wdGlvbnMnO1xyXG5cclxuZGVjbGFyZSBjb25zdCBab25lOiBhbnk7XHJcblxyXG4vKlxyXG4gKiBBIGJhc2UgZm9yIGNsYXNzZXMgdGhhdCBhY3QgYXMgYSBzb3VyY2UgZm9yIGludGVycnVwdHMuXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW50ZXJydXB0U291cmNlIHtcclxuICBpc0F0dGFjaGVkID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBvbkludGVycnVwdDogRXZlbnRFbWl0dGVyPEludGVycnVwdEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEludGVycnVwdEFyZ3NcclxuICA+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGF0dGFjaEZuPzogKHNvdXJjZTogSW50ZXJydXB0U291cmNlKSA9PiB2b2lkLFxyXG4gICAgcHJvdGVjdGVkIGRldGFjaEZuPzogKHNvdXJjZTogSW50ZXJydXB0U291cmNlKSA9PiB2b2lkXHJcbiAgKSB7fVxyXG5cclxuICAvKlxyXG4gICAqIEF0dGFjaGVzIHRvIHRoZSBzcGVjaWZpZWQgZXZlbnRzIG9uIHRoZSBzcGVjaWZpZWQgc291cmNlLlxyXG4gICAqL1xyXG4gIGF0dGFjaCgpOiB2b2lkIHtcclxuICAgIC8vIElmIHRoZSBjdXJyZW50IHpvbmUgaXMgdGhlICdhbmd1bGFyJyB6b25lIChhLmsuYS4gTmdab25lKSB0aGVuIHJlLWVudGVyIHRoaXMgbWV0aG9kIGluIGl0cyBwYXJlbnQgem9uZVxyXG4gICAgLy8gVGhlIHBhcmVudCB6b25lIGlzIHVzdWFsbHkgdGhlICc8cm9vdD4nIHpvbmUgYnV0IGl0IGNhbiBhbHNvIGJlICdsb25nLXN0YWNrLXRyYWNlLXpvbmUnIGluIGRlYnVnIG1vZGVcclxuICAgIC8vIEluIHRlc3RzLCB0aGUgY3VycmVudCB6b25lIGlzIHR5cGljYWxseSBhICdQcm94eVpvbmUnIGNyZWF0ZWQgYnkgYXN5bmMvZmFrZUFzeW5jIChmcm9tIEBhbmd1bGFyL2NvcmUvdGVzdGluZylcclxuICAgIGlmIChab25lLmN1cnJlbnQuZ2V0KCdpc0FuZ3VsYXJab25lJykgPT09IHRydWUpIHtcclxuICAgICAgWm9uZS5jdXJyZW50LnBhcmVudC5ydW4oKCkgPT4gdGhpcy5hdHRhY2goKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuaXNBdHRhY2hlZCAmJiB0aGlzLmF0dGFjaEZuKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNoRm4odGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0F0dGFjaGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRGV0YWNoZXMgZnJvbSB0aGUgc3BlY2lmaWVkIGV2ZW50cyBvbiB0aGUgc3BlY2lmaWVkIHNvdXJjZS5cclxuICAgKi9cclxuICBkZXRhY2goKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0F0dGFjaGVkICYmIHRoaXMuZGV0YWNoRm4pIHtcclxuICAgICAgdGhpcy5kZXRhY2hGbih0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXR0YWNoZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemU/KG9wdGlvbnM/OiBJbnRlcnJ1cHRPcHRpb25zKTogdm9pZDtcclxufVxyXG4iXX0=