wp/wp-includes/js/dist/keycodes.js
changeset 21 48c4eec2b7e6
parent 19 3d72ae0968f4
child 22 8c2e4d02f4ef
--- a/wp/wp-includes/js/dist/keycodes.js	Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-includes/js/dist/keycodes.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,66 +39,56 @@
 
 // EXPORTS
 __webpack_require__.d(__webpack_exports__, {
-  "ALT": function() { return /* binding */ ALT; },
-  "BACKSPACE": function() { return /* binding */ BACKSPACE; },
-  "COMMAND": function() { return /* binding */ COMMAND; },
-  "CTRL": function() { return /* binding */ CTRL; },
-  "DELETE": function() { return /* binding */ DELETE; },
-  "DOWN": function() { return /* binding */ DOWN; },
-  "END": function() { return /* binding */ END; },
-  "ENTER": function() { return /* binding */ ENTER; },
-  "ESCAPE": function() { return /* binding */ ESCAPE; },
-  "F10": function() { return /* binding */ F10; },
-  "HOME": function() { return /* binding */ HOME; },
-  "LEFT": function() { return /* binding */ LEFT; },
-  "PAGEDOWN": function() { return /* binding */ PAGEDOWN; },
-  "PAGEUP": function() { return /* binding */ PAGEUP; },
-  "RIGHT": function() { return /* binding */ RIGHT; },
-  "SHIFT": function() { return /* binding */ SHIFT; },
-  "SPACE": function() { return /* binding */ SPACE; },
-  "TAB": function() { return /* binding */ TAB; },
-  "UP": function() { return /* binding */ UP; },
-  "ZERO": function() { return /* binding */ ZERO; },
-  "displayShortcut": function() { return /* binding */ displayShortcut; },
-  "displayShortcutList": function() { return /* binding */ displayShortcutList; },
-  "isKeyboardEvent": function() { return /* binding */ isKeyboardEvent; },
-  "modifiers": function() { return /* binding */ modifiers; },
-  "rawShortcut": function() { return /* binding */ rawShortcut; },
-  "shortcutAriaLabel": function() { return /* binding */ shortcutAriaLabel; }
+  ALT: () => (/* binding */ ALT),
+  BACKSPACE: () => (/* binding */ BACKSPACE),
+  COMMAND: () => (/* binding */ COMMAND),
+  CTRL: () => (/* binding */ CTRL),
+  DELETE: () => (/* binding */ DELETE),
+  DOWN: () => (/* binding */ DOWN),
+  END: () => (/* binding */ END),
+  ENTER: () => (/* binding */ ENTER),
+  ESCAPE: () => (/* binding */ ESCAPE),
+  F10: () => (/* binding */ F10),
+  HOME: () => (/* binding */ HOME),
+  LEFT: () => (/* binding */ LEFT),
+  PAGEDOWN: () => (/* binding */ PAGEDOWN),
+  PAGEUP: () => (/* binding */ PAGEUP),
+  RIGHT: () => (/* binding */ RIGHT),
+  SHIFT: () => (/* binding */ SHIFT),
+  SPACE: () => (/* binding */ SPACE),
+  TAB: () => (/* binding */ TAB),
+  UP: () => (/* binding */ UP),
+  ZERO: () => (/* binding */ ZERO),
+  displayShortcut: () => (/* binding */ displayShortcut),
+  displayShortcutList: () => (/* binding */ displayShortcutList),
+  isAppleOS: () => (/* reexport */ isAppleOS),
+  isKeyboardEvent: () => (/* binding */ isKeyboardEvent),
+  modifiers: () => (/* binding */ modifiers),
+  rawShortcut: () => (/* binding */ rawShortcut),
+  shortcutAriaLabel: () => (/* binding */ shortcutAriaLabel)
 });
 
-;// CONCATENATED MODULE: external "lodash"
-var external_lodash_namespaceObject = window["lodash"];
 ;// CONCATENATED MODULE: external ["wp","i18n"]
-var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
+const external_wp_i18n_namespaceObject = window["wp"]["i18n"];
 ;// CONCATENATED MODULE: ./node_modules/@wordpress/keycodes/build-module/platform.js
 /**
- * External dependencies
- */
-
-/**
  * Return true if platform is MacOS.
  *
  * @param {Window?} _window window object by default; used for DI testing.
  *
  * @return {boolean} True if MacOS; false otherwise.
  */
-
-function isAppleOS() {
-  let _window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
-
+function isAppleOS(_window = null) {
   if (!_window) {
     if (typeof window === 'undefined') {
       return false;
     }
-
     _window = window;
   }
-
   const {
     platform
   } = _window.navigator;
-  return platform.indexOf('Mac') !== -1 || (0,external_lodash_namespaceObject.includes)(['iPad', 'iPhone'], platform);
+  return platform.indexOf('Mac') !== -1 || ['iPad', 'iPhone'].includes(platform);
 }
 
 ;// CONCATENATED MODULE: ./node_modules/@wordpress/keycodes/build-module/index.js
@@ -114,10 +104,6 @@
  */
 
 /**
- * External dependencies
- */
-
-/**
  * WordPress dependencies
  */
 
@@ -145,116 +131,140 @@
  *
  * @typedef {(character: string, isApple?: () => boolean) => T} WPKeyHandler
  */
+/** @typedef {(event: import('react').KeyboardEvent<HTMLElement> | KeyboardEvent, character: string, isApple?: () => boolean) => boolean} WPEventKeyHandler */
 
-/** @typedef {(event: KeyboardEvent, character: string, isApple?: () => boolean) => boolean} WPEventKeyHandler */
+/** @typedef {( isApple: () => boolean ) => WPModifierPart[]} WPModifier */
 
 /**
  * Keycode for BACKSPACE key.
  */
+const BACKSPACE = 8;
 
-const BACKSPACE = 8;
 /**
  * Keycode for TAB key.
  */
+const TAB = 9;
 
-const TAB = 9;
 /**
  * Keycode for ENTER key.
  */
+const ENTER = 13;
 
-const ENTER = 13;
 /**
  * Keycode for ESCAPE key.
  */
+const ESCAPE = 27;
 
-const ESCAPE = 27;
 /**
  * Keycode for SPACE key.
  */
+const SPACE = 32;
 
-const SPACE = 32;
 /**
  * Keycode for PAGEUP key.
  */
+const PAGEUP = 33;
 
-const PAGEUP = 33;
 /**
  * Keycode for PAGEDOWN key.
  */
+const PAGEDOWN = 34;
 
-const PAGEDOWN = 34;
 /**
  * Keycode for END key.
  */
+const END = 35;
 
-const END = 35;
 /**
  * Keycode for HOME key.
  */
+const HOME = 36;
 
-const HOME = 36;
 /**
  * Keycode for LEFT key.
  */
+const LEFT = 37;
 
-const LEFT = 37;
 /**
  * Keycode for UP key.
  */
+const UP = 38;
 
-const UP = 38;
 /**
  * Keycode for RIGHT key.
  */
+const RIGHT = 39;
 
-const RIGHT = 39;
 /**
  * Keycode for DOWN key.
  */
+const DOWN = 40;
 
-const DOWN = 40;
 /**
  * Keycode for DELETE key.
  */
+const DELETE = 46;
 
-const DELETE = 46;
 /**
  * Keycode for F10 key.
  */
+const F10 = 121;
 
-const F10 = 121;
 /**
  * Keycode for ALT key.
  */
+const ALT = 'alt';
 
-const ALT = 'alt';
 /**
  * Keycode for CTRL key.
  */
+const CTRL = 'ctrl';
 
-const CTRL = 'ctrl';
 /**
  * Keycode for COMMAND/META key.
  */
+const COMMAND = 'meta';
 
-const COMMAND = 'meta';
 /**
  * Keycode for SHIFT key.
  */
+const SHIFT = 'shift';
 
-const SHIFT = 'shift';
 /**
  * Keycode for ZERO key.
  */
+const ZERO = 48;
 
-const ZERO = 48;
+
+/**
+ * Capitalise the first character of a string.
+ * @param {string} string String to capitalise.
+ * @return {string} Capitalised string.
+ */
+function capitaliseFirstCharacter(string) {
+  return string.length < 2 ? string.toUpperCase() : string.charAt(0).toUpperCase() + string.slice(1);
+}
+
+/**
+ * Map the values of an object with a specified callback and return the result object.
+ *
+ * @template {{ [s: string]: any; } | ArrayLike<any>} T
+ *
+ * @param {T}                     object Object to map values of.
+ * @param {( value: any ) => any} mapFn  Mapping function
+ *
+ * @return {any} Active modifier constants.
+ */
+function mapValues(object, mapFn) {
+  return Object.fromEntries(Object.entries(object).map(([key, value]) => [key, mapFn(value)]));
+}
+
 /**
  * Object that contains functions that return the available modifier
  * depending on platform.
  *
  * @type {WPModifierHandler< ( isApple: () => boolean ) => WPModifierPart[]>}
  */
-
 const modifiers = {
   primary: _isApple => _isApple() ? [COMMAND] : [CTRL],
   primaryShift: _isApple => _isApple() ? [SHIFT, COMMAND] : [CTRL, SHIFT],
@@ -268,6 +278,7 @@
   shiftAlt: () => [SHIFT, ALT],
   undefined: () => []
 };
+
 /**
  * An object that contains functions to get raw shortcuts.
  *
@@ -283,17 +294,12 @@
  * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to raw
  *                                                 shortcuts.
  */
+const rawShortcut = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
+  return /** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => {
+    return [...modifier(_isApple), character.toLowerCase()].join('+');
+  };
+});
 
-const rawShortcut = (0,external_lodash_namespaceObject.mapValues)(modifiers, modifier => {
-  return (
-    /** @type {WPKeyHandler<string>} */
-    function (character) {
-      let _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;
-
-      return [...modifier(_isApple), character.toLowerCase()].join('+');
-    }
-  );
-});
 /**
  * Return an array of the parts of a keyboard shortcut chord for display.
  *
@@ -307,38 +313,29 @@
  * @type {WPModifierHandler<WPKeyHandler<string[]>>} Keyed map of functions to
  *                                                   shortcut sequences.
  */
-
-const displayShortcutList = (0,external_lodash_namespaceObject.mapValues)(modifiers, modifier => {
-  return (
-    /** @type {WPKeyHandler<string[]>} */
-    function (character) {
-      let _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;
-
-      const isApple = _isApple();
+const displayShortcutList = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
+  return /** @type {WPKeyHandler<string[]>} */(character, _isApple = isAppleOS) => {
+    const isApple = _isApple();
+    const replacementKeyMap = {
+      [ALT]: isApple ? '⌥' : 'Alt',
+      [CTRL]: isApple ? '⌃' : 'Ctrl',
+      // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
+      [COMMAND]: '⌘',
+      [SHIFT]: isApple ? '⇧' : 'Shift'
+    };
+    const modifierKeys = modifier(_isApple).reduce((accumulator, key) => {
+      var _replacementKeyMap$ke;
+      const replacementKey = (_replacementKeyMap$ke = replacementKeyMap[key]) !== null && _replacementKeyMap$ke !== void 0 ? _replacementKeyMap$ke : key;
+      // If on the Mac, adhere to platform convention and don't show plus between keys.
+      if (isApple) {
+        return [...accumulator, replacementKey];
+      }
+      return [...accumulator, replacementKey, '+'];
+    }, /** @type {string[]} */[]);
+    return [...modifierKeys, capitaliseFirstCharacter(character)];
+  };
+});
 
-      const replacementKeyMap = {
-        [ALT]: isApple ? '⌥' : 'Alt',
-        [CTRL]: isApple ? '⌃' : 'Ctrl',
-        // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
-        [COMMAND]: '⌘',
-        [SHIFT]: isApple ? '⇧' : 'Shift'
-      };
-      const modifierKeys = modifier(_isApple).reduce((accumulator, key) => {
-        const replacementKey = (0,external_lodash_namespaceObject.get)(replacementKeyMap, key, key); // If on the Mac, adhere to platform convention and don't show plus between keys.
-
-        if (isApple) {
-          return [...accumulator, replacementKey];
-        }
-
-        return [...accumulator, replacementKey, '+'];
-      },
-      /** @type {string[]} */
-      []);
-      const capitalizedCharacter = (0,external_lodash_namespaceObject.capitalize)(character);
-      return [...modifierKeys, capitalizedCharacter];
-    }
-  );
-});
 /**
  * An object that contains functions to display shortcuts.
  *
@@ -352,17 +349,10 @@
  * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to
  *                                                 display shortcuts.
  */
+const displayShortcut = mapValues(displayShortcutList, ( /** @type {WPKeyHandler<string[]>} */shortcutList) => {
+  return /** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => shortcutList(character, _isApple).join('');
+});
 
-const displayShortcut = (0,external_lodash_namespaceObject.mapValues)(displayShortcutList, shortcutList => {
-  return (
-    /** @type {WPKeyHandler<string>} */
-    function (character) {
-      let _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;
-
-      return shortcutList(character, _isApple).join('');
-    }
-  );
-});
 /**
  * An object that contains functions to return an aria label for a keyboard
  * shortcut.
@@ -377,51 +367,44 @@
  * @type {WPModifierHandler<WPKeyHandler<string>>} Keyed map of functions to
  *                                                 shortcut ARIA labels.
  */
-
-const shortcutAriaLabel = (0,external_lodash_namespaceObject.mapValues)(modifiers, modifier => {
-  return (
-    /** @type {WPKeyHandler<string>} */
-    function (character) {
-      let _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;
-
-      const isApple = _isApple();
+const shortcutAriaLabel = mapValues(modifiers, ( /** @type {WPModifier} */modifier) => {
+  return /** @type {WPKeyHandler<string>} */(character, _isApple = isAppleOS) => {
+    const isApple = _isApple();
+    /** @type {Record<string,string>} */
+    const replacementKeyMap = {
+      [SHIFT]: 'Shift',
+      [COMMAND]: isApple ? 'Command' : 'Control',
+      [CTRL]: 'Control',
+      [ALT]: isApple ? 'Option' : 'Alt',
+      /* translators: comma as in the character ',' */
+      ',': (0,external_wp_i18n_namespaceObject.__)('Comma'),
+      /* translators: period as in the character '.' */
+      '.': (0,external_wp_i18n_namespaceObject.__)('Period'),
+      /* translators: backtick as in the character '`' */
+      '`': (0,external_wp_i18n_namespaceObject.__)('Backtick'),
+      /* translators: tilde as in the character '~' */
+      '~': (0,external_wp_i18n_namespaceObject.__)('Tilde')
+    };
+    return [...modifier(_isApple), character].map(key => {
+      var _replacementKeyMap$ke2;
+      return capitaliseFirstCharacter((_replacementKeyMap$ke2 = replacementKeyMap[key]) !== null && _replacementKeyMap$ke2 !== void 0 ? _replacementKeyMap$ke2 : key);
+    }).join(isApple ? ' ' : ' + ');
+  };
+});
 
-      const replacementKeyMap = {
-        [SHIFT]: 'Shift',
-        [COMMAND]: isApple ? 'Command' : 'Control',
-        [CTRL]: 'Control',
-        [ALT]: isApple ? 'Option' : 'Alt',
-
-        /* translators: comma as in the character ',' */
-        ',': (0,external_wp_i18n_namespaceObject.__)('Comma'),
-
-        /* translators: period as in the character '.' */
-        '.': (0,external_wp_i18n_namespaceObject.__)('Period'),
-
-        /* translators: backtick as in the character '`' */
-        '`': (0,external_wp_i18n_namespaceObject.__)('Backtick')
-      };
-      return [...modifier(_isApple), character].map(key => (0,external_lodash_namespaceObject.capitalize)((0,external_lodash_namespaceObject.get)(replacementKeyMap, key, key))).join(isApple ? ' ' : ' + ');
-    }
-  );
-});
 /**
  * From a given KeyboardEvent, returns an array of active modifier constants for
  * the event.
  *
- * @param {KeyboardEvent} event Keyboard event.
+ * @param {import('react').KeyboardEvent<HTMLElement> | KeyboardEvent} event Keyboard event.
  *
  * @return {Array<WPModifierPart>} Active modifier constants.
  */
+function getEventModifiers(event) {
+  return /** @type {WPModifierPart[]} */[ALT, CTRL, COMMAND, SHIFT].filter(key => event[( /** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */
+  `${key}Key`)]);
+}
 
-function getEventModifiers(event) {
-  return (
-    /** @type {WPModifierPart[]} */
-    [ALT, CTRL, COMMAND, SHIFT].filter(key => event[
-    /** @type {'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'} */
-    `${key}Key`])
-  );
-}
 /**
  * An object that contains functions to check if a keyboard event matches a
  * predefined shortcut combination.
@@ -436,39 +419,46 @@
  * @type {WPModifierHandler<WPEventKeyHandler>} Keyed map of functions
  *                                                       to match events.
  */
-
-
-const isKeyboardEvent = (0,external_lodash_namespaceObject.mapValues)(modifiers, getModifiers => {
-  return (
-    /** @type {WPEventKeyHandler} */
-    function (event, character) {
-      let _isApple = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : isAppleOS;
-
-      const mods = getModifiers(_isApple);
-      const eventMods = getEventModifiers(event);
-
-      if ((0,external_lodash_namespaceObject.xor)(mods, eventMods).length) {
-        return false;
-      }
-
-      let key = event.key.toLowerCase();
+const isKeyboardEvent = mapValues(modifiers, ( /** @type {WPModifier} */getModifiers) => {
+  return /** @type {WPEventKeyHandler} */(event, character, _isApple = isAppleOS) => {
+    const mods = getModifiers(_isApple);
+    const eventMods = getEventModifiers(event);
+    /** @type {Record<string,string>} */
+    const replacementWithShiftKeyMap = {
+      Comma: ',',
+      Backslash: '\\',
+      // Windows returns `\` for both IntlRo and IntlYen.
+      IntlRo: '\\',
+      IntlYen: '\\'
+    };
+    const modsDiff = mods.filter(mod => !eventMods.includes(mod));
+    const eventModsDiff = eventMods.filter(mod => !mods.includes(mod));
+    if (modsDiff.length > 0 || eventModsDiff.length > 0) {
+      return false;
+    }
+    let key = event.key.toLowerCase();
+    if (!character) {
+      return mods.includes( /** @type {WPModifierPart} */key);
+    }
+    if (event.altKey && character.length === 1) {
+      key = String.fromCharCode(event.keyCode).toLowerCase();
+    }
 
-      if (!character) {
-        return (0,external_lodash_namespaceObject.includes)(mods, key);
-      }
-
-      if (event.altKey && character.length === 1) {
-        key = String.fromCharCode(event.keyCode).toLowerCase();
-      } // For backwards compatibility.
+    // `event.key` returns the value of the key pressed, taking into the state of
+    // modifier keys such as `Shift`. If the shift key is pressed, a different
+    // value may be returned depending on the keyboard layout. It is necessary to
+    // convert to the physical key value that don't take into account keyboard
+    // layout or modifier key state.
+    if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
+      key = replacementWithShiftKeyMap[event.code];
+    }
 
-
-      if (character === 'del') {
-        character = 'delete';
-      }
-
-      return key === character.toLowerCase();
+    // For backwards compatibility.
+    if (character === 'del') {
+      character = 'delete';
     }
-  );
+    return key === character.toLowerCase();
+  };
 });
 
 (window.wp = window.wp || {}).keycodes = __webpack_exports__;