KeyboardUtil.js 823 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { isArray } from 'min-dash';
  2. /**
  3. * Returns true if event was triggered with any modifier
  4. * @param {KeyboardEvent} event
  5. */
  6. export function hasModifier(event) {
  7. return (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey);
  8. }
  9. /**
  10. * @param {KeyboardEvent} event
  11. */
  12. export function isCmd(event) {
  13. // ensure we don't react to AltGr
  14. // (mapped to CTRL + ALT)
  15. if (event.altKey) {
  16. return false;
  17. }
  18. return event.ctrlKey || event.metaKey;
  19. }
  20. /**
  21. * Checks if key pressed is one of provided keys.
  22. *
  23. * @param {String|String[]} keys
  24. * @param {KeyboardEvent} event
  25. */
  26. export function isKey(keys, event) {
  27. keys = isArray(keys) ? keys : [ keys ];
  28. return keys.indexOf(event.key) > -1;
  29. }
  30. /**
  31. * @param {KeyboardEvent} event
  32. */
  33. export function isShift(event) {
  34. return event.shiftKey;
  35. }