@ngrdt/shortcuts 0.0.17 → 0.0.19
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.
- package/README.md +7 -7
- package/fesm2022/ngrdt-shortcuts.mjs +7 -7
- package/fesm2022/ngrdt-shortcuts.mjs.map +1 -1
- package/index.d.ts +61 -4
- package/package.json +1 -3
- package/esm2022/index.mjs +0 -5
- package/esm2022/lib/shortcuts/directives/rdt-key-listener.directive.mjs +0 -53
- package/esm2022/lib/shortcuts/providers/rdt-shortcut.service.mjs +0 -125
- package/esm2022/lib/shortcuts/rdt-shortcut.mjs +0 -32
- package/esm2022/lib/shortcuts/rdt-shortcut.models.mjs +0 -13
- package/esm2022/lib/shortcuts/utils.mjs +0 -19
- package/esm2022/lib/shortcuts/windows-browser-shortcuts.mjs +0 -79
- package/esm2022/ngrdt-shortcuts.mjs +0 -5
- package/lib/shortcuts/directives/rdt-key-listener.directive.d.ts +0 -12
- package/lib/shortcuts/providers/rdt-shortcut.service.d.ts +0 -18
- package/lib/shortcuts/rdt-shortcut.d.ts +0 -11
- package/lib/shortcuts/rdt-shortcut.models.d.ts +0 -17
- package/lib/shortcuts/utils.d.ts +0 -1
- package/lib/shortcuts/windows-browser-shortcuts.d.ts +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# @ngrdt/shortcuts
|
|
2
|
-
|
|
3
|
-
This library was generated with [Nx](https://nx.dev).
|
|
4
|
-
|
|
5
|
-
## Running unit tests
|
|
6
|
-
|
|
7
|
-
Run `nx test @ngrdt/shortcuts` to execute the unit tests.
|
|
1
|
+
# @ngrdt/shortcuts
|
|
2
|
+
|
|
3
|
+
This library was generated with [Nx](https://nx.dev).
|
|
4
|
+
|
|
5
|
+
## Running unit tests
|
|
6
|
+
|
|
7
|
+
Run `nx test @ngrdt/shortcuts` to execute the unit tests.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RdtStringUtils } from '@ngrdt/utils';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Injectable, EventEmitter,
|
|
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: "
|
|
256
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
291
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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": "v0.0.
|
|
3
|
+
"version": "v0.0.19",
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvc2hvcnRjdXRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvc2hvcnRjdXRzL3JkdC1zaG9ydGN1dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nob3J0Y3V0cy9yZHQtc2hvcnRjdXQubW9kZWxzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nob3J0Y3V0cy9wcm92aWRlcnMvcmR0LXNob3J0Y3V0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaG9ydGN1dHMvZGlyZWN0aXZlcy9yZHQta2V5LWxpc3RlbmVyLmRpcmVjdGl2ZSc7XHJcbiJdfQ==
|
|
@@ -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;
|
package/lib/shortcuts/utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isBrowserShortcut(keys: string[]): boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const WINDOWS_BROWSER_SHORCUTS: string[][];
|