@wordpress/keycodes 4.32.0 → 4.32.1-next.b8c8708f3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +180 -309
- package/build/index.js.map +7 -1
- package/build/platform.js +29 -17
- package/build/platform.js.map +7 -1
- package/build-module/index.js +130 -298
- package/build-module/index.js.map +7 -1
- package/build-module/platform.js +8 -14
- package/build-module/platform.js.map +7 -1
- package/package.json +11 -4
- package/build/platform.native.js +0 -20
- package/build/platform.native.js.map +0 -1
- package/build-module/platform.native.js +0 -14
- package/build-module/platform.native.js.map +0 -1
package/build/platform.js
CHANGED
|
@@ -1,26 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var platform_exports = {};
|
|
20
|
+
__export(platform_exports, {
|
|
21
|
+
isAppleOS: () => isAppleOS
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
/**
|
|
8
|
-
* Return true if platform is MacOS.
|
|
9
|
-
*
|
|
10
|
-
* @param _window window object by default; used for DI testing.
|
|
11
|
-
*
|
|
12
|
-
* @return True if MacOS; false otherwise.
|
|
13
|
-
*/
|
|
23
|
+
module.exports = __toCommonJS(platform_exports);
|
|
14
24
|
function isAppleOS(_window) {
|
|
15
25
|
if (!_window) {
|
|
16
|
-
if (typeof window ===
|
|
26
|
+
if (typeof window === "undefined") {
|
|
17
27
|
return false;
|
|
18
28
|
}
|
|
19
29
|
_window = window;
|
|
20
30
|
}
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
} = _window.navigator;
|
|
24
|
-
return platform.indexOf('Mac') !== -1 || ['iPad', 'iPhone'].includes(platform);
|
|
31
|
+
const { platform } = _window.navigator;
|
|
32
|
+
return platform.indexOf("Mac") !== -1 || ["iPad", "iPhone"].includes(platform);
|
|
25
33
|
}
|
|
26
|
-
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
isAppleOS
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=platform.js.map
|
package/build/platform.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/platform.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Return true if platform is MacOS.\n *\n * @param _window window object by default; used for DI testing.\n *\n * @return True if MacOS; false otherwise.\n */\nexport function isAppleOS( _window?: Window ): boolean {\n\tif ( ! _window ) {\n\t\tif ( typeof window === 'undefined' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t_window = window;\n\t}\n\n\tconst { platform } = _window.navigator;\n\n\treturn (\n\t\tplatform.indexOf( 'Mac' ) !== -1 ||\n\t\t[ 'iPad', 'iPhone' ].includes( platform )\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,SAAS,UAAW,SAA4B;AACtD,MAAK,CAAE,SAAU;AAChB,QAAK,OAAO,WAAW,aAAc;AACpC,aAAO;AAAA,IACR;AAEA,cAAU;AAAA,EACX;AAEA,QAAM,EAAE,SAAS,IAAI,QAAQ;AAE7B,SACC,SAAS,QAAS,KAAM,MAAM,MAC9B,CAAE,QAAQ,QAAS,EAAE,SAAU,QAAS;AAE1C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/build-module/index.js
CHANGED
|
@@ -1,167 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* External dependencies
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* An object of handler functions for each of the possible modifier
|
|
28
|
-
* combinations. A handler will return a value for a given key.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Keycode for BACKSPACE key.
|
|
33
|
-
*/
|
|
34
|
-
export const BACKSPACE = 8;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Keycode for TAB key.
|
|
38
|
-
*/
|
|
39
|
-
export const TAB = 9;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Keycode for ENTER key.
|
|
43
|
-
*/
|
|
44
|
-
export const ENTER = 13;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Keycode for ESCAPE key.
|
|
48
|
-
*/
|
|
49
|
-
export const ESCAPE = 27;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Keycode for SPACE key.
|
|
53
|
-
*/
|
|
54
|
-
export const SPACE = 32;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Keycode for PAGEUP key.
|
|
58
|
-
*/
|
|
59
|
-
export const PAGEUP = 33;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Keycode for PAGEDOWN key.
|
|
63
|
-
*/
|
|
64
|
-
export const PAGEDOWN = 34;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Keycode for END key.
|
|
68
|
-
*/
|
|
69
|
-
export const END = 35;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Keycode for HOME key.
|
|
73
|
-
*/
|
|
74
|
-
export const HOME = 36;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Keycode for LEFT key.
|
|
78
|
-
*/
|
|
79
|
-
export const LEFT = 37;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Keycode for UP key.
|
|
83
|
-
*/
|
|
84
|
-
export const UP = 38;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Keycode for RIGHT key.
|
|
88
|
-
*/
|
|
89
|
-
export const RIGHT = 39;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Keycode for DOWN key.
|
|
93
|
-
*/
|
|
94
|
-
export const DOWN = 40;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Keycode for DELETE key.
|
|
98
|
-
*/
|
|
99
|
-
export const DELETE = 46;
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Keycode for F10 key.
|
|
103
|
-
*/
|
|
104
|
-
export const F10 = 121;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Keycode for ALT key.
|
|
108
|
-
*/
|
|
109
|
-
export const ALT = 'alt';
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Keycode for CTRL key.
|
|
113
|
-
*/
|
|
114
|
-
export const CTRL = 'ctrl';
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Keycode for COMMAND/META key.
|
|
118
|
-
*/
|
|
119
|
-
export const COMMAND = 'meta';
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Keycode for SHIFT key.
|
|
123
|
-
*/
|
|
124
|
-
export const SHIFT = 'shift';
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Keycode for ZERO key.
|
|
128
|
-
*/
|
|
129
|
-
export const ZERO = 48;
|
|
130
|
-
export { isAppleOS };
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Capitalise the first character of a string.
|
|
134
|
-
* @param string String to capitalise.
|
|
135
|
-
* @return Capitalised string.
|
|
136
|
-
*/
|
|
1
|
+
import { __ } from "@wordpress/i18n";
|
|
2
|
+
import { isAppleOS } from "./platform";
|
|
3
|
+
const BACKSPACE = 8;
|
|
4
|
+
const TAB = 9;
|
|
5
|
+
const ENTER = 13;
|
|
6
|
+
const ESCAPE = 27;
|
|
7
|
+
const SPACE = 32;
|
|
8
|
+
const PAGEUP = 33;
|
|
9
|
+
const PAGEDOWN = 34;
|
|
10
|
+
const END = 35;
|
|
11
|
+
const HOME = 36;
|
|
12
|
+
const LEFT = 37;
|
|
13
|
+
const UP = 38;
|
|
14
|
+
const RIGHT = 39;
|
|
15
|
+
const DOWN = 40;
|
|
16
|
+
const DELETE = 46;
|
|
17
|
+
const F10 = 121;
|
|
18
|
+
const ALT = "alt";
|
|
19
|
+
const CTRL = "ctrl";
|
|
20
|
+
const COMMAND = "meta";
|
|
21
|
+
const SHIFT = "shift";
|
|
22
|
+
const ZERO = 48;
|
|
137
23
|
function capitaliseFirstCharacter(string) {
|
|
138
24
|
return string.length < 2 ? string.toUpperCase() : string.charAt(0).toUpperCase() + string.slice(1);
|
|
139
25
|
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Map the values of an object with a specified callback and return the result object.
|
|
143
|
-
*
|
|
144
|
-
* @template T The object type
|
|
145
|
-
* @template R The return type of the mapping function
|
|
146
|
-
*
|
|
147
|
-
* @param object Object to map values of.
|
|
148
|
-
* @param mapFn Mapping function to apply to each value.
|
|
149
|
-
* @return Object with the same keys and transformed values.
|
|
150
|
-
*/
|
|
151
26
|
function mapValues(object, mapFn) {
|
|
152
|
-
return Object.fromEntries(
|
|
27
|
+
return Object.fromEntries(
|
|
28
|
+
Object.entries(object).map(([key, value]) => [
|
|
29
|
+
key,
|
|
30
|
+
mapFn(value)
|
|
31
|
+
])
|
|
32
|
+
);
|
|
153
33
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
primary: _isApple => _isApple() ? [COMMAND] : [CTRL],
|
|
161
|
-
primaryShift: _isApple => _isApple() ? [SHIFT, COMMAND] : [CTRL, SHIFT],
|
|
162
|
-
primaryAlt: _isApple => _isApple() ? [ALT, COMMAND] : [CTRL, ALT],
|
|
163
|
-
secondary: _isApple => _isApple() ? [SHIFT, ALT, COMMAND] : [CTRL, SHIFT, ALT],
|
|
164
|
-
access: _isApple => _isApple() ? [CTRL, ALT] : [SHIFT, ALT],
|
|
34
|
+
const modifiers = {
|
|
35
|
+
primary: (_isApple) => _isApple() ? [COMMAND] : [CTRL],
|
|
36
|
+
primaryShift: (_isApple) => _isApple() ? [SHIFT, COMMAND] : [CTRL, SHIFT],
|
|
37
|
+
primaryAlt: (_isApple) => _isApple() ? [ALT, COMMAND] : [CTRL, ALT],
|
|
38
|
+
secondary: (_isApple) => _isApple() ? [SHIFT, ALT, COMMAND] : [CTRL, SHIFT, ALT],
|
|
39
|
+
access: (_isApple) => _isApple() ? [CTRL, ALT] : [SHIFT, ALT],
|
|
165
40
|
ctrl: () => [CTRL],
|
|
166
41
|
alt: () => [ALT],
|
|
167
42
|
ctrlShift: () => [CTRL, SHIFT],
|
|
@@ -169,156 +44,92 @@ export const modifiers = {
|
|
|
169
44
|
shiftAlt: () => [SHIFT, ALT],
|
|
170
45
|
undefined: () => []
|
|
171
46
|
};
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* An object that contains functions to get raw shortcuts.
|
|
175
|
-
*
|
|
176
|
-
* These are intended for user with the KeyboardShortcuts.
|
|
177
|
-
*
|
|
178
|
-
* @example
|
|
179
|
-
* ```js
|
|
180
|
-
* // Assuming macOS:
|
|
181
|
-
* rawShortcut.primary( 'm' )
|
|
182
|
-
* // "meta+m""
|
|
183
|
-
* ```
|
|
184
|
-
*/
|
|
185
|
-
export const rawShortcut = /* @__PURE__ */
|
|
186
|
-
mapValues(modifiers, modifier => {
|
|
47
|
+
const rawShortcut = /* @__PURE__ */ mapValues(modifiers, (modifier) => {
|
|
187
48
|
return (character, _isApple = isAppleOS) => {
|
|
188
|
-
return [...modifier(_isApple), character.toLowerCase()].join(
|
|
49
|
+
return [...modifier(_isApple), character.toLowerCase()].join(
|
|
50
|
+
"+"
|
|
51
|
+
);
|
|
189
52
|
};
|
|
190
53
|
});
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
[
|
|
54
|
+
const displayShortcutList = /* @__PURE__ */ mapValues(
|
|
55
|
+
modifiers,
|
|
56
|
+
(modifier) => {
|
|
57
|
+
return (character, _isApple = isAppleOS) => {
|
|
58
|
+
const isApple = _isApple();
|
|
59
|
+
const replacementKeyMap = {
|
|
60
|
+
[ALT]: isApple ? "\u2325" : "Alt",
|
|
61
|
+
[CTRL]: isApple ? "\u2303" : "Ctrl",
|
|
62
|
+
// Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.
|
|
63
|
+
[COMMAND]: "\u2318",
|
|
64
|
+
[SHIFT]: isApple ? "\u21E7" : "Shift"
|
|
65
|
+
};
|
|
66
|
+
const modifierKeys = modifier(_isApple).reduce(
|
|
67
|
+
(accumulator, key) => {
|
|
68
|
+
const replacementKey = replacementKeyMap[key] ?? key;
|
|
69
|
+
if (isApple) {
|
|
70
|
+
return [...accumulator, replacementKey];
|
|
71
|
+
}
|
|
72
|
+
return [...accumulator, replacementKey, "+"];
|
|
73
|
+
},
|
|
74
|
+
[]
|
|
75
|
+
);
|
|
76
|
+
return [
|
|
77
|
+
...modifierKeys,
|
|
78
|
+
capitaliseFirstCharacter(character)
|
|
79
|
+
];
|
|
214
80
|
};
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
return [...modifierKeys, capitaliseFirstCharacter(character)];
|
|
225
|
-
};
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* An object that contains functions to display shortcuts.
|
|
230
|
-
*
|
|
231
|
-
* @example
|
|
232
|
-
* ```js
|
|
233
|
-
* // Assuming macOS:
|
|
234
|
-
* displayShortcut.primary( 'm' );
|
|
235
|
-
* // "⌘M"
|
|
236
|
-
* ```
|
|
237
|
-
*
|
|
238
|
-
* Keyed map of functions to display shortcuts.
|
|
239
|
-
*/
|
|
240
|
-
export const displayShortcut = /* @__PURE__ */
|
|
241
|
-
mapValues(displayShortcutList, shortcutList => {
|
|
242
|
-
return (character, _isApple = isAppleOS) => shortcutList(character, _isApple).join('');
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* An object that contains functions to return an aria label for a keyboard
|
|
247
|
-
* shortcut.
|
|
248
|
-
*
|
|
249
|
-
* @example
|
|
250
|
-
* ```js
|
|
251
|
-
* // Assuming macOS:
|
|
252
|
-
* shortcutAriaLabel.primary( '.' );
|
|
253
|
-
* // "Command + Period"
|
|
254
|
-
* ```
|
|
255
|
-
*
|
|
256
|
-
* Keyed map of functions to shortcut ARIA labels.
|
|
257
|
-
*/
|
|
258
|
-
export const shortcutAriaLabel = /* @__PURE__ */
|
|
259
|
-
mapValues(modifiers, modifier => {
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
const displayShortcut = /* @__PURE__ */ mapValues(
|
|
84
|
+
displayShortcutList,
|
|
85
|
+
(shortcutList) => {
|
|
86
|
+
return (character, _isApple = isAppleOS) => shortcutList(character, _isApple).join("");
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
const shortcutAriaLabel = /* @__PURE__ */ mapValues(modifiers, (modifier) => {
|
|
260
90
|
return (character, _isApple = isAppleOS) => {
|
|
261
91
|
const isApple = _isApple();
|
|
262
92
|
const replacementKeyMap = {
|
|
263
|
-
[SHIFT]:
|
|
264
|
-
[COMMAND]: isApple ?
|
|
265
|
-
[CTRL]:
|
|
266
|
-
[ALT]: isApple ?
|
|
93
|
+
[SHIFT]: "Shift",
|
|
94
|
+
[COMMAND]: isApple ? "Command" : "Control",
|
|
95
|
+
[CTRL]: "Control",
|
|
96
|
+
[ALT]: isApple ? "Option" : "Alt",
|
|
267
97
|
/* translators: comma as in the character ',' */
|
|
268
|
-
|
|
98
|
+
",": __("Comma"),
|
|
269
99
|
/* translators: period as in the character '.' */
|
|
270
|
-
|
|
100
|
+
".": __("Period"),
|
|
271
101
|
/* translators: backtick as in the character '`' */
|
|
272
|
-
|
|
102
|
+
"`": __("Backtick"),
|
|
273
103
|
/* translators: tilde as in the character '~' */
|
|
274
|
-
|
|
104
|
+
"~": __("Tilde")
|
|
275
105
|
};
|
|
276
|
-
return [...modifier(_isApple), character].map(
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}).join(isApple ? ' ' : ' + ');
|
|
106
|
+
return [...modifier(_isApple), character].map(
|
|
107
|
+
(key) => capitaliseFirstCharacter(replacementKeyMap[key] ?? key)
|
|
108
|
+
).join(isApple ? " " : " + ");
|
|
280
109
|
};
|
|
281
110
|
});
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* From a given KeyboardEvent, returns an array of active modifier constants for
|
|
285
|
-
* the event.
|
|
286
|
-
*
|
|
287
|
-
* @param event Keyboard event.
|
|
288
|
-
*
|
|
289
|
-
* @return Active modifier constants.
|
|
290
|
-
*/
|
|
291
111
|
function getEventModifiers(event) {
|
|
292
|
-
return [ALT, CTRL, COMMAND, SHIFT].filter(
|
|
112
|
+
return [ALT, CTRL, COMMAND, SHIFT].filter(
|
|
113
|
+
(key) => event[`${key}Key`]
|
|
114
|
+
);
|
|
293
115
|
}
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* An object that contains functions to check if a keyboard event matches a
|
|
297
|
-
* predefined shortcut combination.
|
|
298
|
-
*
|
|
299
|
-
* @example
|
|
300
|
-
* ```js
|
|
301
|
-
* // Assuming an event for ⌘M key press:
|
|
302
|
-
* isKeyboardEvent.primary( event, 'm' );
|
|
303
|
-
* // true
|
|
304
|
-
* ```
|
|
305
|
-
*
|
|
306
|
-
* Keyed map of functions to match events.
|
|
307
|
-
*/
|
|
308
|
-
export const isKeyboardEvent = /* @__PURE__ */
|
|
309
|
-
mapValues(modifiers, getModifiers => {
|
|
116
|
+
const isKeyboardEvent = /* @__PURE__ */ mapValues(modifiers, (getModifiers) => {
|
|
310
117
|
return (event, character, _isApple = isAppleOS) => {
|
|
311
118
|
const mods = getModifiers(_isApple);
|
|
312
119
|
const eventMods = getEventModifiers(event);
|
|
313
120
|
const replacementWithShiftKeyMap = {
|
|
314
|
-
Comma:
|
|
315
|
-
Backslash:
|
|
121
|
+
Comma: ",",
|
|
122
|
+
Backslash: "\\",
|
|
316
123
|
// Windows returns `\` for both IntlRo and IntlYen.
|
|
317
|
-
IntlRo:
|
|
318
|
-
IntlYen:
|
|
124
|
+
IntlRo: "\\",
|
|
125
|
+
IntlYen: "\\"
|
|
319
126
|
};
|
|
320
|
-
const modsDiff = mods.filter(
|
|
321
|
-
|
|
127
|
+
const modsDiff = mods.filter(
|
|
128
|
+
(mod) => !eventMods.includes(mod)
|
|
129
|
+
);
|
|
130
|
+
const eventModsDiff = eventMods.filter(
|
|
131
|
+
(mod) => !mods.includes(mod)
|
|
132
|
+
);
|
|
322
133
|
if (modsDiff.length > 0 || eventModsDiff.length > 0) {
|
|
323
134
|
return false;
|
|
324
135
|
}
|
|
@@ -329,21 +140,42 @@ mapValues(modifiers, getModifiers => {
|
|
|
329
140
|
if (event.altKey && character.length === 1) {
|
|
330
141
|
key = String.fromCharCode(event.keyCode).toLowerCase();
|
|
331
142
|
}
|
|
332
|
-
|
|
333
|
-
// `event.key` returns the value of the key pressed, taking into the state of
|
|
334
|
-
// modifier keys such as `Shift`. If the shift key is pressed, a different
|
|
335
|
-
// value may be returned depending on the keyboard layout. It is necessary to
|
|
336
|
-
// convert to the physical key value that don't take into account keyboard
|
|
337
|
-
// layout or modifier key state.
|
|
338
143
|
if (event.shiftKey && character.length === 1 && replacementWithShiftKeyMap[event.code]) {
|
|
339
144
|
key = replacementWithShiftKeyMap[event.code];
|
|
340
145
|
}
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
if (character === 'del') {
|
|
344
|
-
character = 'delete';
|
|
146
|
+
if (character === "del") {
|
|
147
|
+
character = "delete";
|
|
345
148
|
}
|
|
346
149
|
return key === character.toLowerCase();
|
|
347
150
|
};
|
|
348
151
|
});
|
|
349
|
-
|
|
152
|
+
export {
|
|
153
|
+
ALT,
|
|
154
|
+
BACKSPACE,
|
|
155
|
+
COMMAND,
|
|
156
|
+
CTRL,
|
|
157
|
+
DELETE,
|
|
158
|
+
DOWN,
|
|
159
|
+
END,
|
|
160
|
+
ENTER,
|
|
161
|
+
ESCAPE,
|
|
162
|
+
F10,
|
|
163
|
+
HOME,
|
|
164
|
+
LEFT,
|
|
165
|
+
PAGEDOWN,
|
|
166
|
+
PAGEUP,
|
|
167
|
+
RIGHT,
|
|
168
|
+
SHIFT,
|
|
169
|
+
SPACE,
|
|
170
|
+
TAB,
|
|
171
|
+
UP,
|
|
172
|
+
ZERO,
|
|
173
|
+
displayShortcut,
|
|
174
|
+
displayShortcutList,
|
|
175
|
+
isAppleOS,
|
|
176
|
+
isKeyboardEvent,
|
|
177
|
+
modifiers,
|
|
178
|
+
rawShortcut,
|
|
179
|
+
shortcutAriaLabel
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"names":["__","isAppleOS","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","F10","ALT","CTRL","COMMAND","SHIFT","ZERO","capitaliseFirstCharacter","string","length","toUpperCase","charAt","slice","mapValues","object","mapFn","Object","fromEntries","entries","map","key","value","modifiers","primary","_isApple","primaryShift","primaryAlt","secondary","access","ctrl","alt","ctrlShift","shift","shiftAlt","undefined","rawShortcut","modifier","character","toLowerCase","join","displayShortcutList","isApple","replacementKeyMap","modifierKeys","reduce","accumulator","_replacementKeyMap$ke","replacementKey","displayShortcut","shortcutList","shortcutAriaLabel","_replacementKeyMap$ke2","getEventModifiers","event","filter","isKeyboardEvent","getModifiers","mods","eventMods","replacementWithShiftKeyMap","Comma","Backslash","IntlRo","IntlYen","modsDiff","mod","includes","eventModsDiff","altKey","String","fromCharCode","keyCode","shiftKey","code"],"sources":["@wordpress/keycodes/src/index.ts"],"sourcesContent":["/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isAppleOS } from './platform';\n\n/**\n * External dependencies\n */\nimport type { KeyboardEvent as ReactKeyboardEvent } from 'react';\n\nexport type WPModifierPart =\n\t| typeof ALT\n\t| typeof CTRL\n\t| typeof COMMAND\n\t| typeof SHIFT;\n\nexport type WPKeycodeModifier =\n\t| 'primary'\n\t| 'primaryShift'\n\t| 'primaryAlt'\n\t| 'secondary'\n\t| 'access'\n\t| 'ctrl'\n\t| 'alt'\n\t| 'ctrlShift'\n\t| 'shift'\n\t| 'shiftAlt'\n\t| 'undefined';\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n */\nexport type WPModifierHandler< T > = Record< WPKeycodeModifier, T >;\n\nexport type WPKeyHandler< T > = (\n\tcharacter: string,\n\tisApple?: () => boolean\n) => T;\n\nexport type WPEventKeyHandler = (\n\tevent: ReactKeyboardEvent< HTMLElement > | KeyboardEvent,\n\tcharacter: string,\n\tisApple?: () => boolean\n) => boolean;\n\nexport type WPModifier = ( isApple: () => boolean ) => WPModifierPart[];\n\n/**\n * Keycode for BACKSPACE key.\n */\nexport const BACKSPACE = 8;\n\n/**\n * Keycode for TAB key.\n */\nexport const TAB = 9;\n\n/**\n * Keycode for ENTER key.\n */\nexport const ENTER = 13;\n\n/**\n * Keycode for ESCAPE key.\n */\nexport const ESCAPE = 27;\n\n/**\n * Keycode for SPACE key.\n */\nexport const SPACE = 32;\n\n/**\n * Keycode for PAGEUP key.\n */\nexport const PAGEUP = 33;\n\n/**\n * Keycode for PAGEDOWN key.\n */\nexport const PAGEDOWN = 34;\n\n/**\n * Keycode for END key.\n */\nexport const END = 35;\n\n/**\n * Keycode for HOME key.\n */\nexport const HOME = 36;\n\n/**\n * Keycode for LEFT key.\n */\nexport const LEFT = 37;\n\n/**\n * Keycode for UP key.\n */\nexport const UP = 38;\n\n/**\n * Keycode for RIGHT key.\n */\nexport const RIGHT = 39;\n\n/**\n * Keycode for DOWN key.\n */\nexport const DOWN = 40;\n\n/**\n * Keycode for DELETE key.\n */\nexport const DELETE = 46;\n\n/**\n * Keycode for F10 key.\n */\nexport const F10 = 121;\n\n/**\n * Keycode for ALT key.\n */\nexport const ALT = 'alt';\n\n/**\n * Keycode for CTRL key.\n */\nexport const CTRL = 'ctrl';\n\n/**\n * Keycode for COMMAND/META key.\n */\nexport const COMMAND = 'meta';\n\n/**\n * Keycode for SHIFT key.\n */\nexport const SHIFT = 'shift';\n\n/**\n * Keycode for ZERO key.\n */\nexport const ZERO = 48;\n\nexport { isAppleOS };\n\n/**\n * Capitalise the first character of a string.\n * @param string String to capitalise.\n * @return Capitalised string.\n */\nfunction capitaliseFirstCharacter( string: string ): string {\n\treturn string.length < 2\n\t\t? string.toUpperCase()\n\t\t: string.charAt( 0 ).toUpperCase() + string.slice( 1 );\n}\n\n/**\n * Map the values of an object with a specified callback and return the result object.\n *\n * @template T The object type\n * @template R The return type of the mapping function\n *\n * @param object Object to map values of.\n * @param mapFn Mapping function to apply to each value.\n * @return Object with the same keys and transformed values.\n */\nfunction mapValues< T extends Record< string, any >, R >(\n\tobject: T,\n\tmapFn: ( value: T[ keyof T ] ) => R\n): Record< keyof T, R > {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tmapFn( value ),\n\t\t] )\n\t) as Record< keyof T, R >;\n}\n\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n */\nexport const modifiers: WPModifierHandler< WPModifier > = {\n\tprimary: ( _isApple ) => ( _isApple() ? [ COMMAND ] : [ CTRL ] ),\n\tprimaryShift: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, COMMAND ] : [ CTRL, SHIFT ],\n\tprimaryAlt: ( _isApple ) =>\n\t\t_isApple() ? [ ALT, COMMAND ] : [ CTRL, ALT ],\n\tsecondary: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, ALT, COMMAND ] : [ CTRL, SHIFT, ALT ],\n\taccess: ( _isApple ) => ( _isApple() ? [ CTRL, ALT ] : [ SHIFT, ALT ] ),\n\tctrl: () => [ CTRL ],\n\talt: () => [ ALT ],\n\tctrlShift: () => [ CTRL, SHIFT ],\n\tshift: () => [ SHIFT ],\n\tshiftAlt: () => [ SHIFT, ALT ],\n\tundefined: () => [],\n};\n\n/**\n * An object that contains functions to get raw shortcuts.\n *\n * These are intended for user with the KeyboardShortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * rawShortcut.primary( 'm' )\n * // \"meta+m\"\"\n * ```\n */\nexport const rawShortcut: WPModifierHandler< WPKeyHandler< string > > =\n\t/* @__PURE__ */\n\tmapValues( modifiers, ( modifier: WPModifier ) => {\n\t\treturn ( character: string, _isApple = isAppleOS ) => {\n\t\t\treturn [ ...modifier( _isApple ), character.toLowerCase() ].join(\n\t\t\t\t'+'\n\t\t\t);\n\t\t};\n\t} );\n\n/**\n * Return an array of the parts of a keyboard shortcut chord for display.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcutList.primary( 'm' );\n * // [ \"⌘\", \"M\" ]\n * ```\n *\n * Keyed map of functions to shortcut sequences.\n */\nexport const displayShortcutList: WPModifierHandler<\n\tWPKeyHandler< string[] >\n> =\n\t/* @__PURE__ */\n\tmapValues(\n\t\tmodifiers,\n\t\t( modifier: WPModifier ): WPKeyHandler< string[] > => {\n\t\t\treturn ( character: string, _isApple = isAppleOS ) => {\n\t\t\t\tconst isApple = _isApple();\n\t\t\t\tconst replacementKeyMap = {\n\t\t\t\t\t[ ALT ]: isApple ? '⌥' : 'Alt',\n\t\t\t\t\t[ CTRL ]: isApple ? '⌃' : 'Ctrl', // Make sure ⌃ is the U+2303 UP ARROWHEAD unicode character and not the caret character.\n\t\t\t\t\t[ COMMAND ]: '⌘',\n\t\t\t\t\t[ SHIFT ]: isApple ? '⇧' : 'Shift',\n\t\t\t\t};\n\n\t\t\t\tconst modifierKeys = modifier( _isApple ).reduce< string[] >(\n\t\t\t\t\t( accumulator, key ) => {\n\t\t\t\t\t\tconst replacementKey = replacementKeyMap[ key ] ?? key;\n\t\t\t\t\t\t// If on the Mac, adhere to platform convention and don't show plus between keys.\n\t\t\t\t\t\tif ( isApple ) {\n\t\t\t\t\t\t\treturn [ ...accumulator, replacementKey ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [ ...accumulator, replacementKey, '+' ];\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\n\t\t\t\treturn [\n\t\t\t\t\t...modifierKeys,\n\t\t\t\t\tcapitaliseFirstCharacter( character ),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t);\n\n/**\n * An object that contains functions to display shortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcut.primary( 'm' );\n * // \"⌘M\"\n * ```\n *\n * Keyed map of functions to display shortcuts.\n */\nexport const displayShortcut: WPModifierHandler< WPKeyHandler< string > > =\n\t/* @__PURE__ */\n\tmapValues(\n\t\tdisplayShortcutList,\n\t\t( shortcutList: WPKeyHandler< string[] > ): WPKeyHandler< string > => {\n\t\t\treturn ( character: string, _isApple = isAppleOS ) =>\n\t\t\t\tshortcutList( character, _isApple ).join( '' );\n\t\t}\n\t);\n\n/**\n * An object that contains functions to return an aria label for a keyboard\n * shortcut.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * shortcutAriaLabel.primary( '.' );\n * // \"Command + Period\"\n * ```\n *\n * Keyed map of functions to shortcut ARIA labels.\n */\nexport const shortcutAriaLabel: WPModifierHandler< WPKeyHandler< string > > =\n\t/* @__PURE__ */\n\tmapValues( modifiers, ( modifier: WPModifier ): WPKeyHandler< string > => {\n\t\treturn ( character: string, _isApple = isAppleOS ) => {\n\t\t\tconst isApple = _isApple();\n\t\t\tconst replacementKeyMap: Record< string, string > = {\n\t\t\t\t[ SHIFT ]: 'Shift',\n\t\t\t\t[ COMMAND ]: isApple ? 'Command' : 'Control',\n\t\t\t\t[ CTRL ]: 'Control',\n\t\t\t\t[ ALT ]: isApple ? 'Option' : 'Alt',\n\t\t\t\t/* translators: comma as in the character ',' */\n\t\t\t\t',': __( 'Comma' ),\n\t\t\t\t/* translators: period as in the character '.' */\n\t\t\t\t'.': __( 'Period' ),\n\t\t\t\t/* translators: backtick as in the character '`' */\n\t\t\t\t'`': __( 'Backtick' ),\n\t\t\t\t/* translators: tilde as in the character '~' */\n\t\t\t\t'~': __( 'Tilde' ),\n\t\t\t};\n\n\t\t\treturn [ ...modifier( _isApple ), character ]\n\t\t\t\t.map( ( key ) =>\n\t\t\t\t\tcapitaliseFirstCharacter( replacementKeyMap[ key ] ?? key )\n\t\t\t\t)\n\t\t\t\t.join( isApple ? ' ' : ' + ' );\n\t\t};\n\t} );\n\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param event Keyboard event.\n *\n * @return Active modifier constants.\n */\nfunction getEventModifiers(\n\tevent: ReactKeyboardEvent< HTMLElement > | KeyboardEvent\n): WPModifierPart[] {\n\treturn ( [ ALT, CTRL, COMMAND, SHIFT ] as const ).filter(\n\t\t( key ) =>\n\t\t\t( event as KeyboardEvent )[\n\t\t\t\t`${ key }Key` as 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'\n\t\t\t]\n\t);\n}\n\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n *\n * @example\n * ```js\n * // Assuming an event for ⌘M key press:\n * isKeyboardEvent.primary( event, 'm' );\n * // true\n * ```\n *\n * Keyed map of functions to match events.\n */\nexport const isKeyboardEvent: WPModifierHandler< WPEventKeyHandler > =\n\t/* @__PURE__ */\n\tmapValues( modifiers, ( getModifiers: WPModifier ): WPEventKeyHandler => {\n\t\treturn ( event, character, _isApple = isAppleOS ) => {\n\t\t\tconst mods = getModifiers( _isApple );\n\t\t\tconst eventMods = getEventModifiers( event );\n\n\t\t\tconst replacementWithShiftKeyMap: Record< string, string > = {\n\t\t\t\tComma: ',',\n\t\t\t\tBackslash: '\\\\',\n\t\t\t\t// Windows returns `\\` for both IntlRo and IntlYen.\n\t\t\t\tIntlRo: '\\\\',\n\t\t\t\tIntlYen: '\\\\',\n\t\t\t};\n\n\t\t\tconst modsDiff = mods.filter(\n\t\t\t\t( mod ) => ! eventMods.includes( mod )\n\t\t\t);\n\t\t\tconst eventModsDiff = eventMods.filter(\n\t\t\t\t( mod ) => ! mods.includes( mod )\n\t\t\t);\n\n\t\t\tif ( modsDiff.length > 0 || eventModsDiff.length > 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key = event.key.toLowerCase();\n\n\t\t\tif ( ! character ) {\n\t\t\t\treturn mods.includes( key as WPModifierPart );\n\t\t\t}\n\n\t\t\tif ( event.altKey && character.length === 1 ) {\n\t\t\t\tkey = String.fromCharCode( event.keyCode ).toLowerCase();\n\t\t\t}\n\n\t\t\t// `event.key` returns the value of the key pressed, taking into the state of\n\t\t\t// modifier keys such as `Shift`. If the shift key is pressed, a different\n\t\t\t// value may be returned depending on the keyboard layout. It is necessary to\n\t\t\t// convert to the physical key value that don't take into account keyboard\n\t\t\t// layout or modifier key state.\n\t\t\tif (\n\t\t\t\tevent.shiftKey &&\n\t\t\t\tcharacter.length === 1 &&\n\t\t\t\treplacementWithShiftKeyMap[ event.code ]\n\t\t\t) {\n\t\t\t\tkey = replacementWithShiftKeyMap[ event.code ];\n\t\t\t}\n\n\t\t\t// For backwards compatibility.\n\t\t\tif ( character === 'del' ) {\n\t\t\t\tcharacter = 'delete';\n\t\t\t}\n\n\t\t\treturn key === character.toLowerCase();\n\t\t};\n\t} );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isAppleOS } from './platform';\n\n/**\n * External dependencies\n */\nimport type { KeyboardEvent as ReactKeyboardEvent } from 'react';\n\nexport type WPModifierPart =\n\t| typeof ALT\n\t| typeof CTRL\n\t| typeof COMMAND\n\t| typeof SHIFT;\n\nexport type WPKeycodeModifier =\n\t| 'primary'\n\t| 'primaryShift'\n\t| 'primaryAlt'\n\t| 'secondary'\n\t| 'access'\n\t| 'ctrl'\n\t| 'alt'\n\t| 'ctrlShift'\n\t| 'shift'\n\t| 'shiftAlt'\n\t| 'undefined';\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n */\nexport type WPModifierHandler< T > = Record< WPKeycodeModifier, T >;\n\nexport type WPKeyHandler< T > = (\n\tcharacter: string,\n\tisApple?: () => boolean\n) => T;\n\nexport type WPEventKeyHandler = (\n\tevent: ReactKeyboardEvent< HTMLElement > | KeyboardEvent,\n\tcharacter: string,\n\tisApple?: () => boolean\n) => boolean;\n\nexport type WPModifier = ( isApple: () => boolean ) => WPModifierPart[];\n\n/**\n * Keycode for BACKSPACE key.\n */\nexport const BACKSPACE = 8;\n\n/**\n * Keycode for TAB key.\n */\nexport const TAB = 9;\n\n/**\n * Keycode for ENTER key.\n */\nexport const ENTER = 13;\n\n/**\n * Keycode for ESCAPE key.\n */\nexport const ESCAPE = 27;\n\n/**\n * Keycode for SPACE key.\n */\nexport const SPACE = 32;\n\n/**\n * Keycode for PAGEUP key.\n */\nexport const PAGEUP = 33;\n\n/**\n * Keycode for PAGEDOWN key.\n */\nexport const PAGEDOWN = 34;\n\n/**\n * Keycode for END key.\n */\nexport const END = 35;\n\n/**\n * Keycode for HOME key.\n */\nexport const HOME = 36;\n\n/**\n * Keycode for LEFT key.\n */\nexport const LEFT = 37;\n\n/**\n * Keycode for UP key.\n */\nexport const UP = 38;\n\n/**\n * Keycode for RIGHT key.\n */\nexport const RIGHT = 39;\n\n/**\n * Keycode for DOWN key.\n */\nexport const DOWN = 40;\n\n/**\n * Keycode for DELETE key.\n */\nexport const DELETE = 46;\n\n/**\n * Keycode for F10 key.\n */\nexport const F10 = 121;\n\n/**\n * Keycode for ALT key.\n */\nexport const ALT = 'alt';\n\n/**\n * Keycode for CTRL key.\n */\nexport const CTRL = 'ctrl';\n\n/**\n * Keycode for COMMAND/META key.\n */\nexport const COMMAND = 'meta';\n\n/**\n * Keycode for SHIFT key.\n */\nexport const SHIFT = 'shift';\n\n/**\n * Keycode for ZERO key.\n */\nexport const ZERO = 48;\n\nexport { isAppleOS };\n\n/**\n * Capitalise the first character of a string.\n * @param string String to capitalise.\n * @return Capitalised string.\n */\nfunction capitaliseFirstCharacter( string: string ): string {\n\treturn string.length < 2\n\t\t? string.toUpperCase()\n\t\t: string.charAt( 0 ).toUpperCase() + string.slice( 1 );\n}\n\n/**\n * Map the values of an object with a specified callback and return the result object.\n *\n * @template T The object type\n * @template R The return type of the mapping function\n *\n * @param object Object to map values of.\n * @param mapFn Mapping function to apply to each value.\n * @return Object with the same keys and transformed values.\n */\nfunction mapValues< T extends Record< string, any >, R >(\n\tobject: T,\n\tmapFn: ( value: T[ keyof T ] ) => R\n): Record< keyof T, R > {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tmapFn( value ),\n\t\t] )\n\t) as Record< keyof T, R >;\n}\n\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n */\nexport const modifiers: WPModifierHandler< WPModifier > = {\n\tprimary: ( _isApple ) => ( _isApple() ? [ COMMAND ] : [ CTRL ] ),\n\tprimaryShift: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, COMMAND ] : [ CTRL, SHIFT ],\n\tprimaryAlt: ( _isApple ) =>\n\t\t_isApple() ? [ ALT, COMMAND ] : [ CTRL, ALT ],\n\tsecondary: ( _isApple ) =>\n\t\t_isApple() ? [ SHIFT, ALT, COMMAND ] : [ CTRL, SHIFT, ALT ],\n\taccess: ( _isApple ) => ( _isApple() ? [ CTRL, ALT ] : [ SHIFT, ALT ] ),\n\tctrl: () => [ CTRL ],\n\talt: () => [ ALT ],\n\tctrlShift: () => [ CTRL, SHIFT ],\n\tshift: () => [ SHIFT ],\n\tshiftAlt: () => [ SHIFT, ALT ],\n\tundefined: () => [],\n};\n\n/**\n * An object that contains functions to get raw shortcuts.\n *\n * These are intended for user with the KeyboardShortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * rawShortcut.primary( 'm' )\n * // \"meta+m\"\"\n * ```\n */\nexport const rawShortcut: WPModifierHandler< WPKeyHandler< string > > =\n\t/* @__PURE__ */\n\tmapValues( modifiers, ( modifier: WPModifier ) => {\n\t\treturn ( character: string, _isApple = isAppleOS ) => {\n\t\t\treturn [ ...modifier( _isApple ), character.toLowerCase() ].join(\n\t\t\t\t'+'\n\t\t\t);\n\t\t};\n\t} );\n\n/**\n * Return an array of the parts of a keyboard shortcut chord for display.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcutList.primary( 'm' );\n * // [ \"\u2318\", \"M\" ]\n * ```\n *\n * Keyed map of functions to shortcut sequences.\n */\nexport const displayShortcutList: WPModifierHandler<\n\tWPKeyHandler< string[] >\n> =\n\t/* @__PURE__ */\n\tmapValues(\n\t\tmodifiers,\n\t\t( modifier: WPModifier ): WPKeyHandler< string[] > => {\n\t\t\treturn ( character: string, _isApple = isAppleOS ) => {\n\t\t\t\tconst isApple = _isApple();\n\t\t\t\tconst replacementKeyMap = {\n\t\t\t\t\t[ ALT ]: isApple ? '\u2325' : 'Alt',\n\t\t\t\t\t[ CTRL ]: isApple ? '\u2303' : 'Ctrl', // Make sure \u2303 is the U+2303 UP ARROWHEAD unicode character and not the caret character.\n\t\t\t\t\t[ COMMAND ]: '\u2318',\n\t\t\t\t\t[ SHIFT ]: isApple ? '\u21E7' : 'Shift',\n\t\t\t\t};\n\n\t\t\t\tconst modifierKeys = modifier( _isApple ).reduce< string[] >(\n\t\t\t\t\t( accumulator, key ) => {\n\t\t\t\t\t\tconst replacementKey = replacementKeyMap[ key ] ?? key;\n\t\t\t\t\t\t// If on the Mac, adhere to platform convention and don't show plus between keys.\n\t\t\t\t\t\tif ( isApple ) {\n\t\t\t\t\t\t\treturn [ ...accumulator, replacementKey ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [ ...accumulator, replacementKey, '+' ];\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\n\t\t\t\treturn [\n\t\t\t\t\t...modifierKeys,\n\t\t\t\t\tcapitaliseFirstCharacter( character ),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t);\n\n/**\n * An object that contains functions to display shortcuts.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * displayShortcut.primary( 'm' );\n * // \"\u2318M\"\n * ```\n *\n * Keyed map of functions to display shortcuts.\n */\nexport const displayShortcut: WPModifierHandler< WPKeyHandler< string > > =\n\t/* @__PURE__ */\n\tmapValues(\n\t\tdisplayShortcutList,\n\t\t( shortcutList: WPKeyHandler< string[] > ): WPKeyHandler< string > => {\n\t\t\treturn ( character: string, _isApple = isAppleOS ) =>\n\t\t\t\tshortcutList( character, _isApple ).join( '' );\n\t\t}\n\t);\n\n/**\n * An object that contains functions to return an aria label for a keyboard\n * shortcut.\n *\n * @example\n * ```js\n * // Assuming macOS:\n * shortcutAriaLabel.primary( '.' );\n * // \"Command + Period\"\n * ```\n *\n * Keyed map of functions to shortcut ARIA labels.\n */\nexport const shortcutAriaLabel: WPModifierHandler< WPKeyHandler< string > > =\n\t/* @__PURE__ */\n\tmapValues( modifiers, ( modifier: WPModifier ): WPKeyHandler< string > => {\n\t\treturn ( character: string, _isApple = isAppleOS ) => {\n\t\t\tconst isApple = _isApple();\n\t\t\tconst replacementKeyMap: Record< string, string > = {\n\t\t\t\t[ SHIFT ]: 'Shift',\n\t\t\t\t[ COMMAND ]: isApple ? 'Command' : 'Control',\n\t\t\t\t[ CTRL ]: 'Control',\n\t\t\t\t[ ALT ]: isApple ? 'Option' : 'Alt',\n\t\t\t\t/* translators: comma as in the character ',' */\n\t\t\t\t',': __( 'Comma' ),\n\t\t\t\t/* translators: period as in the character '.' */\n\t\t\t\t'.': __( 'Period' ),\n\t\t\t\t/* translators: backtick as in the character '`' */\n\t\t\t\t'`': __( 'Backtick' ),\n\t\t\t\t/* translators: tilde as in the character '~' */\n\t\t\t\t'~': __( 'Tilde' ),\n\t\t\t};\n\n\t\t\treturn [ ...modifier( _isApple ), character ]\n\t\t\t\t.map( ( key ) =>\n\t\t\t\t\tcapitaliseFirstCharacter( replacementKeyMap[ key ] ?? key )\n\t\t\t\t)\n\t\t\t\t.join( isApple ? ' ' : ' + ' );\n\t\t};\n\t} );\n\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param event Keyboard event.\n *\n * @return Active modifier constants.\n */\nfunction getEventModifiers(\n\tevent: ReactKeyboardEvent< HTMLElement > | KeyboardEvent\n): WPModifierPart[] {\n\treturn ( [ ALT, CTRL, COMMAND, SHIFT ] as const ).filter(\n\t\t( key ) =>\n\t\t\t( event as KeyboardEvent )[\n\t\t\t\t`${ key }Key` as 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'\n\t\t\t]\n\t);\n}\n\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n *\n * @example\n * ```js\n * // Assuming an event for \u2318M key press:\n * isKeyboardEvent.primary( event, 'm' );\n * // true\n * ```\n *\n * Keyed map of functions to match events.\n */\nexport const isKeyboardEvent: WPModifierHandler< WPEventKeyHandler > =\n\t/* @__PURE__ */\n\tmapValues( modifiers, ( getModifiers: WPModifier ): WPEventKeyHandler => {\n\t\treturn ( event, character, _isApple = isAppleOS ) => {\n\t\t\tconst mods = getModifiers( _isApple );\n\t\t\tconst eventMods = getEventModifiers( event );\n\n\t\t\tconst replacementWithShiftKeyMap: Record< string, string > = {\n\t\t\t\tComma: ',',\n\t\t\t\tBackslash: '\\\\',\n\t\t\t\t// Windows returns `\\` for both IntlRo and IntlYen.\n\t\t\t\tIntlRo: '\\\\',\n\t\t\t\tIntlYen: '\\\\',\n\t\t\t};\n\n\t\t\tconst modsDiff = mods.filter(\n\t\t\t\t( mod ) => ! eventMods.includes( mod )\n\t\t\t);\n\t\t\tconst eventModsDiff = eventMods.filter(\n\t\t\t\t( mod ) => ! mods.includes( mod )\n\t\t\t);\n\n\t\t\tif ( modsDiff.length > 0 || eventModsDiff.length > 0 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key = event.key.toLowerCase();\n\n\t\t\tif ( ! character ) {\n\t\t\t\treturn mods.includes( key as WPModifierPart );\n\t\t\t}\n\n\t\t\tif ( event.altKey && character.length === 1 ) {\n\t\t\t\tkey = String.fromCharCode( event.keyCode ).toLowerCase();\n\t\t\t}\n\n\t\t\t// `event.key` returns the value of the key pressed, taking into the state of\n\t\t\t// modifier keys such as `Shift`. If the shift key is pressed, a different\n\t\t\t// value may be returned depending on the keyboard layout. It is necessary to\n\t\t\t// convert to the physical key value that don't take into account keyboard\n\t\t\t// layout or modifier key state.\n\t\t\tif (\n\t\t\t\tevent.shiftKey &&\n\t\t\t\tcharacter.length === 1 &&\n\t\t\t\treplacementWithShiftKeyMap[ event.code ]\n\t\t\t) {\n\t\t\t\tkey = replacementWithShiftKeyMap[ event.code ];\n\t\t\t}\n\n\t\t\t// For backwards compatibility.\n\t\t\tif ( character === 'del' ) {\n\t\t\t\tcharacter = 'delete';\n\t\t\t}\n\n\t\t\treturn key === character.toLowerCase();\n\t\t};\n\t} );\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/build-module/platform.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
* Return true if platform is MacOS.
|
|
3
|
-
*
|
|
4
|
-
* @param _window window object by default; used for DI testing.
|
|
5
|
-
*
|
|
6
|
-
* @return True if MacOS; false otherwise.
|
|
7
|
-
*/
|
|
8
|
-
export function isAppleOS(_window) {
|
|
1
|
+
function isAppleOS(_window) {
|
|
9
2
|
if (!_window) {
|
|
10
|
-
if (typeof window ===
|
|
3
|
+
if (typeof window === "undefined") {
|
|
11
4
|
return false;
|
|
12
5
|
}
|
|
13
6
|
_window = window;
|
|
14
7
|
}
|
|
15
|
-
const {
|
|
16
|
-
|
|
17
|
-
} = _window.navigator;
|
|
18
|
-
return platform.indexOf('Mac') !== -1 || ['iPad', 'iPhone'].includes(platform);
|
|
8
|
+
const { platform } = _window.navigator;
|
|
9
|
+
return platform.indexOf("Mac") !== -1 || ["iPad", "iPhone"].includes(platform);
|
|
19
10
|
}
|
|
20
|
-
|
|
11
|
+
export {
|
|
12
|
+
isAppleOS
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=platform.js.map
|