react-hotkeys-hook
Advanced tools
Comparing version 4.3.3 to 4.3.4
@@ -202,6 +202,6 @@ 'use strict'; | ||
// We check the pressed keys for compatibility with the keyup event. In keyup events the modifier flags are not set. | ||
if (alt === !altKey && alt && pressedKey !== 'alt') { | ||
if (alt === !altKey && pressedKey !== 'alt') { | ||
return false; | ||
} | ||
if (shift === !shiftKey && shift && pressedKey !== 'shift') { | ||
if (shift === !shiftKey && pressedKey !== 'shift') { | ||
return false; | ||
@@ -215,6 +215,6 @@ } | ||
} else { | ||
if (meta === !metaKey && meta && pressedKey !== 'meta') { | ||
if (meta === !metaKey && pressedKey !== 'meta') { | ||
return false; | ||
} | ||
if (ctrl === !ctrlKey && ctrl && pressedKey !== 'ctrl') { | ||
if (ctrl === !ctrlKey && pressedKey !== 'ctrl') { | ||
return false; | ||
@@ -221,0 +221,0 @@ } |
@@ -1,2 +0,2 @@ | ||
"use strict";var e=require("react"),t=require("react/jsx-runtime");function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var o=["shift","alt","meta","mod","ctrl"],r={esc:"escape",return:"enter",".":"period",",":"comma","-":"slash"," ":"space","`":"backquote","#":"backslash","+":"bracketright",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function u(e){return(r[e]||e).trim().toLowerCase().replace("key","").replace("digit","").replace("numpad","").replace("arrow","")}function i(e,t){return void 0===t&&(t=","),"string"==typeof e?e.split(t):e}function c(e,t){void 0===t&&(t="+");var r=e.toLocaleLowerCase().split(t).map((function(e){return u(e)}));return n({},{alt:r.includes("alt"),ctrl:r.includes("ctrl")||r.includes("control"),shift:r.includes("shift"),meta:r.includes("meta"),mod:r.includes("mod")},{keys:r.filter((function(e){return!o.includes(e)}))})}var a=new Set;function l(e,t){return void 0===t&&(t=","),(Array.isArray(e)?e:e.split(t)).every((function(e){return a.has(e.trim().toLowerCase())}))}function d(e){var t=Array.isArray(e)?e:[e];a.has("meta")&&a.forEach((function(e){return!function(e){return o.includes(e)}(e)&&a.delete(e.toLowerCase())})),t.forEach((function(e){return a.add(e.toLowerCase())}))}function s(e){var t=Array.isArray(e)?e:[e];"meta"===e?a.clear():t.forEach((function(e){return a.delete(e.toLowerCase())}))}function f(e,t){var n=e.target;void 0===t&&(t=!1);var o=n&&n.tagName;return t instanceof Array?Boolean(o&&t&&t.some((function(e){return e.toLowerCase()===o.toLowerCase()}))):Boolean(o&&t&&!0===t)}"undefined"!=typeof document&&(document.addEventListener("keydown",(function(e){void 0!==e.key&&d([u(e.key),u(e.code)])})),document.addEventListener("keyup",(function(e){void 0!==e.key&&s([u(e.key),u(e.code)])}))),"undefined"!=typeof window&&window.addEventListener("blur",(function(){a.clear()}));var v=e.createContext(void 0);function y(e){return t.jsx(v.Provider,{value:{addHotkey:e.addHotkey,removeHotkey:e.removeHotkey},children:e.children})}function p(e,t){return e&&t&&"object"==typeof e&&"object"==typeof t?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((function(n,o){return n&&p(e[o],t[o])}),!0):e===t}var m=e.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),k=function(){return e.useContext(m)},h=function(e){e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},b="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;exports.HotkeysProvider=function(n){var o=n.initiallyActiveScopes,r=void 0===o?["*"]:o,u=n.children,i=e.useState((null==r?void 0:r.length)>0?r:["*"]),c=i[0],a=i[1],l=e.useState([]),d=l[0],s=l[1],f=e.useCallback((function(e){a((function(t){return t.includes("*")?[e]:Array.from(new Set([].concat(t,[e])))}))}),[]),v=e.useCallback((function(e){a((function(t){return 0===t.filter((function(t){return t!==e})).length?["*"]:t.filter((function(t){return t!==e}))}))}),[]),k=e.useCallback((function(e){a((function(t){return t.includes(e)?0===t.filter((function(t){return t!==e})).length?["*"]:t.filter((function(t){return t!==e})):t.includes("*")?[e]:Array.from(new Set([].concat(t,[e])))}))}),[]),h=e.useCallback((function(e){s((function(t){return[].concat(t,[e])}))}),[]),b=e.useCallback((function(e){s((function(t){return t.filter((function(t){return!p(t,e)}))}))}),[]);return t.jsx(m.Provider,{value:{enabledScopes:c,hotkeys:d,enableScope:f,disableScope:v,toggleScope:k},children:t.jsx(y,{addHotkey:h,removeHotkey:b,children:u})})},exports.isHotkeyPressed=l,exports.useHotkeys=function(t,n,o,r){var a=e.useRef(null),y=e.useRef(!1),m=o instanceof Array?r instanceof Array?void 0:r:o,w=e.useCallback(n,[].concat(o instanceof Array?o:r instanceof Array?r:[])),g=function(t){var n=e.useRef(void 0);return p(n.current,t)||(n.current=t),n.current}(m),C=k().enabledScopes,L=e.useContext(v);return b((function(){if(!1!==(null==g?void 0:g.enabled)&&(n=null==g?void 0:g.scopes,0===(e=C).length&&n?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),1):!n||e.some((function(e){return n.includes(e)}))||e.includes("*"))){var e,n,o=function(e,n){var o;void 0===n&&(n=!1),(!f(e,["input","textarea","select"])||f(e,null==g?void 0:g.enableOnFormTags))&&(null===a.current||document.activeElement===a.current||a.current.contains(document.activeElement)?(null==(o=e.target)||!o.isContentEditable||null!=g&&g.enableOnContentEditable)&&i(t,null==g?void 0:g.splitKey).forEach((function(t){var o,r=c(t,null==g?void 0:g.combinationKey);if(function(e,t,n){void 0===n&&(n=!1);var o=t.alt,r=t.meta,i=t.mod,c=t.shift,a=t.ctrl,d=t.keys,s=e.key,f=e.ctrlKey,v=e.metaKey,y=e.shiftKey,p=e.altKey,m=u(e.code),k=s.toLowerCase();if(!n){if(o===!p&&o&&"alt"!==k)return!1;if(c===!y&&c&&"shift"!==k)return!1;if(i){if(!v&&!f)return!1}else{if(r===!v&&r&&"meta"!==k)return!1;if(a===!f&&a&&"ctrl"!==k)return!1}}return!(!d||1!==d.length||!d.includes(k)&&!d.includes(m))||(d?l(d):!d)}(e,r,null==g?void 0:g.ignoreModifiers)||null!=(o=r.keys)&&o.includes("*")){if(n&&y.current)return;if(function(e,t,n){("function"==typeof n&&n(e,t)||!0===n)&&e.preventDefault()}(e,r,null==g?void 0:g.preventDefault),!function(e,t,n){return"function"==typeof n?n(e,t):!0===n||void 0===n}(e,r,null==g?void 0:g.enabled))return void h(e);w(e,r),n||(y.current=!0)}})):h(e))},r=function(e){void 0!==e.key&&(d(u(e.code)),(void 0===(null==g?void 0:g.keydown)&&!0!==(null==g?void 0:g.keyup)||null!=g&&g.keydown)&&o(e))},v=function(e){void 0!==e.key&&(s(u(e.code)),y.current=!1,null!=g&&g.keyup&&o(e,!0))};return(a.current||(null==m?void 0:m.document)||document).addEventListener("keyup",v),(a.current||(null==m?void 0:m.document)||document).addEventListener("keydown",r),L&&i(t,null==g?void 0:g.splitKey).forEach((function(e){return L.addHotkey(c(e,null==g?void 0:g.combinationKey))})),function(){(a.current||(null==m?void 0:m.document)||document).removeEventListener("keyup",v),(a.current||(null==m?void 0:m.document)||document).removeEventListener("keydown",r),L&&i(t,null==g?void 0:g.splitKey).forEach((function(e){return L.removeHotkey(c(e,null==g?void 0:g.combinationKey))}))}}}),[t,w,g,C]),a},exports.useHotkeysContext=k,exports.useRecordHotkeys=function(){var t=e.useState(new Set),n=t[0],o=t[1],r=e.useState(!1),i=r[0],c=r[1],a=e.useCallback((function(e){void 0!==e.key&&(e.preventDefault(),e.stopPropagation(),o((function(t){var n=new Set(t);return n.add(u(e.code)),n})))}),[]),l=e.useCallback((function(){"undefined"!=typeof document&&(document.removeEventListener("keydown",a),c(!1))}),[a]);return[n,{start:e.useCallback((function(){o(new Set),"undefined"!=typeof document&&(l(),document.addEventListener("keydown",a),c(!0))}),[a,l]),stop:l,isRecording:i}]}; | ||
"use strict";var e=require("react"),t=require("react/jsx-runtime");function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var o=["shift","alt","meta","mod","ctrl"],r={esc:"escape",return:"enter",".":"period",",":"comma","-":"slash"," ":"space","`":"backquote","#":"backslash","+":"bracketright",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function u(e){return(r[e]||e).trim().toLowerCase().replace("key","").replace("digit","").replace("numpad","").replace("arrow","")}function i(e,t){return void 0===t&&(t=","),"string"==typeof e?e.split(t):e}function c(e,t){void 0===t&&(t="+");var r=e.toLocaleLowerCase().split(t).map((function(e){return u(e)}));return n({},{alt:r.includes("alt"),ctrl:r.includes("ctrl")||r.includes("control"),shift:r.includes("shift"),meta:r.includes("meta"),mod:r.includes("mod")},{keys:r.filter((function(e){return!o.includes(e)}))})}var a=new Set;function l(e,t){return void 0===t&&(t=","),(Array.isArray(e)?e:e.split(t)).every((function(e){return a.has(e.trim().toLowerCase())}))}function d(e){var t=Array.isArray(e)?e:[e];a.has("meta")&&a.forEach((function(e){return!function(e){return o.includes(e)}(e)&&a.delete(e.toLowerCase())})),t.forEach((function(e){return a.add(e.toLowerCase())}))}function s(e){var t=Array.isArray(e)?e:[e];"meta"===e?a.clear():t.forEach((function(e){return a.delete(e.toLowerCase())}))}function f(e,t){var n=e.target;void 0===t&&(t=!1);var o=n&&n.tagName;return t instanceof Array?Boolean(o&&t&&t.some((function(e){return e.toLowerCase()===o.toLowerCase()}))):Boolean(o&&t&&!0===t)}"undefined"!=typeof document&&(document.addEventListener("keydown",(function(e){void 0!==e.key&&d([u(e.key),u(e.code)])})),document.addEventListener("keyup",(function(e){void 0!==e.key&&s([u(e.key),u(e.code)])}))),"undefined"!=typeof window&&window.addEventListener("blur",(function(){a.clear()}));var v=e.createContext(void 0);function y(e){return t.jsx(v.Provider,{value:{addHotkey:e.addHotkey,removeHotkey:e.removeHotkey},children:e.children})}function p(e,t){return e&&t&&"object"==typeof e&&"object"==typeof t?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((function(n,o){return n&&p(e[o],t[o])}),!0):e===t}var m=e.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),k=function(){return e.useContext(m)},h=function(e){e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},b="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;exports.HotkeysProvider=function(n){var o=n.initiallyActiveScopes,r=void 0===o?["*"]:o,u=n.children,i=e.useState((null==r?void 0:r.length)>0?r:["*"]),c=i[0],a=i[1],l=e.useState([]),d=l[0],s=l[1],f=e.useCallback((function(e){a((function(t){return t.includes("*")?[e]:Array.from(new Set([].concat(t,[e])))}))}),[]),v=e.useCallback((function(e){a((function(t){return 0===t.filter((function(t){return t!==e})).length?["*"]:t.filter((function(t){return t!==e}))}))}),[]),k=e.useCallback((function(e){a((function(t){return t.includes(e)?0===t.filter((function(t){return t!==e})).length?["*"]:t.filter((function(t){return t!==e})):t.includes("*")?[e]:Array.from(new Set([].concat(t,[e])))}))}),[]),h=e.useCallback((function(e){s((function(t){return[].concat(t,[e])}))}),[]),b=e.useCallback((function(e){s((function(t){return t.filter((function(t){return!p(t,e)}))}))}),[]);return t.jsx(m.Provider,{value:{enabledScopes:c,hotkeys:d,enableScope:f,disableScope:v,toggleScope:k},children:t.jsx(y,{addHotkey:h,removeHotkey:b,children:u})})},exports.isHotkeyPressed=l,exports.useHotkeys=function(t,n,o,r){var a=e.useRef(null),y=e.useRef(!1),m=o instanceof Array?r instanceof Array?void 0:r:o,w=e.useCallback(n,[].concat(o instanceof Array?o:r instanceof Array?r:[])),g=function(t){var n=e.useRef(void 0);return p(n.current,t)||(n.current=t),n.current}(m),C=k().enabledScopes,L=e.useContext(v);return b((function(){if(!1!==(null==g?void 0:g.enabled)&&(n=null==g?void 0:g.scopes,0===(e=C).length&&n?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),1):!n||e.some((function(e){return n.includes(e)}))||e.includes("*"))){var e,n,o=function(e,n){var o;void 0===n&&(n=!1),(!f(e,["input","textarea","select"])||f(e,null==g?void 0:g.enableOnFormTags))&&(null===a.current||document.activeElement===a.current||a.current.contains(document.activeElement)?(null==(o=e.target)||!o.isContentEditable||null!=g&&g.enableOnContentEditable)&&i(t,null==g?void 0:g.splitKey).forEach((function(t){var o,r=c(t,null==g?void 0:g.combinationKey);if(function(e,t,n){void 0===n&&(n=!1);var o=t.alt,r=t.meta,i=t.mod,c=t.shift,a=t.ctrl,d=t.keys,s=e.key,f=e.ctrlKey,v=e.metaKey,y=e.shiftKey,p=e.altKey,m=u(e.code),k=s.toLowerCase();if(!n){if(o===!p&&"alt"!==k)return!1;if(c===!y&&"shift"!==k)return!1;if(i){if(!v&&!f)return!1}else{if(r===!v&&"meta"!==k)return!1;if(a===!f&&"ctrl"!==k)return!1}}return!(!d||1!==d.length||!d.includes(k)&&!d.includes(m))||(d?l(d):!d)}(e,r,null==g?void 0:g.ignoreModifiers)||null!=(o=r.keys)&&o.includes("*")){if(n&&y.current)return;if(function(e,t,n){("function"==typeof n&&n(e,t)||!0===n)&&e.preventDefault()}(e,r,null==g?void 0:g.preventDefault),!function(e,t,n){return"function"==typeof n?n(e,t):!0===n||void 0===n}(e,r,null==g?void 0:g.enabled))return void h(e);w(e,r),n||(y.current=!0)}})):h(e))},r=function(e){void 0!==e.key&&(d(u(e.code)),(void 0===(null==g?void 0:g.keydown)&&!0!==(null==g?void 0:g.keyup)||null!=g&&g.keydown)&&o(e))},v=function(e){void 0!==e.key&&(s(u(e.code)),y.current=!1,null!=g&&g.keyup&&o(e,!0))};return(a.current||(null==m?void 0:m.document)||document).addEventListener("keyup",v),(a.current||(null==m?void 0:m.document)||document).addEventListener("keydown",r),L&&i(t,null==g?void 0:g.splitKey).forEach((function(e){return L.addHotkey(c(e,null==g?void 0:g.combinationKey))})),function(){(a.current||(null==m?void 0:m.document)||document).removeEventListener("keyup",v),(a.current||(null==m?void 0:m.document)||document).removeEventListener("keydown",r),L&&i(t,null==g?void 0:g.splitKey).forEach((function(e){return L.removeHotkey(c(e,null==g?void 0:g.combinationKey))}))}}}),[t,w,g,C]),a},exports.useHotkeysContext=k,exports.useRecordHotkeys=function(){var t=e.useState(new Set),n=t[0],o=t[1],r=e.useState(!1),i=r[0],c=r[1],a=e.useCallback((function(e){void 0!==e.key&&(e.preventDefault(),e.stopPropagation(),o((function(t){var n=new Set(t);return n.add(u(e.code)),n})))}),[]),l=e.useCallback((function(){"undefined"!=typeof document&&(document.removeEventListener("keydown",a),c(!1))}),[a]);return[n,{start:e.useCallback((function(){o(new Set),"undefined"!=typeof document&&(l(),document.addEventListener("keydown",a),c(!0))}),[a,l]),stop:l,isRecording:i}]}; | ||
//# sourceMappingURL=react-hotkeys-hook.cjs.production.min.js.map |
@@ -200,6 +200,6 @@ import { useContext, createContext, useState, useCallback, useRef, useLayoutEffect, useEffect } from 'react'; | ||
// We check the pressed keys for compatibility with the keyup event. In keyup events the modifier flags are not set. | ||
if (alt === !altKey && alt && pressedKey !== 'alt') { | ||
if (alt === !altKey && pressedKey !== 'alt') { | ||
return false; | ||
} | ||
if (shift === !shiftKey && shift && pressedKey !== 'shift') { | ||
if (shift === !shiftKey && pressedKey !== 'shift') { | ||
return false; | ||
@@ -213,6 +213,6 @@ } | ||
} else { | ||
if (meta === !metaKey && meta && pressedKey !== 'meta') { | ||
if (meta === !metaKey && pressedKey !== 'meta') { | ||
return false; | ||
} | ||
if (ctrl === !ctrlKey && ctrl && pressedKey !== 'ctrl') { | ||
if (ctrl === !ctrlKey && pressedKey !== 'ctrl') { | ||
return false; | ||
@@ -219,0 +219,0 @@ } |
{ | ||
"name": "react-hotkeys-hook", | ||
"version": "4.3.3", | ||
"version": "4.3.4", | ||
"repository": "https://JohannesKlauss@github.com/JohannesKlauss/react-keymap-hook.git", | ||
@@ -5,0 +5,0 @@ "homepage": "https://johannesklauss.github.io/react-hotkeys-hook/", |
@@ -58,7 +58,7 @@ import { FormTags, Hotkey, Scopes, Trigger } from './types' | ||
// We check the pressed keys for compatibility with the keyup event. In keyup events the modifier flags are not set. | ||
if (alt === !altKey && (alt && pressedKey !== 'alt')) { | ||
if (alt === !altKey && pressedKey !== 'alt') { | ||
return false | ||
} | ||
if (shift === !shiftKey && (shift && pressedKey !== 'shift')) { | ||
if (shift === !shiftKey && pressedKey !== 'shift') { | ||
return false | ||
@@ -73,7 +73,7 @@ } | ||
} else { | ||
if (meta === !metaKey && (meta && pressedKey !== 'meta')) { | ||
if (meta === !metaKey && pressedKey !== 'meta') { | ||
return false | ||
} | ||
if (ctrl === !ctrlKey && (ctrl && pressedKey !== 'ctrl')) { | ||
if (ctrl === !ctrlKey && pressedKey !== 'ctrl') { | ||
return false | ||
@@ -80,0 +80,0 @@ } |
Sorry, the diff of this file is not supported yet
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
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
186021
1609