{"version":3,"names":["Keys","__SystemJSRewritingHack","_export","setters","_reactiveJsx","_addSourceLocation","addSourceLocation","_srcClientBoundEvalJs","boundEval","default","_templatesGraphControlJs","GraphControl","_srcClientKeyinfoJs","keyInfo","execute","_recorder_","_src_client_keys_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","getTextSelection","window","getSelection","toLocaleString","handle","evt","handledInCodeMirror","composedPath","find","node","tagName","lively","lastScrollTop","document","scrollingElement","scrollTop","lastScrollLeft","scrollLeft","char","ctrl","shiftKey","altKey","keyCode","charCode","keyHandlers","openWorkspace","openSearchWidget","openBrowser","openComponentInWindow","path","System","normalizeSync","toString","edit","containers","Array","from","querySelectorAll","filter","c","getAttribute","editor","allParents","e","matches","focus","fullTextSearch","str","letsScript","import","then","m","handleError","hideSearchWidget","search","body","querySelector","create","file","end","column","line","start","appendChild","setFocus","notify","name","match","callback","preventDefault","err","console","log","onKeyUp","key","stopPropagation"],"sources":["keys.js"],"sourcesContent":["// Lively4 Keyboard shortcuts\n\n// Experiments for more late bound modules... that way the expots won't get frozen!\n// idea\n\n// #Duplication with shortcuts.js #TODO\n\n// import lively from \"./lively.js\"; #TODO does not work anymore...\n\nimport boundEval from \"src/client/bound-eval.js\";\nimport GraphControl from \"templates/graph-control.js\";\nimport keyInfo from \"src/client/keyinfo.js\";\n\nexport default class Keys {\n\n  static getTextSelection() {\n    return window.getSelection().toLocaleString();\n  }\n  \n  static handle(evt) {\n    function handledInCodeMirror(evt) {\n      return evt.composedPath().find(node => node.tagName == \"LIVELY-CODE-MIRROR\");\n    }\n    \n    // #Hack, fix a little but in ContextMenu movement...\n    lively.lastScrollTop = document.scrollingElement.scrollTop;\n    lively.lastScrollLeft = document.scrollingElement.scrollLeft;\n    \n    try {\n      const { char, ctrl, shiftKey, altKey, keyCode, charCode } = keyInfo(evt);\n      \n      const keyHandlers = [\n        // #KeyboardShortcut Ctrl-K open workspace\n        [\"Open Workspace\", ctrl && char == \"K\", evt => {\n          lively.openWorkspace(\"\")\n        }],\n        \n        // #KeyboardShortcut Ctrl-Shift-F search throughout the whole repository\n        [\"Search\", ctrl && shiftKey && char == \"F\", evt => {\n          lively.openSearchWidget(this.getTextSelection(), null, evt.composedPath()[0]);\n        }],\n        // #KeyboardShortcut Ctrl-Shift-B open browser\n        [\"Open Container\", shiftKey && ctrl && char == \"B\", evt => {\n          lively.openBrowser(this.getTextSelection());\n        }],\n        // #KeyboardShortcut Ctrl-Shift-G open sync tool\n        [\"Open Sync Tool\", shiftKey && ctrl && char == \"G\", evt => {\n          // this does not work up on #Jens' windows machine\n          lively.openComponentInWindow(\"lively-sync\");\n        }],\n        // #KeyboardShortcut Ctrl-O open container on selected path\n        [\"Open Selected Path\", ctrl && !shiftKey && char == \"O\", evt => {\n          // #TODO: normalize if in an editor\n          // #TODO: smarter normalization, e.g. lively.js should work\n          // #TODO: get hovered text if none selected\n          const path = System.normalizeSync(window.getSelection().toString());\n          const edit = true;\n\n          const containers = Array.from(document.querySelectorAll('lively-container')).filter(c => c.getAttribute('src') === path);\n\n          const editor = containers.find(c => c.getAttribute('mode') === 'edit' === edit);\n          if (editor) {\n            const window = lively.allParents(editor).find(e => e.matches && e.matches('lively-window'));\n            if (window) {\n              window.focus();\n            }\n          } else {\n            lively.openBrowser(path, edit);\n          }\n        }],\n        // #KeyboardShortcut Ctrl-Shift-O open component bin\n        [\"Open Component Bin\", ctrl && shiftKey && char == \"O\", evt => {\n          lively.openComponentInWindow(\"lively-component-bin\");\n        }],\n        // #KeyboardShortcut Ctrl-J open console\n        [\"Open Console\", !shiftKey && ctrl && char == \"J\", evt => {\n          lively.openComponentInWindow(\"lively-console\");\n        }],\n        // [\"Open DevDocs\", ctrl && char == \"H\", evt => {\n        //   lively.openHelpWindow(this.getTextSelection());\n        // }],\n        // #KeyboardShortcut Ctrl-Alt-G open graph control\n        [\"Open Graph Control\", ctrl && altKey && char == \"G\", evt => {\n          if (handledInCodeMirror(evt)) {\n            return; // code mirror does not stop it's propagation\n          }\n          lively.openComponentInWindow(\"graph-control\");\n        }],\n        // #KeyboardShortcut Ctrl-Alt-D open research diary        \n        [\"Open Research Diary\", ctrl && altKey && char == \"D\", evt => {\n          lively.openComponentInWindow(\"research-diary\");\n        }],\n        // #KeyboardShortcut Ctrl-Alt-F search graph\n        [\"Search Graph\", ctrl && altKey && char == \"F\", evt => {\n          GraphControl.fullTextSearch(this.getTextSelection());\n        }],\n        // #KeyboardShortcut Ctrl-Alt-V eval and open in vivide\n        [\"Eval & Script in Vivide\", ctrl && altKey && char == \"V\", async evt => {\n          if (handledInCodeMirror(evt)) {\n            return; // code mirror does not stop it's propagation\n          }\n          let str = window.getSelection().toLocaleString();\n          try {\n            const letsScript = await System.import('src/client/vivide/vivide.js')\n              .then(m => m.letsScript);\n\n            letsScript(await boundEval(str));\n          } catch(e) {\n            lively.handleError(e);\n          }\n        }],\n        // #KeyboardShortcut ESC hide search widget\n        [\"Hide Search Widget\", keyCode == 27, evt => {\n          lively.hideSearchWidget();\n        }], \n        // #KeyboardShortcut F8 open generic search widget\n        [\"Generic Search Widget\", keyCode === 119, async evt => {\n          const search = document.body.querySelector('lively-generic-search') || await lively.create('lively-generic-search');\n          document.body.appendChild(search);\n          search.setFocus();\n        }],\n        [\"Do It\", ctrl && !altKey && char == \"D\", evt => {\n          if (handledInCodeMirror(evt)) {\n            return; // code mirror does not stop it's propagation\n          }\n          let str = window.getSelection().toLocaleString();\n          lively.notify(\"eval: \" + str)\n          try {\n            boundEval(str);\n          } catch(e) {\n            lively.handleError(e);\n          }\n        }],\n      ];\n      \n      const [name, match, callback] = keyHandlers.find(([name, match]) => match) || [];\n      if(callback) {\n        callback(evt);\n        evt.preventDefault();\n      }\n    } catch (err) {\n      console.log(\"Error in handleKeyEvent\" +  err);\n    }\n  }\n  \n  static onKeyUp(evt) {\n    if (evt.key == \"Alt\") {\n      evt.stopPropagation()\n      evt.preventDefault()\n    }\n    \n  }\n}\n/*\nlively.keys = Keys\n*//* Context: {\"context\":{\"prescript\":\"\",\"postscript\":\"\"},\"customInstances\":[]} */"],"mappings":"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"}