ng-keyboard-shortcuts
Version:
Dead Simple Keyboard Shortcuts Management for Angular 2+
56 lines • 6.68 kB
JavaScript
import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
import { KeyboardShortcutsService } from './ng-keyboard-shortcuts.service';
import * as i0 from "@angular/core";
import * as i1 from "./ng-keyboard-shortcuts.service";
export class KeyboardShortcutComponent {
constructor(keyboard) {
this.keyboard = keyboard;
this.fire = new EventEmitter();
}
ngOnDestroy() {
this.keyboard.remove(this.clearId);
}
ngOnChanges(changes) {
}
ngAfterViewInit() {
this.clearId = this.keyboard.add({
description: this.description,
label: this.label,
preventDefault: this.preventDefault,
allowIn: this.allowIn,
target: this.target,
key: this.key,
throttleTime: this.throttleTime,
command: (event) => {
this.fire.emit(event);
}
});
}
}
KeyboardShortcutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: KeyboardShortcutComponent, deps: [{ token: i1.KeyboardShortcutsService }], target: i0.ɵɵFactoryTarget.Component });
KeyboardShortcutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: KeyboardShortcutComponent, selector: "ng-keyboard-shortcut", inputs: { description: "description", label: "label", preventDefault: "preventDefault", allowIn: "allowIn", key: "key", target: "target", throttleTime: "throttleTime" }, outputs: { fire: "fire" }, usesOnChanges: true, ngImport: i0, template: "<ng-content ></ng-content>", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: KeyboardShortcutComponent, decorators: [{
type: Component,
args: [{
selector: "ng-keyboard-shortcut",
template: "<ng-content ></ng-content>",
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: function () { return [{ type: i1.KeyboardShortcutsService }]; }, propDecorators: { description: [{
type: Input
}], label: [{
type: Input
}], preventDefault: [{
type: Input
}], allowIn: [{
type: Input
}], key: [{
type: Input
}], target: [{
type: Input
}], throttleTime: [{
type: Input
}], fire: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc2hvcnRjdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1rZXlib2FyZC1zaG9ydGN1dHMvc3JjL2xpYi9rZXlib2FyZC1zaG9ydGN1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUtMLE1BQU0sRUFDTixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saUNBQWlDLENBQUM7OztBQU96RSxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQW9CLFFBQWtDO1FBQWxDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBWTVDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBWnFCLENBQUM7SUFlMUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO0lBRWxDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixPQUFPLEVBQUUsQ0FBQyxLQUEwQixFQUFFLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDOztzSEFyQ1EseUJBQXlCOzBHQUF6Qix5QkFBeUIsc1JBSHhCLDRCQUE0QjsyRkFHN0IseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDsrR0FLWSxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FsbG93SW4sIFNob3J0Y3V0RXZlbnRPdXRwdXR9IGZyb20gJy4vbmcta2V5Ym9hcmQtc2hvcnRjdXRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2V9IGZyb20gJy4vbmcta2V5Ym9hcmQtc2hvcnRjdXRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuZy1rZXlib2FyZC1zaG9ydGN1dFwiLFxuICAgIHRlbXBsYXRlOiBcIjxuZy1jb250ZW50ID48L25nLWNvbnRlbnQ+XCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgS2V5Ym9hcmRTaG9ydGN1dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGtleWJvYXJkOiBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UpIHt9XG4gICAgcHJpdmF0ZSBjbGVhcklkO1xuXG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAvLyBASW5wdXQoKSBlbmNhcHN1bGF0ZSA9IHRydWU7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwcmV2ZW50RGVmYXVsdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhbGxvd0luOiBBbGxvd0luW107XG4gICAgQElucHV0KCkga2V5OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBASW5wdXQoKSB0YXJnZXQ6IEhUTUxFbGVtZW50O1xuICAgIEBJbnB1dCgpIHRocm90dGxlVGltZTogbnVtYmVyO1xuXG4gICAgQE91dHB1dCgpIGZpcmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWJvYXJkLnJlbW92ZSh0aGlzLmNsZWFySWQpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhcklkID0gdGhpcy5rZXlib2FyZC5hZGQoe1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgICAgICAgIHByZXZlbnREZWZhdWx0OiB0aGlzLnByZXZlbnREZWZhdWx0LFxuICAgICAgICAgICAgYWxsb3dJbjogdGhpcy5hbGxvd0luLFxuICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLnRhcmdldCxcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB0aHJvdHRsZVRpbWU6IHRoaXMudGhyb3R0bGVUaW1lLFxuICAgICAgICAgICAgY29tbWFuZDogKGV2ZW50OiBTaG9ydGN1dEV2ZW50T3V0cHV0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maXJlLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxufVxuIl19