ng-event-options
Version:
Enable event options (capture, passive, ...) inside angular templates, based on browser support
15 lines • 1.89 kB
JavaScript
export const throttleEvent = (callback, time = 50, immediate = 0) => {
let timeout;
return (event) => {
if (!timeout) {
if (immediate) {
callback(event);
}
timeout = window.setTimeout(() => {
timeout = 0;
return !immediate ? callback(event) : void 0;
}, time);
}
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ldmVudC1vcHRpb25zL3NyYy9saWIvaGVscGVyL3Rocm90dGxlLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixRQUF1QixFQUN2QixPQUFlLEVBQUUsRUFDakIsWUFBbUIsQ0FBQyxFQUNMLEVBQUU7SUFDakIsSUFBSSxPQUFlLENBQUM7SUFFcEIsT0FBTyxDQUFDLEtBQVksRUFBUSxFQUFFO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFFRCxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9CLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBQ1osT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRocm90dGxlRXZlbnQgPSAoXG4gIGNhbGxiYWNrOiBFdmVudExpc3RlbmVyLFxuICB0aW1lOiBudW1iZXIgPSA1MCxcbiAgaW1tZWRpYXRlOiAwIHwgMSA9IDAsXG4pOiBFdmVudExpc3RlbmVyID0+IHtcbiAgbGV0IHRpbWVvdXQ6IG51bWJlcjtcblxuICByZXR1cm4gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGltZW91dCkge1xuICAgICAgaWYgKGltbWVkaWF0ZSkge1xuICAgICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgICB9XG5cbiAgICAgIHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRpbWVvdXQgPSAwO1xuICAgICAgICByZXR1cm4gIWltbWVkaWF0ZSA/IGNhbGxiYWNrKGV2ZW50KSA6IHZvaWQgMDtcbiAgICAgIH0sIHRpbWUpO1xuICAgIH1cbiAgfTtcbn07XG4iXX0=