rx-hotkeys 3.1.1 → 4.1.0
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 +93 -49
- package/dist/core/hotkeys.d.ts +52 -21
- package/dist/core/hotkeys.d.ts.map +1 -1
- package/dist/core/hotkeys.js +188 -139
- package/dist/core/hotkeys.js.map +1 -1
- package/dist/core/hotkeys.test.js +230 -151
- package/dist/core/hotkeys.test.js.map +1 -1
- package/dist/integrations/react/index.d.ts +1 -1
- package/dist/integrations/react/index.d.ts.map +1 -1
- package/dist/integrations/react/index.js +1 -1
- package/dist/integrations/react/index.js.map +1 -1
- package/dist/integrations/react/provider.d.ts +11 -17
- package/dist/integrations/react/provider.d.ts.map +1 -1
- package/dist/integrations/react/provider.js +47 -96
- package/dist/integrations/react/provider.js.map +1 -1
- package/dist/integrations/react/useHotkeys.d.ts +2 -2
- package/dist/integrations/react/useHotkeys.d.ts.map +1 -1
- package/dist/integrations/react/useHotkeys.js.map +1 -1
- package/package.json +1 -1
package/dist/core/hotkeys.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fromEvent, BehaviorSubject, EMPTY, filter, map, bufferCount, withLatestFrom, tap, catchError, scan, merge, Subject, takeUntil, share, } from "rxjs";
|
|
1
|
+
import { fromEvent, BehaviorSubject, EMPTY, filter, map, bufferCount, withLatestFrom, tap, catchError, scan, merge, Subject, takeUntil, share, distinctUntilChanged, combineLatest, } from "rxjs";
|
|
2
2
|
import { Keys, KeyAliases } from "./keys.js";
|
|
3
3
|
// --- Enums, Interfaces and Types ---
|
|
4
4
|
export var ShortcutTypes;
|
|
@@ -59,29 +59,97 @@ export class Hotkeys {
|
|
|
59
59
|
static KEYDOWN_EVENT = "keydown";
|
|
60
60
|
static KEYUP_EVENT = "keyup";
|
|
61
61
|
static LOG_PREFIX = "Hotkeys:";
|
|
62
|
+
// --- Sentinel value for no override ---
|
|
63
|
+
static NO_OVERRIDE = Symbol("No Hotkey Override");
|
|
62
64
|
keydownStreams;
|
|
63
65
|
keyupStreams;
|
|
64
|
-
activeContext$;
|
|
65
66
|
activeShortcuts;
|
|
66
67
|
debugMode;
|
|
68
|
+
// --- Separate states for stack and override ---
|
|
69
|
+
contextStack$;
|
|
70
|
+
overrideContext$;
|
|
71
|
+
/**
|
|
72
|
+
* An Observable that emits the new active context name (or null) whenever it changes.
|
|
73
|
+
* The active context is the override context if one is set, otherwise it's the context
|
|
74
|
+
* from the top of the stack.
|
|
75
|
+
*/
|
|
76
|
+
activeContext$;
|
|
67
77
|
/**
|
|
68
78
|
* Creates an instance of Hotkeys.
|
|
69
|
-
* @param initialContext - Optional initial context name.
|
|
79
|
+
* @param initialContext - Optional initial context name. This forms the base of the context stack.
|
|
70
80
|
* @param debugMode - Optional. If true, debug messages will be logged to the console. Defaults to false.
|
|
71
81
|
* @throws Error if not in a browser environment (i.e., `document` or `performance` is undefined).
|
|
72
82
|
*/
|
|
73
83
|
constructor(initialContext = null, debugMode = false) {
|
|
74
84
|
this.debugMode = debugMode;
|
|
75
85
|
if (typeof document === "undefined" || typeof performance === "undefined") {
|
|
76
|
-
throw new Error(`${Hotkeys.LOG_PREFIX} Hotkeys can only be used in a browser environment
|
|
86
|
+
throw new Error(`${Hotkeys.LOG_PREFIX} Hotkeys can only be used in a browser environment.`);
|
|
77
87
|
}
|
|
78
88
|
this.keydownStreams = new WeakMap();
|
|
79
89
|
this.keyupStreams = new WeakMap();
|
|
80
|
-
this.activeContext$ = new BehaviorSubject(initialContext);
|
|
81
90
|
this.activeShortcuts = new Map();
|
|
91
|
+
// The context stack is the source of truth for the active context.
|
|
92
|
+
this.contextStack$ = new BehaviorSubject([initialContext]);
|
|
93
|
+
this.overrideContext$ = new BehaviorSubject(Hotkeys.NO_OVERRIDE);
|
|
94
|
+
// The public activeContext$ now correctly handles the sentinel value.
|
|
95
|
+
this.activeContext$ = combineLatest([
|
|
96
|
+
this.overrideContext$,
|
|
97
|
+
this.contextStack$.pipe(map(stack => stack.length > 0 ? stack[stack.length - 1] : null))
|
|
98
|
+
]).pipe(map(([overrideCtx, stackCtx]) => this._resolveActiveContext(overrideCtx, stackCtx)), distinctUntilChanged());
|
|
82
99
|
if (this.debugMode) {
|
|
83
100
|
console.log(`${Hotkeys.LOG_PREFIX} Library initialized. Initial context: "${initialContext}". Debug mode: ${debugMode}.`);
|
|
101
|
+
// Optional: Log context changes for debugging
|
|
102
|
+
this.activeContext$.subscribe(newContext => {
|
|
103
|
+
console.log(`${Hotkeys.LOG_PREFIX} Active context changed to: ${newContext}`);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Helper method to determine the active context based on override and stack.
|
|
109
|
+
*/
|
|
110
|
+
_resolveActiveContext(overrideCtx, stackCtx) {
|
|
111
|
+
return overrideCtx !== Hotkeys.NO_OVERRIDE ? overrideCtx : stackCtx;
|
|
112
|
+
}
|
|
113
|
+
_normalizeAndParseTriggers(keys, shortcutId) {
|
|
114
|
+
const keyInputs = Array.isArray(keys) ? keys : [keys];
|
|
115
|
+
const parsedTriggers = [];
|
|
116
|
+
for (const input of keyInputs) {
|
|
117
|
+
let triggersToParse = [];
|
|
118
|
+
if (typeof input === "string" && input.length > 1 && input.includes("+")) {
|
|
119
|
+
triggersToParse.push(...this._parseCombinationString(input));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
triggersToParse.push(input);
|
|
123
|
+
}
|
|
124
|
+
for (const trigger of triggersToParse) {
|
|
125
|
+
const parsed = this._parseKeyTrigger(trigger, shortcutId);
|
|
126
|
+
if (parsed) {
|
|
127
|
+
parsedTriggers.push({
|
|
128
|
+
key: parsed.configuredMainKey,
|
|
129
|
+
ctrlKey: !!parsed.ctrlKeyConfig,
|
|
130
|
+
altKey: !!parsed.altKeyConfig,
|
|
131
|
+
shiftKey: !!parsed.shiftKeyConfig,
|
|
132
|
+
metaKey: !!parsed.metaKeyConfig,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return parsedTriggers;
|
|
138
|
+
}
|
|
139
|
+
_normalizeSequence(sequence, shortcutId) {
|
|
140
|
+
const keyInputs = typeof sequence === "string" ? sequence.split("->") : sequence;
|
|
141
|
+
const results = [];
|
|
142
|
+
for (const keyStr of keyInputs) {
|
|
143
|
+
const finalKey = normalizeKey(typeof keyStr === "string" && keyStr.length > 1 ? keyStr.trim() : keyStr);
|
|
144
|
+
if (finalKey) {
|
|
145
|
+
results.push(finalKey);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
console.warn(`${Hotkeys.LOG_PREFIX} Could not parse key: "${keyStr}" in sequence for shortcut "${shortcutId}".`);
|
|
149
|
+
return null; // Fail fast if any key is invalid
|
|
150
|
+
}
|
|
84
151
|
}
|
|
152
|
+
return results;
|
|
85
153
|
}
|
|
86
154
|
/**
|
|
87
155
|
* Gets or creates a shared event stream for a given event type and target.
|
|
@@ -102,35 +170,78 @@ export class Hotkeys {
|
|
|
102
170
|
return streamCache.get(target);
|
|
103
171
|
}
|
|
104
172
|
/**
|
|
105
|
-
* Sets
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* @param contextName - The name of the context (e.g., "modal", "editor", "global").
|
|
109
|
-
* Pass `null` to activate shortcuts with no context or to deactivate context-specific shortcuts.
|
|
110
|
-
* @returns `true` if the context was changed, `false` if the new context was the same as the current one.
|
|
173
|
+
* Sets a temporary, high-priority override context that takes precedence over the context stack.
|
|
174
|
+
* @param contextName The override context to activate (can be a string or `null`).
|
|
175
|
+
* @returns A `restore` function that, when called, clears the override context, reverting to the stack.
|
|
111
176
|
*/
|
|
112
177
|
setContext(contextName) {
|
|
113
|
-
const currentContext = this.activeContext$.getValue();
|
|
114
|
-
if (currentContext === contextName) {
|
|
115
|
-
if (this.debugMode) {
|
|
116
|
-
// Optional: Log that no change is happening, or simply do nothing.
|
|
117
|
-
console.log(`${Hotkeys.LOG_PREFIX} setContext called with the same context "${contextName}". No change made.`);
|
|
118
|
-
}
|
|
119
|
-
return false; // Context was NOT updated
|
|
120
|
-
}
|
|
121
|
-
// If we reach here, the context is actually changing.
|
|
122
178
|
if (this.debugMode) {
|
|
123
|
-
console.log(`${Hotkeys.LOG_PREFIX}
|
|
124
|
-
}
|
|
125
|
-
this.
|
|
126
|
-
|
|
179
|
+
console.log(`${Hotkeys.LOG_PREFIX} Setting override context to: "${contextName}".`);
|
|
180
|
+
}
|
|
181
|
+
this.overrideContext$.next(contextName);
|
|
182
|
+
const restore = () => {
|
|
183
|
+
// Only clear the override if it's still the one we set.
|
|
184
|
+
if (this.overrideContext$.getValue() === contextName) {
|
|
185
|
+
if (this.debugMode) {
|
|
186
|
+
console.log(`${Hotkeys.LOG_PREFIX} Restoring/clearing override context from: "${contextName}".`);
|
|
187
|
+
}
|
|
188
|
+
// Restore now sets the special "NO_OVERRIDE" value.
|
|
189
|
+
this.overrideContext$.next(Hotkeys.NO_OVERRIDE);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
return restore;
|
|
127
193
|
}
|
|
128
194
|
/**
|
|
129
|
-
*
|
|
195
|
+
* @deprecated Rename to `getActiveContext`
|
|
196
|
+
* Gets the current active context, considering any override.
|
|
130
197
|
* @returns The current context name as a string, or `null` if no context is set.
|
|
131
198
|
*/
|
|
132
199
|
getContext() {
|
|
133
|
-
|
|
200
|
+
console.warn(`${Hotkeys.LOG_PREFIX} "getContext" is deprecated. Use "getActiveContext()" or subscribe to "onContextChange$" instead.`);
|
|
201
|
+
return this.getActiveContext();
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Gets the current active context, considering any override.
|
|
205
|
+
* @returns The current context name as a string, or `null` if no context is set.
|
|
206
|
+
*/
|
|
207
|
+
getActiveContext() {
|
|
208
|
+
const overrideCtx = this.overrideContext$.getValue();
|
|
209
|
+
const stack = this.contextStack$.getValue();
|
|
210
|
+
const stackCtx = stack.length > 0 ? stack[stack.length - 1] : null;
|
|
211
|
+
// Also uses the abstracted helper method.
|
|
212
|
+
return this._resolveActiveContext(overrideCtx, stackCtx);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Pushes a new context onto the context stack. It will become active if no override context is set.
|
|
216
|
+
* @param contextName The name of the context to enter (e.g., "modal", "editor").
|
|
217
|
+
*/
|
|
218
|
+
enterContext(contextName) {
|
|
219
|
+
const currentStack = this.contextStack$.getValue();
|
|
220
|
+
const newStack = [...currentStack, contextName];
|
|
221
|
+
if (this.debugMode) {
|
|
222
|
+
console.log(`${Hotkeys.LOG_PREFIX} Entering context: "${contextName}". New stack: [${newStack.join(", ")}]`);
|
|
223
|
+
}
|
|
224
|
+
this.contextStack$.next(newStack);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Pops the current context from the stack.
|
|
228
|
+
* @returns The context that was just left from the stack, or `undefined` if at the base.
|
|
229
|
+
*/
|
|
230
|
+
leaveContext() {
|
|
231
|
+
const currentStack = this.contextStack$.getValue();
|
|
232
|
+
if (currentStack.length <= 1) {
|
|
233
|
+
if (this.debugMode) {
|
|
234
|
+
console.log(`${Hotkeys.LOG_PREFIX} Attempted to leave the base stack context. No change made.`);
|
|
235
|
+
}
|
|
236
|
+
return undefined; // Nothing was left
|
|
237
|
+
}
|
|
238
|
+
const leavingContext = currentStack[currentStack.length - 1];
|
|
239
|
+
const newStack = currentStack.slice(0, -1);
|
|
240
|
+
if (this.debugMode) {
|
|
241
|
+
console.log(`${Hotkeys.LOG_PREFIX} Leaving context: "${leavingContext}". New stack: [${newStack.join(", ")}]`);
|
|
242
|
+
}
|
|
243
|
+
this.contextStack$.next(newStack);
|
|
244
|
+
return leavingContext;
|
|
134
245
|
}
|
|
135
246
|
/**
|
|
136
247
|
* Enables or disables debug logging for the Hotkeys instance.
|
|
@@ -159,10 +270,6 @@ export class Hotkeys {
|
|
|
159
270
|
}
|
|
160
271
|
/**
|
|
161
272
|
* An Observable that emits the new context name (or null) whenever the active context changes.
|
|
162
|
-
* This allows external parts of the application to react to context transitions.
|
|
163
|
-
*
|
|
164
|
-
* Note: This observable benefits from the distinct check within the `setContext` method,
|
|
165
|
-
* meaning it will only emit when the context value actually changes.
|
|
166
273
|
*
|
|
167
274
|
* @example
|
|
168
275
|
* ```typescript
|
|
@@ -176,7 +283,7 @@ export class Hotkeys {
|
|
|
176
283
|
* ```
|
|
177
284
|
*/
|
|
178
285
|
get onContextChange$() {
|
|
179
|
-
return this.activeContext
|
|
286
|
+
return this.activeContext$;
|
|
180
287
|
}
|
|
181
288
|
/**
|
|
182
289
|
* Compares two sequences of StandardKey arrays to see if they are identical.
|
|
@@ -202,39 +309,16 @@ export class Hotkeys {
|
|
|
202
309
|
* @param event The KeyboardEvent to match against.
|
|
203
310
|
* @returns True if the shortcutConfig matches the event, false otherwise.
|
|
204
311
|
*/
|
|
205
|
-
_shortcutMatchesEvent(
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
if (typeof configKeys === "string" && configKeys.length > 1 && configKeys.includes("+")) {
|
|
210
|
-
keyTriggers = this._parseCombinationString(configKeys);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
keyTriggers = Array.isArray(configKeys) ? configKeys : [configKeys];
|
|
214
|
-
}
|
|
215
|
-
for (const keyInput of keyTriggers) {
|
|
216
|
-
let configuredMainKey;
|
|
217
|
-
let ctrlKeyConfig;
|
|
218
|
-
let altKeyConfig;
|
|
219
|
-
let shiftKeyConfig;
|
|
220
|
-
let metaKeyConfig;
|
|
221
|
-
// This logic is now simplified because _parseKeyTrigger handles normalization
|
|
222
|
-
const parsed = this._parseKeyTrigger(keyInput, shortcutConfig.id);
|
|
223
|
-
if (!parsed)
|
|
224
|
-
continue;
|
|
225
|
-
configuredMainKey = parsed.configuredMainKey;
|
|
226
|
-
ctrlKeyConfig = parsed.ctrlKeyConfig;
|
|
227
|
-
altKeyConfig = parsed.altKeyConfig;
|
|
228
|
-
shiftKeyConfig = parsed.shiftKeyConfig;
|
|
229
|
-
metaKeyConfig = parsed.metaKeyConfig;
|
|
230
|
-
const keyMatch = compareKey(event.key, configuredMainKey);
|
|
312
|
+
_shortcutMatchesEvent(parsedTriggers, event) {
|
|
313
|
+
// It no longer does any parsing. It just compares against the pre-parsed triggers.
|
|
314
|
+
for (const trigger of parsedTriggers) {
|
|
315
|
+
const keyMatch = compareKey(event.key, trigger.key);
|
|
231
316
|
if (!keyMatch)
|
|
232
317
|
continue;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (ctrlMatch && altMatch && shiftMatch && metaMatch) {
|
|
318
|
+
if (event.ctrlKey === trigger.ctrlKey &&
|
|
319
|
+
event.altKey === trigger.altKey &&
|
|
320
|
+
event.shiftKey === trigger.shiftKey &&
|
|
321
|
+
event.metaKey === trigger.metaKey) {
|
|
238
322
|
return true;
|
|
239
323
|
}
|
|
240
324
|
}
|
|
@@ -255,14 +339,14 @@ export class Hotkeys {
|
|
|
255
339
|
}
|
|
256
340
|
}), map(([event, /* _activeCtx */]) => event));
|
|
257
341
|
}
|
|
258
|
-
_registerShortcut(config, terminator$, type, detailsForLog) {
|
|
342
|
+
_registerShortcut(config, terminator$, type, detailsForLog, parsedTriggers) {
|
|
259
343
|
const existingShortcut = this.activeShortcuts.get(config.id);
|
|
260
344
|
if (existingShortcut) {
|
|
261
345
|
console.warn(`${Hotkeys.LOG_PREFIX} Shortcut with ID "${config.id}" already exists. The old instance will be terminated and overwritten.`);
|
|
262
346
|
existingShortcut.terminator$.next();
|
|
263
347
|
existingShortcut.terminator$.complete();
|
|
264
348
|
}
|
|
265
|
-
this.activeShortcuts.set(config.id, { id: config.id, config, terminator
|
|
349
|
+
this.activeShortcuts.set(config.id, { id: config.id, config, terminator$, parsedTriggers });
|
|
266
350
|
if (this.debugMode) {
|
|
267
351
|
console.log(`${Hotkeys.LOG_PREFIX} ${type} shortcut "${config.id}" added. ${detailsForLog}, Context: ${config.context ?? "any"}`);
|
|
268
352
|
}
|
|
@@ -287,7 +371,6 @@ export class Hotkeys {
|
|
|
287
371
|
altKeyConfig: false,
|
|
288
372
|
shiftKeyConfig: false,
|
|
289
373
|
metaKeyConfig: false,
|
|
290
|
-
logDetails: `key: "${finalKey}" (no mods)`,
|
|
291
374
|
};
|
|
292
375
|
}
|
|
293
376
|
else {
|
|
@@ -295,29 +378,12 @@ export class Hotkeys {
|
|
|
295
378
|
console.warn(`${Hotkeys.LOG_PREFIX} Invalid "key" property in shortcut "${shortcutId}". Key must be a non-empty string value from Keys.`);
|
|
296
379
|
return null;
|
|
297
380
|
}
|
|
298
|
-
const hasModifiers = keyInput.ctrlKey || keyInput.altKey || keyInput.shiftKey || keyInput.metaKey;
|
|
299
|
-
if (!hasModifiers) {
|
|
300
|
-
return {
|
|
301
|
-
configuredMainKey: keyInput.key,
|
|
302
|
-
ctrlKeyConfig: false,
|
|
303
|
-
altKeyConfig: false,
|
|
304
|
-
shiftKeyConfig: false,
|
|
305
|
-
metaKeyConfig: false,
|
|
306
|
-
logDetails: `key: "${keyInput.key}" (no mods)`,
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
const logDetails = `key: "${keyInput.key}"` +
|
|
310
|
-
(keyInput.ctrlKey ? `, ctrl: true` : "") +
|
|
311
|
-
(keyInput.altKey ? `, alt: true` : "") +
|
|
312
|
-
(keyInput.shiftKey ? `, shift: true` : "") +
|
|
313
|
-
(keyInput.metaKey ? `, meta: true` : "");
|
|
314
381
|
return {
|
|
315
382
|
configuredMainKey: keyInput.key,
|
|
316
383
|
ctrlKeyConfig: keyInput.ctrlKey,
|
|
317
384
|
altKeyConfig: keyInput.altKey,
|
|
318
385
|
shiftKeyConfig: keyInput.shiftKey,
|
|
319
386
|
metaKeyConfig: keyInput.metaKey,
|
|
320
|
-
logDetails,
|
|
321
387
|
};
|
|
322
388
|
}
|
|
323
389
|
}
|
|
@@ -405,55 +471,37 @@ export class Hotkeys {
|
|
|
405
471
|
*/
|
|
406
472
|
addCombination(config) {
|
|
407
473
|
const { keys, context, preventDefault = false, id, strict = false, target = document, event: eventType = "keydown" } = config;
|
|
408
|
-
if (config.callback) {
|
|
409
|
-
console.warn(`${Hotkeys.LOG_PREFIX} Shortcut "${id}" was provided a callback, but "addCombination" now returns an Observable. The callback will be ignored. Please subscribe to the returned Observable instead.`);
|
|
410
|
-
}
|
|
411
474
|
if (context != null && strict) {
|
|
412
475
|
console.warn(`${Hotkeys.LOG_PREFIX} Shortcut "${id}" has both a context(${context}) and the "strict" flag. The "strict" flag will be ignored.`);
|
|
413
476
|
}
|
|
414
|
-
|
|
415
|
-
if (
|
|
416
|
-
|
|
417
|
-
}
|
|
418
|
-
else {
|
|
419
|
-
keyTriggers = Array.isArray(keys) ? keys : [keys];
|
|
420
|
-
}
|
|
421
|
-
if (keyTriggers.length === 0) {
|
|
422
|
-
console.warn(`${Hotkeys.LOG_PREFIX} "keys" definition for combination shortcut "${id}" is empty or invalid. Shortcut not added.`);
|
|
477
|
+
const parsedTriggers = this._normalizeAndParseTriggers(keys, id);
|
|
478
|
+
if (parsedTriggers.length === 0) {
|
|
479
|
+
console.error(`${Hotkeys.LOG_PREFIX} "keys" definition for combination shortcut "${id}" is empty or invalid. Shortcut not added.`);
|
|
423
480
|
return EMPTY;
|
|
424
481
|
}
|
|
425
482
|
const sourceStream$ = this._getEventStream(eventType, target);
|
|
426
483
|
const observables = [];
|
|
427
|
-
const
|
|
428
|
-
for (const keyInput of keyTriggers) {
|
|
429
|
-
const parsedTrigger = this._parseKeyTrigger(keyInput, id);
|
|
430
|
-
if (!parsedTrigger) {
|
|
431
|
-
return EMPTY;
|
|
432
|
-
}
|
|
433
|
-
const { configuredMainKey, ctrlKeyConfig, altKeyConfig, shiftKeyConfig, metaKeyConfig, logDetails } = parsedTrigger;
|
|
434
|
-
logParts.push(`{ ${logDetails} }`);
|
|
484
|
+
for (const trigger of parsedTriggers) {
|
|
435
485
|
const stream = this.filterByContext(sourceStream$, context, strict).pipe(filter(event => {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
}), filter(event => compareKey(event.key, configuredMainKey)),
|
|
486
|
+
return event.ctrlKey === trigger.ctrlKey &&
|
|
487
|
+
event.altKey === trigger.altKey &&
|
|
488
|
+
event.shiftKey === trigger.shiftKey &&
|
|
489
|
+
event.metaKey === trigger.metaKey;
|
|
490
|
+
}), filter(event => compareKey(event.key, trigger.key)),
|
|
442
491
|
// New filter for priority: Specific context > Global context
|
|
443
|
-
filter(event => {
|
|
492
|
+
withLatestFrom(this.activeContext$), filter(([event, activeCtx]) => {
|
|
444
493
|
if (context != null || strict) { // This shortcut is NOT global or strict
|
|
445
494
|
return true;
|
|
446
495
|
}
|
|
447
496
|
// This shortcut IS global. Check for specific overrides.
|
|
448
|
-
|
|
449
|
-
if (currentSpecificContext == null) { // No specific context active
|
|
497
|
+
if (activeCtx == null) { // No specific context active
|
|
450
498
|
return true;
|
|
451
499
|
}
|
|
452
500
|
for (const [, otherAS] of this.activeShortcuts) {
|
|
453
501
|
if (otherAS.config.id !== id &&
|
|
454
502
|
"keys" in otherAS.config &&
|
|
455
|
-
otherAS.config.context ===
|
|
456
|
-
this._shortcutMatchesEvent(otherAS.
|
|
503
|
+
otherAS.config.context === activeCtx &&
|
|
504
|
+
this._shortcutMatchesEvent(otherAS.parsedTriggers ?? [], event)) {
|
|
457
505
|
if (this.debugMode) {
|
|
458
506
|
console.log(`${Hotkeys.LOG_PREFIX} Global shortcut "${id}" (key: "${event.key}") suppressed by specific context shortcut "${otherAS.config.id}".`);
|
|
459
507
|
}
|
|
@@ -461,7 +509,7 @@ export class Hotkeys {
|
|
|
461
509
|
}
|
|
462
510
|
}
|
|
463
511
|
return true; // Global can proceed
|
|
464
|
-
}));
|
|
512
|
+
}), map(([event]) => event));
|
|
465
513
|
observables.push(stream);
|
|
466
514
|
}
|
|
467
515
|
if (observables.length === 0) {
|
|
@@ -471,8 +519,24 @@ export class Hotkeys {
|
|
|
471
519
|
}
|
|
472
520
|
const terminator$ = new Subject();
|
|
473
521
|
const finalShortcut$ = merge(...observables);
|
|
474
|
-
const
|
|
475
|
-
|
|
522
|
+
const logParts = parsedTriggers.map(t => {
|
|
523
|
+
const parts = [`key: "${t.key}"`];
|
|
524
|
+
if (t.ctrlKey)
|
|
525
|
+
parts.push("ctrl: true");
|
|
526
|
+
if (t.altKey)
|
|
527
|
+
parts.push("alt: true");
|
|
528
|
+
if (t.shiftKey)
|
|
529
|
+
parts.push("shift: true");
|
|
530
|
+
if (t.metaKey)
|
|
531
|
+
parts.push("meta: true");
|
|
532
|
+
// For a single key with no modifiers, match the original log format
|
|
533
|
+
if (parts.length === 1) {
|
|
534
|
+
return `{ ${parts[0]} (no mods) }`;
|
|
535
|
+
}
|
|
536
|
+
return `{ ${parts.join(", ")} }`;
|
|
537
|
+
});
|
|
538
|
+
const logDetails = `Triggers: [ ${logParts.join(", ")} ]`;
|
|
539
|
+
this._registerShortcut(config, terminator$, ShortcutTypes.Combination, logDetails, parsedTriggers);
|
|
476
540
|
return finalShortcut$.pipe(tap(event => {
|
|
477
541
|
if (this.debugMode) {
|
|
478
542
|
const preventAction = preventDefault ? ", preventing default" : "";
|
|
@@ -518,23 +582,9 @@ export class Hotkeys {
|
|
|
518
582
|
*/
|
|
519
583
|
addSequence(config) {
|
|
520
584
|
const { sequence, context, preventDefault = false, id, sequenceTimeoutMs, strict = false, target = document, event: eventType = "keydown" } = config;
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
let configuredSequence;
|
|
525
|
-
if (typeof sequence === "string") {
|
|
526
|
-
configuredSequence = this._parseSequenceString(sequence);
|
|
527
|
-
}
|
|
528
|
-
else {
|
|
529
|
-
configuredSequence = sequence;
|
|
530
|
-
}
|
|
531
|
-
if (!Array.isArray(configuredSequence) || configuredSequence.length === 0) {
|
|
532
|
-
console.warn(`${Hotkeys.LOG_PREFIX} Sequence for shortcut "${id}" is empty or invalid. Shortcut not added.`);
|
|
533
|
-
return EMPTY;
|
|
534
|
-
}
|
|
535
|
-
// Corrected validation: Check for actual empty string, not a string that trims to empty.
|
|
536
|
-
if (configuredSequence.some(key => typeof key !== "string" || key === "")) { // StandardKey type should prevent empty strings.
|
|
537
|
-
console.warn(`${Hotkeys.LOG_PREFIX} Invalid key in sequence for shortcut "${id}". All keys must be non-empty string values from Keys. Shortcut not added.`);
|
|
585
|
+
const configuredSequence = this._normalizeSequence(sequence, id);
|
|
586
|
+
if (!configuredSequence || configuredSequence.length === 0) {
|
|
587
|
+
console.error(`${Hotkeys.LOG_PREFIX} Sequence for shortcut "${id}" is empty or invalid. Shortcut not added.`);
|
|
538
588
|
return EMPTY;
|
|
539
589
|
}
|
|
540
590
|
if (context && strict) {
|
|
@@ -601,19 +651,18 @@ export class Hotkeys {
|
|
|
601
651
|
}));
|
|
602
652
|
}
|
|
603
653
|
const terminator$ = new Subject();
|
|
604
|
-
const finalShortcutWithPriority$ = shortcut$.pipe(filter((
|
|
654
|
+
const finalShortcutWithPriority$ = shortcut$.pipe(withLatestFrom(this.activeContext$), filter(([_completedEvents, activeCtx]) => {
|
|
605
655
|
if (context != null || strict) { // This sequence is NOT global or strict
|
|
606
656
|
return true;
|
|
607
657
|
}
|
|
608
658
|
// This sequence IS global. Check for specific overrides.
|
|
609
|
-
|
|
610
|
-
if (currentSpecificContext == null) { // No specific context active
|
|
659
|
+
if (activeCtx == null) { // No specific context active
|
|
611
660
|
return true;
|
|
612
661
|
}
|
|
613
662
|
for (const [, otherAS] of this.activeShortcuts) {
|
|
614
663
|
if (otherAS.config.id !== id &&
|
|
615
664
|
"sequence" in otherAS.config &&
|
|
616
|
-
otherAS.config.context ===
|
|
665
|
+
otherAS.config.context === activeCtx &&
|
|
617
666
|
this._areSequencesIdentical(configuredSequence, typeof otherAS.config.sequence === "string" ? this._parseSequenceString(otherAS.config.sequence) : otherAS.config.sequence)) {
|
|
618
667
|
if (this.debugMode) {
|
|
619
668
|
console.log(`${Hotkeys.LOG_PREFIX} Global sequence shortcut "${id}" suppressed by identical specific-context shortcut "${otherAS.config.id}".`);
|
|
@@ -622,7 +671,7 @@ export class Hotkeys {
|
|
|
622
671
|
}
|
|
623
672
|
}
|
|
624
673
|
return true; // Global sequence can proceed
|
|
625
|
-
}), tap((events) => {
|
|
674
|
+
}), map(([events]) => events), tap((events) => {
|
|
626
675
|
if (this.debugMode) {
|
|
627
676
|
const timeoutInfo = (sequenceTimeoutMs && sequenceTimeoutMs > 0) ? ` (with timeout logic)` : ` (no timeout logic)`;
|
|
628
677
|
const preventAction = preventDefault ? ", preventing default for last event" : "";
|
|
@@ -692,7 +741,7 @@ export class Hotkeys {
|
|
|
692
741
|
shortcut.terminator$.complete();
|
|
693
742
|
});
|
|
694
743
|
this.activeShortcuts.clear();
|
|
695
|
-
this.
|
|
744
|
+
this.contextStack$.complete();
|
|
696
745
|
if (this.debugMode)
|
|
697
746
|
console.log(`${Hotkeys.LOG_PREFIX} Library destroyed.`);
|
|
698
747
|
}
|
package/dist/core/hotkeys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotkeys.js","sourceRoot":"","sources":["../../src/core/hotkeys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hotkeys.js","sourceRoot":"","sources":["../../src/core/hotkeys.ts"],"names":[],"mappings":"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"}
|