UNPKG

ngx-hotkey

Version:

An easy way to use Hotkeys in Angular.

73 lines 5.86 kB
/** * @fileoverview added by tsickle * Generated from: lib/hotkey.model.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export default class Hotkey { /** * @param {?} shortcut * @param {?} callback */ constructor(shortcut, callback) { this.shortcut = shortcut; this.callback = callback; this.altKey = false; this.ctrlKey = false; this.metaKey = false; this.shiftKey = false; this.aliases = { 'ctrl': 'control' }; /** @type {?} */ const shortcutFormatted = shortcut.replace(/ /g, '').toLowerCase(); /** @type {?} */ const shortcutSplit = shortcutFormatted.split('+'); for (let i = 0; i < shortcutSplit.length; i++) { /** @type {?} */ let item = shortcutSplit[i]; item = this.aliases[item] || item; if (i === shortcutSplit.length - 1) { this.key = item; continue; } switch (item) { case 'shift': this.shiftKey = true; break; case 'control': this.ctrlKey = true; break; case 'alt': this.altKey = true; break; case 'meta': this.metaKey = true; break; default: console.error(`They shortcut '${shortcut}' is not valid!`); } } } } if (false) { /** @type {?} */ Hotkey.prototype.altKey; /** @type {?} */ Hotkey.prototype.ctrlKey; /** @type {?} */ Hotkey.prototype.metaKey; /** @type {?} */ Hotkey.prototype.shiftKey; /** @type {?} */ Hotkey.prototype.key; /** * @type {?} * @private */ Hotkey.prototype.aliases; /** @type {?} */ Hotkey.prototype.shortcut; /** @type {?} */ Hotkey.prototype.callback; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWhvdGtleS8iLCJzb3VyY2VzIjpbImxpYi9ob3RrZXkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU07Ozs7O0lBV3ZCLFlBQW1CLFFBQWdCLEVBQVMsUUFBMkM7UUFBcEUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQW1DO1FBVmhGLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdoQixZQUFPLEdBQVE7WUFDbkIsTUFBTSxFQUFFLFNBQVM7U0FDcEIsQ0FBQzs7Y0FHUSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUU7O2NBQzVELGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRWxELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOztnQkFDdkMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1lBRWxDLElBQUksQ0FBQyxLQUFLLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDaEIsU0FBUzthQUNaO1lBRUQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1YsS0FBSyxPQUFPO29CQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUNyQixNQUFNO2dCQUNWLEtBQUssU0FBUztvQkFDVixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDcEIsTUFBTTtnQkFDVixLQUFLLEtBQUs7b0JBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ25CLE1BQU07Z0JBQ1YsS0FBSyxNQUFNO29CQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUNwQixNQUFNO2dCQUNWO29CQUNJLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLFFBQVEsaUJBQWlCLENBQUMsQ0FBQzthQUNsRTtTQUNKO0lBQ0wsQ0FBQztDQUNKOzs7SUF6Q0csd0JBQXNCOztJQUN0Qix5QkFBdUI7O0lBQ3ZCLHlCQUF1Qjs7SUFDdkIsMEJBQXdCOztJQUN4QixxQkFBbUI7Ozs7O0lBRW5CLHlCQUVFOztJQUVVLDBCQUF1Qjs7SUFBRSwwQkFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBIb3RrZXkge1xyXG4gICAgcHVibGljIGFsdEtleSA9IGZhbHNlO1xyXG4gICAgcHVibGljIGN0cmxLZXkgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBtZXRhS2V5ID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2hpZnRLZXkgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBrZXk6IHN0cmluZztcclxuXHJcbiAgICBwcml2YXRlIGFsaWFzZXM6IGFueSA9IHtcclxuICAgICAgICAnY3RybCc6ICdjb250cm9sJ1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc2hvcnRjdXQ6IHN0cmluZywgcHVibGljIGNhbGxiYWNrOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGJvb2xlYW4pIHtcclxuICAgICAgICBjb25zdCBzaG9ydGN1dEZvcm1hdHRlZCA9IHNob3J0Y3V0LnJlcGxhY2UoLyAvZywgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3Qgc2hvcnRjdXRTcGxpdCA9IHNob3J0Y3V0Rm9ybWF0dGVkLnNwbGl0KCcrJyk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2hvcnRjdXRTcGxpdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHNob3J0Y3V0U3BsaXRbaV07XHJcbiAgICAgICAgICAgIGl0ZW0gPSB0aGlzLmFsaWFzZXNbaXRlbV0gfHwgaXRlbTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpID09PSBzaG9ydGN1dFNwbGl0Lmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5ID0gaXRlbTtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3NoaWZ0JzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0S2V5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRyb2wnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3RybEtleSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhbHQnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWx0S2V5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ21ldGEnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YUtleSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZXkgc2hvcnRjdXQgJyR7c2hvcnRjdXR9JyBpcyBub3QgdmFsaWQhYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=