react-hot-keys
Advanced tools
Comparing version 2.6.0 to 2.6.1
@@ -0,1 +1,7 @@ | ||
/*! | ||
* react-hotkeys v2.6.1 | ||
* React component to listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts. | ||
* Copyright (c) 2020 kenny wang <wowohoo@qq.com> | ||
* Licensed under the MIT license. | ||
*/ | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
@@ -10,3 +16,3 @@ if(typeof exports === 'object' && typeof module === 'object') | ||
root["ReactHotkeys"] = factory(root["React"]); | ||
})(window, function(__WEBPACK_EXTERNAL_MODULE__1__) { | ||
})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -91,7 +97,7 @@ /******/ // The module cache | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ __webpack_require__.p = "./"; | ||
/******/ | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 4); | ||
/******/ return __webpack_require__(__webpack_require__.s = 1); | ||
/******/ }) | ||
@@ -101,125 +107,142 @@ /************************************************************************/ | ||
/* 0 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/***/ (function(module, exports) { | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
if (false) { var throwOnDirectAccess, ReactIs; } else { | ||
// By explicitly using `prop-types` you are opting into new production behavior. | ||
// http://fb.me/prop-types-in-prod | ||
module.exports = __webpack_require__(2)(); | ||
} | ||
module.exports = __WEBPACK_EXTERNAL_MODULE__0__; | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports) { | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE__1__; | ||
"use strict"; | ||
// ESM COMPAT FLAG | ||
__webpack_require__.r(__webpack_exports__); | ||
/***/ }), | ||
/* 2 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
// EXPORTS | ||
__webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ src_ReactHotkeys; }); | ||
"use strict"; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js | ||
function _classCallCheck(instance, Constructor) { | ||
if (!(instance instanceof Constructor)) { | ||
throw new TypeError("Cannot call a class as a function"); | ||
} | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js | ||
function _defineProperties(target, props) { | ||
for (var i = 0; i < props.length; i++) { | ||
var descriptor = props[i]; | ||
descriptor.enumerable = descriptor.enumerable || false; | ||
descriptor.configurable = true; | ||
if ("value" in descriptor) descriptor.writable = true; | ||
Object.defineProperty(target, descriptor.key, descriptor); | ||
} | ||
} | ||
function _createClass(Constructor, protoProps, staticProps) { | ||
if (protoProps) _defineProperties(Constructor.prototype, protoProps); | ||
if (staticProps) _defineProperties(Constructor, staticProps); | ||
return Constructor; | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js | ||
function _assertThisInitialized(self) { | ||
if (self === void 0) { | ||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | ||
} | ||
var ReactPropTypesSecret = __webpack_require__(3); | ||
return self; | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js | ||
function _setPrototypeOf(o, p) { | ||
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { | ||
o.__proto__ = p; | ||
return o; | ||
}; | ||
function emptyFunction() {} | ||
return _setPrototypeOf(o, p); | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js | ||
function emptyFunctionWithReset() {} | ||
function _inherits(subClass, superClass) { | ||
if (typeof superClass !== "function" && superClass !== null) { | ||
throw new TypeError("Super expression must either be null or a function"); | ||
} | ||
emptyFunctionWithReset.resetWarningCache = emptyFunction; | ||
module.exports = function () { | ||
function shim(props, propName, componentName, location, propFullName, secret) { | ||
if (secret === ReactPropTypesSecret) { | ||
// It is still safe when called from React. | ||
return; | ||
subClass.prototype = Object.create(superClass && superClass.prototype, { | ||
constructor: { | ||
value: subClass, | ||
writable: true, | ||
configurable: true | ||
} | ||
}); | ||
if (superClass) _setPrototypeOf(subClass, superClass); | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js | ||
function _getPrototypeOf(o) { | ||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { | ||
return o.__proto__ || Object.getPrototypeOf(o); | ||
}; | ||
return _getPrototypeOf(o); | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js | ||
function _isNativeReflectConstruct() { | ||
if (typeof Reflect === "undefined" || !Reflect.construct) return false; | ||
if (Reflect.construct.sham) return false; | ||
if (typeof Proxy === "function") return true; | ||
var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); | ||
err.name = 'Invariant Violation'; | ||
throw err; | ||
try { | ||
Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); | ||
return true; | ||
} catch (e) { | ||
return false; | ||
} | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js | ||
function _typeof(obj) { | ||
"@babel/helpers - typeof"; | ||
; | ||
shim.isRequired = shim; | ||
function getShim() { | ||
return shim; | ||
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { | ||
_typeof = function _typeof(obj) { | ||
return typeof obj; | ||
}; | ||
} else { | ||
_typeof = function _typeof(obj) { | ||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
}; | ||
} | ||
; // Important! | ||
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. | ||
return _typeof(obj); | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js | ||
var ReactPropTypes = { | ||
array: shim, | ||
bool: shim, | ||
func: shim, | ||
number: shim, | ||
object: shim, | ||
string: shim, | ||
symbol: shim, | ||
any: shim, | ||
arrayOf: getShim, | ||
element: shim, | ||
elementType: shim, | ||
instanceOf: getShim, | ||
node: shim, | ||
objectOf: getShim, | ||
oneOf: getShim, | ||
oneOfType: getShim, | ||
shape: getShim, | ||
exact: getShim, | ||
checkPropTypes: emptyFunctionWithReset, | ||
resetWarningCache: emptyFunction | ||
}; | ||
ReactPropTypes.PropTypes = ReactPropTypes; | ||
return ReactPropTypes; | ||
}; | ||
/***/ }), | ||
/* 3 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
function _possibleConstructorReturn(self, call) { | ||
if (call && (_typeof(call) === "object" || typeof call === "function")) { | ||
return call; | ||
} | ||
"use strict"; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
return _assertThisInitialized(self); | ||
} | ||
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js | ||
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; | ||
module.exports = ReactPropTypesSecret; | ||
/***/ }), | ||
/* 4 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
function _createSuper(Derived) { | ||
var hasNativeReflectConstruct = _isNativeReflectConstruct(); | ||
return function _createSuperInternal() { | ||
var Super = _getPrototypeOf(Derived), | ||
result; | ||
"use strict"; | ||
// ESM COMPAT FLAG | ||
__webpack_require__.r(__webpack_exports__); | ||
if (hasNativeReflectConstruct) { | ||
var NewTarget = _getPrototypeOf(this).constructor; | ||
result = Reflect.construct(Super, arguments, NewTarget); | ||
} else { | ||
result = Super.apply(this, arguments); | ||
} | ||
// EXPORTS | ||
__webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ src_ReactHotkeys; }); | ||
return _possibleConstructorReturn(this, result); | ||
}; | ||
} | ||
// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} | ||
var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(1); | ||
var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(0); | ||
var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_); | ||
// EXTERNAL MODULE: ./node_modules/prop-types/index.js | ||
var prop_types = __webpack_require__(0); | ||
// CONCATENATED MODULE: ./node_modules/hotkeys-js/dist/hotkeys.esm.js | ||
@@ -782,3 +805,3 @@ /*! | ||
// CONCATENATED MODULE: ./src/index.tsx | ||
function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Date.prototype.toString.call(Reflect.construct(Date,[],function(){}));return true;}catch(e){return false;}}return function(){var Super=_getPrototypeOf(Derived),result;if(isNativeReflectConstruct()){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}var src_ReactHotkeys=/*#__PURE__*/function(_React$Component){_inherits(ReactHotkeys,_React$Component);var _super=_createSuper(ReactHotkeys);function ReactHotkeys(props){var _this;_classCallCheck(this,ReactHotkeys);_this=_super.call(this,props);_this.isKeyDown=false;_this.handle=void 0;_this.onKeyDown=_this.onKeyDown.bind(_assertThisInitialized(_this));_this.onKeyUp=_this.onKeyUp.bind(_assertThisInitialized(_this));_this.handleKeyUpEvent=_this.handleKeyUpEvent.bind(_assertThisInitialized(_this));_this.handle={};return _this;}_createClass(ReactHotkeys,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,filter=_this$props.filter,splitKey=_this$props.splitKey;if(filter){hotkeys_esm.filter=filter;}hotkeys_esm.unbind(this.props.keyName);hotkeys_esm(this.props.keyName,{splitKey:splitKey},this.onKeyDown);document&&document.body.addEventListener('keyup',this.handleKeyUpEvent);}},{key:"componentWillUnmount",value:function componentWillUnmount(){hotkeys_esm.unbind(this.props.keyName);this.isKeyDown=true;this.handle={};document&&document.body.removeEventListener('keyup',this.handleKeyUpEvent);}},{key:"onKeyUp",value:function onKeyUp(e,handle){var _this$props2=this.props,onKeyUp=_this$props2.onKeyUp,disabled=_this$props2.disabled;!disabled&&onKeyUp&&onKeyUp(handle.shortcut,e,handle);}},{key:"onKeyDown",value:function onKeyDown(e,handle){var _this$props3=this.props,onKeyDown=_this$props3.onKeyDown,allowRepeat=_this$props3.allowRepeat,disabled=_this$props3.disabled;if(this.isKeyDown&&!allowRepeat)return;this.isKeyDown=true;this.handle=handle;!disabled&&onKeyDown&&onKeyDown(handle.shortcut,e,handle);}},{key:"handleKeyUpEvent",value:function handleKeyUpEvent(e){if(!this.isKeyDown)return;this.isKeyDown=false;if(this.props.keyName&&this.props.keyName.indexOf(this.handle.shortcut)<0)return;this.onKeyUp(e,this.handle);this.handle={};}},{key:"render",value:function render(){return this.props.children||null;}}]);return ReactHotkeys;}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component);src_ReactHotkeys.defaultProps={filter:function filter(event){var target=event.target||event.srcElement;var tagName=target.tagName;return!(target.isContentEditable||tagName==='INPUT'||tagName==='SELECT'||tagName==='TEXTAREA');}};src_ReactHotkeys.propTypes={keyName:prop_types["string"],filter:prop_types["func"],onKeyDown:prop_types["func"],onKeyUp:prop_types["func"],disabled:prop_types["bool"],splitKey:prop_types["string"]}; | ||
var src_ReactHotkeys=/*#__PURE__*/function(_React$Component){_inherits(ReactHotkeys,_React$Component);var _super=_createSuper(ReactHotkeys);function ReactHotkeys(props){var _this;_classCallCheck(this,ReactHotkeys);_this=_super.call(this,props);_this.isKeyDown=false;_this.handle=void 0;_this.onKeyDown=_this.onKeyDown.bind(_assertThisInitialized(_this));_this.onKeyUp=_this.onKeyUp.bind(_assertThisInitialized(_this));_this.handleKeyUpEvent=_this.handleKeyUpEvent.bind(_assertThisInitialized(_this));_this.handle={};return _this;}_createClass(ReactHotkeys,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,filter=_this$props.filter,splitKey=_this$props.splitKey;if(filter){hotkeys_esm.filter=filter;}hotkeys_esm.unbind(this.props.keyName);hotkeys_esm(this.props.keyName,{splitKey:splitKey},this.onKeyDown);document&&document.body.addEventListener('keyup',this.handleKeyUpEvent);}},{key:"componentWillUnmount",value:function componentWillUnmount(){hotkeys_esm.unbind(this.props.keyName);this.isKeyDown=true;this.handle={};document&&document.body.removeEventListener('keyup',this.handleKeyUpEvent);}},{key:"onKeyUp",value:function onKeyUp(e,handle){var _this$props2=this.props,onKeyUp=_this$props2.onKeyUp,disabled=_this$props2.disabled;!disabled&&onKeyUp&&onKeyUp(handle.shortcut,e,handle);}},{key:"onKeyDown",value:function onKeyDown(e,handle){var _this$props3=this.props,onKeyDown=_this$props3.onKeyDown,allowRepeat=_this$props3.allowRepeat,disabled=_this$props3.disabled;if(this.isKeyDown&&!allowRepeat)return;this.isKeyDown=true;this.handle=handle;!disabled&&onKeyDown&&onKeyDown(handle.shortcut,e,handle);}},{key:"handleKeyUpEvent",value:function handleKeyUpEvent(e){if(!this.isKeyDown)return;this.isKeyDown=false;if(this.props.keyName&&this.props.keyName.indexOf(this.handle.shortcut)<0)return;this.onKeyUp(e,this.handle);this.handle={};}},{key:"render",value:function render(){return this.props.children||null;}}]);return ReactHotkeys;}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component);src_ReactHotkeys.defaultProps={filter:function filter(event){var target=event.target||event.srcElement;var tagName=target.tagName;return!(target.isContentEditable||tagName==='INPUT'||tagName==='SELECT'||tagName==='TEXTAREA');}}; | ||
@@ -785,0 +808,0 @@ /***/ }) |
@@ -1,783 +0,2 @@ | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(typeof exports === 'object' && typeof module === 'object') | ||
module.exports = factory(require("react")); | ||
else if(typeof define === 'function' && define.amd) | ||
define(["react"], factory); | ||
else if(typeof exports === 'object') | ||
exports["ReactHotkeys"] = factory(require("react")); | ||
else | ||
root["ReactHotkeys"] = factory(root["React"]); | ||
})(window, function(__WEBPACK_EXTERNAL_MODULE__1__) { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
/******/ | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) { | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ } | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ i: moduleId, | ||
/******/ l: false, | ||
/******/ exports: {} | ||
/******/ }; | ||
/******/ | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ | ||
/******/ // Flag the module as loaded | ||
/******/ module.l = true; | ||
/******/ | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ | ||
/******/ | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
/******/ | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/******/ | ||
/******/ // define getter function for harmony exports | ||
/******/ __webpack_require__.d = function(exports, name, getter) { | ||
/******/ if(!__webpack_require__.o(exports, name)) { | ||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); | ||
/******/ } | ||
/******/ }; | ||
/******/ | ||
/******/ // define __esModule on exports | ||
/******/ __webpack_require__.r = function(exports) { | ||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | ||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
/******/ } | ||
/******/ Object.defineProperty(exports, '__esModule', { value: true }); | ||
/******/ }; | ||
/******/ | ||
/******/ // create a fake namespace object | ||
/******/ // mode & 1: value is a module id, require it | ||
/******/ // mode & 2: merge all properties of value into the ns | ||
/******/ // mode & 4: return value when already ns object | ||
/******/ // mode & 8|1: behave like require | ||
/******/ __webpack_require__.t = function(value, mode) { | ||
/******/ if(mode & 1) value = __webpack_require__(value); | ||
/******/ if(mode & 8) return value; | ||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | ||
/******/ var ns = Object.create(null); | ||
/******/ __webpack_require__.r(ns); | ||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | ||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | ||
/******/ return ns; | ||
/******/ }; | ||
/******/ | ||
/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
/******/ __webpack_require__.n = function(module) { | ||
/******/ var getter = module && module.__esModule ? | ||
/******/ function getDefault() { return module['default']; } : | ||
/******/ function getModuleExports() { return module; }; | ||
/******/ __webpack_require__.d(getter, 'a', getter); | ||
/******/ return getter; | ||
/******/ }; | ||
/******/ | ||
/******/ // Object.prototype.hasOwnProperty.call | ||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
/******/ | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 4); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
if (false) { var throwOnDirectAccess, ReactIs; } else { | ||
// By explicitly using `prop-types` you are opting into new production behavior. | ||
// http://fb.me/prop-types-in-prod | ||
module.exports = __webpack_require__(2)(); | ||
} | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE__1__; | ||
/***/ }), | ||
/* 2 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
var ReactPropTypesSecret = __webpack_require__(3); | ||
function emptyFunction() {} | ||
function emptyFunctionWithReset() {} | ||
emptyFunctionWithReset.resetWarningCache = emptyFunction; | ||
module.exports = function () { | ||
function shim(props, propName, componentName, location, propFullName, secret) { | ||
if (secret === ReactPropTypesSecret) { | ||
// It is still safe when called from React. | ||
return; | ||
} | ||
var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); | ||
err.name = 'Invariant Violation'; | ||
throw err; | ||
} | ||
; | ||
shim.isRequired = shim; | ||
function getShim() { | ||
return shim; | ||
} | ||
; // Important! | ||
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. | ||
var ReactPropTypes = { | ||
array: shim, | ||
bool: shim, | ||
func: shim, | ||
number: shim, | ||
object: shim, | ||
string: shim, | ||
symbol: shim, | ||
any: shim, | ||
arrayOf: getShim, | ||
element: shim, | ||
elementType: shim, | ||
instanceOf: getShim, | ||
node: shim, | ||
objectOf: getShim, | ||
oneOf: getShim, | ||
oneOfType: getShim, | ||
shape: getShim, | ||
exact: getShim, | ||
checkPropTypes: emptyFunctionWithReset, | ||
resetWarningCache: emptyFunction | ||
}; | ||
ReactPropTypes.PropTypes = ReactPropTypes; | ||
return ReactPropTypes; | ||
}; | ||
/***/ }), | ||
/* 3 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; | ||
module.exports = ReactPropTypesSecret; | ||
/***/ }), | ||
/* 4 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
// ESM COMPAT FLAG | ||
__webpack_require__.r(__webpack_exports__); | ||
// EXPORTS | ||
__webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ src_ReactHotkeys; }); | ||
// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} | ||
var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(1); | ||
var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_); | ||
// EXTERNAL MODULE: ./node_modules/prop-types/index.js | ||
var prop_types = __webpack_require__(0); | ||
// CONCATENATED MODULE: ./node_modules/hotkeys-js/dist/hotkeys.esm.js | ||
/*! | ||
* hotkeys-js v3.8.1 | ||
* A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies. | ||
* | ||
* Copyright (c) 2020 kenny wong <wowohoo@qq.com> | ||
* http://jaywcjlove.github.io/hotkeys | ||
* | ||
* Licensed under the MIT license. | ||
*/ | ||
var isff = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase().indexOf('firefox') > 0 : false; // 绑定事件 | ||
function addEvent(object, event, method) { | ||
if (object.addEventListener) { | ||
object.addEventListener(event, method, false); | ||
} else if (object.attachEvent) { | ||
object.attachEvent("on".concat(event), function () { | ||
method(window.event); | ||
}); | ||
} | ||
} // 修饰键转换成对应的键码 | ||
function getMods(modifier, key) { | ||
var mods = key.slice(0, key.length - 1); | ||
for (var i = 0; i < mods.length; i++) { | ||
mods[i] = modifier[mods[i].toLowerCase()]; | ||
} | ||
return mods; | ||
} // 处理传的key字符串转换成数组 | ||
function getKeys(key) { | ||
if (typeof key !== 'string') key = ''; | ||
key = key.replace(/\s/g, ''); // 匹配任何空白字符,包括空格、制表符、换页符等等 | ||
var keys = key.split(','); // 同时设置多个快捷键,以','分割 | ||
var index = keys.lastIndexOf(''); // 快捷键可能包含',',需特殊处理 | ||
for (; index >= 0;) { | ||
keys[index - 1] += ','; | ||
keys.splice(index, 1); | ||
index = keys.lastIndexOf(''); | ||
} | ||
return keys; | ||
} // 比较修饰键的数组 | ||
function compareArray(a1, a2) { | ||
var arr1 = a1.length >= a2.length ? a1 : a2; | ||
var arr2 = a1.length >= a2.length ? a2 : a1; | ||
var isIndex = true; | ||
for (var i = 0; i < arr1.length; i++) { | ||
if (arr2.indexOf(arr1[i]) === -1) isIndex = false; | ||
} | ||
return isIndex; | ||
} | ||
var _keyMap = { | ||
backspace: 8, | ||
tab: 9, | ||
clear: 12, | ||
enter: 13, | ||
return: 13, | ||
esc: 27, | ||
escape: 27, | ||
space: 32, | ||
left: 37, | ||
up: 38, | ||
right: 39, | ||
down: 40, | ||
del: 46, | ||
delete: 46, | ||
ins: 45, | ||
insert: 45, | ||
home: 36, | ||
end: 35, | ||
pageup: 33, | ||
pagedown: 34, | ||
capslock: 20, | ||
'⇪': 20, | ||
',': 188, | ||
'.': 190, | ||
'/': 191, | ||
'`': 192, | ||
'-': isff ? 173 : 189, | ||
'=': isff ? 61 : 187, | ||
';': isff ? 59 : 186, | ||
'\'': 222, | ||
'[': 219, | ||
']': 221, | ||
'\\': 220 | ||
}; // Modifier Keys | ||
var _modifier = { | ||
// shiftKey | ||
'⇧': 16, | ||
shift: 16, | ||
// altKey | ||
'⌥': 18, | ||
alt: 18, | ||
option: 18, | ||
// ctrlKey | ||
'⌃': 17, | ||
ctrl: 17, | ||
control: 17, | ||
// metaKey | ||
'⌘': 91, | ||
cmd: 91, | ||
command: 91 | ||
}; | ||
var modifierMap = { | ||
16: 'shiftKey', | ||
18: 'altKey', | ||
17: 'ctrlKey', | ||
91: 'metaKey', | ||
shiftKey: 16, | ||
ctrlKey: 17, | ||
altKey: 18, | ||
metaKey: 91 | ||
}; | ||
var _mods = { | ||
16: false, | ||
18: false, | ||
17: false, | ||
91: false | ||
}; | ||
var _handlers = {}; // F1~F12 special key | ||
for (var k = 1; k < 20; k++) { | ||
_keyMap["f".concat(k)] = 111 + k; | ||
} | ||
var _downKeys = []; // 记录摁下的绑定键 | ||
var _scope = 'all'; // 默认热键范围 | ||
var elementHasBindEvent = []; // 已绑定事件的节点记录 | ||
// 返回键码 | ||
var code = function code(x) { | ||
return _keyMap[x.toLowerCase()] || _modifier[x.toLowerCase()] || x.toUpperCase().charCodeAt(0); | ||
}; // 设置获取当前范围(默认为'所有') | ||
function setScope(scope) { | ||
_scope = scope || 'all'; | ||
} // 获取当前范围 | ||
function getScope() { | ||
return _scope || 'all'; | ||
} // 获取摁下绑定键的键值 | ||
function getPressedKeyCodes() { | ||
return _downKeys.slice(0); | ||
} // 表单控件控件判断 返回 Boolean | ||
// hotkey is effective only when filter return true | ||
function hotkeys_esm_filter(event) { | ||
var target = event.target || event.srcElement; | ||
var tagName = target.tagName; | ||
var flag = true; // ignore: isContentEditable === 'true', <input> and <textarea> when readOnly state is false, <select> | ||
if (target.isContentEditable || (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') && !target.readOnly) { | ||
flag = false; | ||
} | ||
return flag; | ||
} // 判断摁下的键是否为某个键,返回true或者false | ||
function isPressed(keyCode) { | ||
if (typeof keyCode === 'string') { | ||
keyCode = code(keyCode); // 转换成键码 | ||
} | ||
return _downKeys.indexOf(keyCode) !== -1; | ||
} // 循环删除handlers中的所有 scope(范围) | ||
function deleteScope(scope, newScope) { | ||
var handlers; | ||
var i; // 没有指定scope,获取scope | ||
if (!scope) scope = getScope(); | ||
for (var key in _handlers) { | ||
if (Object.prototype.hasOwnProperty.call(_handlers, key)) { | ||
handlers = _handlers[key]; | ||
for (i = 0; i < handlers.length;) { | ||
if (handlers[i].scope === scope) handlers.splice(i, 1);else i++; | ||
} | ||
} | ||
} // 如果scope被删除,将scope重置为all | ||
if (getScope() === scope) setScope(newScope || 'all'); | ||
} // 清除修饰键 | ||
function clearModifier(event) { | ||
var key = event.keyCode || event.which || event.charCode; | ||
var i = _downKeys.indexOf(key); // 从列表中清除按压过的键 | ||
if (i >= 0) { | ||
_downKeys.splice(i, 1); | ||
} // 特殊处理 cmmand 键,在 cmmand 组合快捷键 keyup 只执行一次的问题 | ||
if (event.key && event.key.toLowerCase() === 'meta') { | ||
_downKeys.splice(0, _downKeys.length); | ||
} // 修饰键 shiftKey altKey ctrlKey (command||metaKey) 清除 | ||
if (key === 93 || key === 224) key = 91; | ||
if (key in _mods) { | ||
_mods[key] = false; // 将修饰键重置为false | ||
for (var k in _modifier) { | ||
if (_modifier[k] === key) hotkeys[k] = false; | ||
} | ||
} | ||
} | ||
function unbind(keysInfo) { | ||
// unbind(), unbind all keys | ||
if (!keysInfo) { | ||
Object.keys(_handlers).forEach(function (key) { | ||
return delete _handlers[key]; | ||
}); | ||
} else if (Array.isArray(keysInfo)) { | ||
// support like : unbind([{key: 'ctrl+a', scope: 's1'}, {key: 'ctrl-a', scope: 's2', splitKey: '-'}]) | ||
keysInfo.forEach(function (info) { | ||
if (info.key) eachUnbind(info); | ||
}); | ||
} else if (typeof keysInfo === 'object') { | ||
// support like unbind({key: 'ctrl+a, ctrl+b', scope:'abc'}) | ||
if (keysInfo.key) eachUnbind(keysInfo); | ||
} else if (typeof keysInfo === 'string') { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} // support old method | ||
// eslint-disable-line | ||
var scope = args[0], | ||
method = args[1]; | ||
if (typeof scope === 'function') { | ||
method = scope; | ||
scope = ''; | ||
} | ||
eachUnbind({ | ||
key: keysInfo, | ||
scope: scope, | ||
method: method, | ||
splitKey: '+' | ||
}); | ||
} | ||
} // 解除绑定某个范围的快捷键 | ||
var eachUnbind = function eachUnbind(_ref) { | ||
var key = _ref.key, | ||
scope = _ref.scope, | ||
method = _ref.method, | ||
_ref$splitKey = _ref.splitKey, | ||
splitKey = _ref$splitKey === void 0 ? '+' : _ref$splitKey; | ||
var multipleKeys = getKeys(key); | ||
multipleKeys.forEach(function (originKey) { | ||
var unbindKeys = originKey.split(splitKey); | ||
var len = unbindKeys.length; | ||
var lastKey = unbindKeys[len - 1]; | ||
var keyCode = lastKey === '*' ? '*' : code(lastKey); | ||
if (!_handlers[keyCode]) return; // 判断是否传入范围,没有就获取范围 | ||
if (!scope) scope = getScope(); | ||
var mods = len > 1 ? getMods(_modifier, unbindKeys) : []; | ||
_handlers[keyCode] = _handlers[keyCode].map(function (record) { | ||
// 通过函数判断,是否解除绑定,函数相等直接返回 | ||
var isMatchingMethod = method ? record.method === method : true; | ||
if (isMatchingMethod && record.scope === scope && compareArray(record.mods, mods)) { | ||
return {}; | ||
} | ||
return record; | ||
}); | ||
}); | ||
}; // 对监听对应快捷键的回调函数进行处理 | ||
function eventHandler(event, handler, scope) { | ||
var modifiersMatch; // 看它是否在当前范围 | ||
if (handler.scope === scope || handler.scope === 'all') { | ||
// 检查是否匹配修饰符(如果有返回true) | ||
modifiersMatch = handler.mods.length > 0; | ||
for (var y in _mods) { | ||
if (Object.prototype.hasOwnProperty.call(_mods, y)) { | ||
if (!_mods[y] && handler.mods.indexOf(+y) > -1 || _mods[y] && handler.mods.indexOf(+y) === -1) { | ||
modifiersMatch = false; | ||
} | ||
} | ||
} // 调用处理程序,如果是修饰键不做处理 | ||
if (handler.mods.length === 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91] || modifiersMatch || handler.shortcut === '*') { | ||
if (handler.method(event, handler) === false) { | ||
if (event.preventDefault) event.preventDefault();else event.returnValue = false; | ||
if (event.stopPropagation) event.stopPropagation(); | ||
if (event.cancelBubble) event.cancelBubble = true; | ||
} | ||
} | ||
} | ||
} // 处理keydown事件 | ||
function dispatch(event) { | ||
var asterisk = _handlers['*']; | ||
var key = event.keyCode || event.which || event.charCode; // 表单控件过滤 默认表单控件不触发快捷键 | ||
if (!hotkeys.filter.call(this, event)) return; // Gecko(Firefox)的command键值224,在Webkit(Chrome)中保持一致 | ||
// Webkit左右 command 键值不一样 | ||
if (key === 93 || key === 224) key = 91; | ||
/** | ||
* Collect bound keys | ||
* If an Input Method Editor is processing key input and the event is keydown, return 229. | ||
* https://stackoverflow.com/questions/25043934/is-it-ok-to-ignore-keydown-events-with-keycode-229 | ||
* http://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html | ||
*/ | ||
if (_downKeys.indexOf(key) === -1 && key !== 229) _downKeys.push(key); | ||
/** | ||
* Jest test cases are required. | ||
* =============================== | ||
*/ | ||
['ctrlKey', 'altKey', 'shiftKey', 'metaKey'].forEach(function (keyName) { | ||
var keyNum = modifierMap[keyName]; | ||
if (event[keyName] && _downKeys.indexOf(keyNum) === -1) { | ||
_downKeys.push(keyNum); | ||
} else if (!event[keyName] && _downKeys.indexOf(keyNum) > -1) { | ||
_downKeys.splice(_downKeys.indexOf(keyNum), 1); | ||
} else if (keyName === 'metaKey' && event[keyName] && _downKeys.length === 3) { | ||
/** | ||
* Fix if Command is pressed: | ||
* =============================== | ||
*/ | ||
if (!(event.ctrlKey || event.shiftKey || event.altKey)) { | ||
_downKeys = _downKeys.slice(_downKeys.indexOf(keyNum)); | ||
} | ||
} | ||
}); | ||
/** | ||
* ------------------------------- | ||
*/ | ||
if (key in _mods) { | ||
_mods[key] = true; // 将特殊字符的key注册到 hotkeys 上 | ||
for (var k in _modifier) { | ||
if (_modifier[k] === key) hotkeys[k] = true; | ||
} | ||
if (!asterisk) return; | ||
} // 将 modifierMap 里面的修饰键绑定到 event 中 | ||
for (var e in _mods) { | ||
if (Object.prototype.hasOwnProperty.call(_mods, e)) { | ||
_mods[e] = event[modifierMap[e]]; | ||
} | ||
} | ||
/** | ||
* https://github.com/jaywcjlove/hotkeys/pull/129 | ||
* This solves the issue in Firefox on Windows where hotkeys corresponding to special characters would not trigger. | ||
* An example of this is ctrl+alt+m on a Swedish keyboard which is used to type μ. | ||
* Browser support: https://caniuse.com/#feat=keyboardevent-getmodifierstate | ||
*/ | ||
if (event.getModifierState && !(event.altKey && !event.ctrlKey) && event.getModifierState('AltGraph')) { | ||
if (_downKeys.indexOf(17) === -1) { | ||
_downKeys.push(17); | ||
} | ||
if (_downKeys.indexOf(18) === -1) { | ||
_downKeys.push(18); | ||
} | ||
_mods[17] = true; | ||
_mods[18] = true; | ||
} // 获取范围 默认为 `all` | ||
var scope = getScope(); // 对任何快捷键都需要做的处理 | ||
if (asterisk) { | ||
for (var i = 0; i < asterisk.length; i++) { | ||
if (asterisk[i].scope === scope && (event.type === 'keydown' && asterisk[i].keydown || event.type === 'keyup' && asterisk[i].keyup)) { | ||
eventHandler(event, asterisk[i], scope); | ||
} | ||
} | ||
} // key 不在 _handlers 中返回 | ||
if (!(key in _handlers)) return; | ||
for (var _i = 0; _i < _handlers[key].length; _i++) { | ||
if (event.type === 'keydown' && _handlers[key][_i].keydown || event.type === 'keyup' && _handlers[key][_i].keyup) { | ||
if (_handlers[key][_i].key) { | ||
var record = _handlers[key][_i]; | ||
var splitKey = record.splitKey; | ||
var keyShortcut = record.key.split(splitKey); | ||
var _downKeysCurrent = []; // 记录当前按键键值 | ||
for (var a = 0; a < keyShortcut.length; a++) { | ||
_downKeysCurrent.push(code(keyShortcut[a])); | ||
} | ||
if (_downKeysCurrent.sort().join('') === _downKeys.sort().join('')) { | ||
// 找到处理内容 | ||
eventHandler(event, record, scope); | ||
} | ||
} | ||
} | ||
} | ||
} // 判断 element 是否已经绑定事件 | ||
function isElementBind(element) { | ||
return elementHasBindEvent.indexOf(element) > -1; | ||
} | ||
function hotkeys(key, option, method) { | ||
_downKeys = []; | ||
var keys = getKeys(key); // 需要处理的快捷键列表 | ||
var mods = []; | ||
var scope = 'all'; // scope默认为all,所有范围都有效 | ||
var element = document; // 快捷键事件绑定节点 | ||
var i = 0; | ||
var keyup = false; | ||
var keydown = true; | ||
var splitKey = '+'; // 对为设定范围的判断 | ||
if (method === undefined && typeof option === 'function') { | ||
method = option; | ||
} | ||
if (Object.prototype.toString.call(option) === '[object Object]') { | ||
if (option.scope) scope = option.scope; // eslint-disable-line | ||
if (option.element) element = option.element; // eslint-disable-line | ||
if (option.keyup) keyup = option.keyup; // eslint-disable-line | ||
if (option.keydown !== undefined) keydown = option.keydown; // eslint-disable-line | ||
if (typeof option.splitKey === 'string') splitKey = option.splitKey; // eslint-disable-line | ||
} | ||
if (typeof option === 'string') scope = option; // 对于每个快捷键进行处理 | ||
for (; i < keys.length; i++) { | ||
key = keys[i].split(splitKey); // 按键列表 | ||
mods = []; // 如果是组合快捷键取得组合快捷键 | ||
if (key.length > 1) mods = getMods(_modifier, key); // 将非修饰键转化为键码 | ||
key = key[key.length - 1]; | ||
key = key === '*' ? '*' : code(key); // *表示匹配所有快捷键 | ||
// 判断key是否在_handlers中,不在就赋一个空数组 | ||
if (!(key in _handlers)) _handlers[key] = []; | ||
_handlers[key].push({ | ||
keyup: keyup, | ||
keydown: keydown, | ||
scope: scope, | ||
mods: mods, | ||
shortcut: keys[i], | ||
method: method, | ||
key: keys[i], | ||
splitKey: splitKey | ||
}); | ||
} // 在全局document上设置快捷键 | ||
if (typeof element !== 'undefined' && !isElementBind(element) && window) { | ||
elementHasBindEvent.push(element); | ||
addEvent(element, 'keydown', function (e) { | ||
dispatch(e); | ||
}); | ||
addEvent(window, 'focus', function () { | ||
_downKeys = []; | ||
}); | ||
addEvent(element, 'keyup', function (e) { | ||
dispatch(e); | ||
clearModifier(e); | ||
}); | ||
} | ||
} | ||
var _api = { | ||
setScope: setScope, | ||
getScope: getScope, | ||
deleteScope: deleteScope, | ||
getPressedKeyCodes: getPressedKeyCodes, | ||
isPressed: isPressed, | ||
filter: hotkeys_esm_filter, | ||
unbind: unbind | ||
}; | ||
for (var a in _api) { | ||
if (Object.prototype.hasOwnProperty.call(_api, a)) { | ||
hotkeys[a] = _api[a]; | ||
} | ||
} | ||
if (typeof window !== 'undefined') { | ||
var _hotkeys = window.hotkeys; | ||
hotkeys.noConflict = function (deep) { | ||
if (deep && window.hotkeys === hotkeys) { | ||
window.hotkeys = _hotkeys; | ||
} | ||
return hotkeys; | ||
}; | ||
window.hotkeys = hotkeys; | ||
} | ||
/* harmony default export */ var hotkeys_esm = (hotkeys); | ||
// CONCATENATED MODULE: ./src/index.tsx | ||
function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Date.prototype.toString.call(Reflect.construct(Date,[],function(){}));return true;}catch(e){return false;}}return function(){var Super=_getPrototypeOf(Derived),result;if(isNativeReflectConstruct()){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}var src_ReactHotkeys=/*#__PURE__*/function(_React$Component){_inherits(ReactHotkeys,_React$Component);var _super=_createSuper(ReactHotkeys);function ReactHotkeys(props){var _this;_classCallCheck(this,ReactHotkeys);_this=_super.call(this,props);_this.isKeyDown=false;_this.handle=void 0;_this.onKeyDown=_this.onKeyDown.bind(_assertThisInitialized(_this));_this.onKeyUp=_this.onKeyUp.bind(_assertThisInitialized(_this));_this.handleKeyUpEvent=_this.handleKeyUpEvent.bind(_assertThisInitialized(_this));_this.handle={};return _this;}_createClass(ReactHotkeys,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,filter=_this$props.filter,splitKey=_this$props.splitKey;if(filter){hotkeys_esm.filter=filter;}hotkeys_esm.unbind(this.props.keyName);hotkeys_esm(this.props.keyName,{splitKey:splitKey},this.onKeyDown);document&&document.body.addEventListener('keyup',this.handleKeyUpEvent);}},{key:"componentWillUnmount",value:function componentWillUnmount(){hotkeys_esm.unbind(this.props.keyName);this.isKeyDown=true;this.handle={};document&&document.body.removeEventListener('keyup',this.handleKeyUpEvent);}},{key:"onKeyUp",value:function onKeyUp(e,handle){var _this$props2=this.props,onKeyUp=_this$props2.onKeyUp,disabled=_this$props2.disabled;!disabled&&onKeyUp&&onKeyUp(handle.shortcut,e,handle);}},{key:"onKeyDown",value:function onKeyDown(e,handle){var _this$props3=this.props,onKeyDown=_this$props3.onKeyDown,allowRepeat=_this$props3.allowRepeat,disabled=_this$props3.disabled;if(this.isKeyDown&&!allowRepeat)return;this.isKeyDown=true;this.handle=handle;!disabled&&onKeyDown&&onKeyDown(handle.shortcut,e,handle);}},{key:"handleKeyUpEvent",value:function handleKeyUpEvent(e){if(!this.isKeyDown)return;this.isKeyDown=false;if(this.props.keyName&&this.props.keyName.indexOf(this.handle.shortcut)<0)return;this.onKeyUp(e,this.handle);this.handle={};}},{key:"render",value:function render(){return this.props.children||null;}}]);return ReactHotkeys;}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component);src_ReactHotkeys.defaultProps={filter:function filter(event){var target=event.target||event.srcElement;var tagName=target.tagName;return!(target.isContentEditable||tagName==='INPUT'||tagName==='SELECT'||tagName==='TEXTAREA');}};src_ReactHotkeys.propTypes={keyName:prop_types["string"],filter:prop_types["func"],onKeyDown:prop_types["func"],onKeyUp:prop_types["func"],disabled:prop_types["bool"],splitKey:prop_types["string"]}; | ||
/***/ }) | ||
/******/ ]); | ||
}); | ||
/*! For license information please see react-hotkeys.min.js.LICENSE.txt */ | ||
!function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("react")):"function"===typeof define&&define.amd?define(["react"],t):"object"===typeof exports?exports.ReactHotkeys=t(require("react")):e.ReactHotkeys=t(e.React)}(window,(function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="./",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){"use strict";function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){return(f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){return!t||"object"!==f(t)&&"function"!==typeof t?r(e):t}function u(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=c(e);if(t){var r=c(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return a(this,n)}}n.r(t),n.d(t,"default",(function(){return A}));var l=n(0),s=n.n(l),p="undefined"!==typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function y(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function d(e,t){for(var n=t.slice(0,t.length-1),o=0;o<n.length;o++)n[o]=e[n[o].toLowerCase()];return n}function h(e){"string"!==typeof e&&(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var v={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,"\u21ea":20,",":188,".":190,"/":191,"`":192,"-":p?173:189,"=":p?61:187,";":p?59:186,"'":222,"[":219,"]":221,"\\":220},b={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},m={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},w={16:!1,18:!1,17:!1,91:!1},g={},k=1;k<20;k++)v["f".concat(k)]=111+k;var K=[],O="all",x=[],E=function(e){return v[e.toLowerCase()]||b[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function j(e){O=e||"all"}function P(){return O||"all"}var S=function(e){var t=e.key,n=e.scope,o=e.method,r=e.splitKey,i=void 0===r?"+":r;h(t).forEach((function(e){var t=e.split(i),r=t.length,c=t[r-1],f="*"===c?"*":E(c);if(g[f]){n||(n=P());var a=r>1?d(b,t):[];g[f]=g[f].map((function(e){return(!o||e.method===o)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,o=e.length>=t.length?t:e,r=!0,i=0;i<n.length;i++)-1===o.indexOf(n[i])&&(r=!1);return r}(e.mods,a)?{}:e}))}}))};function C(e,t,n){var o;if(t.scope===n||"all"===t.scope){for(var r in o=t.mods.length>0,w)Object.prototype.hasOwnProperty.call(w,r)&&(!w[r]&&t.mods.indexOf(+r)>-1||w[r]&&-1===t.mods.indexOf(+r))&&(o=!1);(0!==t.mods.length||w[16]||w[18]||w[17]||w[91])&&!o&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function D(e){var t=g["*"],n=e.keyCode||e.which||e.charCode;if(U.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===K.indexOf(n)&&229!==n&&K.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=m[t];e[t]&&-1===K.indexOf(n)?K.push(n):!e[t]&&K.indexOf(n)>-1?K.splice(K.indexOf(n),1):"metaKey"===t&&e[t]&&3===K.length&&(e.ctrlKey||e.shiftKey||e.altKey||(K=K.slice(K.indexOf(n))))})),n in w){for(var o in w[n]=!0,b)b[o]===n&&(U[o]=!0);if(!t)return}for(var r in w)Object.prototype.hasOwnProperty.call(w,r)&&(w[r]=e[m[r]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===K.indexOf(17)&&K.push(17),-1===K.indexOf(18)&&K.push(18),w[17]=!0,w[18]=!0);var i=P();if(t)for(var c=0;c<t.length;c++)t[c].scope===i&&("keydown"===e.type&&t[c].keydown||"keyup"===e.type&&t[c].keyup)&&C(e,t[c],i);if(n in g)for(var f=0;f<g[n].length;f++)if(("keydown"===e.type&&g[n][f].keydown||"keyup"===e.type&&g[n][f].keyup)&&g[n][f].key){for(var a=g[n][f],u=a.splitKey,l=a.key.split(u),s=[],p=0;p<l.length;p++)s.push(E(l[p]));s.sort().join("")===K.sort().join("")&&C(e,a,i)}}}function U(e,t,n){K=[];var o=h(e),r=[],i="all",c=document,f=0,a=!1,u=!0,l="+";for(void 0===n&&"function"===typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(i=t.scope),t.element&&(c=t.element),t.keyup&&(a=t.keyup),void 0!==t.keydown&&(u=t.keydown),"string"===typeof t.splitKey&&(l=t.splitKey)),"string"===typeof t&&(i=t);f<o.length;f++)r=[],(e=o[f].split(l)).length>1&&(r=d(b,e)),(e="*"===(e=e[e.length-1])?"*":E(e))in g||(g[e]=[]),g[e].push({keyup:a,keydown:u,scope:i,mods:r,shortcut:o[f],method:n,key:o[f],splitKey:l});"undefined"!==typeof c&&!function(e){return x.indexOf(e)>-1}(c)&&window&&(x.push(c),y(c,"keydown",(function(e){D(e)})),y(window,"focus",(function(){K=[]})),y(c,"keyup",(function(e){D(e),function(e){var t=e.keyCode||e.which||e.charCode,n=K.indexOf(t);if(n>=0&&K.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&K.splice(0,K.length),93!==t&&224!==t||(t=91),t in w)for(var o in w[t]=!1,b)b[o]===t&&(U[o]=!1)}(e)})))}var _={setScope:j,getScope:P,deleteScope:function(e,t){var n,o;for(var r in e||(e=P()),g)if(Object.prototype.hasOwnProperty.call(g,r))for(n=g[r],o=0;o<n.length;)n[o].scope===e?n.splice(o,1):o++;P()===e&&j(t||"all")},getPressedKeyCodes:function(){return K.slice(0)},isPressed:function(e){return"string"===typeof e&&(e=E(e)),-1!==K.indexOf(e)},filter:function(e){var t=e.target||e.srcElement,n=t.tagName,o=!0;return!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly)||(o=!1),o},unbind:function(e){if(e){if(Array.isArray(e))e.forEach((function(e){e.key&&S(e)}));else if("object"===typeof e)e.key&&S(e);else if("string"===typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var r=n[0],i=n[1];"function"===typeof r&&(i=r,r=""),S({key:e,scope:r,method:i,splitKey:"+"})}}else Object.keys(g).forEach((function(e){return delete g[e]}))}};for(var R in _)Object.prototype.hasOwnProperty.call(_,R)&&(U[R]=_[R]);if("undefined"!==typeof window){var T=window.hotkeys;U.noConflict=function(e){return e&&window.hotkeys===U&&(window.hotkeys=T),U},window.hotkeys=U}var L=U,A=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}(a,e);var t,n,c,f=u(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=f.call(this,e)).isKeyDown=!1,t.handle=void 0,t.onKeyDown=t.onKeyDown.bind(r(t)),t.onKeyUp=t.onKeyUp.bind(r(t)),t.handleKeyUpEvent=t.handleKeyUpEvent.bind(r(t)),t.handle={},t}return t=a,(n=[{key:"componentDidMount",value:function(){var e=this.props,t=e.filter,n=e.splitKey;t&&(L.filter=t),L.unbind(this.props.keyName),L(this.props.keyName,{splitKey:n},this.onKeyDown),document&&document.body.addEventListener("keyup",this.handleKeyUpEvent)}},{key:"componentWillUnmount",value:function(){L.unbind(this.props.keyName),this.isKeyDown=!0,this.handle={},document&&document.body.removeEventListener("keyup",this.handleKeyUpEvent)}},{key:"onKeyUp",value:function(e,t){var n=this.props,o=n.onKeyUp;!n.disabled&&o&&o(t.shortcut,e,t)}},{key:"onKeyDown",value:function(e,t){var n=this.props,o=n.onKeyDown,r=n.allowRepeat,i=n.disabled;this.isKeyDown&&!r||(this.isKeyDown=!0,this.handle=t,!i&&o&&o(t.shortcut,e,t))}},{key:"handleKeyUpEvent",value:function(e){this.isKeyDown&&(this.isKeyDown=!1,this.props.keyName&&this.props.keyName.indexOf(this.handle.shortcut)<0||(this.onKeyUp(e,this.handle),this.handle={}))}},{key:"render",value:function(){return this.props.children||null}}])&&o(t.prototype,n),c&&o(t,c),a}(s.a.Component);A.defaultProps={filter:function(e){var t=e.target||e.srcElement,n=t.tagName;return!(t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n)}}}])})); |
@@ -20,6 +20,4 @@ "use strict"; | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _react = _interopRequireDefault(require("react")); | ||
@@ -31,10 +29,6 @@ | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
var ReactHotkeys = /*#__PURE__*/function (_React$Component) { | ||
(0, _inherits2.default)(ReactHotkeys, _React$Component); | ||
var _super = _createSuper(ReactHotkeys); | ||
var _super = (0, _createSuper2.default)(ReactHotkeys); | ||
@@ -41,0 +35,0 @@ function ReactHotkeys(props) { |
@@ -5,9 +5,3 @@ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck"; | ||
import _inherits from "@babel/runtime/helpers/esm/inherits"; | ||
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn"; | ||
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf"; | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
import _createSuper from "@babel/runtime/helpers/esm/createSuper"; | ||
import React from 'react'; | ||
@@ -14,0 +8,0 @@ import * as PropTypes from 'prop-types'; |
{ | ||
"name": "react-hot-keys", | ||
"version": "2.6.0", | ||
"version": "2.6.1", | ||
"description": "React component to listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts.", | ||
@@ -21,7 +21,7 @@ "author": "kenny wang <wowohoo@qq.com>", | ||
"bundle": "kkt build --bundle", | ||
"bundle:min": "GENERATE_SOURCEMAP=false kkt build --bundle --mini --no-emptyDir", | ||
"bundle:min": "kkt build --bundle --mini", | ||
"test": "tsbb test --env=jsdom", | ||
"coverage": "tsbb test --env=jsdom --coverage", | ||
"doc": "ENTRYDIR=website kkt build", | ||
"doc:dev": "ENTRYDIR=website kkt start" | ||
"doc": "kkt build --app-src ./website", | ||
"start": "kkt start --app-src ./website" | ||
}, | ||
@@ -33,3 +33,6 @@ "repository": { | ||
"eslintConfig": { | ||
"extends": "react-app" | ||
"extends": [ | ||
"react-app", | ||
"react-app/jest" | ||
] | ||
}, | ||
@@ -56,8 +59,11 @@ "files": [ | ||
"peerDependencies": { | ||
"@babel/runtime": ">=7.8.0", | ||
"react": ">=16.7.0" | ||
}, | ||
"devDependencies": { | ||
"@kkt/loader-less": "5.8.0", | ||
"@kkt/loader-raw": "5.8.0", | ||
"@types/classnames": "2.2.10", | ||
"@kkt/less-modules": "6.0.11", | ||
"@kkt/raw-modules": "6.0.11", | ||
"@kkt/react-library": "6.0.11", | ||
"@kkt/scope-plugin-options": "6.0.11", | ||
"@types/classnames": "2.2.11", | ||
"@types/react": "16.9.34", | ||
@@ -69,10 +75,9 @@ "@types/react-dom": "16.9.5", | ||
"classnames": "2.2.6", | ||
"kkt": "5.8.0", | ||
"kkt": "6.0.11", | ||
"react": "16.13.1", | ||
"react-dom": "16.13.1", | ||
"react-test-renderer": "16.13.1", | ||
"tsbb": "1.7.4" | ||
"tsbb": "1.7.9" | ||
}, | ||
"dependencies": { | ||
"@babel/runtime": "^7.8.4", | ||
"hotkeys-js": "^3.8.1", | ||
@@ -79,0 +84,0 @@ "prop-types": "^15.7.2" |
react-hotkeys | ||
--- | ||
[![Travis][build-badge]][build] [![npm package][npm-badge]][npm] [![Coveralls][coveralls-badge]][coveralls] | ||
[![Build & Deploy](https://github.com/jaywcjlove/react-hotkeys/workflows/Build%20&%20Deploy/badge.svg)](https://github.com/jaywcjlove/react-hotkeys/actions) | ||
[![Travis][build-badge]][build] [![npm package][npm-badge]]() [![Coveralls][coveralls-badge]][coveralls] | ||
@@ -6,0 +7,0 @@ [build-badge]: https://travis-ci.org/jaywcjlove/react-hotkeys.svg?branch=master "Build Badge" |
@@ -21,8 +21,10 @@ { | ||
"baseUrl": ".", | ||
"jsx": "react" | ||
"jsx": "react-jsx", | ||
"typeRoots": [ | ||
"../node_modules/@types" | ||
] | ||
}, | ||
"include": ["../src"], | ||
"typeRoots": [ | ||
"../node_modules/@types" | ||
] | ||
"include": [ | ||
"../src" | ||
], | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
16
129
68476
16
1
80
1048
1
- Removed@babel/runtime@^7.8.4