Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@wordpress/keycodes
Advanced tools
Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.
@wordpress/keycodes is a utility package that provides constants and helper functions for working with keyboard key codes. It is particularly useful for handling keyboard events in a consistent manner across different browsers and environments.
Keycode Constants
The package provides constants for common key codes, making it easier to reference and use them in your code without having to remember the numeric values.
const { ENTER, ESCAPE } = require('@wordpress/keycodes');
console.log(ENTER); // Outputs: 13
console.log(ESCAPE); // Outputs: 27
isKeyboardEvent
This helper function checks if a given keyboard event matches a specified key. It simplifies the process of handling specific key events.
const { isKeyboardEvent } = require('@wordpress/keycodes');
const event = new KeyboardEvent('keydown', { keyCode: 13 });
console.log(isKeyboardEvent(event, 'enter')); // Outputs: true
getKeycodeByKey
This function returns the keycode for a given key name, providing a convenient way to map key names to their corresponding key codes.
const { getKeycodeByKey } = require('@wordpress/keycodes');
console.log(getKeycodeByKey('Enter')); // Outputs: 13
The 'keycode' package provides a simple utility for converting between keyboard key names and their corresponding key codes. It offers similar functionality to @wordpress/keycodes but is more focused on the conversion aspect rather than providing a comprehensive set of utilities.
Mousetrap is a library for handling keyboard shortcuts in JavaScript. While it offers more advanced features for binding and handling keyboard shortcuts, it also includes utilities for working with key codes, making it a more feature-rich alternative to @wordpress/keycodes.
Hotkeys-js is a lightweight library for handling keyboard shortcuts. It provides a simple API for binding and unbinding keyboard events, and includes utilities for working with key codes. It is similar to @wordpress/keycodes but with a focus on keyboard shortcuts.
Keycodes utilities for WordPress, used to check the key pressed in events like onKeyDown
. Contains keycodes constants for keyboard keys like DOWN
, UP
, ENTER
, etc.
Install the module
npm install @wordpress/keycodes --save
This package assumes that your code will run in an ES2015+ environment. If you're using an environment that has limited or no support for ES2015+ such as lower versions of IE then using core-js or @babel/polyfill will add support for these methods. Learn more about it in Babel docs.
Check which key was used in an onKeyDown
event:
import { DOWN, ENTER } from '@wordpress/keycodes';
// [...]
onKeyDown( event ) {
const { keyCode } = event;
if ( keyCode === DOWN ) {
alert( 'You pressed the down arrow!' );
} else if ( keyCode === ENTER ) {
alert( 'You pressed the enter key!' );
} else {
alert( 'You pressed another key.' );
}
}
# ALT
Keycode for ALT key.
# BACKSPACE
Keycode for BACKSPACE key.
# COMMAND
Keycode for COMMAND/META key.
# CTRL
Keycode for CTRL key.
# DELETE
Keycode for DELETE key.
# displayShortcut
An object that contains functions to display shortcuts. E.g. displayShortcut.primary( 'm' ) will return '⌘M' on Mac.
Type
Object
Keyed map of functions to display shortcuts.# displayShortcutList
Return an array of the parts of a keyboard shortcut chord for display E.g displayShortcutList.primary( 'm' ) will return [ '⌘', 'M' ] on Mac.
Type
Object
keyed map of functions to shortcut sequences# DOWN
Keycode for DOWN key.
# ENTER
Keycode for ENTER key.
# ESCAPE
Keycode for ESCAPE key.
# F10
Keycode for F10 key.
# isKeyboardEvent
An object that contains functions to check if a keyboard event matches a predefined shortcut combination. E.g. isKeyboardEvent.primary( event, 'm' ) will return true if the event signals pressing ⌘M.
Type
Object
Keyed map of functions to match events.# LEFT
Keycode for LEFT key.
# modifiers
Object that contains functions that return the available modifier depending on platform.
primary
: takes a isApple function as a parameter.primaryShift
: takes a isApple function as a parameter.primaryAlt
: takes a isApple function as a parameter.secondary
: takes a isApple function as a parameter.access
: takes a isApple function as a parameter.ctrl
alt
ctrlShift
shift
shiftAlt
# rawShortcut
An object that contains functions to get raw shortcuts. E.g. rawShortcut.primary( 'm' ) will return 'meta+m' on Mac. These are intended for user with the KeyboardShortcuts component or TinyMCE.
Type
Object
Keyed map of functions to raw shortcuts.# RIGHT
Keycode for RIGHT key.
# SHIFT
Keycode for SHIFT key.
# shortcutAriaLabel
An object that contains functions to return an aria label for a keyboard shortcut. E.g. shortcutAriaLabel.primary( '.' ) will return 'Command + Period' on Mac.
# SPACE
Keycode for SPACE key.
# TAB
Keycode for TAB key.
# UP
Keycode for UP key.
FAQs
Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.
The npm package @wordpress/keycodes receives a total of 136,252 weekly downloads. As such, @wordpress/keycodes popularity was classified as popular.
We found that @wordpress/keycodes demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.