{"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","file","end","column","line","start","source","enumerable","configurable","_scope3","_scope4","_scope5","_scope6","_scope7","Promise","resolve","_scope11","lively","lively4url","files","_scope8","keys","SystemJS","filter","_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","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","undefined","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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"}