ng-keyboard-shortcuts
Version:
Dead Simple Keyboard Shortcuts Management for Angular 2+
43 lines • 5.04 kB
JavaScript
(function () {
if (typeof Element === 'undefined') {
return;
}
if (!Element.prototype.matches) {
Element.prototype.matches =
Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
}
if (!Element.prototype.closest) {
Element.prototype.closest = function (s) {
let el = this;
do {
if (el.matches(s)) {
return el;
}
el = el.parentElement || el.parentNode;
} while (el !== null && el.nodeType === 1);
return null;
};
}
})();
if (!Array.prototype.flat) {
Array.prototype.flat = function (depth) {
var flattend = [];
(function flat(array, depth) {
for (let el of array) {
if (Array.isArray(el) && depth > 0) {
flat(el, depth - 1);
}
else {
flattend.push(el);
}
}
})(this, Math.floor(depth) || 1);
return flattend;
};
}
if (!Array.prototype.flatMap) {
Array.prototype.flatMap = function () {
return Array.prototype.map.apply(this, arguments).flat(1);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWZpbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1rZXlib2FyZC1zaG9ydGN1dHMvc3JjL2xpYi9wb2x5ZmlsbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQztJQUNHLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO1FBQ2hDLE9BQU87S0FDVjtJQUNELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtRQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU87WUFDcEIsT0FBTyxDQUFDLFNBQWlCLENBQUMsaUJBQWlCLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQztLQUMvRjtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtRQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7WUFDbkMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBRWQsR0FBRztnQkFDQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2YsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUMxQyxRQUFRLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0tBQ0w7QUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRUwsSUFBSSxDQUFFLEtBQUssQ0FBQyxTQUFpQixDQUFDLElBQUksRUFBRTtJQUMvQixLQUFLLENBQUMsU0FBaUIsQ0FBQyxJQUFJLEdBQUcsVUFBVSxLQUFLO1FBQzNDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLO1lBQ3ZCLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxFQUFFO2dCQUNsQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZCO3FCQUFNO29CQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3JCO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7Q0FDTDtBQUVELElBQUksQ0FBRSxLQUFLLENBQUMsU0FBaUIsQ0FBQyxPQUFPLEVBQUU7SUFDbEMsS0FBSyxDQUFDLFNBQWlCLENBQUMsT0FBTyxHQUFHO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgRWxlbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIUVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMpIHtcbiAgICAgICAgRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcyA9XG4gICAgICAgICAgICAoRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5tc01hdGNoZXNTZWxlY3RvciB8fCBFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3I7XG4gICAgfVxuXG4gICAgaWYgKCFFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0KSB7XG4gICAgICAgIEVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3QgPSBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgbGV0IGVsID0gdGhpcztcblxuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGlmIChlbC5tYXRjaGVzKHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50IHx8IGVsLnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9IHdoaWxlIChlbCAhPT0gbnVsbCAmJiBlbC5ub2RlVHlwZSA9PT0gMSk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG59KSgpO1xuXG5pZiAoIShBcnJheS5wcm90b3R5cGUgYXMgYW55KS5mbGF0KSB7XG4gICAgKEFycmF5LnByb3RvdHlwZSBhcyBhbnkpLmZsYXQgPSBmdW5jdGlvbiAoZGVwdGgpIHtcbiAgICAgICAgdmFyIGZsYXR0ZW5kID0gW107XG4gICAgICAgIChmdW5jdGlvbiBmbGF0KGFycmF5LCBkZXB0aCkge1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbCkgJiYgZGVwdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsYXQoZWwsIGRlcHRoIC0gMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmxhdHRlbmQucHVzaChlbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSh0aGlzLCBNYXRoLmZsb29yKGRlcHRoKSB8fCAxKTtcbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5kO1xuICAgIH07XG59XG5cbmlmICghKEFycmF5LnByb3RvdHlwZSBhcyBhbnkpLmZsYXRNYXApIHtcbiAgICAoQXJyYXkucHJvdG90eXBlIGFzIGFueSkuZmxhdE1hcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuYXBwbHkodGhpcywgYXJndW1lbnRzKS5mbGF0KDEpO1xuICAgIH07XG59XG5cbiJdfQ==