mframejs
Version:
simple framework
28 lines • 1.08 kB
JavaScript
import * as tslib_1 from "tslib";
import { behavior } from '../decorator/exported';
let ThrottleBehavior = class ThrottleBehavior {
constructor(binding, args) {
const time = args[0] || 100;
if (binding.eventHandlerBinded) {
binding.eventHandlerBindedBackup = binding.eventHandlerBinded;
binding.detachedBackup = binding.detached;
binding.detached = function () {
binding.detachedBackup();
};
binding.eventHandlerBinded = function () {
if (!this.timerBehavior) {
this.timerBehavior = setTimeout(() => {
binding.eventHandlerBindedBackup();
this.timerBehavior = null;
}, time);
}
}.bind(binding);
}
}
};
ThrottleBehavior = tslib_1.__decorate([
behavior('throttle'),
tslib_1.__metadata("design:paramtypes", [Object, Object])
], ThrottleBehavior);
export { ThrottleBehavior };
//# sourceMappingURL=throttle.js.map