{"version":3,"names":["createCodeMirrorFakeEvent","type","code","modifiers","charCode","e","_handled","keyCode","preventDefault","stopPropagation","i","length","fakeCMKeyEvent","editor","eventType","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","Error","fakeCMInput","char","replaceSelection","fake","originalCode","charCodeAt","push","prettyCodeNames","enter","home","leftArrow","upArrow","rightArrow","downArrow"],"sources":["lively-code-mirror-fake.js"],"sourcesContent":["// pretty names to use for codes, e.g. `fake(\"leftArrow\")` \nvar prettyCodeNames = {\n    enter: 13,\n    home: 36,\n    leftArrow: 37, \n    upArrow: 38, \n    rightArrow: 39, \n    downArrow: 40\n};\n \nfunction createCodeMirrorFakeEvent(type, code, modifiers, charCode)\n{\n    var e = { \n        _handled: false,\n        type: type,\n        charCode: charCode,\n        keyCode: code,\n        preventDefault: function(){ this._handled = true; },\n        stopPropagation: function(){},\n    };  \n    if (modifiers) {\n        for (var i = 0; i < modifiers.length; ++i)\n            e[modifiers[i]] = true;\n    }\n    return e;\n}\n \nfunction fakeCMKeyEvent(editor, eventType, code, modifiers, charCode)\n{\n    var e = createCodeMirrorFakeEvent(eventType, code, modifiers, charCode);\n    switch(eventType) {\n    case \"keydown\": editor.triggerOnKeyDown(e); break;\n    case \"keypress\": editor.triggerOnKeyPress(e); break;\n    case \"keyup\": editor.triggerOnKeyUp(e); break;\n    default: throw new Error(\"Unknown event type\");\n    }\n    return e._handled;\n}\n \nfunction fakeCMInput(editor, char)\n{\n    if (typeof char === \"string\") {\n       // editor.display.input.value += char;\n       editor.replaceSelection(char)\n    }\n}\n \nexport default function fake(editor, originalCode, modifiers)\n{\n    modifiers = modifiers || [];\n    var code;\n    var charCode;\n    if (originalCode === \"(\") {\n        code = \"9\".charCodeAt(0);\n        modifiers.push(\"shiftKey\");\n        charCode = \"(\".charCodeAt(0);\n    }\n    code = code || prettyCodeNames[originalCode] || originalCode;\n    if (typeof code === \"string\")\n        code = code.charCodeAt(0);\n  \n    // simple character strokes like \"r\" should always be input?\n    // workaround: \"r\" bug that invoked search instead of beeing input\n    if (!(originalCode.length == 1 && modifiers.length ==0)) {\n      if (fakeCMKeyEvent(editor, \"keydown\", code, modifiers, charCode)) {\n        return \n      }  \n      if (fakeCMKeyEvent(editor, \"keypress\", code, modifiers, charCode)) {\n        return;\n      }      \n    } \n    fakeCMInput(editor, originalCode);\n    fakeCMKeyEvent(editor, \"keyup\", code, modifiers, charCode);\n}\n"],"mappings":"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"}