kuamail/node_modules/.vite/deps/tinykeys.js

54 lines
2.0 KiB
JavaScript

import "./chunk-4MBMRILA.js";
// node_modules/tinykeys/dist/tinykeys.module.js
var t = ["Shift", "Meta", "Alt", "Control"];
var e = "object" == typeof navigator ? navigator.platform : "";
var n = /Mac|iPod|iPhone|iPad/.test(e);
var o = n ? "Meta" : "Control";
var r = "Win32" === e ? ["Control", "Alt"] : n ? ["Alt"] : [];
function i(t2, e2) {
return "function" == typeof t2.getModifierState && (t2.getModifierState(e2) || r.includes(e2) && t2.getModifierState("AltGraph"));
}
function a(t2) {
return t2.trim().split(" ").map(function(t3) {
var e2 = t3.split(/\b\+/), n2 = e2.pop(), r2 = n2.match(/^\((.+)\)$/);
return r2 && (n2 = new RegExp("^" + r2[1] + "$")), [e2 = e2.map(function(t4) {
return "$mod" === t4 ? o : t4;
}), n2];
});
}
function u(e2, n2) {
var o2 = n2[0], r2 = n2[1];
return !((r2 instanceof RegExp ? !r2.test(e2.key) && !r2.test(e2.code) : r2.toUpperCase() !== e2.key.toUpperCase() && r2 !== e2.code) || o2.find(function(t2) {
return !i(e2, t2);
}) || t.find(function(t2) {
return !o2.includes(t2) && r2 !== t2 && i(e2, t2);
}));
}
function c(t2, e2) {
var n2;
void 0 === e2 && (e2 = {});
var o2 = null != (n2 = e2.timeout) ? n2 : 1e3, r2 = Object.keys(t2).map(function(e3) {
return [a(e3), t2[e3]];
}), c2 = /* @__PURE__ */ new Map(), f2 = null;
return function(t3) {
t3 instanceof KeyboardEvent && (r2.forEach(function(e3) {
var n3 = e3[0], o3 = e3[1], r3 = c2.get(n3) || n3;
u(t3, r3[0]) ? r3.length > 1 ? c2.set(n3, r3.slice(1)) : (c2.delete(n3), o3(t3)) : i(t3, t3.key) || c2.delete(n3);
}), f2 && clearTimeout(f2), f2 = setTimeout(c2.clear.bind(c2), o2));
};
}
function f(t2, e2, n2) {
var o2 = void 0 === n2 ? {} : n2, r2 = o2.event, i2 = void 0 === r2 ? "keydown" : r2, a2 = o2.capture, u2 = c(e2, { timeout: o2.timeout });
return t2.addEventListener(i2, u2, a2), function() {
t2.removeEventListener(i2, u2, a2);
};
}
export {
c as createKeybindingsHandler,
u as matchKeyBindingPress,
a as parseKeybinding,
f as tinykeys
};
//# sourceMappingURL=tinykeys.js.map