"use strict";
var wp;
(wp||={}).keycodes=(()=> {
var __create=Object.create;
var __defProp=Object.defineProperty;
var __getOwnPropDesc=Object.getOwnPropertyDescriptor;
var __getOwnPropNames=Object.getOwnPropertyNames;
var __getProtoOf=Object.getPrototypeOf;
var __hasOwnProp=Object.prototype.hasOwnProperty;
var __commonJS=(cb, mod)=> function __require(){
return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={ exports: {}}).exports, mod), mod.exports;
};
var __export=(target, all)=> {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps=(to, from, except, desc)=> {
if(from&&typeof from==="object"||typeof from==="function"){
for (let key of __getOwnPropNames(from))
if(!__hasOwnProp.call(to, key)&&key!==except)
__defProp(to, key, { get: ()=> from[key], enumerable: !(desc=__getOwnPropDesc(from, key))||desc.enumerable });
}
return to;
};
var __toESM=(mod, isNodeMode, target)=> (target=mod!=null ? __create(__getProtoOf(mod)):{}, __copyProps(
isNodeMode||!mod||!mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }):target,
mod
));
var __toCommonJS=(mod)=> __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var require_i18n=__commonJS({
"package-external:@wordpress/i18n"(exports, module){
module.exports=window.wp.i18n;
}});
var index_exports={};
__export(index_exports, {
ALT: ()=> ALT,
BACKSPACE: ()=> BACKSPACE,
COMMAND: ()=> COMMAND,
CTRL: ()=> CTRL,
DELETE: ()=> DELETE,
DOWN: ()=> DOWN,
END: ()=> END,
ENTER: ()=> ENTER,
ESCAPE: ()=> ESCAPE,
F10: ()=> F10,
HOME: ()=> HOME,
LEFT: ()=> LEFT,
PAGEDOWN: ()=> PAGEDOWN,
PAGEUP: ()=> PAGEUP,
RIGHT: ()=> RIGHT,
SHIFT: ()=> SHIFT,
SPACE: ()=> SPACE,
TAB: ()=> TAB,
UP: ()=> UP,
ZERO: ()=> ZERO,
ariaKeyShortcut: ()=> ariaKeyShortcut,
displayShortcut: ()=> displayShortcut,
displayShortcutList: ()=> displayShortcutList,
isAppleOS: ()=> isAppleOS,
isKeyboardEvent: ()=> isKeyboardEvent,
modifiers: ()=> modifiers,
rawShortcut: ()=> rawShortcut,
shortcutAriaLabel: ()=> shortcutAriaLabel
});
var import_i18n=__toESM(require_i18n(), 1);
function isAppleOS(_window){
if(!_window){
if(typeof window==="undefined"){
return false;
}
_window=window;
}
const { platform }=_window.navigator;
return platform.indexOf("Mac")!==-1||["iPad", "iPhone"].includes(platform);
}
var BACKSPACE=8;
var TAB=9;
var ENTER=13;
var ESCAPE=27;
var SPACE=32;
var PAGEUP=33;
var PAGEDOWN=34;
var END=35;
var HOME=36;
var LEFT=37;
var UP=38;
var RIGHT=39;
var DOWN=40;
var DELETE=46;
var F10=121;
var ALT="alt";
var CTRL="ctrl";
var COMMAND="meta";
var SHIFT="shift";
var ZERO=48;
function capitaliseFirstCharacter(string){
return string.length < 2 ? string.toUpperCase():string.charAt(0).toUpperCase() + string.slice(1);
}
function mapValues(object, mapFn){
return Object.fromEntries(Object.entries(object).map(([key, value])=> [
key,
mapFn(value)
])
);
}
var modifiers={
primary: (_isApple)=> _isApple() ? [COMMAND]:[CTRL],
primaryShift: (_isApple)=> _isApple() ? [SHIFT, COMMAND]:[CTRL, SHIFT],
primaryAlt: (_isApple)=> _isApple() ? [ALT, COMMAND]:[CTRL, ALT],
secondary: (_isApple)=> _isApple() ? [SHIFT, ALT, COMMAND]:[CTRL, SHIFT, ALT],
access: (_isApple)=> _isApple() ? [CTRL, ALT]:[SHIFT, ALT],
ctrl: ()=> [CTRL],
alt: ()=> [ALT],
ctrlShift: ()=> [CTRL, SHIFT],
shift: ()=> [SHIFT],
shiftAlt: ()=> [SHIFT, ALT],
undefined: ()=> []
};
var rawShortcut= mapValues(modifiers, (modifier)=> {
return (character, _isApple=isAppleOS)=> {
return [...modifier(_isApple), character.toLowerCase()].join("+"
);
};});
var ariaKeyShortcut= mapValues(modifiers, (modifier)=> {
return (character, _isApple=isAppleOS)=> {
return [
...modifier(_isApple).map((key)=> key===CTRL ? "Control":key).map((key)=> capitaliseFirstCharacter(key)),
capitaliseFirstCharacter(character)
].join("+");
};});
var displayShortcutList= mapValues(
modifiers,
(modifier)=> {
return (character, _isApple=isAppleOS)=> {
const isApple=_isApple();
const replacementKeyMap={
[ALT]: isApple ? "\u2325":"Alt",
[CTRL]: isApple ? "\u2303":"Ctrl",
[COMMAND]: "\u2318",
[SHIFT]: isApple ? "\u21E7":"Shift"
};
const modifierKeys=modifier(_isApple).reduce((accumulator, key)=> {
const replacementKey=replacementKeyMap[key] ?? key;
if(isApple){
return [...accumulator, replacementKey];
}
return [...accumulator, replacementKey, "+"];
},
[]
);
return [
...modifierKeys,
capitaliseFirstCharacter(character)
];
};}
);
var displayShortcut= mapValues(
displayShortcutList,
(shortcutList)=> {
return (character, _isApple=isAppleOS)=> shortcutList(character, _isApple).join("");
}
);
var shortcutAriaLabel= mapValues(modifiers, (modifier)=> {
return (character, _isApple=isAppleOS)=> {
const isApple=_isApple();
const replacementKeyMap={
[SHIFT]: "Shift",
[COMMAND]: isApple ? "Command":"Control",
[CTRL]: "Control",
[ALT]: isApple ? "Option":"Alt",
",": (0, import_i18n.__)("Comma"),
".": (0, import_i18n.__)("Period"),
"`": (0, import_i18n.__)("Backtick"),
"~": (0, import_i18n.__)("Tilde")
};
return [...modifier(_isApple), character].map((key)=> capitaliseFirstCharacter(replacementKeyMap[key] ?? key)
).join(isApple ? " ":" + ");
};});
function getEventModifiers(event){
return [ALT, CTRL, COMMAND, SHIFT].filter((key)=> event[`${key}Key`]
);
}
var isKeyboardEvent= mapValues(modifiers, (getModifiers)=> {
return (event, character, _isApple=isAppleOS)=> {
const mods=getModifiers(_isApple);
const eventMods=getEventModifiers(event);
const replacementWithShiftKeyMap={
Comma: ",",
Backslash: "\\",
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(key);
}
if(event.altKey&&character.length===1){
key=String.fromCharCode(event.keyCode).toLowerCase();
}
if(event.shiftKey&&character.length===1&&replacementWithShiftKeyMap[event.code]){
key=replacementWithShiftKeyMap[event.code];
}
if(character==="del"){
character="delete";
}
return key===character.toLowerCase();
};});
return __toCommonJS(index_exports);
})();