diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/js/dist/keyboard-shortcuts.js --- a/wp/wp-includes/js/dist/keyboard-shortcuts.js Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/js/dist/keyboard-shortcuts.js Fri Sep 05 18:40:08 2025 +0200 @@ -1,36 +1,36 @@ -/******/ (function() { // webpackBootstrap +/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ -/******/ !function() { +/******/ (() => { /******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { +/******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; -/******/ }(); +/******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ -/******/ !function() { +/******/ (() => { /******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { +/******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; -/******/ }(); +/******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; @@ -39,43 +39,37 @@ // EXPORTS __webpack_require__.d(__webpack_exports__, { - "ShortcutProvider": function() { return /* reexport */ ShortcutProvider; }, - "__unstableUseShortcutEventMatch": function() { return /* reexport */ useShortcutEventMatch; }, - "store": function() { return /* reexport */ store; }, - "useShortcut": function() { return /* reexport */ useShortcut; } + ShortcutProvider: () => (/* reexport */ ShortcutProvider), + __unstableUseShortcutEventMatch: () => (/* reexport */ useShortcutEventMatch), + store: () => (/* reexport */ store), + useShortcut: () => (/* reexport */ useShortcut) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js var actions_namespaceObject = {}; __webpack_require__.r(actions_namespaceObject); __webpack_require__.d(actions_namespaceObject, { - "registerShortcut": function() { return registerShortcut; }, - "unregisterShortcut": function() { return unregisterShortcut; } + registerShortcut: () => (registerShortcut), + unregisterShortcut: () => (unregisterShortcut) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js var selectors_namespaceObject = {}; __webpack_require__.r(selectors_namespaceObject); __webpack_require__.d(selectors_namespaceObject, { - "getAllShortcutKeyCombinations": function() { return getAllShortcutKeyCombinations; }, - "getAllShortcutRawKeyCombinations": function() { return getAllShortcutRawKeyCombinations; }, - "getCategoryShortcuts": function() { return getCategoryShortcuts; }, - "getShortcutAliases": function() { return getShortcutAliases; }, - "getShortcutDescription": function() { return getShortcutDescription; }, - "getShortcutKeyCombination": function() { return getShortcutKeyCombination; }, - "getShortcutRepresentation": function() { return getShortcutRepresentation; } + getAllShortcutKeyCombinations: () => (getAllShortcutKeyCombinations), + getAllShortcutRawKeyCombinations: () => (getAllShortcutRawKeyCombinations), + getCategoryShortcuts: () => (getCategoryShortcuts), + getShortcutAliases: () => (getShortcutAliases), + getShortcutDescription: () => (getShortcutDescription), + getShortcutKeyCombination: () => (getShortcutKeyCombination), + getShortcutRepresentation: () => (getShortcutRepresentation) }); ;// CONCATENATED MODULE: external ["wp","data"] -var external_wp_data_namespaceObject = window["wp"]["data"]; -;// CONCATENATED MODULE: external "lodash" -var external_lodash_namespaceObject = window["lodash"]; +const external_wp_data_namespaceObject = window["wp"]["data"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/reducer.js /** - * External dependencies - */ - -/** * Reducer returning the registered shortcuts * * @param {Object} state Current state. @@ -83,14 +77,11 @@ * * @return {Object} Updated state. */ - -function reducer() { - let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - let action = arguments.length > 1 ? arguments[1] : undefined; - +function reducer(state = {}, action) { switch (action.type) { case 'REGISTER_SHORTCUT': - return { ...state, + return { + ...state, [action.name]: { category: action.category, keyCombination: action.keyCombination, @@ -98,15 +89,16 @@ description: action.description } }; - case 'UNREGISTER_SHORTCUT': - return (0,external_lodash_namespaceObject.omit)(state, action.name); + const { + [action.name]: actionName, + ...remainingState + } = state; + return remainingState; } - return state; } - -/* harmony default export */ var store_reducer = (reducer); +/* harmony default export */ const store_reducer = (reducer); ;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js /** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */ @@ -137,16 +129,53 @@ * * @param {WPShortcutConfig} config Shortcut config. * + * @example + * + *```js + * import { useEffect } from 'react'; + * import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts'; + * import { useSelect, useDispatch } from '@wordpress/data'; + * import { __ } from '@wordpress/i18n'; + * + * const ExampleComponent = () => { + * const { registerShortcut } = useDispatch( keyboardShortcutsStore ); + * + * useEffect( () => { + * registerShortcut( { + * name: 'custom/my-custom-shortcut', + * category: 'my-category', + * description: __( 'My custom shortcut' ), + * keyCombination: { + * modifier: 'primary', + * character: 'j', + * }, + * } ); + * }, [] ); + * + * const shortcut = useSelect( + * ( select ) => + * select( keyboardShortcutsStore ).getShortcutKeyCombination( + * 'custom/my-custom-shortcut' + * ), + * [] + * ); + * + * return shortcut ? ( + *
{ __( 'Shortcut is registered.' ) }
+ * ) : ( + *{ __( 'Shortcut is not registered.' ) }
+ * ); + * }; + *``` * @return {Object} action. */ -function registerShortcut(_ref) { - let { - name, - category, - description, - keyCombination, - aliases - } = _ref; +function registerShortcut({ + name, + category, + description, + keyCombination, + aliases +}) { return { type: 'REGISTER_SHORTCUT', name, @@ -156,14 +185,44 @@ description }; } + /** * Returns an action object used to unregister a keyboard shortcut. * * @param {string} name Shortcut name. * + * @example + * + *```js + * import { useEffect } from 'react'; + * import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts'; + * import { useSelect, useDispatch } from '@wordpress/data'; + * import { __ } from '@wordpress/i18n'; + * + * const ExampleComponent = () => { + * const { unregisterShortcut } = useDispatch( keyboardShortcutsStore ); + * + * useEffect( () => { + * unregisterShortcut( 'core/editor/next-region' ); + * }, [] ); + * + * const shortcut = useSelect( + * ( select ) => + * select( keyboardShortcutsStore ).getShortcutKeyCombination( + * 'core/editor/next-region' + * ), + * [] + * ); + * + * return shortcut ? ( + *{ __( 'Shortcut is not unregistered.' ) }
+ * ) : ( + *{ __( 'Shortcut is unregistered.' ) }
+ * ); + * }; + *``` * @return {Object} action. */ - function unregisterShortcut(name) { return { type: 'UNREGISTER_SHORTCUT', @@ -171,295 +230,15 @@ }; } -;// CONCATENATED MODULE: ./node_modules/rememo/es/rememo.js - - -var LEAF_KEY, hasWeakMap; - -/** - * Arbitrary value used as key for referencing cache object in WeakMap tree. - * - * @type {Object} - */ -LEAF_KEY = {}; - -/** - * Whether environment supports WeakMap. - * - * @type {boolean} - */ -hasWeakMap = typeof WeakMap !== 'undefined'; - -/** - * Returns the first argument as the sole entry in an array. - * - * @param {*} value Value to return. - * - * @return {Array} Value returned as entry in array. - */ -function arrayOf( value ) { - return [ value ]; -} - -/** - * Returns true if the value passed is object-like, or false otherwise. A value - * is object-like if it can support property assignment, e.g. object or array. - * - * @param {*} value Value to test. - * - * @return {boolean} Whether value is object-like. - */ -function isObjectLike( value ) { - return !! value && 'object' === typeof value; -} - -/** - * Creates and returns a new cache object. - * - * @return {Object} Cache object. - */ -function createCache() { - var cache = { - clear: function() { - cache.head = null; - }, - }; - - return cache; -} - -/** - * Returns true if entries within the two arrays are strictly equal by - * reference from a starting index. - * - * @param {Array} a First array. - * @param {Array} b Second array. - * @param {number} fromIndex Index from which to start comparison. - * - * @return {boolean} Whether arrays are shallowly equal. - */ -function isShallowEqual( a, b, fromIndex ) { - var i; - - if ( a.length !== b.length ) { - return false; - } - - for ( i = fromIndex; i < a.length; i++ ) { - if ( a[ i ] !== b[ i ] ) { - return false; - } - } - - return true; -} - -/** - * Returns a memoized selector function. The getDependants function argument is - * called before the memoized selector and is expected to return an immutable - * reference or array of references on which the selector depends for computing - * its own return value. The memoize cache is preserved only as long as those - * dependant references remain the same. If getDependants returns a different - * reference(s), the cache is cleared and the selector value regenerated. - * - * @param {Function} selector Selector function. - * @param {Function} getDependants Dependant getter returning an immutable - * reference or array of reference used in - * cache bust consideration. - * - * @return {Function} Memoized selector. - */ -/* harmony default export */ function rememo(selector, getDependants ) { - var rootCache, getCache; - - // Use object source as dependant if getter not provided - if ( ! getDependants ) { - getDependants = arrayOf; - } - - /** - * Returns the root cache. If WeakMap is supported, this is assigned to the - * root WeakMap cache set, otherwise it is a shared instance of the default - * cache object. - * - * @return {(WeakMap|Object)} Root cache object. - */ - function getRootCache() { - return rootCache; - } - - /** - * Returns the cache for a given dependants array. When possible, a WeakMap - * will be used to create a unique cache for each set of dependants. This - * is feasible due to the nature of WeakMap in allowing garbage collection - * to occur on entries where the key object is no longer referenced. Since - * WeakMap requires the key to be an object, this is only possible when the - * dependant is object-like. The root cache is created as a hierarchy where - * each top-level key is the first entry in a dependants set, the value a - * WeakMap where each key is the next dependant, and so on. This continues - * so long as the dependants are object-like. If no dependants are object- - * like, then the cache is shared across all invocations. - * - * @see isObjectLike - * - * @param {Array} dependants Selector dependants. - * - * @return {Object} Cache object. - */ - function getWeakMapCache( dependants ) { - var caches = rootCache, - isUniqueByDependants = true, - i, dependant, map, cache; - - for ( i = 0; i < dependants.length; i++ ) { - dependant = dependants[ i ]; - - // Can only compose WeakMap from object-like key. - if ( ! isObjectLike( dependant ) ) { - isUniqueByDependants = false; - break; - } - - // Does current segment of cache already have a WeakMap? - if ( caches.has( dependant ) ) { - // Traverse into nested WeakMap. - caches = caches.get( dependant ); - } else { - // Create, set, and traverse into a new one. - map = new WeakMap(); - caches.set( dependant, map ); - caches = map; - } - } - - // We use an arbitrary (but consistent) object as key for the last item - // in the WeakMap to serve as our running cache. - if ( ! caches.has( LEAF_KEY ) ) { - cache = createCache(); - cache.isUniqueByDependants = isUniqueByDependants; - caches.set( LEAF_KEY, cache ); - } - - return caches.get( LEAF_KEY ); - } - - // Assign cache handler by availability of WeakMap - getCache = hasWeakMap ? getWeakMapCache : getRootCache; - - /** - * Resets root memoization cache. - */ - function clear() { - rootCache = hasWeakMap ? new WeakMap() : createCache(); - } - - // eslint-disable-next-line jsdoc/check-param-names - /** - * The augmented selector call, considering first whether dependants have - * changed before passing it to underlying memoize function. - * - * @param {Object} source Source object for derivation. - * @param {...*} extraArgs Additional arguments to pass to selector. - * - * @return {*} Selector result. - */ - function callSelector( /* source, ...extraArgs */ ) { - var len = arguments.length, - cache, node, i, args, dependants; - - // Create copy of arguments (avoid leaking deoptimization). - args = new Array( len ); - for ( i = 0; i < len; i++ ) { - args[ i ] = arguments[ i ]; - } - - dependants = getDependants.apply( null, args ); - cache = getCache( dependants ); - - // If not guaranteed uniqueness by dependants (primitive type or lack - // of WeakMap support), shallow compare against last dependants and, if - // references have changed, destroy cache to recalculate result. - if ( ! cache.isUniqueByDependants ) { - if ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) { - cache.clear(); - } - - cache.lastDependants = dependants; - } - - node = cache.head; - while ( node ) { - // Check whether node arguments match arguments - if ( ! isShallowEqual( node.args, args, 1 ) ) { - node = node.next; - continue; - } - - // At this point we can assume we've found a match - - // Surface matched node to head if not already - if ( node !== cache.head ) { - // Adjust siblings to point to each other. - node.prev.next = node.next; - if ( node.next ) { - node.next.prev = node.prev; - } - - node.next = cache.head; - node.prev = null; - cache.head.prev = node; - cache.head = node; - } - - // Return immediately - return node.val; - } - - // No cached value found. Continue to insertion phase: - - node = { - // Generate the result from original function - val: selector.apply( null, args ), - }; - - // Avoid including the source object in the cache. - args[ 0 ] = null; - node.args = args; - - // Don't need to check whether node is already head, since it would - // have been returned above already if it was - - // Shift existing head down list - if ( cache.head ) { - cache.head.prev = node; - node.next = cache.head; - } - - cache.head = node; - - return node.val; - } - - callSelector.getDependants = getDependants; - callSelector.clear = clear; - clear(); - - return callSelector; -} - ;// CONCATENATED MODULE: external ["wp","keycodes"] -var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; +const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js /** - * External dependencies - */ - - -/** * WordPress dependencies */ + /** @typedef {import('./actions').WPShortcutKeyCombination} WPShortcutKeyCombination */ /** @typedef {import('@wordpress/keycodes').WPKeycodeHandlerByModifier} WPKeycodeHandlerByModifier */ @@ -470,8 +249,8 @@ * * @type {Array%s
/ Modifier: %s
',
+ * character,
+ * modifier
+ * ),
+ * {
+ * code:
,
+ * }
+ * ) }
+ * %s
/ Modifier: %s
',
+ * character,
+ * modifier
+ * ),
+ * {
+ * code:
,
+ * }
+ * ) }
+ * %s
/ Modifier: %s
',
+ * character,
+ * modifier
+ * ),
+ * {
+ * code:
,
+ * }
+ * ) }
+ * %s
',
+ * shortcutRawKeyCombination
+ * ),
+ * {
+ * code:
,
+ * }
+ * ) }
+ *