PluginProbe
Gutenberg / 24.0.0
Gutenberg v24.0.0
24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 All 403 releases
gutenberg / build / scripts / keycodes / index.js

index.js in Gutenberg 24.0.0, at build/scripts/keycodes/index.js

267 lines 9.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function() {
2 "use strict";
3 var wp;
4 (wp ||= {}).keycodes = (() => {
5 var __create = Object.create;
6 var __defProp = Object.defineProperty;
7 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8 var __getOwnPropNames = Object.getOwnPropertyNames;
9 var __getProtoOf = Object.getPrototypeOf;
10 var __hasOwnProp = Object.prototype.hasOwnProperty;
11 var __commonJS = (cb, mod) => function __require() {
12 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13 };
14 var __export = (target, all) => {
15 for (var name in all)
16 __defProp(target, name, { get: all[name], enumerable: true });
17 };
18 var __copyProps = (to, from, except, desc) => {
19 if (from && typeof from === "object" || typeof from === "function") {
20 for (let key of __getOwnPropNames(from))
21 if (!__hasOwnProp.call(to, key) && key !== except)
22 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23 }
24 return to;
25 };
26 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
27 // If the importer is in node compatibility mode or this is not an ESM
28 // file that has been converted to a CommonJS file using a Babel-
29 // compatible transform (i.e. "__esModule" has not been set), then set
30 // "default" to the CommonJS "module.exports" for node compatibility.
31 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
32 mod
33 ));
34 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
36 // package-external:@wordpress/i18n
37 var require_i18n = __commonJS({
38 "package-external:@wordpress/i18n"(exports, module) {
39 module.exports = window.wp.i18n;
40 }
41 });
42
43 // packages/keycodes/build-module/index.mjs
44 var index_exports = {};
45 __export(index_exports, {
46 ALT: () => ALT,
47 BACKSPACE: () => BACKSPACE,
48 COMMAND: () => COMMAND,
49 CTRL: () => CTRL,
50 DELETE: () => DELETE,
51 DOWN: () => DOWN,
52 END: () => END,
53 ENTER: () => ENTER,
54 ESCAPE: () => ESCAPE,
55 F10: () => F10,
56 HOME: () => HOME,
57 LEFT: () => LEFT,
58 PAGEDOWN: () => PAGEDOWN,
59 PAGEUP: () => PAGEUP,
60 RIGHT: () => RIGHT,
61 SHIFT: () => SHIFT,
62 SPACE: () => SPACE,
63 TAB: () => TAB,
64 UP: () => UP,
65 ZERO: () => ZERO,
66 ariaKeyShortcut: () => ariaKeyShortcut,
67 displayShortcut: () => displayShortcut,
68 displayShortcutList: () => displayShortcutList,
69 isAppleOS: () => isAppleOS,
70 isKeyboardEvent: () => isKeyboardEvent,
71 modifiers: () => modifiers,
72 rawShortcut: () => rawShortcut,
73 shortcutAriaLabel: () => shortcutAriaLabel,
74 withIgnoreIMEEvents: () => withIgnoreIMEEvents
75 });
76 var import_i18n = __toESM(require_i18n(), 1);
77
78 // packages/keycodes/build-module/platform.mjs
79 function isAppleOS(_window) {
80 if (!_window) {
81 if (typeof window === "undefined") {
82 return false;
83 }
84 _window = window;
85 }
86 const { platform } = _window.navigator;
87 return platform.indexOf("Mac") !== -1 || ["iPad", "iPhone"].includes(platform);
88 }
89
90 // packages/keycodes/build-module/with-ignore-ime-events.mjs
91 function withIgnoreIMEEvents(handler) {
92 return (event) => {
93 const { isComposing } = "nativeEvent" in event ? event.nativeEvent : event;
94 if (isComposing || // Workaround for Mac Safari where the final Enter/Backspace of an IME composition
95 // is `isComposing=false`, even though it's technically still part of the composition.
96 // These can only be detected by keyCode.
97 event.keyCode === 229) {
98 return;
99 }
100 handler(event);
101 };
102 }
103
104 // packages/keycodes/build-module/index.mjs
105 var BACKSPACE = 8;
106 var TAB = 9;
107 var ENTER = 13;
108 var ESCAPE = 27;
109 var SPACE = 32;
110 var PAGEUP = 33;
111 var PAGEDOWN = 34;
112 var END = 35;
113 var HOME = 36;
114 var LEFT = 37;
115 var UP = 38;
116 var RIGHT = 39;
117 var DOWN = 40;
118 var DELETE = 46;
119 var F10 = 121;
120 var ALT = "alt";
121 var CTRL = "ctrl";
122 var COMMAND = "meta";
123 var SHIFT = "shift";
124 var ZERO = 48;
125 function capitaliseFirstCharacter(string) {
126 return string.length < 2 ? string.toUpperCase() : string.charAt(0).toUpperCase() + string.slice(1);
127 }
128 function mapValues(object, mapFn) {
129 return Object.fromEntries(
130 Object.entries(object).map(([key, value]) => [
131 key,
132 mapFn(value)
133 ])
134 );
135 }
136 var modifiers = {
137 primary: (_isApple) => _isApple() ? [COMMAND] : [CTRL],
138 primaryShift: (_isApple) => _isApple() ? [SHIFT, COMMAND] : [CTRL, SHIFT],
139 primaryAlt: (_isApple) => _isApple() ? [ALT, COMMAND] : [CTRL, ALT],
140 secondary: (_isApple) => _isApple() ? [SHIFT, ALT, COMMAND] : [CTRL, SHIFT, ALT],
141 access: (_isApple) => _isApple() ? [CTRL, ALT] : [SHIFT, ALT],
142 ctrl: () => [CTRL],
143 alt: () => [ALT],
144 ctrlShift: () => [CTRL, SHIFT],
145 shift: () => [SHIFT],
146 shiftAlt: () => [SHIFT, ALT],
147 undefined: () => []
148 };
149 var rawShortcut = /* @__PURE__ */ mapValues(modifiers, (modifier) => {
150 return (character, _isApple = isAppleOS) => {
151 return [...modifier(_isApple), character.toLowerCase()].join(
152 "+"
153 );
154 };
155 });
156 var ariaKeyShortcut = /* @__PURE__ */ mapValues(modifiers, (modifier) => {
157 return (character, _isApple = isAppleOS) => {
158 return [
159 ...modifier(_isApple).map((key) => key === CTRL ? "Control" : key).map((key) => capitaliseFirstCharacter(key)),
160 capitaliseFirstCharacter(character)
161 ].join("+");
162 };
163 });
164 var displayShortcutList = /* @__PURE__ */ mapValues(
165 modifiers,
166 (modifier) => {
167 return (character, _isApple = isAppleOS) => {
168 const isApple = _isApple();
169 const replacementKeyMap = {
170 [ALT]: isApple ? "\u2325" : "Alt",
171 [CTRL]: isApple ? "\u2303" : "Ctrl",
172 // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
173 [COMMAND]: "\u2318",
174 [SHIFT]: isApple ? "\u21E7" : "Shift"
175 };
176 const modifierKeys = modifier(_isApple).reduce(
177 (accumulator, key) => {
178 const replacementKey = replacementKeyMap[key] ?? key;
179 if (isApple) {
180 return [...accumulator, replacementKey];
181 }
182 return [...accumulator, replacementKey, "+"];
183 },
184 []
185 );
186 return [
187 ...modifierKeys,
188 capitaliseFirstCharacter(character)
189 ];
190 };
191 }
192 );
193 var displayShortcut = /* @__PURE__ */ mapValues(
194 displayShortcutList,
195 (shortcutList) => {
196 return (character, _isApple = isAppleOS) => shortcutList(character, _isApple).join("");
197 }
198 );
199 var shortcutAriaLabel = /* @__PURE__ */ mapValues(modifiers, (modifier) => {
200 return (character, _isApple = isAppleOS) => {
201 const isApple = _isApple();
202 const replacementKeyMap = {
203 [SHIFT]: "Shift",
204 [COMMAND]: isApple ? "Command" : "Control",
205 [CTRL]: "Control",
206 [ALT]: isApple ? "Option" : "Alt",
207 /* translators: comma as in the character ',' */
208 ",": (0, import_i18n.__)("Comma"),
209 /* translators: period as in the character '.' */
210 ".": (0, import_i18n.__)("Period"),
211 /* translators: backtick as in the character '`' */
212 "`": (0, import_i18n.__)("Backtick"),
213 /* translators: tilde as in the character '~' */
214 "~": (0, import_i18n.__)("Tilde")
215 };
216 return [...modifier(_isApple), character].map(
217 (key) => capitaliseFirstCharacter(replacementKeyMap[key] ?? key)
218 ).join(isApple ? " " : " + ");
219 };
220 });
221 function getEventModifiers(event) {
222 return [ALT, CTRL, COMMAND, SHIFT].filter(
223 (key) => event[`${key}Key`]
224 );
225 }
226 var isKeyboardEvent = /* @__PURE__ */ mapValues(modifiers, (getModifiers) => {
227 return (event, character, _isApple = isAppleOS) => {
228 const mods = getModifiers(_isApple);
229 const eventMods = getEventModifiers(event);
230 const replacementWithShiftKeyMap = {
231 Comma: ",",
232 Backslash: "\\",
233 // Windows returns `\` for both IntlRo and IntlYen.
234 IntlRo: "\\",
235 IntlYen: "\\"
236 };
237 const modsDiff = mods.filter(
238 (mod) => !eventMods.includes(mod)
239 );
240 const eventModsDiff = eventMods.filter(
241 (mod) => !mods.includes(mod)
242 );
243 if (modsDiff.length > 0 || eventModsDiff.length > 0) {
244 return false;
245 }
246 let key = event.key.toLowerCase();
247 if (!character) {
248 return mods.includes(key);
249 }
250 if (event.altKey && character.length === 1) {
251 key = String.fromCharCode(event.keyCode).toLowerCase();
252 }
253 if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
254 key = replacementWithShiftKeyMap[event.code];
255 }
256 if (character === "del") {
257 character = "delete";
258 }
259 return key === character.toLowerCase();
260 };
261 });
262 return __toCommonJS(index_exports);
263 })();
264 (window.wp ||= {}).keycodes = wp.keycodes;
265 })();
266 //# sourceMappingURL=index.js.map
267