UNPKG

@ng-doc/ui-kit

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

56 lines (52 loc) 2.69 kB
import { __decorate, __metadata } from 'tslib'; import * as i0 from '@angular/core'; import { EventEmitter, afterNextRender, NgZone, Directive, Input, Output } from '@angular/core'; import { isKeyboardEvent } from '@ng-doc/core/helpers/is-keyboard-event'; import { objectKeys } from '@ng-doc/core/helpers/object-keys'; import { ngDocZoneOptimize } from '@ng-doc/ui-kit/observables'; import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy'; import { fromEvent } from 'rxjs'; import { filter } from 'rxjs/operators'; let NgDocHotkeyDirective = class NgDocHotkeyDirective { constructor(ngZone) { this.ngZone = ngZone; this.callback = new EventEmitter(); afterNextRender(() => { fromEvent(document, 'keyup') .pipe(filter(isKeyboardEvent), filter((event) => objectKeys(this.hotkey ?? {}).every((key) => this.hotkey && this.hotkey[key] === event[key])), filter((event) => { if (event.target instanceof HTMLElement) { return !['input', 'textarea', 'select'].includes(event.target.tagName.toLowerCase()); } return true; }), ngDocZoneOptimize(this.ngZone), untilDestroyed(this)) .subscribe((event) => { event.preventDefault(); this.callback.emit(); }); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgDocHotkeyDirective, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: NgDocHotkeyDirective, isStandalone: true, selector: "[ngDocHotkey]", inputs: { hotkey: ["ngDocHotkey", "hotkey"] }, outputs: { callback: "ngDocHotkey" }, ngImport: i0 }); } }; NgDocHotkeyDirective = __decorate([ UntilDestroy(), __metadata("design:paramtypes", [NgZone]) ], NgDocHotkeyDirective); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgDocHotkeyDirective, decorators: [{ type: Directive, args: [{ selector: '[ngDocHotkey]', standalone: true, }] }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { hotkey: [{ type: Input, args: ['ngDocHotkey'] }], callback: [{ type: Output, args: ['ngDocHotkey'] }] } }); /** * Generated bundle index. Do not edit. */ export { NgDocHotkeyDirective }; //# sourceMappingURL=ng-doc-ui-kit-directives-hotkey.mjs.map