{"version":3,"names":["CodeMirrorCodeProvider","__SystemJSRewritingHack","_export","setters","_utils","loc","range","fileEnding","replaceFileEndingWith","execute","_recorder_","_src_components_widgets_lively_code_mirror_code_provider_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","constructor","livelyCodeMirror","codeMirror","code","value","text","focus","cursor","getCursor","location","selections","listSelections","map","ranges","length","anchor","asCM","head","setSelection","setSelections","scrollIntoView","from","to","scrollInfo","getScrollInfo","left","top","right","width","bottom","height","htmlURI","editor","lively","allParents","undefined","find","ele","tagName","jsURI","encodeURI","shadowRoot","querySelector","call"],"sources":["lively-code-mirror-code-provider.js"],"sourcesContent":["import { loc, range, fileEnding, replaceFileEndingWith } from 'utils';\n\nexport default class CodeMirrorCodeProvider {\n\n  constructor(livelyCodeMirror, codeMirror) {\n    this.codeMirror = codeMirror;\n    this.livelyCodeMirror = livelyCodeMirror;\n  }\n\n  get code() {\n    return this.livelyCodeMirror.value;\n  }\n\n  set code(text) {\n    this.livelyCodeMirror.value = text;\n    this.livelyCodeMirror.focus();\n  }\n\n  get cursor() {\n    return loc(this.codeMirror.getCursor());\n  }\n\n  set cursor(location) {\n    this.selections = [range([location, location])];\n  }\n\n  get selections() {\n    return this.codeMirror.listSelections().map(range);\n  }\n\n  /** \n   * Select the text corresponding to the given nodes in the editor\n   */\n  set selections(ranges) {\n    if(ranges.length === 0) return;\n    const selections = ranges.map(range => {\n      return { anchor: range.asCM()[0], head: range.asCM()[1] };\n    });\n\n    // #TODO: include primary selection\n    if (selections.length == 1) {\n      this.codeMirror.setSelection(selections[0].anchor, selections[0].head);\n    } else {\n      this.codeMirror.setSelections(selections);\n    }\n    this.codeMirror.scrollIntoView({ from: selections[0].anchor, to: selections[0].head }, 120);\n  }\n\n  get scrollInfo() {\n    return this.codeMirror.getScrollInfo();\n  }\n\n  set scrollInfo(scrollInfo) {\n    this.codeMirror.scrollIntoView({\n      left: scrollInfo.left,\n      top: scrollInfo.top,\n      right: scrollInfo.left + scrollInfo.width,\n      bottom: scrollInfo.top + scrollInfo.height\n    }, 120);\n  }\n\n  get htmlURI() {\n    let editor = lively.allParents(this.livelyCodeMirror, undefined, true).find(ele => ele.tagName && ele.tagName === 'LIVELY-EDITOR');\n    let jsURI = encodeURI(editor.shadowRoot.querySelector(\"#filename\").value);\n    return jsURI::replaceFileEndingWith('html');\n  }\n\n}"],"mappings":"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"}