ng-event-options
Version:
Enable event options (capture, passive, ...) inside angular templates, based on browser support
13 lines • 1.92 kB
JavaScript
export const debounceEvent = (callback, time = 50, immediate = 0) => {
let timeout;
let wait;
return (event) => {
window.clearTimeout(timeout);
timeout = window.setTimeout(() => (immediate ? (wait = false) : callback(event)), time);
if (immediate && !wait) {
wait = true;
callback(event);
}
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ldmVudC1vcHRpb25zL3NyYy9saWIvaGVscGVyL2RlYm91bmNlLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixRQUF1QixFQUN2QixPQUFlLEVBQUUsRUFDakIsWUFBbUIsQ0FBQyxFQUNMLEVBQUU7SUFDakIsSUFBSSxPQUFlLENBQUM7SUFDcEIsSUFBSSxJQUFhLENBQUM7SUFFbEIsT0FBTyxDQUFDLEtBQVksRUFBUSxFQUFFO1FBQzVCLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4RixJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBkZWJvdW5jZUV2ZW50ID0gKFxuICBjYWxsYmFjazogRXZlbnRMaXN0ZW5lcixcbiAgdGltZTogbnVtYmVyID0gNTAsXG4gIGltbWVkaWF0ZTogMCB8IDEgPSAwLFxuKTogRXZlbnRMaXN0ZW5lciA9PiB7XG4gIGxldCB0aW1lb3V0OiBudW1iZXI7XG4gIGxldCB3YWl0OiBib29sZWFuO1xuXG4gIHJldHVybiAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gKGltbWVkaWF0ZSA/ICh3YWl0ID0gZmFsc2UpIDogY2FsbGJhY2soZXZlbnQpKSwgdGltZSk7XG5cbiAgICBpZiAoaW1tZWRpYXRlICYmICF3YWl0KSB7XG4gICAgICB3YWl0ID0gdHJ1ZTtcbiAgICAgIGNhbGxiYWNrKGV2ZW50KTtcbiAgICB9XG4gIH07XG59O1xuIl19