ng2-idle
Version:
A module for responding to idle users in Angular2 applications.
46 lines (44 loc) • 1.7 kB
JavaScript
/**
* ng2-idle - A module for responding to idle users in Angular2 applications.
# @author Mike Grabski <me@mikegrabski.com> (http://mikegrabski.com/)
* @version v1.0.0-alpha.18
* @link https://github.com/HackedByChinese/ng2-idle.git#readme
* @license MIT
*/
import { Observable } from 'rxjs/Rx';
import { InterruptArgs } from './interruptargs';
import { InterruptSource } from './interruptsource';
export class EventTargetInterruptSource extends InterruptSource {
constructor(target, events, throttleDelay = 500) {
super(null, null);
this.target = target;
this.events = events;
this.throttleDelay = throttleDelay;
this.eventSrc = new Array;
this.eventSubscription = new Array;
let self = this;
events.split(' ').forEach(function (event) {
let src = Observable.fromEvent(target, event);
if (self.throttleDelay > 0) {
src = src.throttleTime(self.throttleDelay);
}
self.eventSrc.push(src);
});
let handler = function (innerArgs) {
if (self.filterEvent(innerArgs)) {
return;
}
let args = new InterruptArgs(this, innerArgs);
self.onInterrupt.emit(args);
};
this.attachFn = () => {
this.eventSrc.forEach((src) => { self.eventSubscription.push(src.subscribe(handler)); });
};
this.detachFn = () => {
this.eventSubscription.forEach((sub) => { sub.unsubscribe(); });
this.eventSubscription.length = 0;
};
}
filterEvent(event) { return false; }
}
//# sourceMappingURL=eventtargetinterruptsource.js.map