mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
react app
This commit is contained in:
103
react-app/node_modules/react/lib/getEventKey.js
generated
vendored
Normal file
103
react-app/node_modules/react/lib/getEventKey.js
generated
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* Copyright 2013-2015, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*
|
||||
* @providesModule getEventKey
|
||||
* @typechecks static-only
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var getEventCharCode = require("./getEventCharCode");
|
||||
|
||||
/**
|
||||
* Normalization of deprecated HTML5 `key` values
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
|
||||
*/
|
||||
var normalizeKey = {
|
||||
'Esc': 'Escape',
|
||||
'Spacebar': ' ',
|
||||
'Left': 'ArrowLeft',
|
||||
'Up': 'ArrowUp',
|
||||
'Right': 'ArrowRight',
|
||||
'Down': 'ArrowDown',
|
||||
'Del': 'Delete',
|
||||
'Win': 'OS',
|
||||
'Menu': 'ContextMenu',
|
||||
'Apps': 'ContextMenu',
|
||||
'Scroll': 'ScrollLock',
|
||||
'MozPrintableKey': 'Unidentified'
|
||||
};
|
||||
|
||||
/**
|
||||
* Translation from legacy `keyCode` to HTML5 `key`
|
||||
* Only special keys supported, all others depend on keyboard layout or browser
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
|
||||
*/
|
||||
var translateToKey = {
|
||||
8: 'Backspace',
|
||||
9: 'Tab',
|
||||
12: 'Clear',
|
||||
13: 'Enter',
|
||||
16: 'Shift',
|
||||
17: 'Control',
|
||||
18: 'Alt',
|
||||
19: 'Pause',
|
||||
20: 'CapsLock',
|
||||
27: 'Escape',
|
||||
32: ' ',
|
||||
33: 'PageUp',
|
||||
34: 'PageDown',
|
||||
35: 'End',
|
||||
36: 'Home',
|
||||
37: 'ArrowLeft',
|
||||
38: 'ArrowUp',
|
||||
39: 'ArrowRight',
|
||||
40: 'ArrowDown',
|
||||
45: 'Insert',
|
||||
46: 'Delete',
|
||||
112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',
|
||||
118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',
|
||||
144: 'NumLock',
|
||||
145: 'ScrollLock',
|
||||
224: 'Meta'
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {object} nativeEvent Native browser event.
|
||||
* @return {string} Normalized `key` property.
|
||||
*/
|
||||
function getEventKey(nativeEvent) {
|
||||
if (nativeEvent.key) {
|
||||
// Normalize inconsistent values reported by browsers due to
|
||||
// implementations of a working draft specification.
|
||||
|
||||
// FireFox implements `key` but returns `MozPrintableKey` for all
|
||||
// printable characters (normalized to `Unidentified`), ignore it.
|
||||
var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
|
||||
if (key !== 'Unidentified') {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
||||
// Browser does not implement `key`, polyfill as much of it as we can.
|
||||
if (nativeEvent.type === 'keypress') {
|
||||
var charCode = getEventCharCode(nativeEvent);
|
||||
|
||||
// The enter-key is technically both printable and non-printable and can
|
||||
// thus be captured by `keypress`, no other non-printable key should.
|
||||
return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);
|
||||
}
|
||||
if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {
|
||||
// While user keyboard layout determines the actual meaning of each
|
||||
// `keyCode` value, almost all function keys have a universal value.
|
||||
return translateToKey[nativeEvent.keyCode] || 'Unidentified';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
module.exports = getEventKey;
|
Reference in New Issue
Block a user