mirror of
https://github.com/0PandaDEV/Qopy.git
synced 2025-04-20 12:54:05 +02:00
131 lines
4.4 KiB
Diff
131 lines
4.4 KiB
Diff
diff --git a/node_modules/wrdu-keyboard/.DS_Store b/.DS_Store
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..4b7e9446f3580fab3e4feaba097bcdaf98c5833c
|
|
Binary files /dev/null and b/.DS_Store differ
|
|
diff --git a/dist/runtime/keyboard.d.ts b/dist/runtime/keyboard.d.ts
|
|
index aeae40f3d2bc3efd459cce04c29c21c43884154d..6131bab4895ebb3048a5225f366430d23c5f1f13 100644
|
|
--- a/dist/runtime/keyboard.d.ts
|
|
+++ b/dist/runtime/keyboard.d.ts
|
|
@@ -1,15 +1,16 @@
|
|
-import { Key } from './types/keys.js';
|
|
-import { type Plugin } from '#app';
|
|
+import { Key } from "./types/keys.js";
|
|
+import { type Plugin } from "#app";
|
|
type Handler = (event: KeyboardEvent) => void;
|
|
type Config = {
|
|
once?: boolean;
|
|
prevent?: boolean;
|
|
};
|
|
-type PublicConfig = Omit<Config, 'prevent'>;
|
|
+type PublicConfig = Omit<Config, "prevent">;
|
|
type New = (keys: Key[], handler: Handler, config?: PublicConfig) => void;
|
|
export interface Keyboard {
|
|
init: () => void;
|
|
stop: () => void;
|
|
+ unregisterAll: () => void;
|
|
down: New;
|
|
up: New;
|
|
prevent: {
|
|
diff --git a/dist/runtime/keyboard.js b/dist/runtime/keyboard.js
|
|
index e16f600258cee90d185ffc52777bed95c14bd93e..5ddec447a5dc66ffe063eb9f9dd765c9045bdaf7 100644
|
|
--- a/dist/runtime/keyboard.js
|
|
+++ b/dist/runtime/keyboard.js
|
|
@@ -1,45 +1,54 @@
|
|
import { Key } from "./types/keys.js";
|
|
import { defineNuxtPlugin } from "#app";
|
|
-const getKeyString = (keys) => keys[0] == Key.All ? keys.sort().join("+") : "All";
|
|
+const getKeyString = (keys) => keys.includes(Key.All) ? "All" : keys.sort().join("+");
|
|
const handlers = {
|
|
down: {},
|
|
up: {}
|
|
};
|
|
const pressedKeys = /* @__PURE__ */ new Set();
|
|
const onKeydown = (event) => {
|
|
- pressedKeys.add(event.code);
|
|
+ const key = event.code;
|
|
+ pressedKeys.add(key);
|
|
const pressedArray = Array.from(pressedKeys);
|
|
- const keyString = getKeyString(pressedArray);
|
|
- if (handlers.down[keyString]) {
|
|
- handlers.down[keyString].forEach((eventHandler) => {
|
|
- if (eventHandler.prevent) {
|
|
- event.preventDefault();
|
|
- }
|
|
- eventHandler.handler(event);
|
|
- if (eventHandler.once) {
|
|
- handlers.down[keyString] = handlers.down[keyString].filter((h) => h !== eventHandler);
|
|
- }
|
|
- });
|
|
+ for (const keyString of [getKeyString(pressedArray), "All"]) {
|
|
+ if (handlers.down[keyString]) {
|
|
+ handlers.down[keyString].forEach((eventHandler) => {
|
|
+ if (eventHandler.prevent) {
|
|
+ event.preventDefault();
|
|
+ }
|
|
+ eventHandler.handler(event);
|
|
+ if (eventHandler.once) {
|
|
+ handlers.down[keyString] = handlers.down[keyString].filter(
|
|
+ (h) => h !== eventHandler
|
|
+ );
|
|
+ }
|
|
+ });
|
|
+ }
|
|
}
|
|
};
|
|
const onKeyup = (event) => {
|
|
- pressedKeys.delete(event.code);
|
|
+ const key = event.code;
|
|
+ pressedKeys.delete(key);
|
|
const releasedArray = Array.from(pressedKeys);
|
|
- const keyString = getKeyString(releasedArray);
|
|
- if (handlers.up[keyString]) {
|
|
- handlers.up[keyString].forEach((eventHandler) => {
|
|
- if (eventHandler.prevent) {
|
|
- event.preventDefault();
|
|
- }
|
|
- eventHandler.handler(event);
|
|
- if (eventHandler.once) {
|
|
- handlers.up[keyString] = handlers.up[keyString].filter((h) => h !== eventHandler);
|
|
- }
|
|
- });
|
|
+ for (const keyString of [getKeyString(releasedArray), "All"]) {
|
|
+ if (handlers.up[keyString]) {
|
|
+ handlers.up[keyString].forEach((eventHandler) => {
|
|
+ if (eventHandler.prevent) {
|
|
+ event.preventDefault();
|
|
+ }
|
|
+ eventHandler.handler(event);
|
|
+ if (eventHandler.once) {
|
|
+ handlers.up[keyString] = handlers.up[keyString].filter(
|
|
+ (h) => h !== eventHandler
|
|
+ );
|
|
+ }
|
|
+ });
|
|
+ }
|
|
}
|
|
};
|
|
const init = () => {
|
|
stop();
|
|
+ pressedKeys.clear();
|
|
window.addEventListener("keydown", onKeydown);
|
|
window.addEventListener("keyup", onKeyup);
|
|
};
|
|
@@ -47,6 +56,10 @@ const stop = () => {
|
|
window.removeEventListener("keydown", onKeydown);
|
|
window.removeEventListener("keyup", onKeyup);
|
|
};
|
|
+const unregisterAll = () => {
|
|
+ handlers.down = {};
|
|
+ handlers.up = {};
|
|
+};
|
|
const down = (keys, handler, config = {}) => {
|
|
if (keys.includes(Key.All)) {
|
|
keys = [Key.All];
|
|
@@ -84,6 +97,7 @@ const keyboard = defineNuxtPlugin((nuxtApp) => {
|
|
keyboard: {
|
|
init,
|
|
stop,
|
|
+ unregisterAll,
|
|
down: (keys, handler, config = {}) => down(keys, handler, config),
|
|
up: (keys, handler, config = {}) => up(keys, handler, config),
|
|
prevent: {
|