@junte/ui
Version:
Quality Angular UI components kit
62 lines • 6.07 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { CommonModule } from '@angular/common';
import { Directive, HostListener, Input, NgModule } from '@angular/core';
import { PropertyApi } from '../decorators/api';
import { Modifier } from '../enums/keyboard';
var ShortcutsDirective = /** @class */ (function () {
function ShortcutsDirective() {
this.shortcuts = [];
}
ShortcutsDirective.prototype.select = function (event) {
var found = this.shortcuts.find(function (shortcut) { return shortcut.key === event.key; });
if (!!found && (!found.modifier || (found.modifier === Modifier.altKey && event.altKey)
|| (found.modifier === Modifier.ctrlKey && event.ctrlKey)
|| (found.modifier === Modifier.shiftKey && event.shiftKey)
|| (found.modifier === Modifier.metaKey && event.metaKey))) {
found.action();
event.preventDefault();
}
};
__decorate([
PropertyApi({
description: 'Shortcuts array',
type: '[{key: ui.kayboard.key, modifier: ui.keyboard.modifier, action: Function}]',
default: '[]'
}),
Input('jntShortcuts'),
__metadata("design:type", Array)
], ShortcutsDirective.prototype, "shortcuts", void 0);
__decorate([
HostListener('keydown', ['$event']),
__metadata("design:type", Function),
__metadata("design:paramtypes", [KeyboardEvent]),
__metadata("design:returntype", void 0)
], ShortcutsDirective.prototype, "select", null);
ShortcutsDirective = __decorate([
Directive({
selector: '[jntShortcuts]'
})
], ShortcutsDirective);
return ShortcutsDirective;
}());
export { ShortcutsDirective };
var ShortcutsModule = /** @class */ (function () {
function ShortcutsModule() {
}
ShortcutsModule = __decorate([
NgModule({
declarations: [
ShortcutsDirective
],
imports: [
CommonModule
],
exports: [
ShortcutsDirective
]
})
], ShortcutsModule);
return ShortcutsModule;
}());
export { ShortcutsModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRjdXRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2NvcmUvZGlyZWN0aXZlcy9zaG9ydGN1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQU8sUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXbEQ7SUFBQTtRQVFFLGNBQVMsR0FBZSxFQUFFLENBQUM7SUFhN0IsQ0FBQztJQVZDLG1DQUFNLEdBQU4sVUFBTyxLQUFvQjtRQUN6QixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFBLFFBQVEsSUFBSSxPQUFBLFFBQVEsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBMUIsQ0FBMEIsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO2VBQ2xGLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7ZUFDdEQsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQztlQUN4RCxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtZQUM1RCxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBWkQ7UUFOQyxXQUFXLENBQUM7WUFDWCxXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLElBQUksRUFBRSw0RUFBNEU7WUFDbEYsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQzs7eURBQ0s7SUFHM0I7UUFEQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7O3lDQUN0QixhQUFhOztvREFTMUI7SUFwQlUsa0JBQWtCO1FBSDlCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxnQkFBZ0I7U0FDM0IsQ0FBQztPQUNXLGtCQUFrQixDQXFCOUI7SUFBRCx5QkFBQztDQUFBLEFBckJELElBcUJDO1NBckJZLGtCQUFrQjtBQWtDL0I7SUFBQTtJQUNBLENBQUM7SUFEWSxlQUFlO1FBWDNCLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRTtnQkFDWixrQkFBa0I7YUFDbkI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsWUFBWTthQUNiO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLGtCQUFrQjthQUNuQjtTQUNGLENBQUM7T0FDVyxlQUFlLENBQzNCO0lBQUQsc0JBQUM7Q0FBQSxBQURELElBQ0M7U0FEWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5QXBpIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9hcGknO1xuaW1wb3J0IHsgS2V5LCBNb2RpZmllciB9IGZyb20gJy4uL2VudW1zL2tleWJvYXJkJztcblxuaW50ZXJmYWNlIFNob3J0Y3V0IHtcbiAga2V5OiBLZXk7XG4gIG1vZGlmaWVyOiBNb2RpZmllcjtcbiAgYWN0aW9uOiBGdW5jdGlvbjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2pudFNob3J0Y3V0c10nXG59KVxuZXhwb3J0IGNsYXNzIFNob3J0Y3V0c0RpcmVjdGl2ZSB7XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ1Nob3J0Y3V0cyBhcnJheScsXG4gICAgdHlwZTogJ1t7a2V5OiB1aS5rYXlib2FyZC5rZXksIG1vZGlmaWVyOiB1aS5rZXlib2FyZC5tb2RpZmllciwgYWN0aW9uOiBGdW5jdGlvbn1dJyxcbiAgICBkZWZhdWx0OiAnW10nXG4gIH0pXG4gIEBJbnB1dCgnam50U2hvcnRjdXRzJylcbiAgc2hvcnRjdXRzOiBTaG9ydGN1dFtdID0gW107XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHNlbGVjdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5zaG9ydGN1dHMuZmluZChzaG9ydGN1dCA9PiBzaG9ydGN1dC5rZXkgPT09IGV2ZW50LmtleSk7XG4gICAgaWYgKCEhZm91bmQgJiYgKCFmb3VuZC5tb2RpZmllciB8fCAoZm91bmQubW9kaWZpZXIgPT09IE1vZGlmaWVyLmFsdEtleSAmJiBldmVudC5hbHRLZXkpXG4gICAgICB8fCAoZm91bmQubW9kaWZpZXIgPT09IE1vZGlmaWVyLmN0cmxLZXkgJiYgZXZlbnQuY3RybEtleSlcbiAgICAgIHx8IChmb3VuZC5tb2RpZmllciA9PT0gTW9kaWZpZXIuc2hpZnRLZXkgJiYgZXZlbnQuc2hpZnRLZXkpXG4gICAgICB8fCAoZm91bmQubW9kaWZpZXIgPT09IE1vZGlmaWVyLm1ldGFLZXkgJiYgZXZlbnQubWV0YUtleSkpKSB7XG4gICAgICBmb3VuZC5hY3Rpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNob3J0Y3V0c0RpcmVjdGl2ZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTaG9ydGN1dHNEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaG9ydGN1dHNNb2R1bGUge1xufVxuIl19