ace.define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"],(function(require,exports,module){"use strict";require("../../lib/dom").importCssString("#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 100000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {vertical-align: middle;}.ace_optionsMenuEntry button[ace_selected_button=true] {background: #e7e7e7;box-shadow: 1px 0px 2px 0px #adadad inset;border-color: #adadad;}.ace_optionsMenuEntry button {background: white;border: 1px solid lightgray;margin: 0px;}.ace_optionsMenuEntry button:hover{background: #f0f0f0;}"),module.exports.overlayPage=function(editor,contentElement,callback){var closer=document.createElement("div"),ignoreFocusOut=!1;function documentEscListener(e){27===e.keyCode&&close()}function close(){closer&&(document.removeEventListener("keydown",documentEscListener),closer.parentNode.removeChild(closer),editor&&editor.focus(),closer=null,callback&&callback())}return closer.style.cssText="margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; "+(editor?"background-color: rgba(0, 0, 0, 0.3);":""),closer.addEventListener("click",(function(e){ignoreFocusOut||close()})),document.addEventListener("keydown",documentEscListener),contentElement.addEventListener("click",(function(e){e.stopPropagation()})),closer.appendChild(contentElement),document.body.appendChild(closer),editor&&editor.blur(),{close,setIgnoreFocusOut:function(ignore){ignoreFocusOut=ignore,ignore&&(closer.style.pointerEvents="none",contentElement.style.pointerEvents="auto")}}}})),ace.define("ace/ext/menu_tools/get_editor_keyboard_shortcuts",["require","exports","module","ace/lib/keys"],(function(require,exports,module){"use strict";var keys=require("../../lib/keys");module.exports.getEditorKeybordShortcuts=function(editor){keys.KEY_MODS;var keybindings=[],commandMap={};return editor.keyBinding.$handlers.forEach((function(handler){var ckb=handler.commandKeyBinding;for(var i in ckb){var key=i.replace(/(^|-)\w/g,(function(x){return x.toUpperCase()})),commands=ckb[i];Array.isArray(commands)||(commands=[commands]),commands.forEach((function(command){"string"!=typeof command&&(command=command.name),commandMap[command]?commandMap[command].key+="|"+key:(commandMap[command]={key,command},keybindings.push(commandMap[command]))}))}})),keybindings}})),ace.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){"use strict";var Editor=require("../editor").Editor;module.exports.init=function(editor){Editor.prototype.showKeyboardShortcuts=function(){!function(editor){if(!document.getElementById("kbshortcutmenu")){var overlayPage=require("./menu_tools/overlay_page").overlayPage,kb=(0,require("./menu_tools/get_editor_keyboard_shortcuts").getEditorKeybordShortcuts)(editor),el=document.createElement("div"),commands=kb.reduce((function(previous,current){return previous+'<div class="ace_optionsMenuEntry"><span class="ace_optionsMenuCommand">'+current.command+'</span> : <span class="ace_optionsMenuKey">'+current.key+"</span></div>"}),"");el.id="kbshortcutmenu",el.innerHTML="<h1>Keyboard Shortcuts</h1>"+commands+"</div>",overlayPage(editor,el)}}(this)},editor.commands.addCommands([{name:"showKeyboardShortcuts",bindKey:{win:"Ctrl-Alt-h",mac:"Command-Alt-h"},exec:function(editor,line){editor.showKeyboardShortcuts()}}])}})),ace.require(["ace/ext/keybinding_menu"],(function(m){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=m)}));