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.
@@ -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. Shortcuts will only trigger if their context matches this, or if they have no context defined.
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 with global "document" and "performance" objects.`);
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 the active context for shortcuts.
106
- * Only shortcuts matching this context (or shortcuts with no specific context defined)
107
- * will be active and can be triggered.
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} Context changed from "${currentContext}" to "${contextName}".`);
124
- }
125
- this.activeContext$.next(contextName);
126
- return true; // Context WAS updated
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
- * Gets the current active context.
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
- return this.activeContext$.getValue();
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$.asObservable();
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(shortcutConfig, event) {
206
- // Use the same robust heuristic here for consistency ---
207
- let keyTriggers;
208
- const configKeys = shortcutConfig.keys;
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
- const ctrlMatch = (ctrlKeyConfig === undefined) ? true : (event.ctrlKey === ctrlKeyConfig);
234
- const altMatch = (altKeyConfig === undefined) ? true : (event.altKey === altKeyConfig);
235
- const shiftMatch = (shiftKeyConfig === undefined) ? true : (event.shiftKey === shiftKeyConfig);
236
- const metaMatch = (metaKeyConfig === undefined) ? true : (event.metaKey === metaKeyConfig);
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
- let keyTriggers;
415
- if (typeof keys === "string" && keys.length > 1 && keys.includes("+")) {
416
- keyTriggers = this._parseCombinationString(keys);
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 logParts = [];
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
- const ctrlMatch = (ctrlKeyConfig === undefined) ? true : (event.ctrlKey === ctrlKeyConfig);
437
- const altMatch = (altKeyConfig === undefined) ? true : (event.altKey === altKeyConfig);
438
- const shiftMatch = (shiftKeyConfig === undefined) ? true : (event.shiftKey === shiftKeyConfig);
439
- const metaMatch = (metaKeyConfig === undefined) ? true : (event.metaKey === metaKeyConfig);
440
- return ctrlMatch && altMatch && shiftMatch && metaMatch;
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
- const currentSpecificContext = this.activeContext$.getValue();
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 === currentSpecificContext &&
456
- this._shortcutMatchesEvent(otherAS.config, event)) {
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 overallLogDetails = `Triggers: [ ${logParts.join(", ")} ]`;
475
- this._registerShortcut(config, terminator$, ShortcutTypes.Combination, overallLogDetails);
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
- if (config.callback) {
522
- console.warn(`${Hotkeys.LOG_PREFIX} Shortcut "${id}" was provided a callback, but "addSequence" now returns an Observable. The callback will be ignored. Please subscribe to the returned Observable instead.`);
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((completedEvents) => {
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
- const currentSpecificContext = this.activeContext$.getValue();
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 === currentSpecificContext &&
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.activeContext$.complete();
744
+ this.contextStack$.complete();
696
745
  if (this.debugMode)
697
746
  console.log(`${Hotkeys.LOG_PREFIX} Library destroyed.`);
698
747
  }
@@ -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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"}