{"version":3,"names":["System","register","_export","_context","_setMember","_getAndCallMember","_setLocal","_getLocal","_getMember","_getGlobal","_traceMember","_children","_attributeExpression","_attributes","_element","_addSourceLocation","Morph","babelDefault","promisedEvent","through","generateUUID","LivelyCodeMirrorWidgetImport","__SystemJSRewritingHack","_scope","babel","filesPromise","setters","_activeExpressionRewriting","setMember","getAndCallMember","setLocal","getLocal","getMember","getGlobal","traceMember","_reactiveJsx","children","attributeExpression","attributes","element","addSourceLocation","_srcComponentsWidgetsLivelyMorphJs","default","_srcExternalBabelBabel7defaultJs","_utils","uuid","execute","_recorder_","_src_components_widgets_lively_code_mirror_widget_import_js","isScope","self","__expressionAnalysisMode__","Object","defineProperty","get","set","thisIsVererySecretVariableName","_scope2","enumerable","configurable","_scope3","_scope4","_scope5","_scope6","_scope7","Promise","resolve","_scope11","lively","lively4url","files","_scope8","keys","SystemJS","filter","file","_scope9","endsWith","_scope10","replace","_scope12","getAST","src","_scope13","filename","transform","babelrc","plugins","presets","sourceFileName","moduleIds","sourceMaps","compact","comments","code","ast","e","_scope14","warn","createWidgetContainer","_scope15","widget","document","createElement","end","column","line","start","assign","whiteSpace","importWidgetForRange","cm","m","_scope16","from","to","marks","existingMarker","find","ea","_scope17","notify","container","marker","replacedWith","create","importWidget","_scope18","initWidget","initialize","evt","_scope19","onModulePathKeyDown","fileList","modulePath","prepareFileList","then","_scope20","forEach","_scope21","appendChild","onFileChanged","success","_scope22","input","range","_scope23","CodeMirror","on","_scope25","posEq","a","b","_scope24","direction","onEnter","inspector","_scope26","inspect","_scope27","hideWorkspace","_scope28","enter","_scope29","module","focus","setTimeout","_scope30"],"sources":["lively-code-mirror-widget-import.js"],"sourcesContent":["\"enable aexpr\";\n\n\n\n/*MD # Import Widget \n #Prototype #Unfinished #Witzig #AST #Sandblocks\n\n![](lively-code-mirror-widget-import.png){width=400px}\n\nMD*/\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport babelDefault from 'src/external/babel/babel7default.js'\nconst babel = babelDefault.babel;\n\n\nimport { promisedEvent, through, uuid as generateUUID } from 'utils';\n\nconst filesPromise = new Promise(resolve => {\n  return lively.files.walkDir(lively4url)\n    .then(files => Object.keys(SystemJS['@@loader-config'].map)\n      .concat(files\n        .filter(file => file.endsWith('.js'))\n        .map(file => file.replace(lively4url, ''))\n      )\n    )\n    .then(resolve)\n})\n\nexport default class LivelyCodeMirrorWidgetImport extends Morph {\n\n  static getAST(src) {\n    try {\n      const filename = \"tempfile.js\"\n      // get pure ast\n      return babel.transform(src, {\n          babelrc: false,\n          plugins: [], // no need for any syntax plugins (other than the SystemJS internal) as we only parse import statements\n          presets: [],\n          filename: filename,\n          sourceFileName: filename,\n          moduleIds: false,\n          sourceMaps: false,\n          // inputSourceMap: load.metadata.sourceMap,\n          compact: false,\n          comments: false,\n          code: false,\n          ast: true\n      }).ast;\n    } catch(e) {\n      lively.warn('could not get ast for import statement', e);\n    }\n  }\n  \n  \n  static createWidgetContainer() {\n    var widget = document.createElement(\"span\")\n    Object.assign(widget.style, {\n      whiteSpace: \"normal\"\n    });\n    return widget;\n  }\n  \n  static async importWidgetForRange(cm, m) {\n    const ast = this.getAST(m[0]);\n    if(!ast) { return; }\n\n    const from = cm.editor.posFromIndex(m.index);\n    const to = cm.editor.posFromIndex(m.index + m[0].length);\n    \n    let marks = cm.editor.findMarks(from, to)\n    let existingMarker = marks.find(ea => ea.importWidget)\n    if (existingMarker) {\n      lively.notify(\"found import widget\")\n      // do we have to update it?\n      return\n    }\n\n    var container = this.createWidgetContainer();\n    // #TODO, we assume that it will keep the first widget, and further replacements do not work.... and get therefore thrown away\n    var marker = cm.editor.doc.markText(from, to, {\n      replacedWith: container\n    });\n    marker.importWidget = container\n    // lively.warn('return after container replacement')\n    // return;\n    await lively.create('lively-code-mirror-widget-import', container)\n      .then(importWidget => importWidget.initWidget(cm, m, ast, marker));\n  }\n\n  async initialize() {\n    this.windowTitle = \"LivelyCodeMirrorWidgetImport\";\n     \n    this.modulePath.addEventListener(\"keydown\", evt => this.onModulePathKeyDown(evt))\n  }\n  \n  get fileList() { return this.get('#fileList'); }\n  \n  get modulePath() { return this.get('#modulePath'); }\n\n  prepareFileList() {\n    filesPromise.then(files => {\n      const fileList = this.fileList;\n      files.forEach(file => {\n        fileList.appendChild(<option value={file}></option>);\n      })\n    })\n  }\n  \n  onFileChanged() {\n    lively.success('file changed to', this.modulePath.value)\n  }\n  \n  onModulePathKeyDown(evt) {\n    var input = this.modulePath\n    var range = this.marker.find()\n    if (evt.keyCode == 13) { // ENTER\n      // #TODO how to replace // update text without replacing widgets\n      // this.cm.editor.replaceRange(input.value, range.from, range.to) // @Stefan, your welcome! ;-)\n      // this.wrapLinks() // don't wait and do what you can now\n    }\n    if (evt.keyCode == 37) { // Left\n      if (input.selectionStart == 0) {\n        this.cm.editor.setSelection(range.from, range.from)\n        this.cm.focus()\n      }\n    }\n\n    if (evt.keyCode == 39) { // Right\n      if (input.selectionStart == input.value.length) {\n        this.cm.editor.setSelection(range.to, range.to)\n        this.cm.focus()\n      }\n    }    \n  }\n  \n  async initWidget(cm, m, ast, marker) {\n    this.cm = cm;\n    this.ast = ast;\n    this.marker = marker;\n    \n    // this.modulePath.onfocus= e => lively.notify('FOCUSSED')\n    // this.modulePath.onblur = e =>{\n    //   lively.notify('BLURRED')\n    // } \n    \n    this.prepareFileList();\n\n    CodeMirror.on(marker, \"beforeCursorEnter\", e => {\n      function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}\n      var direction = posEq(this.cm.editor.getCursor(), this.marker.find().from) ? 'left' : 'right';\n      this.cm.editor.widgetEnter = () => this.onEnter(direction);\n    });\n\n    await lively.create('lively-inspector', this)\n      .through(inspector => inspector.inspect(ast))\n      .through(inspector => inspector.hideWorkspace())\n    this.cm.editor.refresh()\n  }\n  \n  onEnter(direction) {\n    // lively.success('ENTER FROM ' + direction)\n    if (!this.marker.find()) {\n      this.cm.editor.refresh();\n    } else {\n      // setTimeout(() => {\n       this.enter(direction);\n      // }, 50);\n    }\n  }\n  \n  enter(direction) {\n    var module = this.modulePath;\n    // this.focus()\n    module.focus();\n    setTimeout(() => {\n      module.focus(); // #Hack, code mirror itself (match-highlighter, etc will snatch the focus... ok, make thatt that the body has it\n    }, 101);\n    // const position = direction === 'left' ? 0 : module.value.length;\n    // module.setSelectionRange(position, position);\n  }\n}\n"],"mappings":"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"}