@opendaw/lib-dom 0.0.65 → 0.0.67

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.
@@ -3,9 +3,6 @@ export declare namespace Keyboard {
3
3
  ctrlKey: boolean;
4
4
  metaKey: boolean;
5
5
  }) => boolean;
6
- const isCopyKey: ({ altKey }: {
7
- altKey: boolean;
8
- }) => boolean;
9
6
  const isDelete: (event: KeyboardEvent) => boolean;
10
7
  const isSelectAll: (event: KeyboardEvent) => boolean;
11
8
  const isDeselectAll: (event: KeyboardEvent) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAEA,yBAAiB,QAAQ,CAAC;IACf,MAAM,YAAY,GAAI,sBAAoB;QAC7C,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAA;KACnB,YAA0C,CAAA;IACpC,MAAM,SAAS,GAAI,YAAU;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,YAAW,CAAA;IAC3D,MAAM,QAAQ,GAAI,OAAO,aAAa,YAA0D,CAAA;IAChG,MAAM,WAAW,GAAI,OAAO,aAAa,YAAoE,CAAA;IAC7G,MAAM,aAAa,GAAI,OAAO,aAAa,YAAmE,CAAA;CACxH"}
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAEA,yBAAiB,QAAQ,CAAC;IACf,MAAM,YAAY,GAAI,sBAAoB;QAC7C,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAA;KACnB,YAA0C,CAAA;IACpC,MAAM,QAAQ,GAAI,OAAO,aAAa,YAA0D,CAAA;IAChG,MAAM,WAAW,GAAI,OAAO,aAAa,YAAoE,CAAA;IAC7G,MAAM,aAAa,GAAI,OAAO,aAAa,YAAmE,CAAA;CACxH"}
package/dist/keyboard.js CHANGED
@@ -2,7 +2,6 @@ import { Browser } from "./browser";
2
2
  export var Keyboard;
3
3
  (function (Keyboard) {
4
4
  Keyboard.isControlKey = ({ ctrlKey, metaKey }) => Browser.isMacOS() ? metaKey : ctrlKey;
5
- Keyboard.isCopyKey = ({ altKey }) => altKey;
6
5
  Keyboard.isDelete = (event) => event.code === "Delete" || event.code === "Backspace";
7
6
  Keyboard.isSelectAll = (event) => Keyboard.isControlKey(event) && !event.shiftKey && event.code === "KeyA";
8
7
  Keyboard.isDeselectAll = (event) => Keyboard.isControlKey(event) && event.shiftKey && event.code === "KeyA";
@@ -57,5 +57,11 @@ type ShortcutEntry = {
57
57
  readonly consume: Provider<Maybe<boolean> | unknown>;
58
58
  readonly options: ShortcutOptions;
59
59
  };
60
+ export declare namespace ReservedShortcuts {
61
+ const Copy: Shortcut;
62
+ const Cut: Shortcut;
63
+ const Paste: Shortcut;
64
+ const isReserved: (shortcut: Shortcut) => boolean;
65
+ }
60
66
  export {};
61
67
  //# sourceMappingURL=shortcut-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shortcut-manager.d.ts","sourceRoot":"","sources":["../src/shortcut-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortcut-manager.d.ts","sourceRoot":"","sources":["../src/shortcut-manager.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,10 @@ export class ShortcutContext {
84
84
  get priority() { return this.#priority; }
85
85
  get entries() { return this.#entries; }
86
86
  register(shortcut, consume, options) {
87
+ if (ReservedShortcuts.isReserved(shortcut)) {
88
+ console.warn(`Shortcut ${shortcut.format().join("")} is reserved and cannot be overridden`);
89
+ return Terminable.Empty;
90
+ }
87
91
  const entry = { shortcut, consume, options: options ?? ShortcutOptions.Default };
88
92
  const index = BinarySearch.leftMostMapped(this.#entries, entry.options.priority ?? 0, NumberComparator, ({ options: { priority } }) => priority ?? 0);
89
93
  this.#entries.splice(index, 0, entry);
@@ -132,7 +136,11 @@ export class Shortcut {
132
136
  const effectiveCode = code.startsWith("Key")
133
137
  ? `Key${event.key.toUpperCase()}`
134
138
  : code;
135
- return Option.wrap(new Shortcut(effectiveCode, Keyboard.isControlKey(event), event.shiftKey, event.altKey));
139
+ const shortcut = new Shortcut(effectiveCode, Keyboard.isControlKey(event), event.shiftKey, event.altKey);
140
+ if (ReservedShortcuts.isReserved(shortcut)) {
141
+ return Option.None;
142
+ }
143
+ return Option.wrap(shortcut);
136
144
  }
137
145
  static #keyNames = {
138
146
  [Key.Escape]: ["⎋", "Esc"],
@@ -264,3 +272,11 @@ export var ShortcutOptions;
264
272
  priority: 0
265
273
  };
266
274
  })(ShortcutOptions || (ShortcutOptions = {}));
275
+ export var ReservedShortcuts;
276
+ (function (ReservedShortcuts) {
277
+ ReservedShortcuts.Copy = Shortcut.of(Key.KeyC, { ctrl: true });
278
+ ReservedShortcuts.Cut = Shortcut.of(Key.KeyX, { ctrl: true });
279
+ ReservedShortcuts.Paste = Shortcut.of(Key.KeyV, { ctrl: true });
280
+ const all = [ReservedShortcuts.Copy, ReservedShortcuts.Cut, ReservedShortcuts.Paste];
281
+ ReservedShortcuts.isReserved = (shortcut) => all.some(reserved => reserved.equals(shortcut));
282
+ })(ReservedShortcuts || (ReservedShortcuts = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/lib-dom",
3
- "version": "0.0.65",
3
+ "version": "0.0.67",
4
4
  "sideEffects": false,
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -23,13 +23,13 @@
23
23
  "test": "vitest run"
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-runtime": "^0.0.64",
27
- "@opendaw/lib-std": "^0.0.64",
26
+ "@opendaw/lib-runtime": "^0.0.65",
27
+ "@opendaw/lib-std": "^0.0.65",
28
28
  "@types/wicg-file-system-access": "^2023.10.6"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@opendaw/eslint-config": "^0.0.27",
32
32
  "@opendaw/typescript-config": "^0.0.28"
33
33
  },
34
- "gitHead": "043469788d823f2ae6ca0f5c9f1483c06edf8659"
34
+ "gitHead": "63d82cef8935683a8419bd146ba8da05c6034c08"
35
35
  }