color-picker-svelte
Version:
Color picker for Svelte
42 lines (41 loc) • 1.1 kB
JavaScript
export function clamp(min, max, x) {
if (x < min) {
return min;
}
else if (x > max) {
return max;
}
else {
return x;
}
}
let isMac;
export function checkModifiers(e, options = {}) {
if (isMac === undefined) {
isMac = navigator.userAgent.indexOf('Mac') != -1;
}
const target = {
shift: options.shift || false,
alt: options.alt || false,
ctrl: (!isMac && options.cmdOrCtrl) || false,
meta: (isMac && options.cmdOrCtrl) || false,
};
const pressed = {
shift: !!e.shiftKey,
alt: !!e.altKey,
ctrl: !!e.ctrlKey,
meta: !!e.metaKey,
};
return (pressed.shift === target.shift &&
pressed.alt === target.alt &&
pressed.ctrl === target.ctrl &&
pressed.meta === target.meta);
}
export function checkShortcut(e, key, options = {}) {
if (e.key.toUpperCase() !== key.toUpperCase())
return false;
return checkModifiers(e, options);
}
export function checkMouseShortcut(e, options = {}) {
return checkModifiers(e, options);
}