{"version":3,"file":"ext-keybinding_menu-f12a8a85.js","sources":["../../node_modules/ace-builds/src-noconflict/ext-keybinding_menu.js"],"sourcesContent":["ace.define(\"ace/ext/menu_tools/settings_menu.css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \"#ace_settingsmenu, #kbshortcutmenu {\\n background-color: #F7F7F7;\\n color: black;\\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\\n padding: 1em 0.5em 2em 1em;\\n overflow: auto;\\n position: absolute;\\n margin: 0;\\n bottom: 0;\\n right: 0;\\n top: 0;\\n z-index: 9991;\\n cursor: default;\\n}\\n\\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\\n background-color: rgba(255, 255, 255, 0.6);\\n color: black;\\n}\\n\\n.ace_optionsMenuEntry:hover {\\n background-color: rgba(100, 100, 100, 0.1);\\n transition: all 0.3s\\n}\\n\\n.ace_closeButton {\\n background: rgba(245, 146, 146, 0.5);\\n border: 1px solid #F48A8A;\\n border-radius: 50%;\\n padding: 7px;\\n position: absolute;\\n right: -8px;\\n top: -8px;\\n z-index: 100000;\\n}\\n.ace_closeButton{\\n background: rgba(245, 146, 146, 0.9);\\n}\\n.ace_optionsMenuKey {\\n color: darkslateblue;\\n font-weight: bold;\\n}\\n.ace_optionsMenuCommand {\\n color: darkcyan;\\n font-weight: normal;\\n}\\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\\n vertical-align: middle;\\n}\\n\\n.ace_optionsMenuEntry button[ace_selected_button=true] {\\n background: #e7e7e7;\\n box-shadow: 1px 0px 2px 0px #adadad inset;\\n border-color: #adadad;\\n}\\n.ace_optionsMenuEntry button {\\n background: white;\\n border: 1px solid lightgray;\\n margin: 0px;\\n}\\n.ace_optionsMenuEntry button:hover{\\n background: #f0f0f0;\\n}\";\n\n});\n\nace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/ext/menu_tools/settings_menu.css\"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/\n'use strict';\nvar dom = require(\"../../lib/dom\");\nvar cssText = require(\"./settings_menu.css\");\ndom.importCssString(cssText, \"settings_menu.css\", false);\nmodule.exports.overlayPage = function overlayPage(editor, contentElement, callback) {\n var closer = document.createElement('div');\n var ignoreFocusOut = false;\n function documentEscListener(e) {\n if (e.keyCode === 27) {\n close();\n }\n }\n function close() {\n if (!closer)\n return;\n document.removeEventListener('keydown', documentEscListener);\n closer.parentNode.removeChild(closer);\n if (editor) {\n editor.focus();\n }\n closer = null;\n callback && callback();\n }\n function setIgnoreFocusOut(ignore) {\n ignoreFocusOut = ignore;\n if (ignore) {\n closer.style.pointerEvents = \"none\";\n contentElement.style.pointerEvents = \"auto\";\n }\n }\n closer.style.cssText = 'margin: 0; padding: 0; ' +\n 'position: fixed; top:0; bottom:0; left:0; right:0;' +\n 'z-index: 9990; ' +\n (editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');\n closer.addEventListener('click', function (e) {\n if (!ignoreFocusOut) {\n close();\n }\n });\n document.addEventListener('keydown', documentEscListener);\n contentElement.addEventListener('click', function (e) {\n e.stopPropagation();\n });\n closer.appendChild(contentElement);\n document.body.appendChild(closer);\n if (editor) {\n editor.blur();\n }\n return {\n close: close,\n setIgnoreFocusOut: setIgnoreFocusOut\n };\n};\n\n});\n\nace.define(\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/\n\"use strict\";\nvar keys = require(\"../../lib/keys\");\nmodule.exports.getEditorKeybordShortcuts = function (editor) {\n var KEY_MODS = keys.KEY_MODS;\n var keybindings = [];\n var commandMap = {};\n editor.keyBinding.$handlers.forEach(function (handler) {\n var ckb = handler.commandKeyBinding;\n for (var i in ckb) {\n var key = i.replace(/(^|-)\\w/g, function (x) { return x.toUpperCase(); });\n var commands = ckb[i];\n if (!Array.isArray(commands))\n commands = [commands];\n commands.forEach(function (command) {\n if (typeof command != \"string\")\n command = command.name;\n if (commandMap[command]) {\n commandMap[command].key += \"|\" + key;\n }\n else {\n commandMap[command] = { key: key, command: command };\n keybindings.push(commandMap[command]);\n }\n });\n }\n });\n return keybindings;\n};\n\n});\n\nace.define(\"ace/ext/keybinding_menu\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/ext/menu_tools/overlay_page\",\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/\n\"use strict\";\nvar Editor = require(\"../editor\").Editor;\nfunction showKeyboardShortcuts(editor) {\n if (!document.getElementById('kbshortcutmenu')) {\n var overlayPage = require('./menu_tools/overlay_page').overlayPage;\n var getEditorKeybordShortcuts = require('./menu_tools/get_editor_keyboard_shortcuts').getEditorKeybordShortcuts;\n var kb = getEditorKeybordShortcuts(editor);\n var el = document.createElement('div');\n var commands = kb.reduce(function (previous, current) {\n return previous + '
';\n }, '');\n el.id = 'kbshortcutmenu';\n el.innerHTML = '