UNPKG

ng-hotkeys

Version:

ng-hotkeys for Angular 14+

73 lines 7.62 kB
export function isFunction(x) { return typeof x === "function"; } export const invert = obj => { const new_obj = {}; for (const prop in obj) { if (obj.hasOwnProperty(prop)) { new_obj[obj[prop]] = prop; } } return new_obj; }; export const any = (fn, list) => { let idx = 0; while (idx < list.length) { if (fn(list[idx])) { return true; } idx += 1; } return false; }; export const identity = x => x; /** * @ignore * @param x * @returns boolean */ export const isNill = x => x == null; /** * @ignore * @param xs * @param key * @returns any */ export const groupBy = (xs, key) => xs.reduce((result, x) => ({ ...result, [x[key]]: [...(result[x[key]] || []), x] }), {}); /** * @ignore * @param first * @param second * @returns any[] */ export const difference = (first, second) => first.filter(item => !second.includes(item)); /** * @ignore * @param preds * @returns (...args) => boolean; */ export const allPass = preds => (...args) => { let idx = 0; const len = preds.length; while (idx < len) { if (!preds[idx].apply(this, args)) { return false; } idx += 1; } return true; }; export const prop = prop => object => object[prop]; const minMaxArrayProp = type => (property, array) => Math[type].apply(Math, array.map(prop(property))); export const maxArrayProp = (property, array) => { return array.reduce((acc, curr) => { const propFn = prop(property); const currentValue = propFn(curr); const previousValue = propFn(acc); return currentValue > previousValue ? curr : acc; }, { [property]: 0 }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ob3RrZXlzL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUU7SUFDeEIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRW5CLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO1FBQ3BCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzdCO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFZLEVBQUUsSUFBVyxFQUFFLEVBQUU7SUFDN0MsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1osT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUN0QixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQ1o7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFL0I7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7QUFFckM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDL0IsRUFBRSxDQUFDLE1BQU0sQ0FDTCxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWixHQUFHLE1BQU07SUFDVCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDM0MsQ0FBQyxFQUNGLEVBQUUsQ0FDTCxDQUFDO0FBRU47Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFZLEVBQUUsTUFBYSxFQUFFLEVBQUUsQ0FDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRWpEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDeEMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1osTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN6QixPQUFPLEdBQUcsR0FBRyxHQUFHLEVBQUU7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDL0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQ1o7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDNUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNmLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ1YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNyRCxDQUFDLEVBQ0QsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNwQixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24oeDogYW55KTogeCBpcyBGdW5jdGlvbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbmV4cG9ydCBjb25zdCBpbnZlcnQgPSBvYmogPT4ge1xuICAgIGNvbnN0IG5ld19vYmogPSB7fTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBvYmopIHtcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICAgICAgbmV3X29ialtvYmpbcHJvcF1dID0gcHJvcDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3X29iajtcbn07XG5cbmV4cG9ydCBjb25zdCBhbnkgPSAoZm46IEZ1bmN0aW9uLCBsaXN0OiBhbnlbXSkgPT4ge1xuICAgIGxldCBpZHggPSAwO1xuICAgIHdoaWxlIChpZHggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBpZiAoZm4obGlzdFtpZHhdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWR4ICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpZGVudGl0eSA9IHggPT4geDtcblxuLyoqXG4gKiBAaWdub3JlXG4gKiBAcGFyYW0geFxuICogQHJldHVybnMgYm9vbGVhblxuICovXG5leHBvcnQgY29uc3QgaXNOaWxsID0geCA9PiB4ID09IG51bGw7XG5cbi8qKlxuICogQGlnbm9yZVxuICogQHBhcmFtIHhzXG4gKiBAcGFyYW0ga2V5XG4gKiBAcmV0dXJucyBhbnlcbiAqL1xuZXhwb3J0IGNvbnN0IGdyb3VwQnkgPSAoeHMsIGtleSkgPT5cbiAgICB4cy5yZWR1Y2UoXG4gICAgICAgIChyZXN1bHQsIHgpID0+ICh7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICBbeFtrZXldXTogWy4uLihyZXN1bHRbeFtrZXldXSB8fCBbXSksIHhdXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICk7XG5cbi8qKlxuICogQGlnbm9yZVxuICogQHBhcmFtIGZpcnN0XG4gKiBAcGFyYW0gc2Vjb25kXG4gKiBAcmV0dXJucyBhbnlbXVxuICovXG5leHBvcnQgY29uc3QgZGlmZmVyZW5jZSA9IChmaXJzdDogYW55W10sIHNlY29uZDogYW55W10pID0+XG4gICAgZmlyc3QuZmlsdGVyKGl0ZW0gPT4gIXNlY29uZC5pbmNsdWRlcyhpdGVtKSk7XG5cbi8qKlxuICogQGlnbm9yZVxuICogQHBhcmFtIHByZWRzXG4gKiBAcmV0dXJucyAoLi4uYXJncykgPT4gYm9vbGVhbjtcbiAqL1xuZXhwb3J0IGNvbnN0IGFsbFBhc3MgPSBwcmVkcyA9PiAoLi4uYXJncykgPT4ge1xuICAgIGxldCBpZHggPSAwO1xuICAgIGNvbnN0IGxlbiA9IHByZWRzLmxlbmd0aDtcbiAgICB3aGlsZSAoaWR4IDwgbGVuKSB7XG4gICAgICAgIGlmICghcHJlZHNbaWR4XS5hcHBseSh0aGlzLCBhcmdzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlkeCArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5leHBvcnQgY29uc3QgcHJvcCA9IHByb3AgPT4gb2JqZWN0ID0+IG9iamVjdFtwcm9wXTtcblxuY29uc3QgbWluTWF4QXJyYXlQcm9wID0gdHlwZSA9PiAocHJvcGVydHksIGFycmF5KSA9PlxuICAgIE1hdGhbdHlwZV0uYXBwbHkoTWF0aCwgYXJyYXkubWFwKHByb3AocHJvcGVydHkpKSk7XG5cbmV4cG9ydCBjb25zdCBtYXhBcnJheVByb3AgPSAocHJvcGVydHksIGFycmF5KSA9PiB7XG4gICAgcmV0dXJuIGFycmF5LnJlZHVjZShcbiAgICAgICAgKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcEZuID0gcHJvcChwcm9wZXJ0eSk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBwcm9wRm4oY3Vycik7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gcHJvcEZuKGFjYyk7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID4gcHJldmlvdXNWYWx1ZSA/IGN1cnIgOiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHsgW3Byb3BlcnR5XTogMCB9XG4gICAgKTtcbn07XG4iXX0=