UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

20 lines 2.48 kB
import { throttle as _throttle } from 'lodash-es'; /** * Decorator to throttle functions call. * @param wait throttle time. * @param options set triggers, eg on trailing edge or falling edge, * see lodash documentation for details */ export function throttle(wait, options) { return (target, fnName, descriptor) => { const fn = descriptor.value; descriptor.value = function (...args) { const throttledFnName = `_${fnName}Throttled`; if (!this[throttledFnName]) { this[throttledFnName] = _throttle(fn, wait, options); } return this[throttledFnName](...args); }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vdGhyb3R0bGUuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWxEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFLLEVBQUUsT0FBUTtJQUN0QyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUNwQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQUk7WUFDbEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLFdBQVcsQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3R0bGUgYXMgX3Rocm90dGxlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgdG8gdGhyb3R0bGUgZnVuY3Rpb25zIGNhbGwuXG4gKiBAcGFyYW0gd2FpdCB0aHJvdHRsZSB0aW1lLlxuICogQHBhcmFtIG9wdGlvbnMgc2V0IHRyaWdnZXJzLCBlZyBvbiB0cmFpbGluZyBlZGdlIG9yIGZhbGxpbmcgZWRnZSxcbiAqIHNlZSBsb2Rhc2ggZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3R0bGUod2FpdD8sIG9wdGlvbnM/KSB7XG4gIHJldHVybiAodGFyZ2V0LCBmbk5hbWUsIGRlc2NyaXB0b3IpID0+IHtcbiAgICBjb25zdCBmbiA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICBjb25zdCB0aHJvdHRsZWRGbk5hbWUgPSBgXyR7Zm5OYW1lfVRocm90dGxlZGA7XG4gICAgICBpZiAoIXRoaXNbdGhyb3R0bGVkRm5OYW1lXSkge1xuICAgICAgICB0aGlzW3Rocm90dGxlZEZuTmFtZV0gPSBfdGhyb3R0bGUoZm4sIHdhaXQsIG9wdGlvbnMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpc1t0aHJvdHRsZWRGbk5hbWVdKC4uLmFyZ3MpO1xuICAgIH07XG4gIH07XG59XG4iXX0=