{
  "version": 3,
  "sources": ["../../src/hooks/use-shortcut.js"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useContext, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useShortcutEventMatch from './use-shortcut-event-match';\nimport { context } from '../context';\n\n/**\n * Attach a keyboard shortcut handler.\n *\n * @param {string}   name               Shortcut name.\n * @param {Function} callback           Shortcut callback.\n * @param {Object}   options            Shortcut options.\n * @param {boolean}  options.isDisabled Whether to disable to shortut.\n */\nexport default function useShortcut(\n\tname,\n\tcallback,\n\t{ isDisabled = false } = {}\n) {\n\tconst shortcuts = useContext( context );\n\tconst isMatch = useShortcutEventMatch();\n\tconst callbackRef = useRef();\n\n\tuseEffect( () => {\n\t\tcallbackRef.current = callback;\n\t}, [ callback ] );\n\n\tuseEffect( () => {\n\t\tif ( isDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction _callback( event ) {\n\t\t\tif ( isMatch( name, event ) ) {\n\t\t\t\tcallbackRef.current( event );\n\t\t\t}\n\t\t}\n\n\t\tshortcuts.add( _callback );\n\t\treturn () => {\n\t\t\tshortcuts.delete( _callback );\n\t\t};\n\t}, [ name, isDisabled, shortcuts ] );\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA8C;AAK9C,sCAAkC;AAClC,qBAAwB;AAUT,SAAR,YACN,MACA,UACA,EAAE,aAAa,MAAM,IAAI,CAAC,GACzB;AACD,QAAM,gBAAY,2BAAY,sBAAQ;AACtC,QAAM,cAAU,gCAAAA,SAAsB;AACtC,QAAM,kBAAc,uBAAO;AAE3B,gCAAW,MAAM;AAChB,gBAAY,UAAU;AAAA,EACvB,GAAG,CAAE,QAAS,CAAE;AAEhB,gCAAW,MAAM;AAChB,QAAK,YAAa;AACjB;AAAA,IACD;AAEA,aAAS,UAAW,OAAQ;AAC3B,UAAK,QAAS,MAAM,KAAM,GAAI;AAC7B,oBAAY,QAAS,KAAM;AAAA,MAC5B;AAAA,IACD;AAEA,cAAU,IAAK,SAAU;AACzB,WAAO,MAAM;AACZ,gBAAU,OAAQ,SAAU;AAAA,IAC7B;AAAA,EACD,GAAG,CAAE,MAAM,YAAY,SAAU,CAAE;AACpC;",
  "names": ["useShortcutEventMatch"]
}
