{"version":3,"file":"sowatech-shared-global-keyboard-shortcuts.mjs","sources":["../../../projects/shared/global-keyboard-shortcuts/global-keyboard-shortcuts.service.ts","../../../projects/shared/global-keyboard-shortcuts/shortcut.directive.ts","../../../projects/shared/global-keyboard-shortcuts/global-keyboard-shortcuts.component.ts","../../../projects/shared/global-keyboard-shortcuts/global-keyboard-shortcuts.module.ts","../../../projects/shared/global-keyboard-shortcuts/sowatech-shared-global-keyboard-shortcuts.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { ShortcutInput } from 'ng-keyboard-shortcuts';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class GlobalKeyboardShortcutService {\r\n\r\n    public onAddShortcut: Subject<ShortcutInput> = new Subject<ShortcutInput>();\r\n    public onRemoveShortcut: Subject<ShortcutInput> = new Subject<ShortcutInput>();\r\n\r\n    public addShortcut(shortcut: ShortcutInput) {\r\n        this.onAddShortcut.next(shortcut);\r\n    }\r\n\r\n    public removeShortcut(shortcut: ShortcutInput) {\r\n        this.onRemoveShortcut.next(shortcut);\r\n    }\r\n}\r\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ShortcutInput, AllowIn } from 'ng-keyboard-shortcuts';\r\n\r\nimport { GlobalKeyboardShortcutService } from './global-keyboard-shortcuts.service';\r\n\r\n/**\r\n * Shortcut Keys müssen immer mit Leerzeichen getrennt werden z.B. 'Ctrl + G'.\r\n * Des Weiteren muss irgendwo global die GlobalKeyboardShortcutsComponent im HTML plaziert werden, am einfachsten wäre es in der AppComponent HTML\r\n */\r\n@Directive({\r\n    selector: '[shortcut]',\r\n    standalone: false\r\n})\r\nexport class ShortcutDirective implements OnInit, OnDestroy {\r\n    constructor(\r\n        public el: ElementRef,\r\n        private shortcutService: GlobalKeyboardShortcutService\r\n    ) {\r\n    }\r\n\r\n    @Input() public shortcut: string | string[];\r\n    public ngOnInit() {\r\n        this.createShortcut();\r\n    }\r\n\r\n    public btnShortcut: ShortcutInput;\r\n    private createShortcut() {\r\n        this.el.nativeElement.title = `${this.el.nativeElement.title ? this.el.nativeElement.title : this.el.nativeElement.textContent} (${this.getShortcutFriendlyName(this.shortcut)})`;\r\n        this.btnShortcut = {\r\n            key: this.shortcut,\r\n            preventDefault: true,\r\n            command: () => {\r\n                this.shortcutExecuted();\r\n            },\r\n            description: this.el.nativeElement.textContent,\r\n            label: this.shortcut,\r\n            allowIn: [AllowIn.Input, AllowIn.Select, AllowIn.Textarea]\r\n        } as ShortcutInput;\r\n        this.shortcutService.addShortcut(this.btnShortcut);\r\n    }\r\n\r\n    private getShortcutFriendlyName(shortcut: string | string[]) {\r\n        if (Array.isArray(shortcut))\r\n            return this.replaceCtrlInFriendlyName(shortcut.length > 0 ? shortcut[0] : '');\r\n        else\r\n            return this.replaceCtrlInFriendlyName(shortcut);\r\n    }\r\n\r\n    private replaceCtrlInFriendlyName(shortcut: string) {\r\n        return shortcut.toLocaleLowerCase().replace('ctrl', 'strg').toLocaleUpperCase();\r\n    }\r\n\r\n    private shortcutExecuted() {\r\n        this.el.nativeElement.click();\r\n    }\r\n\r\n    public ngOnDestroy() {\r\n        this.shortcutService.removeShortcut(this.btnShortcut);\r\n    }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild, Input, AfterViewInit } from '@angular/core';\r\nimport { ShortcutInput, KeyboardShortcutsComponent } from 'ng-keyboard-shortcuts';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { GlobalKeyboardShortcutService } from './global-keyboard-shortcuts.service';\r\n\r\n@Component({\r\n    selector: 'global-keyboard-shortcuts',\r\n    template: `\r\n    <ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\r\n    `,\r\n    styles: [],\r\n    standalone: false\r\n})\r\nexport class GlobalKeyboardShortcutsComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n\r\n    public shortcuts: ShortcutInput[] = [];\r\n    @ViewChild(KeyboardShortcutsComponent, { static: true }) private keyboard: KeyboardShortcutsComponent;\r\n    @Input() public defaultShortcuts: ShortcutInput[] = [];\r\n\r\n    constructor(\r\n        private shortcutService: GlobalKeyboardShortcutService\r\n    ) {\r\n    }\r\n\r\n    private subscriptions = new Array<Subscription>();\r\n    ngOnInit() {\r\n        this.subscriptions.push(\r\n            this.shortcutService.onAddShortcut.subscribe((shortcut: ShortcutInput) => this.addShortcut(shortcut)),\r\n            this.shortcutService.onRemoveShortcut.subscribe((shortcut: ShortcutInput) => this.removeShortcut(shortcut))\r\n        );\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        this.shortcuts = this.defaultShortcuts;\r\n    }\r\n\r\n    private removeShortcut(shortcut: ShortcutInput): void {\r\n        this.keyboard.disabled = true;\r\n        const index = this.shortcuts.findIndex(s => s.key === shortcut.key);\r\n        this.shortcuts.splice(index, 1);\r\n        this.keyboard.disabled = false;\r\n    }\r\n\r\n    private addShortcut(shortcut: ShortcutInput): void {\r\n        this.keyboard.disabled = true;\r\n        this.shortcuts.push(shortcut);\r\n        this.keyboard.disabled = false;\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        for (const s of this.subscriptions)\r\n            s.unsubscribe();\r\n\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { KeyboardShortcutsModule } from 'ng-keyboard-shortcuts';\r\n\r\nimport { GlobalKeyboardShortcutsComponent } from './global-keyboard-shortcuts.component';\r\nimport { ShortcutDirective } from './shortcut.directive';\r\n\r\nexport const KeyboardShortcutsModuleForRoot = KeyboardShortcutsModule.forRoot();\r\n\r\n@NgModule({\r\n    imports: [\r\n        KeyboardShortcutsModuleForRoot\r\n    ],\r\n    declarations: [\r\n        GlobalKeyboardShortcutsComponent,\r\n        ShortcutDirective\r\n    ],\r\n    exports: [\r\n        ShortcutDirective,\r\n        GlobalKeyboardShortcutsComponent\r\n    ],\r\n})\r\nexport class GlobalKeyboardShortcutsModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.GlobalKeyboardShortcutService"],"mappings":"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"}