ng-hotkeys
Version:
ng-hotkeys for Angular 14+
42 lines • 4.94 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWZpbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaG90a2V5cy9zcmMvbGliL3BvbHlmaWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFDO0lBQ0csSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEVBQUU7UUFDaEMsT0FBTztLQUNWO0lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNwQixPQUFPLENBQUMsU0FBaUIsQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDO0tBQy9GO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFVBQVMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFFZCxHQUFHO2dCQUNDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQzdCLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7YUFDMUMsUUFBUSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztLQUNMO0FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMLElBQUksQ0FBRSxLQUFLLENBQUMsU0FBaUIsQ0FBQyxJQUFJLEVBQUU7SUFDL0IsS0FBSyxDQUFDLFNBQWlCLENBQUMsSUFBSSxHQUFHLFVBQVMsS0FBSztRQUMxQyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSztZQUN2QixLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssRUFBRTtnQkFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNyQjthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0NBQ0w7QUFFRCxJQUFJLENBQUUsS0FBSyxDQUFDLFNBQWlCLENBQUMsT0FBTyxFQUFFO0lBQ2xDLEtBQUssQ0FBQyxTQUFpQixDQUFDLE9BQU8sR0FBRztRQUMvQixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgRWxlbWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcykge1xuICAgICAgICBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzID1cbiAgICAgICAgICAgIChFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvcjtcbiAgICB9XG5cbiAgICBpZiAoIUVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3QpIHtcbiAgICAgICAgRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdCA9IGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIGxldCBlbCA9IHRoaXM7XG5cbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBpZiAoZWwubWF0Y2hlcyhzKSkgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIGVsID0gZWwucGFyZW50RWxlbWVudCB8fCBlbC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfSB3aGlsZSAoZWwgIT09IG51bGwgJiYgZWwubm9kZVR5cGUgPT09IDEpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgfVxufSkoKTtcblxuaWYgKCEoQXJyYXkucHJvdG90eXBlIGFzIGFueSkuZmxhdCkge1xuICAgIChBcnJheS5wcm90b3R5cGUgYXMgYW55KS5mbGF0ID0gZnVuY3Rpb24oZGVwdGgpIHtcbiAgICAgICAgdmFyIGZsYXR0ZW5kID0gW107XG4gICAgICAgIChmdW5jdGlvbiBmbGF0KGFycmF5LCBkZXB0aCkge1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbCkgJiYgZGVwdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsYXQoZWwsIGRlcHRoIC0gMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmxhdHRlbmQucHVzaChlbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSh0aGlzLCBNYXRoLmZsb29yKGRlcHRoKSB8fCAxKTtcbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5kO1xuICAgIH07XG59XG5cbmlmICghKEFycmF5LnByb3RvdHlwZSBhcyBhbnkpLmZsYXRNYXApIHtcbiAgICAoQXJyYXkucHJvdG90eXBlIGFzIGFueSkuZmxhdE1hcCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLmZsYXQoMSk7XG4gICAgfTtcbn1cblxuIl19