/**
* Common functions that are used in TablePress JS.
*
* @package TablePress
* @subpackage Views JavaScript
* @author Tobias Bäthge
* @since 2.2.0
*/
/**
* WordPress dependencies.
*/
import { __, _x, sprintf } from '@wordpress/i18n';
/**
* Registers a "Save Changes" keyboard shortcut for a button.
*
* @since 2.2.0
*
* @param {HTMLElement} $button DOM element for the button.
*/
export const register_save_changes_keyboard_shortcut = ( $button ) => {
// Add keyboard shortcut as title attribute to the "Save Changes" button, with correct modifier key for Mac/non-Mac.
const modifier_key = ( window?.navigator?.platform?.includes( 'Mac' ) ) ?
_x( '⌘', 'keyboard shortcut modifier key on a Mac keyboard', 'tablepress' ) :
_x( 'Ctrl+', 'keyboard shortcut modifier key on a non-Mac keyboard', 'tablepress' );
const shortcut = sprintf( $button.dataset.shortcut, modifier_key ); // eslint-disable-line @wordpress/valid-sprintf
$button.title = sprintf( __( 'Keyboard Shortcut: %s', 'tablepress' ), shortcut );
/**
* Registers keyboard events and triggers corresponding actions by emulating button clicks.
*
* @since 2.2.0
*
* @param {Event} event Keyboard event.
*/
const keyboard_shortcuts = ( event ) => {
let action = '';
if ( event.ctrlKey || event.metaKey ) {
if ( 83 === event.keyCode ) {
// Save Changes: Ctrl/Cmd + S.
action = 'save-changes';
}
}
if ( 'save-changes' === action ) {
// Blur the focussed element to make sure that all change events were triggered.
document.activeElement.blur(); // eslint-disable-line @wordpress/no-global-active-element
// Emulate a click on the button corresponding to the action.
$button.click();
// Prevent the browser's native handling of the shortcut, i.e. showing the Save or Print dialogs.
event.preventDefault();
}
};
// Register keyboard shortcut handler.
window.addEventListener( 'keydown', keyboard_shortcuts, true );
};
More convenience at home with Hausfelder – CBI
More convenience at home with Hausfelder
Modern home living
Life is coming to be significantly busy, and family jobs need to take up as little time as possible. Hausfelder creates products that are completely tailored to this need. They help you deal with day-to-day tasks successfully, liberating more time wherefore actually matters.
Functional use
The brand’s range covers vital family classifications: kitchen area, storage space, cleansing and space organisation. Every remedy is designed to streamline everyday routines and make your home a more comfortable area to live.
The main advantage of Hausfelder items lies in their versatility. Several items can be utilized in various areas. A basic container can be utilized in both the cooking area and the bathroom. This convenience saves space and makes the items specifically useful.
Simpleness and reliability
Hausfelder store concentrates on simple and trusted services. Without complex mechanisms or unneeded components, items are created that await immediate use. This simpleness is essential and makes certain that you can rely upon them for your day-to-day jobs.