{"version":3,"file":"ng-doc-ui-kit-directives-hotkey.mjs","sources":["../../../../libs/ui-kit/directives/hotkey/hotkey.directive.ts","../../../../libs/ui-kit/directives/hotkey/ng-doc-ui-kit-directives-hotkey.ts"],"sourcesContent":["import { afterNextRender, Directive, EventEmitter, Input, NgZone, Output } from '@angular/core';\nimport { isKeyboardEvent } from '@ng-doc/core/helpers/is-keyboard-event';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { ngDocZoneOptimize } from '@ng-doc/ui-kit/observables';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n\tselector: '[ngDocHotkey]',\n\tstandalone: true,\n})\n@UntilDestroy()\nexport class NgDocHotkeyDirective {\n\t@Input('ngDocHotkey')\n\thotkey?: Partial<KeyboardEvent>;\n\n\t@Output('ngDocHotkey')\n\tcallback: EventEmitter<void> = new EventEmitter<void>();\n\n\tconstructor(private readonly ngZone: NgZone) {\n\t\tafterNextRender(() => {\n\t\t\tfromEvent(document, 'keyup')\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter(isKeyboardEvent),\n\t\t\t\t\tfilter((event: KeyboardEvent) =>\n\t\t\t\t\t\tobjectKeys(this.hotkey ?? {}).every(\n\t\t\t\t\t\t\t(key: keyof KeyboardEvent) => this.hotkey && this.hotkey[key] === event[key],\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t\tfilter((event: KeyboardEvent) => {\n\t\t\t\t\t\tif (event.target instanceof HTMLElement) {\n\t\t\t\t\t\t\treturn !['input', 'textarea', 'select'].includes(event.target.tagName.toLowerCase());\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}),\n\t\t\t\t\tngDocZoneOptimize(this.ngZone),\n\t\t\t\t\tuntilDestroyed(this),\n\t\t\t\t)\n\t\t\t\t.subscribe((event: KeyboardEvent) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.callback.emit();\n\t\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAaa,IAAA,oBAAoB,GAA1B,MAAM,oBAAoB,CAAA;AAOhC,IAAA,WAAA,CAA6B,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM;AAFnC,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ;QAGtD,eAAe,CAAC,MAAK;AACpB,YAAA,SAAS,CAAC,QAAQ,EAAE,OAAO;iBACzB,IAAI,CACJ,MAAM,CAAC,eAAe,CAAC,EACvB,MAAM,CAAC,CAAC,KAAoB,KAC3B,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAClC,CAAC,GAAwB,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAC5E,CACD,EACD,MAAM,CAAC,CAAC,KAAoB,KAAI;AAC/B,gBAAA,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,EAAE;oBACxC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;;AAErF,gBAAA,OAAO,IAAI;AACZ,aAAC,CAAC,EACF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAC9B,cAAc,CAAC,IAAI,CAAC;AAEpB,iBAAA,SAAS,CAAC,CAAC,KAAoB,KAAI;gBACnC,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACrB,aAAC,CAAC;AACJ,SAAC,CAAC;;8GA9BS,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAApB,oBAAoB,GAAA,UAAA,CAAA;AADhC,IAAA,YAAY,EAAE;qCAQuB,MAAM,CAAA;AAP/B,CAAA,EAAA,oBAAoB,CAgChC;2FAhCY,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;2EAIA,MAAM,EAAA,CAAA;sBADL,KAAK;uBAAC,aAAa;gBAIpB,QAAQ,EAAA,CAAA;sBADP,MAAM;uBAAC,aAAa;;;ACjBtB;;AAEG;;;;"}