ngx-hotkey
Version:
An easy way to use Hotkeys in Angular.
73 lines • 5.86 kB
JavaScript
/**
* @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=