/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
export function selectText(node) {
if (node.select) {
node.select();
}
}
const KeyMap = {
A: 65,
ALT: 18,
B: 66,
BACKSPACE: 8,
C: 67,
CAPS_LOCK: 20,
CONTEXT_MENU: 93,
CTRL: 17,
D: 68,
DELETE: 46,
DOWN: 40,
E: 69,
EIGHT: 56,
END: 35,
ENTER: 13,
ESC: 27,
F: 70,
F1: 112,
F2: 113,
F3: 114,
F4: 115,
F5: 116,
F6: 117,
F7: 118,
F8: 119,
F9: 120,
F10: 121,
F11: 122,
F12: 123,
FIVE: 53,
FOUR: 52,
G: 71,
H: 72,
HOME: 36,
I: 73,
INSERT: 45,
J: 74,
K: 75,
L: 76,
LEFT: 37,
M: 77,
N: 78,
NINE: 57,
NUM_CENTER: 12,
NUM_DIVISION: 111,
NUM_EIGHT: 104,
NUM_FIVE: 101,
NUM_FOUR: 100,
NUM_LOCK: 144,
NUM_MINUS: 109,
NUM_MULTIPLY: 106,
NUM_NINE: 105,
NUM_ONE: 97,
NUM_PERIOD: 110,
NUM_PLUS: 107,
NUM_SEVEN: 103,
NUM_SIX: 102,
NUM_THREE: 99,
NUM_TWO: 98,
NUM_ZERO: 96,
O: 79,
ONE: 49,
P: 80,
PAGE_DOWN: 34,
PAGE_UP: 33,
PAUSE: 19,
PRINT_SCREEN: 44,
Q: 81,
R: 82,
RETURN: 13,
RIGHT: 39,
S: 83,
SEVEN: 55,
SHIFT: 16,
SIX: 54,
SPACE: 32,
T: 84,
TAB: 9,
THREE: 51,
TWO: 50,
U: 85,
UP: 38,
V: 86,
W: 87,
WIN_IME: 229,
WIN_KEY: 224,
X: 88,
Y: 89,
Z: 90,
ZERO: 48
};
const NON_MODIFYING_KEYS = [
'ALT',
'CAPS_LOCK',
'CTRL',
'DOWN',
'END',
'ESC',
'F1',
'F10',
'F11',
'F12',
'F2',
'F3',
'F4',
'F5',
'F6',
'F7',
'F8',
'F9',
'HOME',
'LEFT',
'NUM_LOCK',
'PAGE_DOWN',
'PAGE_UP',
'PAUSE',
'PRINT_SCREEN',
'RIGHT',
'SHIFT',
'SPACE',
'UP',
'WIN_KEY'
];
export function isModifyingKey(keyCode) {
return !isKeyInSet(keyCode, NON_MODIFYING_KEYS);
}
export function isKeyInSet(keyCode, array) {
let i = array.length;
let result = false;
let keyName;
let key;
while (i--) {
keyName = array[i];
key =
keyName &&
(KeyMap[keyName] || KeyMap[String(keyName).toUpperCase()]);
if (keyCode === key) {
result = true;
break;
}
}
return result;
}