{"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","globalThis","systemActivity","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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"}