@ngrdt/shortcuts 0.0.7 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { RdtStringUtils } from '@ngrdt/utils';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, EventEmitter, Directive, Output, HostListener } from '@angular/core';
3
+ import { Injectable, EventEmitter, HostListener, Output, Directive } from '@angular/core';
4
4
  import hotkeys from 'hotkeys-js';
5
5
  import { Subject, Observable, filter } from 'rxjs';
6
6
 
@@ -252,10 +252,10 @@ class RdtShortcutService {
252
252
  return !config.preventDefault;
253
253
  };
254
254
  }
255
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtShortcutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
256
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtShortcutService, providedIn: 'root' });
255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtShortcutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
256
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtShortcutService, providedIn: 'root' });
257
257
  }
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtShortcutService, decorators: [{
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtShortcutService, decorators: [{
259
259
  type: Injectable,
260
260
  args: [{
261
261
  providedIn: 'root',
@@ -287,10 +287,10 @@ class RdtKeyListenerDirective {
287
287
  this.pressedAtOnce.clear();
288
288
  this.keysPressed.clear();
289
289
  }
290
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtKeyListenerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
291
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtKeyListenerDirective, isStandalone: true, selector: "[rdtKeyListener]", outputs: { output: "rdtKeyListener" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)", "keyup": "onKeyUp($event)", "window:focus": "onWindowFocus()" } }, ngImport: i0 });
290
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtKeyListenerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
291
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: RdtKeyListenerDirective, isStandalone: true, selector: "[rdtKeyListener]", outputs: { output: "rdtKeyListener" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)", "keyup": "onKeyUp($event)", "window:focus": "onWindowFocus()" } }, ngImport: i0 });
292
292
  }
293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtKeyListenerDirective, decorators: [{
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtKeyListenerDirective, decorators: [{
294
294
  type: Directive,
295
295
  args: [{
296
296
  selector: '[rdtKeyListener]',
@@ -1 +1 @@
1
- {"version":3,"file":"ngrdt-shortcuts.mjs","sources":["../../../../@ngrdt/shortcuts/src/lib/shortcuts/rdt-shortcut.models.ts","../../../../@ngrdt/shortcuts/src/lib/shortcuts/windows-browser-shortcuts.ts","../../../../@ngrdt/shortcuts/src/lib/shortcuts/utils.ts","../../../../@ngrdt/shortcuts/src/lib/shortcuts/rdt-shortcut.ts","../../../../@ngrdt/shortcuts/src/lib/shortcuts/providers/rdt-shortcut.service.ts","../../../../@ngrdt/shortcuts/src/lib/shortcuts/directives/rdt-key-listener.directive.ts","../../../../@ngrdt/shortcuts/src/ngrdt-shortcuts.ts"],"sourcesContent":["import { RdtShortcut } from './rdt-shortcut';\r\n\r\nexport const SHORTCUT_SPLIT_KEY = ':';\r\n\r\n// Fn key on Thinkpad is emitted as event.code === 'WakeUp' so F1-12 shortcuts won't work\r\nexport const IGNORED_KEYCODES = ['WakeUp'];\r\n\r\nexport enum ShortcutSrcElement {\r\n INPUT = 'input',\r\n OTHER = 'other',\r\n}\r\n\r\nexport interface RdtShortcutEvent {\r\n shortcut: RdtShortcut;\r\n src: ShortcutSrcElement;\r\n originalEvent: KeyboardEvent;\r\n}\r\n\r\nexport interface RdtShortcutConfig {\r\n preventDefault?: boolean;\r\n element?: HTMLElement | undefined;\r\n}\r\n\r\nexport const DEFAULT_SHORTCUT_CONFIG: RdtShortcutConfig = {\r\n preventDefault: true,\r\n element: undefined,\r\n};\r\n","export const WINDOWS_BROWSER_SHORCUTS = [\r\n ['ctrl', 'n'],\r\n ['ctrl', 'shift', 'n'],\r\n ['ctrl', 't'],\r\n ['ctrl', 'shift', 't'],\r\n ['ctrl', 'tab'],\r\n ['ctrl', 'pagedown'],\r\n ['ctrl', 'shift', 'tab'],\r\n ['ctrl', 'pageup'],\r\n ...[...Array(9).keys()].map(num => ['ctrl', String(num + 1)]), // ctrl + 1-9\r\n ['alt', 'home'],\r\n ['alt', 'left'],\r\n ['alt', 'right'],\r\n ['ctrl', 'w'],\r\n ['ctrl', 'f4'],\r\n ['ctrl', 'shift', 'w'],\r\n ['alt', 'f4'],\r\n ['alt', 'space', 'n'],\r\n ['alt', 'space', 'x'],\r\n ['alt', 'f', 'x'],\r\n ['ctrl', 'shift', 'pageup'],\r\n ['ctrl', 'shift', 'pagedown'],\r\n ['alt', 'f'],\r\n ['alt', 'e'],\r\n ['ctrl', 'shift', 'b'],\r\n ['ctrl', 'shift', 'o'],\r\n ['ctrl', 'h'],\r\n ['ctrl', 'j'],\r\n ['shift', 'esc'],\r\n ['shift', 'alt', 't'],\r\n ['f10'],\r\n ['f6'],\r\n ['ctrl', 'f'],\r\n ['f3'],\r\n ['ctrl', 'g'],\r\n ['ctrl', 'shift', 'g'],\r\n ['ctrl', 'shift', 'j'],\r\n ['f12'],\r\n ['ctrl', 'shift', 'del'],\r\n ['f1'],\r\n ['ctrl', 'shift', 'm'],\r\n ['alt', 'shift', 'i'],\r\n ['f7'],\r\n ['ctrl', 'f6'],\r\n ['alt', 'shift', 'a'],\r\n ['ctrl', 'l'],\r\n ['alt', 'd'],\r\n ['f6'],\r\n ['ctrl', 'k'],\r\n ['ctrl', 'e'],\r\n ['ctrl', 'p'],\r\n ['ctrl', 's'],\r\n ['f5'],\r\n ['ctrl', 'r'],\r\n ['shift', 'f5'],\r\n ['ctrl', 'shift', 'r'],\r\n ['esc'],\r\n ['tab'],\r\n ['shift', 'tab'],\r\n ['ctrl', 'o'],\r\n ['ctrl', 'u'],\r\n ['ctrl', 'd'],\r\n ['ctrl', 'shift', 'd'],\r\n ['f11'],\r\n ['ctrl', '+'],\r\n ['ctrl', '-'],\r\n ['ctrl', '0'],\r\n ['space'],\r\n ['pagedown'],\r\n ['shift', 'space'],\r\n ['pageup'],\r\n ['home'],\r\n ['end'],\r\n ['ctrl', 'left'],\r\n ['ctrl', 'right'],\r\n ['ctrl', 'backspace'],\r\n ['alt', 'home'],\r\n];\r\n","// https://support.google.com/chrome/answer/157179\r\nimport { SHORTCUT_SPLIT_KEY } from './rdt-shortcut.models';\r\nimport { WINDOWS_BROWSER_SHORCUTS } from './windows-browser-shortcuts';\r\n\r\nfunction sortAndBuildShortcut(shortcut: string[]) {\r\n const cpy = [...shortcut];\r\n cpy.sort();\r\n return shortcut.join(SHORTCUT_SPLIT_KEY);\r\n}\r\n\r\nfunction buildShortcutSet(shortcuts: string[][]) {\r\n const set = new Set<string>();\r\n shortcuts.forEach((s) => set.add(sortAndBuildShortcut(s)));\r\n return set;\r\n}\r\n\r\nconst BROWSER_SHORTCUT_SET = buildShortcutSet(WINDOWS_BROWSER_SHORCUTS);\r\n\r\nexport function isBrowserShortcut(keys: string[]) {\r\n const sorted = sortAndBuildShortcut(keys);\r\n return BROWSER_SHORTCUT_SET.has(sorted);\r\n}\r\n","import { isBrowserShortcut } from './utils';\r\nimport { SHORTCUT_SPLIT_KEY } from './rdt-shortcut.models';\r\nimport { RdtStringUtils } from '@ngrdt/utils';\r\n\r\nexport class RdtShortcut {\r\n readonly hotkeysValue: string;\r\n readonly keys: string[];\r\n readonly label: string;\r\n\r\n get lastKey() {\r\n return this.keys[this.keys.length - 1];\r\n }\r\n\r\n private constructor(keys: string[]) {\r\n this.keys = keys;\r\n this.hotkeysValue = RdtShortcut.joinKeys(keys);\r\n this.label = RdtShortcut.makeLabel(keys);\r\n }\r\n\r\n private static joinKeys(keys: string[]) {\r\n return keys.join(SHORTCUT_SPLIT_KEY);\r\n }\r\n\r\n private static makeLabel(keys: string[]) {\r\n return keys.map(RdtStringUtils.capitalize).join('+');\r\n }\r\n\r\n static create(...keys: string[]) {\r\n if (isBrowserShortcut(keys)) {\r\n throw new Error(\r\n `Shortcut ${RdtShortcut.joinKeys(keys)} is a browser shortcut!`\r\n );\r\n }\r\n return new RdtShortcut(keys);\r\n }\r\n\r\n static createUnsafe(...keys: string[]) {\r\n return new RdtShortcut(keys);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport hotkeys, { HotkeysEvent, KeyHandler } from 'hotkeys-js';\r\nimport { filter, Observable, Subject } from 'rxjs';\r\nimport { RdtShortcut } from '../rdt-shortcut';\r\nimport {\r\n DEFAULT_SHORTCUT_CONFIG,\r\n RdtShortcutConfig,\r\n IGNORED_KEYCODES,\r\n SHORTCUT_SPLIT_KEY,\r\n RdtShortcutEvent,\r\n ShortcutSrcElement,\r\n} from '../rdt-shortcut.models';\r\n\r\ninterface HotkeysOptions {\r\n scope?: string;\r\n element?: HTMLElement | null;\r\n keyup?: boolean | null;\r\n keydown?: boolean | null;\r\n capture?: boolean;\r\n splitKey?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RdtShortcutService {\r\n private bound: Map<HTMLElement | undefined, Record<string, RdtShortcut>> =\r\n new Map();\r\n private subject$ = new Subject<RdtShortcutEvent>();\r\n private observable$ = this.subject$.asObservable();\r\n\r\n constructor() {\r\n // Enables hotkeys on input elements\r\n // Enables hotkeys on input elements\r\n hotkeys.filter = function (event: KeyboardEvent) {\r\n if (IGNORED_KEYCODES.includes(event.code)) {\r\n return false;\r\n }\r\n const tagName = (event.target as HTMLElement).tagName;\r\n const isInputEl = /^(INPUT|TEXTAREA|SELECT)$/.test(tagName);\r\n const scope = isInputEl\r\n ? ShortcutSrcElement.INPUT\r\n : ShortcutSrcElement.OTHER;\r\n hotkeys.setScope(scope);\r\n return true;\r\n };\r\n }\r\n\r\n listen(shortcut: RdtShortcut | RdtShortcut[], config?: RdtShortcutConfig) {\r\n const patchedConfig = {\r\n ...DEFAULT_SHORTCUT_CONFIG,\r\n ...config,\r\n } as Required<RdtShortcutConfig>;\r\n if (Array.isArray(shortcut)) {\r\n return this.listenArray(shortcut, patchedConfig);\r\n } else {\r\n return this.listenSingle(shortcut, patchedConfig);\r\n }\r\n }\r\n\r\n private listenArray(\r\n shortcuts: RdtShortcut[],\r\n config: Required<RdtShortcutConfig>\r\n ) {\r\n return new Observable<RdtShortcutEvent>((subscriber) => {\r\n const set = new Set(shortcuts);\r\n\r\n try {\r\n shortcuts.forEach((s) => this.bind(s, config));\r\n } catch (ex) {\r\n subscriber.error(ex);\r\n }\r\n\r\n const sub = this.observable$\r\n .pipe(filter((evt) => set.has(evt.shortcut)))\r\n .subscribe(subscriber);\r\n\r\n return () => {\r\n sub.unsubscribe();\r\n shortcuts.forEach((s) => this.unbind(s, config));\r\n };\r\n });\r\n }\r\n\r\n private listenSingle(\r\n shortcut: RdtShortcut,\r\n config: Required<RdtShortcutConfig>\r\n ) {\r\n return new Observable<RdtShortcutEvent>((subscriber) => {\r\n try {\r\n this.bind(shortcut, config);\r\n } catch (ex) {\r\n subscriber.error(ex);\r\n }\r\n\r\n const sub = this.observable$\r\n .pipe(filter((evt) => evt.shortcut === shortcut))\r\n .subscribe(subscriber);\r\n\r\n return () => {\r\n sub.unsubscribe();\r\n this.unbind(shortcut, config);\r\n };\r\n });\r\n }\r\n\r\n private bind(shortcut: RdtShortcut, config: Required<RdtShortcutConfig>) {\r\n const options: HotkeysOptions = {\r\n element: config.element,\r\n splitKey: SHORTCUT_SPLIT_KEY,\r\n };\r\n\r\n if (this.bound.get(config.element)?.[shortcut.hotkeysValue]) {\r\n throw new Error(`Shortcut ${shortcut} is already binded!`);\r\n }\r\n if (!this.bound.has(config.element)) {\r\n const newObj = {\r\n [shortcut.hotkeysValue]: shortcut,\r\n };\r\n this.bound.set(config.element, newObj);\r\n } else {\r\n this.bound.get(config.element)![shortcut.hotkeysValue] = shortcut;\r\n }\r\n\r\n hotkeys(shortcut.hotkeysValue, options, this.keyHandlerFactory(config));\r\n }\r\n\r\n private unbind(shortcut: RdtShortcut, config: RdtShortcutConfig) {\r\n const obj = this.bound.get(config.element);\r\n if (obj?.[shortcut.hotkeysValue]) {\r\n obj[shortcut.hotkeysValue] = undefined as unknown as RdtShortcut;\r\n if (Object.keys(obj).every((key) => obj[key] === undefined)) {\r\n this.bound.delete(config.element);\r\n }\r\n hotkeys.unbind(shortcut.hotkeysValue);\r\n }\r\n }\r\n\r\n private keyHandlerFactory(config: Required<RdtShortcutConfig>): KeyHandler {\r\n return (keyboardEvent: KeyboardEvent, hotkeysEvent: HotkeysEvent) => {\r\n if (config.preventDefault) {\r\n keyboardEvent.preventDefault();\r\n }\r\n const evt: RdtShortcutEvent = {\r\n shortcut: this.bound.get(config.element)![hotkeysEvent.shortcut],\r\n src: hotkeysEvent.scope as ShortcutSrcElement,\r\n originalEvent: keyboardEvent,\r\n };\r\n this.subject$.next(evt);\r\n return !config.preventDefault;\r\n };\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n// Outputs keydown event if only one key was pressed at once\r\n@Directive({\r\n selector: '[rdtKeyListener]',\r\n standalone: true,\r\n})\r\nexport class RdtKeyListenerDirective {\r\n private keysPressed = new Set<string>();\r\n private pressedAtOnce = new Set<string>();\r\n\r\n @Output('rdtKeyListener')\r\n output = new EventEmitter<KeyboardEvent>();\r\n\r\n @HostListener('keydown', ['$event'])\r\n private onKeyDown(event: KeyboardEvent) {\r\n if (!this.pressedAtOnce.has(event.key)) {\r\n this.keysPressed.add(event.key);\r\n this.pressedAtOnce.add(event.key);\r\n\r\n if (this.pressedAtOnce.size === 1) {\r\n this.output.emit(event);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('window:keyup', ['$event'])\r\n @HostListener('keyup', ['$event'])\r\n private onKeyUp(event: KeyboardEvent) {\r\n this.keysPressed.delete(event.key);\r\n this.pressedAtOnce.delete(event.key);\r\n if (this.keysPressed.size === 0) {\r\n this.pressedAtOnce.clear();\r\n }\r\n }\r\n\r\n @HostListener('window:focus')\r\n private onWindowFocus() {\r\n this.pressedAtOnce.clear();\r\n this.keysPressed.clear();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrdt-shortcuts.mjs","sources":["../tmp-esm2022/lib/shortcuts/rdt-shortcut.models.js","../tmp-esm2022/lib/shortcuts/windows-browser-shortcuts.js","../tmp-esm2022/lib/shortcuts/utils.js","../tmp-esm2022/lib/shortcuts/rdt-shortcut.js","../tmp-esm2022/lib/shortcuts/providers/rdt-shortcut.service.js","../tmp-esm2022/lib/shortcuts/directives/rdt-key-listener.directive.js","../tmp-esm2022/ngrdt-shortcuts.js"],"sourcesContent":["export const SHORTCUT_SPLIT_KEY = ':';\n// Fn key on Thinkpad is emitted as event.code === 'WakeUp' so F1-12 shortcuts won't work\nexport const IGNORED_KEYCODES = ['WakeUp'];\nexport var ShortcutSrcElement;\n(function (ShortcutSrcElement) {\n ShortcutSrcElement[\"INPUT\"] = \"input\";\n ShortcutSrcElement[\"OTHER\"] = \"other\";\n})(ShortcutSrcElement || (ShortcutSrcElement = {}));\nexport const DEFAULT_SHORTCUT_CONFIG = {\n preventDefault: true,\n element: undefined,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNob3J0Y3V0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9zaG9ydGN1dHMvc3JjL2xpYi9zaG9ydGN1dHMvcmR0LXNob3J0Y3V0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFFdEMseUZBQXlGO0FBQ3pGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFM0MsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1QixxQ0FBZSxDQUFBO0lBQ2YscUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQWFELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFzQjtJQUN4RCxjQUFjLEVBQUUsSUFBSTtJQUNwQixPQUFPLEVBQUUsU0FBUztDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2hvcnRjdXQgfSBmcm9tICcuL3JkdC1zaG9ydGN1dCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0hPUlRDVVRfU1BMSVRfS0VZID0gJzonO1xyXG5cclxuLy8gRm4ga2V5IG9uIFRoaW5rcGFkIGlzIGVtaXR0ZWQgYXMgZXZlbnQuY29kZSA9PT0gJ1dha2VVcCcgc28gRjEtMTIgc2hvcnRjdXRzIHdvbid0IHdvcmtcclxuZXhwb3J0IGNvbnN0IElHTk9SRURfS0VZQ09ERVMgPSBbJ1dha2VVcCddO1xyXG5cclxuZXhwb3J0IGVudW0gU2hvcnRjdXRTcmNFbGVtZW50IHtcclxuICBJTlBVVCA9ICdpbnB1dCcsXHJcbiAgT1RIRVIgPSAnb3RoZXInLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNob3J0Y3V0RXZlbnQge1xyXG4gIHNob3J0Y3V0OiBSZHRTaG9ydGN1dDtcclxuICBzcmM6IFNob3J0Y3V0U3JjRWxlbWVudDtcclxuICBvcmlnaW5hbEV2ZW50OiBLZXlib2FyZEV2ZW50O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNob3J0Y3V0Q29uZmlnIHtcclxuICBwcmV2ZW50RGVmYXVsdD86IGJvb2xlYW47XHJcbiAgZWxlbWVudD86IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSE9SVENVVF9DT05GSUc6IFJkdFNob3J0Y3V0Q29uZmlnID0ge1xyXG4gIHByZXZlbnREZWZhdWx0OiB0cnVlLFxyXG4gIGVsZW1lbnQ6IHVuZGVmaW5lZCxcclxufTtcclxuIl19","export const WINDOWS_BROWSER_SHORCUTS = [\n ['ctrl', 'n'],\n ['ctrl', 'shift', 'n'],\n ['ctrl', 't'],\n ['ctrl', 'shift', 't'],\n ['ctrl', 'tab'],\n ['ctrl', 'pagedown'],\n ['ctrl', 'shift', 'tab'],\n ['ctrl', 'pageup'],\n ...[...Array(9).keys()].map(num => ['ctrl', String(num + 1)]), // ctrl + 1-9\n ['alt', 'home'],\n ['alt', 'left'],\n ['alt', 'right'],\n ['ctrl', 'w'],\n ['ctrl', 'f4'],\n ['ctrl', 'shift', 'w'],\n ['alt', 'f4'],\n ['alt', 'space', 'n'],\n ['alt', 'space', 'x'],\n ['alt', 'f', 'x'],\n ['ctrl', 'shift', 'pageup'],\n ['ctrl', 'shift', 'pagedown'],\n ['alt', 'f'],\n ['alt', 'e'],\n ['ctrl', 'shift', 'b'],\n ['ctrl', 'shift', 'o'],\n ['ctrl', 'h'],\n ['ctrl', 'j'],\n ['shift', 'esc'],\n ['shift', 'alt', 't'],\n ['f10'],\n ['f6'],\n ['ctrl', 'f'],\n ['f3'],\n ['ctrl', 'g'],\n ['ctrl', 'shift', 'g'],\n ['ctrl', 'shift', 'j'],\n ['f12'],\n ['ctrl', 'shift', 'del'],\n ['f1'],\n ['ctrl', 'shift', 'm'],\n ['alt', 'shift', 'i'],\n ['f7'],\n ['ctrl', 'f6'],\n ['alt', 'shift', 'a'],\n ['ctrl', 'l'],\n ['alt', 'd'],\n ['f6'],\n ['ctrl', 'k'],\n ['ctrl', 'e'],\n ['ctrl', 'p'],\n ['ctrl', 's'],\n ['f5'],\n ['ctrl', 'r'],\n ['shift', 'f5'],\n ['ctrl', 'shift', 'r'],\n ['esc'],\n ['tab'],\n ['shift', 'tab'],\n ['ctrl', 'o'],\n ['ctrl', 'u'],\n ['ctrl', 'd'],\n ['ctrl', 'shift', 'd'],\n ['f11'],\n ['ctrl', '+'],\n ['ctrl', '-'],\n ['ctrl', '0'],\n ['space'],\n ['pagedown'],\n ['shift', 'space'],\n ['pageup'],\n ['home'],\n ['end'],\n ['ctrl', 'left'],\n ['ctrl', 'right'],\n ['ctrl', 'backspace'],\n ['alt', 'home'],\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy1icm93c2VyLXNob3J0Y3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9zaG9ydGN1dHMvc3JjL2xpYi9zaG9ydGN1dHMvd2luZG93cy1icm93c2VyLXNob3J0Y3V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7SUFDYixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQ3RCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNiLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDdEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ2YsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ3BCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDeEIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQ2xCLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWE7SUFDNUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2YsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2YsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0lBQ2hCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNiLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztJQUNkLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDdEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQ2IsQ0FBQyxLQUFLLEVBQUUsT0FB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QUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFdJTkRPV1NfQlJPV1NFUl9TSE9SQ1VUUyA9IFtcclxuICBbJ2N0cmwnLCAnbiddLFxyXG4gIFsnY3RybCcsICdzaGlmdCcsICduJ10sXHJcbiAgWydjdHJsJywgJ3QnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAndCddLFxyXG4gIFsnY3RybCcsICd0YWInXSxcclxuICBbJ2N0cmwnLCAncGFnZWRvd24nXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAndGFiJ10sXHJcbiAgWydjdHJsJywgJ3BhZ2V1cCddLFxyXG4gIC4uLlsuLi5BcnJheSg5KS5rZXlzKCldLm1hcChudW0gPT4gWydjdHJsJywgU3RyaW5nKG51bSArIDEpXSksIC8vIGN0cmwgKyAxLTlcclxuICBbJ2FsdCcsICdob21lJ10sXHJcbiAgWydhbHQnLCAnbGVmdCddLFxyXG4gIFsnYWx0JywgJ3JpZ2h0J10sXHJcbiAgWydjdHJsJywgJ3cnXSxcclxuICBbJ2N0cmwnLCAnZjQnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAndyddLFxyXG4gIFsnYWx0JywgJ2Y0J10sXHJcbiAgWydhbHQnLCAnc3BhY2UnLCAnbiddLFxyXG4gIFsnYWx0JywgJ3NwYWNlJywgJ3gnXSxcclxuICBbJ2FsdCcsICdmJywgJ3gnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAncGFnZXVwJ10sXHJcbiAgWydjdHJsJywgJ3NoaWZ0JywgJ3BhZ2Vkb3duJ10sXHJcbiAgWydhbHQnLCAnZiddLFxyXG4gIFsnYWx0JywgJ2UnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnYiddLFxyXG4gIFsnY3RybCcsICdzaGlmdCcsICdvJ10sXHJcbiAgWydjdHJsJywgJ2gnXSxcclxuICBbJ2N0cmwnLCAnaiddLFxyXG4gIFsnc2hpZnQnLCAnZXNjJ10sXHJcbiAgWydzaGlmdCcsICdhbHQnLCAndCddLFxyXG4gIFsnZjEwJ10sXHJcbiAgWydmNiddLFxyXG4gIFsnY3RybCcsICdmJ10sXHJcbiAgWydmMyddLFxyXG4gIFsnY3RybCcsICdnJ10sXHJcbiAgWydjdHJsJywgJ3NoaWZ0JywgJ2cnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnaiddLFxyXG4gIFsnZjEyJ10sXHJcbiAgWydjdHJsJywgJ3NoaWZ0JywgJ2RlbCddLFxyXG4gIFsnZjEnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnbSddLFxyXG4gIFsnYWx0JywgJ3NoaWZ0JywgJ2knXSxcclxuICBbJ2Y3J10sXHJcbiAgWydjdHJsJywgJ2Y2J10sXHJcbiAgWydhbHQnLCAnc2hpZnQnLCAnYSddLFxyXG4gIFsnY3RybCcsICdsJ10sXHJcbiAgWydhbHQnLCAnZCddLFxyXG4gIFsnZjYnXSxcclxuICBbJ2N0cmwnLCAnayddLFxyXG4gIFsnY3RybCcsICdlJ10sXHJcbiAgWydjdHJsJywgJ3AnXSxcclxuICBbJ2N0cmwnLCAncyddLFxyXG4gIFsnZjUnXSxcclxuICBbJ2N0cmwnLCAnciddLFxyXG4gIFsnc2hpZnQnLCAnZjUnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnciddLFxyXG4gIFsnZXNjJ10sXHJcbiAgWyd0YWInXSxcclxuICBbJ3NoaWZ0JywgJ3RhYiddLFxyXG4gIFsnY3RybCcsICdvJ10sXHJcbiAgWydjdHJsJywgJ3UnXSxcclxuICBbJ2N0cmwnLCAnZCddLFxyXG4gIFsnY3RybCcsICdzaGlmdCcsICdkJ10sXHJcbiAgWydmMTEnXSxcclxuICBbJ2N0cmwnLCAnKyddLFxyXG4gIFsnY3RybCcsICctJ10sXHJcbiAgWydjdHJsJywgJzAnXSxcclxuICBbJ3NwYWNlJ10sXHJcbiAgWydwYWdlZG93biddLFxyXG4gIFsnc2hpZnQnLCAnc3BhY2UnXSxcclxuICBbJ3BhZ2V1cCddLFxyXG4gIFsnaG9tZSddLFxyXG4gIFsnZW5kJ10sXHJcbiAgWydjdHJsJywgJ2xlZnQnXSxcclxuICBbJ2N0cmwnLCAncmlnaHQnXSxcclxuICBbJ2N0cmwnLCAnYmFja3NwYWNlJ10sXHJcbiAgWydhbHQnLCAnaG9tZSddLFxyXG5dO1xyXG4iXX0=","// https://support.google.com/chrome/answer/157179\nimport { SHORTCUT_SPLIT_KEY } from './rdt-shortcut.models';\nimport { WINDOWS_BROWSER_SHORCUTS } from './windows-browser-shortcuts';\nfunction sortAndBuildShortcut(shortcut) {\n const cpy = [...shortcut];\n cpy.sort();\n return shortcut.join(SHORTCUT_SPLIT_KEY);\n}\nfunction buildShortcutSet(shortcuts) {\n const set = new Set();\n shortcuts.forEach((s) => set.add(sortAndBuildShortcut(s)));\n return set;\n}\nconst BROWSER_SHORTCUT_SET = buildShortcutSet(WINDOWS_BROWSER_SHORCUTS);\nexport function isBrowserShortcut(keys) {\n const sorted = sortAndBuildShortcut(keys);\n return BROWSER_SHORTCUT_SET.has(sorted);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9saWIvc2hvcnRjdXRzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUFDLFFBQWtCO0lBQzlDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUMxQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFxQjtJQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQzlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUV4RSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBYztJQUM5QyxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vY2hyb21lL2Fuc3dlci8xNTcxNzlcclxuaW1wb3J0IHsgU0hPUlRDVVRfU1BMSVRfS0VZIH0gZnJvbSAnLi9yZHQtc2hvcnRjdXQubW9kZWxzJztcclxuaW1wb3J0IHsgV0lORE9XU19CUk9XU0VSX1NIT1JDVVRTIH0gZnJvbSAnLi93aW5kb3dzLWJyb3dzZXItc2hvcnRjdXRzJztcclxuXHJcbmZ1bmN0aW9uIHNvcnRBbmRCdWlsZFNob3J0Y3V0KHNob3J0Y3V0OiBzdHJpbmdbXSkge1xyXG4gIGNvbnN0IGNweSA9IFsuLi5zaG9ydGN1dF07XHJcbiAgY3B5LnNvcnQoKTtcclxuICByZXR1cm4gc2hvcnRjdXQuam9pbihTSE9SVENVVF9TUExJVF9LRVkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBidWlsZFNob3J0Y3V0U2V0KHNob3J0Y3V0czogc3RyaW5nW11bXSkge1xyXG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gIHNob3J0Y3V0cy5mb3JFYWNoKChzKSA9PiBzZXQuYWRkKHNvcnRBbmRCdWlsZFNob3J0Y3V0KHMpKSk7XHJcbiAgcmV0dXJuIHNldDtcclxufVxyXG5cclxuY29uc3QgQlJPV1NFUl9TSE9SVENVVF9TRVQgPSBidWlsZFNob3J0Y3V0U2V0KFdJTkRPV1NfQlJPV1NFUl9TSE9SQ1VUUyk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNCcm93c2VyU2hvcnRjdXQoa2V5czogc3RyaW5nW10pIHtcclxuICBjb25zdCBzb3J0ZWQgPSBzb3J0QW5kQnVpbGRTaG9ydGN1dChrZXlzKTtcclxuICByZXR1cm4gQlJPV1NFUl9TSE9SVENVVF9TRVQuaGFzKHNvcnRlZCk7XHJcbn1cclxuIl19","import { isBrowserShortcut } from './utils';\nimport { SHORTCUT_SPLIT_KEY } from './rdt-shortcut.models';\nimport { RdtStringUtils } from '@ngrdt/utils';\nexport class RdtShortcut {\n hotkeysValue;\n keys;\n label;\n get lastKey() {\n return this.keys[this.keys.length - 1];\n }\n constructor(keys) {\n this.keys = keys;\n this.hotkeysValue = RdtShortcut.joinKeys(keys);\n this.label = RdtShortcut.makeLabel(keys);\n }\n static joinKeys(keys) {\n return keys.join(SHORTCUT_SPLIT_KEY);\n }\n static makeLabel(keys) {\n return keys.map(RdtStringUtils.capitalize).join('+');\n }\n static create(...keys) {\n if (isBrowserShortcut(keys)) {\n throw new Error(`Shortcut ${RdtShortcut.joinKeys(keys)} is a browser shortcut!`);\n }\n return new RdtShortcut(keys);\n }\n static createUnsafe(...keys) {\n return new RdtShortcut(keys);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNob3J0Y3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3Nob3J0Y3V0cy9zcmMvbGliL3Nob3J0Y3V0cy9yZHQtc2hvcnRjdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsTUFBTSxPQUFPLFdBQVc7SUFDYixZQUFZLENBQVM7SUFDckIsSUFBSSxDQUFXO0lBQ2YsS0FBSyxDQUFTO0lBRXZCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBb0IsSUFBYztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQWM7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQWM7UUFDN0IsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQ2IsWUFBWSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBYztRQUNuQyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQnJvd3NlclNob3J0Y3V0IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IFNIT1JUQ1VUX1NQTElUX0tFWSB9IGZyb20gJy4vcmR0LXNob3J0Y3V0Lm1vZGVscyc7XHJcbmltcG9ydCB7IFJkdFN0cmluZ1V0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBSZHRTaG9ydGN1dCB7XHJcbiAgcmVhZG9ubHkgaG90a2V5c1ZhbHVlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkga2V5czogc3RyaW5nW107XHJcbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgZ2V0IGxhc3RLZXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5rZXlzW3RoaXMua2V5cy5sZW5ndGggLSAxXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3Ioa2V5czogc3RyaW5nW10pIHtcclxuICAgIHRoaXMua2V5cyA9IGtleXM7XHJcbiAgICB0aGlzLmhvdGtleXNWYWx1ZSA9IFJkdFNob3J0Y3V0LmpvaW5LZXlzKGtleXMpO1xyXG4gICAgdGhpcy5sYWJlbCA9IFJkdFNob3J0Y3V0Lm1ha2VMYWJlbChrZXlzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGpvaW5LZXlzKGtleXM6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4ga2V5cy5qb2luKFNIT1JUQ1VUX1NQTElUX0tFWSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBtYWtlTGFiZWwoa2V5czogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiBrZXlzLm1hcChSZHRTdHJpbmdVdGlscy5jYXBpdGFsaXplKS5qb2luKCcrJyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlKC4uLmtleXM6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoaXNCcm93c2VyU2hvcnRjdXQoa2V5cykpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBTaG9ydGN1dCAke1JkdFNob3J0Y3V0LmpvaW5LZXlzKGtleXMpfSBpcyBhIGJyb3dzZXIgc2hvcnRjdXQhYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBSZHRTaG9ydGN1dChrZXlzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVVbnNhZmUoLi4ua2V5czogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiBuZXcgUmR0U2hvcnRjdXQoa2V5cyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Injectable } from '@angular/core';\nimport hotkeys from 'hotkeys-js';\nimport { filter, Observable, Subject } from 'rxjs';\nimport { DEFAULT_SHORTCUT_CONFIG, IGNORED_KEYCODES, SHORTCUT_SPLIT_KEY, ShortcutSrcElement, } from '../rdt-shortcut.models';\nimport * as i0 from \"@angular/core\";\nexport class RdtShortcutService {\n bound = new Map();\n subject$ = new Subject();\n observable$ = this.subject$.asObservable();\n constructor() {\n // Enables hotkeys on input elements\n // Enables hotkeys on input elements\n hotkeys.filter = function (event) {\n if (IGNORED_KEYCODES.includes(event.code)) {\n return false;\n }\n const tagName = event.target.tagName;\n const isInputEl = /^(INPUT|TEXTAREA|SELECT)$/.test(tagName);\n const scope = isInputEl\n ? ShortcutSrcElement.INPUT\n : ShortcutSrcElement.OTHER;\n hotkeys.setScope(scope);\n return true;\n };\n }\n listen(shortcut, config) {\n const patchedConfig = {\n ...DEFAULT_SHORTCUT_CONFIG,\n ...config,\n };\n if (Array.isArray(shortcut)) {\n return this.listenArray(shortcut, patchedConfig);\n }\n else {\n return this.listenSingle(shortcut, patchedConfig);\n }\n }\n listenArray(shortcuts, config) {\n return new Observable((subscriber) => {\n const set = new Set(shortcuts);\n try {\n shortcuts.forEach((s) => this.bind(s, config));\n }\n catch (ex) {\n subscriber.error(ex);\n }\n const sub = this.observable$\n .pipe(filter((evt) => set.has(evt.shortcut)))\n .subscribe(subscriber);\n return () => {\n sub.unsubscribe();\n shortcuts.forEach((s) => this.unbind(s, config));\n };\n });\n }\n listenSingle(shortcut, config) {\n return new Observable((subscriber) => {\n try {\n this.bind(shortcut, config);\n }\n catch (ex) {\n subscriber.error(ex);\n }\n const sub = this.observable$\n .pipe(filter((evt) => evt.shortcut === shortcut))\n .subscribe(subscriber);\n return () => {\n sub.unsubscribe();\n this.unbind(shortcut, config);\n };\n });\n }\n bind(shortcut, config) {\n const options = {\n element: config.element,\n splitKey: SHORTCUT_SPLIT_KEY,\n };\n if (this.bound.get(config.element)?.[shortcut.hotkeysValue]) {\n throw new Error(`Shortcut ${shortcut} is already binded!`);\n }\n if (!this.bound.has(config.element)) {\n const newObj = {\n [shortcut.hotkeysValue]: shortcut,\n };\n this.bound.set(config.element, newObj);\n }\n else {\n this.bound.get(config.element)[shortcut.hotkeysValue] = shortcut;\n }\n hotkeys(shortcut.hotkeysValue, options, this.keyHandlerFactory(config));\n }\n unbind(shortcut, config) {\n const obj = this.bound.get(config.element);\n if (obj?.[shortcut.hotkeysValue]) {\n obj[shortcut.hotkeysValue] = undefined;\n if (Object.keys(obj).every((key) => obj[key] === undefined)) {\n this.bound.delete(config.element);\n }\n hotkeys.unbind(shortcut.hotkeysValue);\n }\n }\n keyHandlerFactory(config) {\n return (keyboardEvent, hotkeysEvent) => {\n if (config.preventDefault) {\n keyboardEvent.preventDefault();\n }\n const evt = {\n shortcut: this.bound.get(config.element)[hotkeysEvent.shortcut],\n src: hotkeysEvent.scope,\n originalEvent: keyboardEvent,\n };\n this.subject$.next(evt);\n return !config.preventDefault;\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtShortcutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtShortcutService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtShortcutService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNob3J0Y3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9saWIvc2hvcnRjdXRzL3Byb3ZpZGVycy9yZHQtc2hvcnRjdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sT0FBcUMsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixrQkFBa0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7QUFjaEMsTUFBTSxPQUFPLGtCQUFrQjtJQUNyQixLQUFLLEdBQ1gsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNKLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztJQUMzQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVuRDtRQUNFLG9DQUFvQztRQUNwQyxvQ0FBb0M7UUFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxVQUFVLEtBQW9CO1lBQzdDLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUM7WUFDdEQsTUFBTSxTQUFTLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELE1BQU0sS0FBSyxHQUFHLFNBQVM7Z0JBQ3JCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO2dCQUMxQixDQUFDLENB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QUMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBbUM7UUFDM0QsT0FBTyxDQUFDLGFBQTRCLEVBQUUsWUFBMEIsRUFBRSxFQUFFO1lBQ2xFLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUMxQixhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUNELE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNoRSxHQUFHLEVBQUUsWUFBWSxDQUFDLEtBQTJCO2dCQUM3QyxhQUFhLEVBQUUsYUFBYTthQUM3QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt1R0E5SFUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhvdGtleXMsIHsgSG90a2V5c0V2ZW50LCBLZXlIYW5kbGVyIH0gZnJvbSAnaG90a2V5cy1qcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSZHRTaG9ydGN1dCB9IGZyb20gJy4uL3JkdC1zaG9ydGN1dCc7XHJcbmltcG9ydCB7XHJcbiAgREVGQVVMVF9TSE9SVENVVF9DT05GSUcsXHJcbiAgUmR0U2hvcnRjdXRDb25maWcsXHJcbiAgSUdOT1JFRF9LRVlDT0RFUyxcclxuICBTSE9SVENVVF9TUExJVF9LRVksXHJcbiAgUmR0U2hvcnRjdXRFdmVudCxcclxuICBTaG9ydGN1dFNyY0VsZW1lbnQsXHJcbn0gZnJvbSAnLi4vcmR0LXNob3J0Y3V0Lm1vZGVscyc7XHJcblxyXG5pbnRlcmZhY2UgSG90a2V5c09wdGlvbnMge1xyXG4gIHNjb3BlPzogc3RyaW5nO1xyXG4gIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAga2V5dXA/OiBib29sZWFuIHwgbnVsbDtcclxuICBrZXlkb3duPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgY2FwdHVyZT86IGJvb2xlYW47XHJcbiAgc3BsaXRLZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZHRTaG9ydGN1dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgYm91bmQ6IE1hcDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCwgUmVjb3JkPHN0cmluZywgUmR0U2hvcnRjdXQ+PiA9XHJcbiAgICBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBzdWJqZWN0JCA9IG5ldyBTdWJqZWN0PFJkdFNob3J0Y3V0RXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSBvYnNlcnZhYmxlJCA9IHRoaXMuc3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgLy8gRW5hYmxlcyBob3RrZXlzIG9uIGlucHV0IGVsZW1lbnRzXHJcbiAgICAvLyBFbmFibGVzIGhvdGtleXMgb24gaW5wdXQgZWxlbWVudHNcclxuICAgIGhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgIGlmIChJR05PUkVEX0tFWUNPREVTLmluY2x1ZGVzKGV2ZW50LmNvZGUpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRhZ05hbWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lO1xyXG4gICAgICBjb25zdCBpc0lucHV0RWwgPSAvXihJTlBVVHxURVhUQVJFQXxTRUxFQ1QpJC8udGVzdCh0YWdOYW1lKTtcclxuICAgICAgY29uc3Qgc2NvcGUgPSBpc0lucHV0RWxcclxuICAgICAgICA/IFNob3J0Y3V0U3JjRWxlbWVudC5JTlBVVFxyXG4gICAgICAgIDogU2hvcnRjdXRTcmNFbGVtZW50Lk9USEVSO1xyXG4gICAgICBob3RrZXlzLnNldFNjb3BlKHNjb3BlKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbGlzdGVuKHNob3J0Y3V0OiBSZHRTaG9ydGN1dCB8IFJkdFNob3J0Y3V0W10sIGNvbmZpZz86IFJkdFNob3J0Y3V0Q29uZmlnKSB7XHJcbiAgICBjb25zdCBwYXRjaGVkQ29uZmlnID0ge1xyXG4gICAgICAuLi5ERUZBVUxUX1NIT1JUQ1VUX0NPTkZJRyxcclxuICAgICAgLi4uY29uZmlnLFxyXG4gICAgfSBhcyBSZXF1aXJlZDxSZHRTaG9ydGN1dENvbmZpZz47XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzaG9ydGN1dCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuQXJyYXkoc2hvcnRjdXQsIHBhdGNoZWRDb25maWcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuU2luZ2xlKHNob3J0Y3V0LCBwYXRjaGVkQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuQXJyYXkoXHJcbiAgICBzaG9ydGN1dHM6IFJkdFNob3J0Y3V0W10sXHJcbiAgICBjb25maWc6IFJlcXVpcmVkPFJkdFNob3J0Y3V0Q29uZmlnPlxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJkdFNob3J0Y3V0RXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoc2hvcnRjdXRzKTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgc2hvcnRjdXRzLmZvckVhY2goKHMpID0+IHRoaXMuYmluZChzLCBjb25maWcpKTtcclxuICAgICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGV4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc3ViID0gdGhpcy5vYnNlcnZhYmxlJFxyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZ0KSA9PiBzZXQuaGFzKGV2dC5zaG9ydGN1dCkpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XHJcblxyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHNob3J0Y3V0cy5mb3JFYWNoKChzKSA9PiB0aGlzLnVuYmluZChzLCBjb25maWcpKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5TaW5nbGUoXHJcbiAgICBzaG9ydGN1dDogUmR0U2hvcnRjdXQsXHJcbiAgICBjb25maWc6IFJlcXVpcmVkPFJkdFNob3J0Y3V0Q29uZmlnPlxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJkdFNob3J0Y3V0RXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5iaW5kKHNob3J0Y3V0LCBjb25maWcpO1xyXG4gICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzdWIgPSB0aGlzLm9ic2VydmFibGUkXHJcbiAgICAgICAgLnBpcGUoZmlsdGVyKChldnQpID0+IGV2dC5zaG9ydGN1dCA9PT0gc2hvcnRjdXQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XHJcblxyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMudW5iaW5kKHNob3J0Y3V0LCBjb25maWcpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJpbmQoc2hvcnRjdXQ6IFJkdFNob3J0Y3V0LCBjb25maWc6IFJlcXVpcmVkPFJkdFNob3J0Y3V0Q29uZmlnPikge1xyXG4gICAgY29uc3Qgb3B0aW9uczogSG90a2V5c09wdGlvbnMgPSB7XHJcbiAgICAgIGVsZW1lbnQ6IGNvbmZpZy5lbGVtZW50LFxyXG4gICAgICBzcGxpdEtleTogU0hPUlRDVVRfU1BMSVRfS0VZLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5ib3VuZC5nZXQoY29uZmlnLmVsZW1lbnQpPy5bc2hvcnRjdXQuaG90a2V5c1ZhbHVlXSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNob3J0Y3V0ICR7c2hvcnRjdXR9IGlzIGFscmVhZHkgYmluZGVkIWApO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmJvdW5kLmhhcyhjb25maWcuZWxlbWVudCkpIHtcclxuICAgICAgY29uc3QgbmV3T2JqID0ge1xyXG4gICAgICAgIFtzaG9ydGN1dC5ob3RrZXlzVmFsdWVdOiBzaG9ydGN1dCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5ib3VuZC5zZXQoY29uZmlnLmVsZW1lbnQsIG5ld09iaik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmJvdW5kLmdldChjb25maWcuZWxlbWVudCkhW3Nob3J0Y3V0LmhvdGtleXNWYWx1ZV0gPSBzaG9ydGN1dDtcclxuICAgIH1cclxuXHJcbiAgICBob3RrZXlzKHNob3J0Y3V0LmhvdGtleXNWYWx1ZSwgb3B0aW9ucywgdGhpcy5rZXlIYW5kbGVyRmFjdG9yeShjb25maWcpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5iaW5kKHNob3J0Y3V0OiBSZHRTaG9ydGN1dCwgY29uZmlnOiBSZHRTaG9ydGN1dENvbmZpZykge1xyXG4gICAgY29uc3Qgb2JqID0gdGhpcy5ib3VuZC5nZXQoY29uZmlnLmVsZW1lbnQpO1xyXG4gICAgaWYgKG9iaj8uW3Nob3J0Y3V0LmhvdGtleXNWYWx1ZV0pIHtcclxuICAgICAgb2JqW3Nob3J0Y3V0LmhvdGtleXNWYWx1ZV0gPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBSZHRTaG9ydGN1dDtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKG9iaikuZXZlcnkoKGtleSkgPT4gb2JqW2tleV0gPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICB0aGlzLmJvdW5kLmRlbGV0ZShjb25maWcuZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgICAgaG90a2V5cy51bmJpbmQoc2hvcnRjdXQuaG90a2V5c1ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUga2V5SGFuZGxlckZhY3RvcnkoY29uZmlnOiBSZXF1aXJlZDxSZHRTaG9ydGN1dENvbmZpZz4pOiBLZXlIYW5kbGVyIHtcclxuICAgIHJldHVybiAoa2V5Ym9hcmRFdmVudDogS2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50OiBIb3RrZXlzRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGNvbmZpZy5wcmV2ZW50RGVmYXVsdCkge1xyXG4gICAgICAgIGtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBldnQ6IFJkdFNob3J0Y3V0RXZlbnQgPSB7XHJcbiAgICAgICAgc2hvcnRjdXQ6IHRoaXMuYm91bmQuZ2V0KGNvbmZpZy5lbGVtZW50KSFbaG90a2V5c0V2ZW50LnNob3J0Y3V0XSxcclxuICAgICAgICBzcmM6IGhvdGtleXNFdmVudC5zY29wZSBhcyBTaG9ydGN1dFNyY0VsZW1lbnQsXHJcbiAgICAgICAgb3JpZ2luYWxFdmVudDoga2V5Ym9hcmRFdmVudCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdWJqZWN0JC5uZXh0KGV2dCk7XHJcbiAgICAgIHJldHVybiAhY29uZmlnLnByZXZlbnREZWZhdWx0O1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n// Outputs keydown event if only one key was pressed at once\nexport class RdtKeyListenerDirective {\n keysPressed = new Set();\n pressedAtOnce = new Set();\n output = new EventEmitter();\n onKeyDown(event) {\n if (!this.pressedAtOnce.has(event.key)) {\n this.keysPressed.add(event.key);\n this.pressedAtOnce.add(event.key);\n if (this.pressedAtOnce.size === 1) {\n this.output.emit(event);\n }\n }\n }\n onKeyUp(event) {\n this.keysPressed.delete(event.key);\n this.pressedAtOnce.delete(event.key);\n if (this.keysPressed.size === 0) {\n this.pressedAtOnce.clear();\n }\n }\n onWindowFocus() {\n this.pressedAtOnce.clear();\n this.keysPressed.clear();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtKeyListenerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: RdtKeyListenerDirective, isStandalone: true, selector: \"[rdtKeyListener]\", outputs: { output: \"rdtKeyListener\" }, host: { listeners: { \"keydown\": \"onKeyDown($event)\", \"window:keyup\": \"onKeyUp($event)\", \"keyup\": \"onKeyUp($event)\", \"window:focus\": \"onWindowFocus()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtKeyListenerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtKeyListener]',\n standalone: true,\n }]\n }], propDecorators: { output: [{\n type: Output,\n args: ['rdtKeyListener']\n }], onKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], onKeyUp: [{\n type: HostListener,\n args: ['window:keyup', ['$event']]\n }, {\n type: HostListener,\n args: ['keyup', ['$event']]\n }], onWindowFocus: [{\n type: HostListener,\n args: ['window:focus']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWtleS1saXN0ZW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9saWIvc2hvcnRjdXRzL2RpcmVjdGl2ZXMvcmR0LWtleS1saXN0ZW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUUsNERBQTREO0FBSzVELE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDaEMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFHMUMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBR25DLFNBQVMsQ0FBQyxLQUFvQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVsQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFJTyxPQUFPLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFHTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO3VHQWpDVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBTUMsTUFBTTtzQkFETCxNQUFNO3VCQUFDLGdCQUFnQjtnQkFJaEIsU0FBUztzQkFEaEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYzNCLE9BQU87c0JBRmQsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN2QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVekIsYUFBYTtzQkFEcEIsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vLyBPdXRwdXRzIGtleWRvd24gZXZlbnQgaWYgb25seSBvbmUga2V5IHdhcyBwcmVzc2VkIGF0IG9uY2VcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcmR0S2V5TGlzdGVuZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmR0S2V5TGlzdGVuZXJEaXJlY3RpdmUge1xyXG4gIHByaXZhdGUga2V5c1ByZXNzZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICBwcml2YXRlIHByZXNzZWRBdE9uY2UgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgQE91dHB1dCgncmR0S2V5TGlzdGVuZXInKVxyXG4gIG91dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgcHJpdmF0ZSBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5wcmVzc2VkQXRPbmNlLmhhcyhldmVudC5rZXkpKSB7XHJcbiAgICAgIHRoaXMua2V5c1ByZXNzZWQuYWRkKGV2ZW50LmtleSk7XHJcbiAgICAgIHRoaXMucHJlc3NlZEF0T25jZS5hZGQoZXZlbnQua2V5KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnByZXNzZWRBdE9uY2Uuc2l6ZSA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMub3V0cHV0LmVtaXQoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAnLCBbJyRldmVudCddKVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcclxuICBwcml2YXRlIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMua2V5c1ByZXNzZWQuZGVsZXRlKGV2ZW50LmtleSk7XHJcbiAgICB0aGlzLnByZXNzZWRBdE9uY2UuZGVsZXRlKGV2ZW50LmtleSk7XHJcbiAgICBpZiAodGhpcy5rZXlzUHJlc3NlZC5zaXplID09PSAwKSB7XHJcbiAgICAgIHRoaXMucHJlc3NlZEF0T25jZS5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmZvY3VzJylcclxuICBwcml2YXRlIG9uV2luZG93Rm9jdXMoKSB7XHJcbiAgICB0aGlzLnByZXNzZWRBdE9uY2UuY2xlYXIoKTtcclxuICAgIHRoaXMua2V5c1ByZXNzZWQuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtc2hvcnRjdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQG5ncmR0L3Nob3J0Y3V0cy9zcmMvbmdyZHQtc2hvcnRjdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,4 +1,61 @@
1
- export * from './lib/shortcuts/rdt-shortcut';
2
- export * from './lib/shortcuts/rdt-shortcut.models';
3
- export * from './lib/shortcuts/providers/rdt-shortcut.service';
4
- export * from './lib/shortcuts/directives/rdt-key-listener.directive';
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter } from '@angular/core';
4
+
5
+ declare class RdtShortcut {
6
+ readonly hotkeysValue: string;
7
+ readonly keys: string[];
8
+ readonly label: string;
9
+ get lastKey(): string;
10
+ private constructor();
11
+ private static joinKeys;
12
+ private static makeLabel;
13
+ static create(...keys: string[]): RdtShortcut;
14
+ static createUnsafe(...keys: string[]): RdtShortcut;
15
+ }
16
+
17
+ declare const SHORTCUT_SPLIT_KEY = ":";
18
+ declare const IGNORED_KEYCODES: string[];
19
+ declare enum ShortcutSrcElement {
20
+ INPUT = "input",
21
+ OTHER = "other"
22
+ }
23
+ interface RdtShortcutEvent {
24
+ shortcut: RdtShortcut;
25
+ src: ShortcutSrcElement;
26
+ originalEvent: KeyboardEvent;
27
+ }
28
+ interface RdtShortcutConfig {
29
+ preventDefault?: boolean;
30
+ element?: HTMLElement | undefined;
31
+ }
32
+ declare const DEFAULT_SHORTCUT_CONFIG: RdtShortcutConfig;
33
+
34
+ declare class RdtShortcutService {
35
+ private bound;
36
+ private subject$;
37
+ private observable$;
38
+ constructor();
39
+ listen(shortcut: RdtShortcut | RdtShortcut[], config?: RdtShortcutConfig): Observable<RdtShortcutEvent>;
40
+ private listenArray;
41
+ private listenSingle;
42
+ private bind;
43
+ private unbind;
44
+ private keyHandlerFactory;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtShortcutService, never>;
46
+ static ɵprov: i0.ɵɵInjectableDeclaration<RdtShortcutService>;
47
+ }
48
+
49
+ declare class RdtKeyListenerDirective {
50
+ private keysPressed;
51
+ private pressedAtOnce;
52
+ output: EventEmitter<KeyboardEvent>;
53
+ private onKeyDown;
54
+ private onKeyUp;
55
+ private onWindowFocus;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtKeyListenerDirective, never>;
57
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtKeyListenerDirective, "[rdtKeyListener]", never, {}, { "output": "rdtKeyListener"; }, never, never, true, never>;
58
+ }
59
+
60
+ export { DEFAULT_SHORTCUT_CONFIG, IGNORED_KEYCODES, RdtKeyListenerDirective, RdtShortcut, RdtShortcutService, SHORTCUT_SPLIT_KEY, ShortcutSrcElement };
61
+ export type { RdtShortcutConfig, RdtShortcutEvent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngrdt/shortcuts",
3
- "version": "0.0.7",
3
+ "version": "v0.0.18",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.2.0",
6
6
  "rxjs": ">=7.0.0",
@@ -16,8 +16,6 @@
16
16
  },
17
17
  ".": {
18
18
  "types": "./index.d.ts",
19
- "esm2022": "./esm2022/ngrdt-shortcuts.mjs",
20
- "esm": "./esm2022/ngrdt-shortcuts.mjs",
21
19
  "default": "./fesm2022/ngrdt-shortcuts.mjs"
22
20
  }
23
21
  },
package/esm2022/index.mjs DELETED
@@ -1,5 +0,0 @@
1
- export * from './lib/shortcuts/rdt-shortcut';
2
- export * from './lib/shortcuts/rdt-shortcut.models';
3
- export * from './lib/shortcuts/providers/rdt-shortcut.service';
4
- export * from './lib/shortcuts/directives/rdt-key-listener.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvc2hvcnRjdXRzL3JkdC1zaG9ydGN1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaG9ydGN1dHMvcmR0LXNob3J0Y3V0Lm1vZGVscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nob3J0Y3V0cy9wcm92aWRlcnMvcmR0LXNob3J0Y3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hvcnRjdXRzL2RpcmVjdGl2ZXMvcmR0LWtleS1saXN0ZW5lci5kaXJlY3RpdmUnO1xuIl19
@@ -1,53 +0,0 @@
1
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- // Outputs keydown event if only one key was pressed at once
4
- export class RdtKeyListenerDirective {
5
- keysPressed = new Set();
6
- pressedAtOnce = new Set();
7
- output = new EventEmitter();
8
- onKeyDown(event) {
9
- if (!this.pressedAtOnce.has(event.key)) {
10
- this.keysPressed.add(event.key);
11
- this.pressedAtOnce.add(event.key);
12
- if (this.pressedAtOnce.size === 1) {
13
- this.output.emit(event);
14
- }
15
- }
16
- }
17
- onKeyUp(event) {
18
- this.keysPressed.delete(event.key);
19
- this.pressedAtOnce.delete(event.key);
20
- if (this.keysPressed.size === 0) {
21
- this.pressedAtOnce.clear();
22
- }
23
- }
24
- onWindowFocus() {
25
- this.pressedAtOnce.clear();
26
- this.keysPressed.clear();
27
- }
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtKeyListenerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
29
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtKeyListenerDirective, isStandalone: true, selector: "[rdtKeyListener]", outputs: { output: "rdtKeyListener" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)", "keyup": "onKeyUp($event)", "window:focus": "onWindowFocus()" } }, ngImport: i0 });
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtKeyListenerDirective, decorators: [{
32
- type: Directive,
33
- args: [{
34
- selector: '[rdtKeyListener]',
35
- standalone: true,
36
- }]
37
- }], propDecorators: { output: [{
38
- type: Output,
39
- args: ['rdtKeyListener']
40
- }], onKeyDown: [{
41
- type: HostListener,
42
- args: ['keydown', ['$event']]
43
- }], onKeyUp: [{
44
- type: HostListener,
45
- args: ['window:keyup', ['$event']]
46
- }, {
47
- type: HostListener,
48
- args: ['keyup', ['$event']]
49
- }], onWindowFocus: [{
50
- type: HostListener,
51
- args: ['window:focus']
52
- }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWtleS1saXN0ZW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9saWIvc2hvcnRjdXRzL2RpcmVjdGl2ZXMvcmR0LWtleS1saXN0ZW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUUsNERBQTREO0FBSzVELE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDaEMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFHMUMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBR25DLFNBQVMsQ0FBQyxLQUFvQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVsQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFJTyxPQUFPLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFHTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO3VHQWpDVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBTUMsTUFBTTtzQkFETCxNQUFNO3VCQUFDLGdCQUFnQjtnQkFJaEIsU0FBUztzQkFEaEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYzNCLE9BQU87c0JBRmQsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN2QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVekIsYUFBYTtzQkFEcEIsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vLyBPdXRwdXRzIGtleWRvd24gZXZlbnQgaWYgb25seSBvbmUga2V5IHdhcyBwcmVzc2VkIGF0IG9uY2VcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcmR0S2V5TGlzdGVuZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmR0S2V5TGlzdGVuZXJEaXJlY3RpdmUge1xyXG4gIHByaXZhdGUga2V5c1ByZXNzZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICBwcml2YXRlIHByZXNzZWRBdE9uY2UgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgQE91dHB1dCgncmR0S2V5TGlzdGVuZXInKVxyXG4gIG91dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgcHJpdmF0ZSBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5wcmVzc2VkQXRPbmNlLmhhcyhldmVudC5rZXkpKSB7XHJcbiAgICAgIHRoaXMua2V5c1ByZXNzZWQuYWRkKGV2ZW50LmtleSk7XHJcbiAgICAgIHRoaXMucHJlc3NlZEF0T25jZS5hZGQoZXZlbnQua2V5KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnByZXNzZWRBdE9uY2Uuc2l6ZSA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMub3V0cHV0LmVtaXQoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAnLCBbJyRldmVudCddKVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcclxuICBwcml2YXRlIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMua2V5c1ByZXNzZWQuZGVsZXRlKGV2ZW50LmtleSk7XHJcbiAgICB0aGlzLnByZXNzZWRBdE9uY2UuZGVsZXRlKGV2ZW50LmtleSk7XHJcbiAgICBpZiAodGhpcy5rZXlzUHJlc3NlZC5zaXplID09PSAwKSB7XHJcbiAgICAgIHRoaXMucHJlc3NlZEF0T25jZS5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmZvY3VzJylcclxuICBwcml2YXRlIG9uV2luZG93Rm9jdXMoKSB7XHJcbiAgICB0aGlzLnByZXNzZWRBdE9uY2UuY2xlYXIoKTtcclxuICAgIHRoaXMua2V5c1ByZXNzZWQuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,125 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import hotkeys from 'hotkeys-js';
3
- import { filter, Observable, Subject } from 'rxjs';
4
- import { DEFAULT_SHORTCUT_CONFIG, IGNORED_KEYCODES, SHORTCUT_SPLIT_KEY, ShortcutSrcElement, } from '../rdt-shortcut.models';
5
- import * as i0 from "@angular/core";
6
- export class RdtShortcutService {
7
- bound = new Map();
8
- subject$ = new Subject();
9
- observable$ = this.subject$.asObservable();
10
- constructor() {
11
- // Enables hotkeys on input elements
12
- // Enables hotkeys on input elements
13
- hotkeys.filter = function (event) {
14
- if (IGNORED_KEYCODES.includes(event.code)) {
15
- return false;
16
- }
17
- const tagName = event.target.tagName;
18
- const isInputEl = /^(INPUT|TEXTAREA|SELECT)$/.test(tagName);
19
- const scope = isInputEl
20
- ? ShortcutSrcElement.INPUT
21
- : ShortcutSrcElement.OTHER;
22
- hotkeys.setScope(scope);
23
- return true;
24
- };
25
- }
26
- listen(shortcut, config) {
27
- const patchedConfig = {
28
- ...DEFAULT_SHORTCUT_CONFIG,
29
- ...config,
30
- };
31
- if (Array.isArray(shortcut)) {
32
- return this.listenArray(shortcut, patchedConfig);
33
- }
34
- else {
35
- return this.listenSingle(shortcut, patchedConfig);
36
- }
37
- }
38
- listenArray(shortcuts, config) {
39
- return new Observable((subscriber) => {
40
- const set = new Set(shortcuts);
41
- try {
42
- shortcuts.forEach((s) => this.bind(s, config));
43
- }
44
- catch (ex) {
45
- subscriber.error(ex);
46
- }
47
- const sub = this.observable$
48
- .pipe(filter((evt) => set.has(evt.shortcut)))
49
- .subscribe(subscriber);
50
- return () => {
51
- sub.unsubscribe();
52
- shortcuts.forEach((s) => this.unbind(s, config));
53
- };
54
- });
55
- }
56
- listenSingle(shortcut, config) {
57
- return new Observable((subscriber) => {
58
- try {
59
- this.bind(shortcut, config);
60
- }
61
- catch (ex) {
62
- subscriber.error(ex);
63
- }
64
- const sub = this.observable$
65
- .pipe(filter((evt) => evt.shortcut === shortcut))
66
- .subscribe(subscriber);
67
- return () => {
68
- sub.unsubscribe();
69
- this.unbind(shortcut, config);
70
- };
71
- });
72
- }
73
- bind(shortcut, config) {
74
- const options = {
75
- element: config.element,
76
- splitKey: SHORTCUT_SPLIT_KEY,
77
- };
78
- if (this.bound.get(config.element)?.[shortcut.hotkeysValue]) {
79
- throw new Error(`Shortcut ${shortcut} is already binded!`);
80
- }
81
- if (!this.bound.has(config.element)) {
82
- const newObj = {
83
- [shortcut.hotkeysValue]: shortcut,
84
- };
85
- this.bound.set(config.element, newObj);
86
- }
87
- else {
88
- this.bound.get(config.element)[shortcut.hotkeysValue] = shortcut;
89
- }
90
- hotkeys(shortcut.hotkeysValue, options, this.keyHandlerFactory(config));
91
- }
92
- unbind(shortcut, config) {
93
- const obj = this.bound.get(config.element);
94
- if (obj?.[shortcut.hotkeysValue]) {
95
- obj[shortcut.hotkeysValue] = undefined;
96
- if (Object.keys(obj).every((key) => obj[key] === undefined)) {
97
- this.bound.delete(config.element);
98
- }
99
- hotkeys.unbind(shortcut.hotkeysValue);
100
- }
101
- }
102
- keyHandlerFactory(config) {
103
- return (keyboardEvent, hotkeysEvent) => {
104
- if (config.preventDefault) {
105
- keyboardEvent.preventDefault();
106
- }
107
- const evt = {
108
- shortcut: this.bound.get(config.element)[hotkeysEvent.shortcut],
109
- src: hotkeysEvent.scope,
110
- originalEvent: keyboardEvent,
111
- };
112
- this.subject$.next(evt);
113
- return !config.preventDefault;
114
- };
115
- }
116
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtShortcutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
117
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtShortcutService, providedIn: 'root' });
118
- }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtShortcutService, decorators: [{
120
- type: Injectable,
121
- args: [{
122
- providedIn: 'root',
123
- }]
124
- }], ctorParameters: () => [] });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNob3J0Y3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9saWIvc2hvcnRjdXRzL3Byb3ZpZGVycy9yZHQtc2hvcnRjdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sT0FBcUMsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixrQkFBa0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7QUFjaEMsTUFBTSxPQUFPLGtCQUFrQjtJQUNyQixLQUFLLEdBQ1gsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNKLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztJQUMzQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVuRDtRQUNFLG9DQUFvQztRQUNwQyxvQ0FBb0M7UUFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxVQUFVLEtBQW9CO1lBQzdDLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBSSxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUM7WUFDdEQsTUFBTSxTQUFTLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELE1BQU0sS0FBSyxHQUFHLFNBQVM7Z0JBQ3JCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO2dCQUMxQixDQUFDLENB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QUMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBbUM7UUFDM0QsT0FBTyxDQUFDLGFBQTRCLEVBQUUsWUFBMEIsRUFBRSxFQUFFO1lBQ2xFLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUMxQixhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUNELE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNoRSxHQUFHLEVBQUUsWUFBWSxDQUFDLEtBQTJCO2dCQUM3QyxhQUFhLEVBQUUsYUFBYTthQUM3QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt1R0E5SFUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhvdGtleXMsIHsgSG90a2V5c0V2ZW50LCBLZXlIYW5kbGVyIH0gZnJvbSAnaG90a2V5cy1qcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSZHRTaG9ydGN1dCB9IGZyb20gJy4uL3JkdC1zaG9ydGN1dCc7XHJcbmltcG9ydCB7XHJcbiAgREVGQVVMVF9TSE9SVENVVF9DT05GSUcsXHJcbiAgUmR0U2hvcnRjdXRDb25maWcsXHJcbiAgSUdOT1JFRF9LRVlDT0RFUyxcclxuICBTSE9SVENVVF9TUExJVF9LRVksXHJcbiAgUmR0U2hvcnRjdXRFdmVudCxcclxuICBTaG9ydGN1dFNyY0VsZW1lbnQsXHJcbn0gZnJvbSAnLi4vcmR0LXNob3J0Y3V0Lm1vZGVscyc7XHJcblxyXG5pbnRlcmZhY2UgSG90a2V5c09wdGlvbnMge1xyXG4gIHNjb3BlPzogc3RyaW5nO1xyXG4gIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAga2V5dXA/OiBib29sZWFuIHwgbnVsbDtcclxuICBrZXlkb3duPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgY2FwdHVyZT86IGJvb2xlYW47XHJcbiAgc3BsaXRLZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZHRTaG9ydGN1dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgYm91bmQ6IE1hcDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCwgUmVjb3JkPHN0cmluZywgUmR0U2hvcnRjdXQ+PiA9XHJcbiAgICBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBzdWJqZWN0JCA9IG5ldyBTdWJqZWN0PFJkdFNob3J0Y3V0RXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSBvYnNlcnZhYmxlJCA9IHRoaXMuc3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgLy8gRW5hYmxlcyBob3RrZXlzIG9uIGlucHV0IGVsZW1lbnRzXHJcbiAgICAvLyBFbmFibGVzIGhvdGtleXMgb24gaW5wdXQgZWxlbWVudHNcclxuICAgIGhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgIGlmIChJR05PUkVEX0tFWUNPREVTLmluY2x1ZGVzKGV2ZW50LmNvZGUpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRhZ05hbWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lO1xyXG4gICAgICBjb25zdCBpc0lucHV0RWwgPSAvXihJTlBVVHxURVhUQVJFQXxTRUxFQ1QpJC8udGVzdCh0YWdOYW1lKTtcclxuICAgICAgY29uc3Qgc2NvcGUgPSBpc0lucHV0RWxcclxuICAgICAgICA/IFNob3J0Y3V0U3JjRWxlbWVudC5JTlBVVFxyXG4gICAgICAgIDogU2hvcnRjdXRTcmNFbGVtZW50Lk9USEVSO1xyXG4gICAgICBob3RrZXlzLnNldFNjb3BlKHNjb3BlKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbGlzdGVuKHNob3J0Y3V0OiBSZHRTaG9ydGN1dCB8IFJkdFNob3J0Y3V0W10sIGNvbmZpZz86IFJkdFNob3J0Y3V0Q29uZmlnKSB7XHJcbiAgICBjb25zdCBwYXRjaGVkQ29uZmlnID0ge1xyXG4gICAgICAuLi5ERUZBVUxUX1NIT1JUQ1VUX0NPTkZJRyxcclxuICAgICAgLi4uY29uZmlnLFxyXG4gICAgfSBhcyBSZXF1aXJlZDxSZHRTaG9ydGN1dENvbmZpZz47XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzaG9ydGN1dCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuQXJyYXkoc2hvcnRjdXQsIHBhdGNoZWRDb25maWcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuU2luZ2xlKHNob3J0Y3V0LCBwYXRjaGVkQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuQXJyYXkoXHJcbiAgICBzaG9ydGN1dHM6IFJkdFNob3J0Y3V0W10sXHJcbiAgICBjb25maWc6IFJlcXVpcmVkPFJkdFNob3J0Y3V0Q29uZmlnPlxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJkdFNob3J0Y3V0RXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoc2hvcnRjdXRzKTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgc2hvcnRjdXRzLmZvckVhY2goKHMpID0+IHRoaXMuYmluZChzLCBjb25maWcpKTtcclxuICAgICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGV4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc3ViID0gdGhpcy5vYnNlcnZhYmxlJFxyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZ0KSA9PiBzZXQuaGFzKGV2dC5zaG9ydGN1dCkpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XHJcblxyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHNob3J0Y3V0cy5mb3JFYWNoKChzKSA9PiB0aGlzLnVuYmluZChzLCBjb25maWcpKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5TaW5nbGUoXHJcbiAgICBzaG9ydGN1dDogUmR0U2hvcnRjdXQsXHJcbiAgICBjb25maWc6IFJlcXVpcmVkPFJkdFNob3J0Y3V0Q29uZmlnPlxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJkdFNob3J0Y3V0RXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5iaW5kKHNob3J0Y3V0LCBjb25maWcpO1xyXG4gICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzdWIgPSB0aGlzLm9ic2VydmFibGUkXHJcbiAgICAgICAgLnBpcGUoZmlsdGVyKChldnQpID0+IGV2dC5zaG9ydGN1dCA9PT0gc2hvcnRjdXQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XHJcblxyXG4gICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMudW5iaW5kKHNob3J0Y3V0LCBjb25maWcpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJpbmQoc2hvcnRjdXQ6IFJkdFNob3J0Y3V0LCBjb25maWc6IFJlcXVpcmVkPFJkdFNob3J0Y3V0Q29uZmlnPikge1xyXG4gICAgY29uc3Qgb3B0aW9uczogSG90a2V5c09wdGlvbnMgPSB7XHJcbiAgICAgIGVsZW1lbnQ6IGNvbmZpZy5lbGVtZW50LFxyXG4gICAgICBzcGxpdEtleTogU0hPUlRDVVRfU1BMSVRfS0VZLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5ib3VuZC5nZXQoY29uZmlnLmVsZW1lbnQpPy5bc2hvcnRjdXQuaG90a2V5c1ZhbHVlXSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNob3J0Y3V0ICR7c2hvcnRjdXR9IGlzIGFscmVhZHkgYmluZGVkIWApO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmJvdW5kLmhhcyhjb25maWcuZWxlbWVudCkpIHtcclxuICAgICAgY29uc3QgbmV3T2JqID0ge1xyXG4gICAgICAgIFtzaG9ydGN1dC5ob3RrZXlzVmFsdWVdOiBzaG9ydGN1dCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5ib3VuZC5zZXQoY29uZmlnLmVsZW1lbnQsIG5ld09iaik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmJvdW5kLmdldChjb25maWcuZWxlbWVudCkhW3Nob3J0Y3V0LmhvdGtleXNWYWx1ZV0gPSBzaG9ydGN1dDtcclxuICAgIH1cclxuXHJcbiAgICBob3RrZXlzKHNob3J0Y3V0LmhvdGtleXNWYWx1ZSwgb3B0aW9ucywgdGhpcy5rZXlIYW5kbGVyRmFjdG9yeShjb25maWcpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5iaW5kKHNob3J0Y3V0OiBSZHRTaG9ydGN1dCwgY29uZmlnOiBSZHRTaG9ydGN1dENvbmZpZykge1xyXG4gICAgY29uc3Qgb2JqID0gdGhpcy5ib3VuZC5nZXQoY29uZmlnLmVsZW1lbnQpO1xyXG4gICAgaWYgKG9iaj8uW3Nob3J0Y3V0LmhvdGtleXNWYWx1ZV0pIHtcclxuICAgICAgb2JqW3Nob3J0Y3V0LmhvdGtleXNWYWx1ZV0gPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBSZHRTaG9ydGN1dDtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKG9iaikuZXZlcnkoKGtleSkgPT4gb2JqW2tleV0gPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICB0aGlzLmJvdW5kLmRlbGV0ZShjb25maWcuZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgICAgaG90a2V5cy51bmJpbmQoc2hvcnRjdXQuaG90a2V5c1ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUga2V5SGFuZGxlckZhY3RvcnkoY29uZmlnOiBSZXF1aXJlZDxSZHRTaG9ydGN1dENvbmZpZz4pOiBLZXlIYW5kbGVyIHtcclxuICAgIHJldHVybiAoa2V5Ym9hcmRFdmVudDogS2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50OiBIb3RrZXlzRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGNvbmZpZy5wcmV2ZW50RGVmYXVsdCkge1xyXG4gICAgICAgIGtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBldnQ6IFJkdFNob3J0Y3V0RXZlbnQgPSB7XHJcbiAgICAgICAgc2hvcnRjdXQ6IHRoaXMuYm91bmQuZ2V0KGNvbmZpZy5lbGVtZW50KSFbaG90a2V5c0V2ZW50LnNob3J0Y3V0XSxcclxuICAgICAgICBzcmM6IGhvdGtleXNFdmVudC5zY29wZSBhcyBTaG9ydGN1dFNyY0VsZW1lbnQsXHJcbiAgICAgICAgb3JpZ2luYWxFdmVudDoga2V5Ym9hcmRFdmVudCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdWJqZWN0JC5uZXh0KGV2dCk7XHJcbiAgICAgIHJldHVybiAhY29uZmlnLnByZXZlbnREZWZhdWx0O1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,32 +0,0 @@
1
- import { isBrowserShortcut } from './utils';
2
- import { SHORTCUT_SPLIT_KEY } from './rdt-shortcut.models';
3
- import { RdtStringUtils } from '@ngrdt/utils';
4
- export class RdtShortcut {
5
- hotkeysValue;
6
- keys;
7
- label;
8
- get lastKey() {
9
- return this.keys[this.keys.length - 1];
10
- }
11
- constructor(keys) {
12
- this.keys = keys;
13
- this.hotkeysValue = RdtShortcut.joinKeys(keys);
14
- this.label = RdtShortcut.makeLabel(keys);
15
- }
16
- static joinKeys(keys) {
17
- return keys.join(SHORTCUT_SPLIT_KEY);
18
- }
19
- static makeLabel(keys) {
20
- return keys.map(RdtStringUtils.capitalize).join('+');
21
- }
22
- static create(...keys) {
23
- if (isBrowserShortcut(keys)) {
24
- throw new Error(`Shortcut ${RdtShortcut.joinKeys(keys)} is a browser shortcut!`);
25
- }
26
- return new RdtShortcut(keys);
27
- }
28
- static createUnsafe(...keys) {
29
- return new RdtShortcut(keys);
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNob3J0Y3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3Nob3J0Y3V0cy9zcmMvbGliL3Nob3J0Y3V0cy9yZHQtc2hvcnRjdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsTUFBTSxPQUFPLFdBQVc7SUFDYixZQUFZLENBQVM7SUFDckIsSUFBSSxDQUFXO0lBQ2YsS0FBSyxDQUFTO0lBRXZCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBb0IsSUFBYztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQWM7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQWM7UUFDN0IsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQ2IsWUFBWSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBYztRQUNuQyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQnJvd3NlclNob3J0Y3V0IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IFNIT1JUQ1VUX1NQTElUX0tFWSB9IGZyb20gJy4vcmR0LXNob3J0Y3V0Lm1vZGVscyc7XHJcbmltcG9ydCB7IFJkdFN0cmluZ1V0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBSZHRTaG9ydGN1dCB7XHJcbiAgcmVhZG9ubHkgaG90a2V5c1ZhbHVlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkga2V5czogc3RyaW5nW107XHJcbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgZ2V0IGxhc3RLZXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5rZXlzW3RoaXMua2V5cy5sZW5ndGggLSAxXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3Ioa2V5czogc3RyaW5nW10pIHtcclxuICAgIHRoaXMua2V5cyA9IGtleXM7XHJcbiAgICB0aGlzLmhvdGtleXNWYWx1ZSA9IFJkdFNob3J0Y3V0LmpvaW5LZXlzKGtleXMpO1xyXG4gICAgdGhpcy5sYWJlbCA9IFJkdFNob3J0Y3V0Lm1ha2VMYWJlbChrZXlzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGpvaW5LZXlzKGtleXM6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4ga2V5cy5qb2luKFNIT1JUQ1VUX1NQTElUX0tFWSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBtYWtlTGFiZWwoa2V5czogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiBrZXlzLm1hcChSZHRTdHJpbmdVdGlscy5jYXBpdGFsaXplKS5qb2luKCcrJyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlKC4uLmtleXM6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoaXNCcm93c2VyU2hvcnRjdXQoa2V5cykpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBTaG9ydGN1dCAke1JkdFNob3J0Y3V0LmpvaW5LZXlzKGtleXMpfSBpcyBhIGJyb3dzZXIgc2hvcnRjdXQhYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBSZHRTaG9ydGN1dChrZXlzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVVbnNhZmUoLi4ua2V5czogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiBuZXcgUmR0U2hvcnRjdXQoa2V5cyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,13 +0,0 @@
1
- export const SHORTCUT_SPLIT_KEY = ':';
2
- // Fn key on Thinkpad is emitted as event.code === 'WakeUp' so F1-12 shortcuts won't work
3
- export const IGNORED_KEYCODES = ['WakeUp'];
4
- export var ShortcutSrcElement;
5
- (function (ShortcutSrcElement) {
6
- ShortcutSrcElement["INPUT"] = "input";
7
- ShortcutSrcElement["OTHER"] = "other";
8
- })(ShortcutSrcElement || (ShortcutSrcElement = {}));
9
- export const DEFAULT_SHORTCUT_CONFIG = {
10
- preventDefault: true,
11
- element: undefined,
12
- };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNob3J0Y3V0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9zaG9ydGN1dHMvc3JjL2xpYi9zaG9ydGN1dHMvcmR0LXNob3J0Y3V0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFFdEMseUZBQXlGO0FBQ3pGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFM0MsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1QixxQ0FBZSxDQUFBO0lBQ2YscUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQWFELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFzQjtJQUN4RCxjQUFjLEVBQUUsSUFBSTtJQUNwQixPQUFPLEVBQUUsU0FBUztDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2hvcnRjdXQgfSBmcm9tICcuL3JkdC1zaG9ydGN1dCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0hPUlRDVVRfU1BMSVRfS0VZID0gJzonO1xyXG5cclxuLy8gRm4ga2V5IG9uIFRoaW5rcGFkIGlzIGVtaXR0ZWQgYXMgZXZlbnQuY29kZSA9PT0gJ1dha2VVcCcgc28gRjEtMTIgc2hvcnRjdXRzIHdvbid0IHdvcmtcclxuZXhwb3J0IGNvbnN0IElHTk9SRURfS0VZQ09ERVMgPSBbJ1dha2VVcCddO1xyXG5cclxuZXhwb3J0IGVudW0gU2hvcnRjdXRTcmNFbGVtZW50IHtcclxuICBJTlBVVCA9ICdpbnB1dCcsXHJcbiAgT1RIRVIgPSAnb3RoZXInLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNob3J0Y3V0RXZlbnQge1xyXG4gIHNob3J0Y3V0OiBSZHRTaG9ydGN1dDtcclxuICBzcmM6IFNob3J0Y3V0U3JjRWxlbWVudDtcclxuICBvcmlnaW5hbEV2ZW50OiBLZXlib2FyZEV2ZW50O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNob3J0Y3V0Q29uZmlnIHtcclxuICBwcmV2ZW50RGVmYXVsdD86IGJvb2xlYW47XHJcbiAgZWxlbWVudD86IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSE9SVENVVF9DT05GSUc6IFJkdFNob3J0Y3V0Q29uZmlnID0ge1xyXG4gIHByZXZlbnREZWZhdWx0OiB0cnVlLFxyXG4gIGVsZW1lbnQ6IHVuZGVmaW5lZCxcclxufTtcclxuIl19
@@ -1,19 +0,0 @@
1
- // https://support.google.com/chrome/answer/157179
2
- import { SHORTCUT_SPLIT_KEY } from './rdt-shortcut.models';
3
- import { WINDOWS_BROWSER_SHORCUTS } from './windows-browser-shortcuts';
4
- function sortAndBuildShortcut(shortcut) {
5
- const cpy = [...shortcut];
6
- cpy.sort();
7
- return shortcut.join(SHORTCUT_SPLIT_KEY);
8
- }
9
- function buildShortcutSet(shortcuts) {
10
- const set = new Set();
11
- shortcuts.forEach((s) => set.add(sortAndBuildShortcut(s)));
12
- return set;
13
- }
14
- const BROWSER_SHORTCUT_SET = buildShortcutSet(WINDOWS_BROWSER_SHORCUTS);
15
- export function isBrowserShortcut(keys) {
16
- const sorted = sortAndBuildShortcut(keys);
17
- return BROWSER_SHORTCUT_SET.has(sorted);
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9saWIvc2hvcnRjdXRzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUFDLFFBQWtCO0lBQzlDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUMxQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFxQjtJQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQzlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUV4RSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBYztJQUM5QyxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vY2hyb21lL2Fuc3dlci8xNTcxNzlcclxuaW1wb3J0IHsgU0hPUlRDVVRfU1BMSVRfS0VZIH0gZnJvbSAnLi9yZHQtc2hvcnRjdXQubW9kZWxzJztcclxuaW1wb3J0IHsgV0lORE9XU19CUk9XU0VSX1NIT1JDVVRTIH0gZnJvbSAnLi93aW5kb3dzLWJyb3dzZXItc2hvcnRjdXRzJztcclxuXHJcbmZ1bmN0aW9uIHNvcnRBbmRCdWlsZFNob3J0Y3V0KHNob3J0Y3V0OiBzdHJpbmdbXSkge1xyXG4gIGNvbnN0IGNweSA9IFsuLi5zaG9ydGN1dF07XHJcbiAgY3B5LnNvcnQoKTtcclxuICByZXR1cm4gc2hvcnRjdXQuam9pbihTSE9SVENVVF9TUExJVF9LRVkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBidWlsZFNob3J0Y3V0U2V0KHNob3J0Y3V0czogc3RyaW5nW11bXSkge1xyXG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gIHNob3J0Y3V0cy5mb3JFYWNoKChzKSA9PiBzZXQuYWRkKHNvcnRBbmRCdWlsZFNob3J0Y3V0KHMpKSk7XHJcbiAgcmV0dXJuIHNldDtcclxufVxyXG5cclxuY29uc3QgQlJPV1NFUl9TSE9SVENVVF9TRVQgPSBidWlsZFNob3J0Y3V0U2V0KFdJTkRPV1NfQlJPV1NFUl9TSE9SQ1VUUyk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNCcm93c2VyU2hvcnRjdXQoa2V5czogc3RyaW5nW10pIHtcclxuICBjb25zdCBzb3J0ZWQgPSBzb3J0QW5kQnVpbGRTaG9ydGN1dChrZXlzKTtcclxuICByZXR1cm4gQlJPV1NFUl9TSE9SVENVVF9TRVQuaGFzKHNvcnRlZCk7XHJcbn1cclxuIl19
@@ -1,79 +0,0 @@
1
- export const WINDOWS_BROWSER_SHORCUTS = [
2
- ['ctrl', 'n'],
3
- ['ctrl', 'shift', 'n'],
4
- ['ctrl', 't'],
5
- ['ctrl', 'shift', 't'],
6
- ['ctrl', 'tab'],
7
- ['ctrl', 'pagedown'],
8
- ['ctrl', 'shift', 'tab'],
9
- ['ctrl', 'pageup'],
10
- ...[...Array(9).keys()].map(num => ['ctrl', String(num + 1)]), // ctrl + 1-9
11
- ['alt', 'home'],
12
- ['alt', 'left'],
13
- ['alt', 'right'],
14
- ['ctrl', 'w'],
15
- ['ctrl', 'f4'],
16
- ['ctrl', 'shift', 'w'],
17
- ['alt', 'f4'],
18
- ['alt', 'space', 'n'],
19
- ['alt', 'space', 'x'],
20
- ['alt', 'f', 'x'],
21
- ['ctrl', 'shift', 'pageup'],
22
- ['ctrl', 'shift', 'pagedown'],
23
- ['alt', 'f'],
24
- ['alt', 'e'],
25
- ['ctrl', 'shift', 'b'],
26
- ['ctrl', 'shift', 'o'],
27
- ['ctrl', 'h'],
28
- ['ctrl', 'j'],
29
- ['shift', 'esc'],
30
- ['shift', 'alt', 't'],
31
- ['f10'],
32
- ['f6'],
33
- ['ctrl', 'f'],
34
- ['f3'],
35
- ['ctrl', 'g'],
36
- ['ctrl', 'shift', 'g'],
37
- ['ctrl', 'shift', 'j'],
38
- ['f12'],
39
- ['ctrl', 'shift', 'del'],
40
- ['f1'],
41
- ['ctrl', 'shift', 'm'],
42
- ['alt', 'shift', 'i'],
43
- ['f7'],
44
- ['ctrl', 'f6'],
45
- ['alt', 'shift', 'a'],
46
- ['ctrl', 'l'],
47
- ['alt', 'd'],
48
- ['f6'],
49
- ['ctrl', 'k'],
50
- ['ctrl', 'e'],
51
- ['ctrl', 'p'],
52
- ['ctrl', 's'],
53
- ['f5'],
54
- ['ctrl', 'r'],
55
- ['shift', 'f5'],
56
- ['ctrl', 'shift', 'r'],
57
- ['esc'],
58
- ['tab'],
59
- ['shift', 'tab'],
60
- ['ctrl', 'o'],
61
- ['ctrl', 'u'],
62
- ['ctrl', 'd'],
63
- ['ctrl', 'shift', 'd'],
64
- ['f11'],
65
- ['ctrl', '+'],
66
- ['ctrl', '-'],
67
- ['ctrl', '0'],
68
- ['space'],
69
- ['pagedown'],
70
- ['shift', 'space'],
71
- ['pageup'],
72
- ['home'],
73
- ['end'],
74
- ['ctrl', 'left'],
75
- ['ctrl', 'right'],
76
- ['ctrl', 'backspace'],
77
- ['alt', 'home'],
78
- ];
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy1icm93c2VyLXNob3J0Y3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9zaG9ydGN1dHMvc3JjL2xpYi9zaG9ydGN1dHMvd2luZG93cy1icm93c2VyLXNob3J0Y3V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7SUFDYixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQ3RCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNiLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDdEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ2YsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ3BCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDeEIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQ2xCLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWE7SUFDNUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2YsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2YsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0lBQ2hCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNiLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztJQUNkLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDdEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQ2IsQ0FBQyxLQUFLLEVBQUUsT0FB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QUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFdJTkRPV1NfQlJPV1NFUl9TSE9SQ1VUUyA9IFtcclxuICBbJ2N0cmwnLCAnbiddLFxyXG4gIFsnY3RybCcsICdzaGlmdCcsICduJ10sXHJcbiAgWydjdHJsJywgJ3QnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAndCddLFxyXG4gIFsnY3RybCcsICd0YWInXSxcclxuICBbJ2N0cmwnLCAncGFnZWRvd24nXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAndGFiJ10sXHJcbiAgWydjdHJsJywgJ3BhZ2V1cCddLFxyXG4gIC4uLlsuLi5BcnJheSg5KS5rZXlzKCldLm1hcChudW0gPT4gWydjdHJsJywgU3RyaW5nKG51bSArIDEpXSksIC8vIGN0cmwgKyAxLTlcclxuICBbJ2FsdCcsICdob21lJ10sXHJcbiAgWydhbHQnLCAnbGVmdCddLFxyXG4gIFsnYWx0JywgJ3JpZ2h0J10sXHJcbiAgWydjdHJsJywgJ3cnXSxcclxuICBbJ2N0cmwnLCAnZjQnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAndyddLFxyXG4gIFsnYWx0JywgJ2Y0J10sXHJcbiAgWydhbHQnLCAnc3BhY2UnLCAnbiddLFxyXG4gIFsnYWx0JywgJ3NwYWNlJywgJ3gnXSxcclxuICBbJ2FsdCcsICdmJywgJ3gnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAncGFnZXVwJ10sXHJcbiAgWydjdHJsJywgJ3NoaWZ0JywgJ3BhZ2Vkb3duJ10sXHJcbiAgWydhbHQnLCAnZiddLFxyXG4gIFsnYWx0JywgJ2UnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnYiddLFxyXG4gIFsnY3RybCcsICdzaGlmdCcsICdvJ10sXHJcbiAgWydjdHJsJywgJ2gnXSxcclxuICBbJ2N0cmwnLCAnaiddLFxyXG4gIFsnc2hpZnQnLCAnZXNjJ10sXHJcbiAgWydzaGlmdCcsICdhbHQnLCAndCddLFxyXG4gIFsnZjEwJ10sXHJcbiAgWydmNiddLFxyXG4gIFsnY3RybCcsICdmJ10sXHJcbiAgWydmMyddLFxyXG4gIFsnY3RybCcsICdnJ10sXHJcbiAgWydjdHJsJywgJ3NoaWZ0JywgJ2cnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnaiddLFxyXG4gIFsnZjEyJ10sXHJcbiAgWydjdHJsJywgJ3NoaWZ0JywgJ2RlbCddLFxyXG4gIFsnZjEnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnbSddLFxyXG4gIFsnYWx0JywgJ3NoaWZ0JywgJ2knXSxcclxuICBbJ2Y3J10sXHJcbiAgWydjdHJsJywgJ2Y2J10sXHJcbiAgWydhbHQnLCAnc2hpZnQnLCAnYSddLFxyXG4gIFsnY3RybCcsICdsJ10sXHJcbiAgWydhbHQnLCAnZCddLFxyXG4gIFsnZjYnXSxcclxuICBbJ2N0cmwnLCAnayddLFxyXG4gIFsnY3RybCcsICdlJ10sXHJcbiAgWydjdHJsJywgJ3AnXSxcclxuICBbJ2N0cmwnLCAncyddLFxyXG4gIFsnZjUnXSxcclxuICBbJ2N0cmwnLCAnciddLFxyXG4gIFsnc2hpZnQnLCAnZjUnXSxcclxuICBbJ2N0cmwnLCAnc2hpZnQnLCAnciddLFxyXG4gIFsnZXNjJ10sXHJcbiAgWyd0YWInXSxcclxuICBbJ3NoaWZ0JywgJ3RhYiddLFxyXG4gIFsnY3RybCcsICdvJ10sXHJcbiAgWydjdHJsJywgJ3UnXSxcclxuICBbJ2N0cmwnLCAnZCddLFxyXG4gIFsnY3RybCcsICdzaGlmdCcsICdkJ10sXHJcbiAgWydmMTEnXSxcclxuICBbJ2N0cmwnLCAnKyddLFxyXG4gIFsnY3RybCcsICctJ10sXHJcbiAgWydjdHJsJywgJzAnXSxcclxuICBbJ3NwYWNlJ10sXHJcbiAgWydwYWdlZG93biddLFxyXG4gIFsnc2hpZnQnLCAnc3BhY2UnXSxcclxuICBbJ3BhZ2V1cCddLFxyXG4gIFsnaG9tZSddLFxyXG4gIFsnZW5kJ10sXHJcbiAgWydjdHJsJywgJ2xlZnQnXSxcclxuICBbJ2N0cmwnLCAncmlnaHQnXSxcclxuICBbJ2N0cmwnLCAnYmFja3NwYWNlJ10sXHJcbiAgWydhbHQnLCAnaG9tZSddLFxyXG5dO1xyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtc2hvcnRjdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQG5ncmR0L3Nob3J0Y3V0cy9zcmMvbmdyZHQtc2hvcnRjdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,12 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class RdtKeyListenerDirective {
4
- private keysPressed;
5
- private pressedAtOnce;
6
- output: EventEmitter<KeyboardEvent>;
7
- private onKeyDown;
8
- private onKeyUp;
9
- private onWindowFocus;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<RdtKeyListenerDirective, never>;
11
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdtKeyListenerDirective, "[rdtKeyListener]", never, {}, { "output": "rdtKeyListener"; }, never, never, true, never>;
12
- }
@@ -1,18 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { RdtShortcut } from '../rdt-shortcut';
3
- import { RdtShortcutConfig, RdtShortcutEvent } from '../rdt-shortcut.models';
4
- import * as i0 from "@angular/core";
5
- export declare class RdtShortcutService {
6
- private bound;
7
- private subject$;
8
- private observable$;
9
- constructor();
10
- listen(shortcut: RdtShortcut | RdtShortcut[], config?: RdtShortcutConfig): Observable<RdtShortcutEvent>;
11
- private listenArray;
12
- private listenSingle;
13
- private bind;
14
- private unbind;
15
- private keyHandlerFactory;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<RdtShortcutService, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<RdtShortcutService>;
18
- }
@@ -1,11 +0,0 @@
1
- export declare class RdtShortcut {
2
- readonly hotkeysValue: string;
3
- readonly keys: string[];
4
- readonly label: string;
5
- get lastKey(): string;
6
- private constructor();
7
- private static joinKeys;
8
- private static makeLabel;
9
- static create(...keys: string[]): RdtShortcut;
10
- static createUnsafe(...keys: string[]): RdtShortcut;
11
- }
@@ -1,17 +0,0 @@
1
- import { RdtShortcut } from './rdt-shortcut';
2
- export declare const SHORTCUT_SPLIT_KEY = ":";
3
- export declare const IGNORED_KEYCODES: string[];
4
- export declare enum ShortcutSrcElement {
5
- INPUT = "input",
6
- OTHER = "other"
7
- }
8
- export interface RdtShortcutEvent {
9
- shortcut: RdtShortcut;
10
- src: ShortcutSrcElement;
11
- originalEvent: KeyboardEvent;
12
- }
13
- export interface RdtShortcutConfig {
14
- preventDefault?: boolean;
15
- element?: HTMLElement | undefined;
16
- }
17
- export declare const DEFAULT_SHORTCUT_CONFIG: RdtShortcutConfig;
@@ -1 +0,0 @@
1
- export declare function isBrowserShortcut(keys: string[]): boolean;
@@ -1 +0,0 @@
1
- export declare const WINDOWS_BROWSER_SHORCUTS: string[][];