{"version":3,"names":["KnotView","Morph","Graph","Triple","_","TAG_URL","select","trackInstance","baseViewForClass","debounce","urlString","get","tagURLString","initialize","pathToLoad","addEventListener","event","onPathEntered","editorComp","urlToLoad","getAttribute","loadKnotForURL","initAExprs","knotLabel","knot","altText","Function","label","lively","success","graph","getInstance","tag","requestKnot","URL","triples","filter","t","buildTableRowFor","buildMetadata","metadataTable","Object","entries","getMetadata","entry","key","value","appendChild","buildNavigatableLinkFor","e","buildRefFor","buildTableDataFor","openInspector","undefined","triple","knot1","knot2","replaceTableBodyFor","selector","s","p","o","propForFirstCell","propForSecondCell","poTableBody","query","url","loadKnot","deleteKnot","urlList","getUrlsByKnot","isExternalLink","isExternalURL","followURL","window","open","container","openBrowser","focus","preventDefault","stopPropagation","tagContainer","tagElement","buildTagWidget","addTag","evt","addTripleWithKnotAsSubject","addTripleWithKnotAsPredicate","addTripleWithKnotAsObject","buildContentFor","buildDeleteTagElement","deleteTagTriple","refresh","notify","elementToRemove","remove","createAddTriple","addTriple","openComponentInWindow","setField","buildListItemFor","role","removeEventListener","spoList","isTriple","hide","show","enableAutocompletion","urls","changeModeForFile","error","saveKnot","text","save","debouncedSave","element","path","livelyPrepareSave","setAttribute"],"sources":["knot-view.js"],"sourcesContent":["'enable aexpr';\n\nimport Morph from \"src/components/widgets/lively-morph.js\"\n\nimport { Graph, Triple, _, TAG_URL } from 'src/client/triples/triples.js';\nimport select, { trackInstance, baseViewForClass } from 'active-group';\n\nimport { debounce } from \"utils\";\n\nexport default class KnotView extends Morph {\n  get urlString() { return this.get(\"#path-to-load\").value; }\n  get tagURLString() { return TAG_URL; }\n  \n  async initialize() {\n    this.windowTitle = \"Knot View\";\n\n    var pathToLoad = this.get(\"#path-to-load\");\n    pathToLoad.addEventListener('keyup',  event => {\n      if (event.keyCode == 13) { // ENTER\n        this.onPathEntered(this.urlString);\n      }\n    });\n    \n    let editorComp = this.get('#content-editor');\n    // editorComp.editor.setOptions({maxLines:Infinity});\n\n    let urlToLoad = this.getAttribute('data-knot-url');\n    if (urlToLoad && urlToLoad !== \"\") {\n      this.loadKnotForURL(urlToLoad);\n    }\n    \n    this.initAExprs();\n  }\n  \n  knotLabel(knot, altText = \"no knot label available\") {\n    return knot &&\n      knot.label instanceof Function && \n      knot.label() || altText;\n  }\n  \n  async initAExprs() {\n    lively.success('setup aexprs');\n    \n    let graph = await Graph.getInstance();\n    let tag = await graph.requestKnot(new URL(TAG_URL));\n\n    this.get('#label-container')\n      .appendChild(<h1>{aexpr(() => this.knotLabel(this.knot))}</h1>);\n    \n    const triples = select(Triple);\n    \n    this.get('#r-po-table').appendChild(<tbody>{\n          ...triples\n            .filter(t => t.subject === this.knot)\n            .map(t => this.buildTableRowFor(t, t.predicate, t.object))\n        }</tbody>);\n    \n    this.get('#r-so-table').appendChild(<tbody>{\n          ...triples\n            .filter(t => t.predicate === this.knot)\n            .map(t => this.buildTableRowFor(t, t.subject, t.object))\n        }</tbody>);\n    \n    this.get('#r-sp-table').appendChild(<tbody>{\n          ...triples\n            .filter(t => t.object === this.knot)\n            .map(t => this.buildTableRowFor(t, t.subject, t.predicate))\n        }</tbody>);\n  }\n  \n  buildMetadata(knot) {\n    const metadataTable = this.get(\"#metadata-table\");\n    metadataTable.innerHTML = \"\";\n    \n    Object.entries(knot.getMetadata()).forEach(entry => {\n      const key = entry[0];\n      const value = entry[1];\n    // for (const [key, value] of Object.entries(knot.getMetadata())) {\n      metadataTable.appendChild(<tr>\n        <td>{key}</td>\n        <td>{value}</td>\n      </tr>);\n    // }\n    });\n  }\n  \n  buildNavigatableLinkFor(knot) {\n    return <a click={e => this.loadKnotForURL(knot.fileName)}>\n      {knot.label()}\n    </a>;\n  }\n  buildRefFor(knot) {\n    return this.buildNavigatableLinkFor(knot);\n  }\n  buildTableDataFor(knot) {\n    return <td>\n      {this.buildRefFor(knot)}\n      <i class=\"fa fa-search\" click={e => {\n        lively.openInspector(knot, undefined, knot.label());\n      }}></i>\n    </td>;\n  }\n  buildTableRowFor(triple, knot1, knot2) {\n    return <tr>\n      {this.buildTableDataFor(knot1)}\n      {this.buildTableDataFor(knot2)}\n      {this.buildTableDataFor(triple)}\n    </tr>;\n  }\n  async replaceTableBodyFor(selector, s, p, o, propForFirstCell, propForSecondCell) {\n    let graph = await Graph.getInstance();\n    let poTableBody = this.get(selector + ' tbody');\n    poTableBody.innerHTML = \"\";\n    graph.query(s, p, o).forEach(triple => {\n      poTableBody.appendChild(\n        this.buildTableRowFor(\n          triple,\n          triple[propForFirstCell],\n          triple[propForSecondCell]\n        )\n      );\n    });\n  }\n  \n  async loadKnotForURL(url) {\n    return this.loadKnot(url);\n  }\n  async loadKnot(url) {\n    let graph = await Graph.getInstance();\n    let knot = await graph.requestKnot(new URL(url));\n    this.knot = knot;\n    \n    this.get(\"#path-to-load\").value = knot.url;\n    \n    let deleteKnot = this.get('#delete-button');\n    deleteKnot.onclick = event => this.deleteKnot(event);\n\n    // URLs\n    let urlList = this.get(\"#url-list\");\n    urlList.innerHTML = \"\";\n    graph.getUrlsByKnot(knot).forEach(url => {\n      function isExternalLink(url) {\n        try {\n          return Graph.isExternalURL(new URL(url));\n        } catch(e) {\n          return false;\n        }\n      }\n      \n      async function followURL(e) {\n        if(isExternalLink(url)) {\n          window.open(url);\n        } else {\n          const container = await lively.openBrowser(url, false);\n          container.focus();\n        }\n        e.preventDefault();\n        e.stopPropagation();\n        return true;\n      }\n\n      urlList.appendChild(<li click={followURL}>\n        {isExternalLink(url) ?\n          url + '<i class=\"fa fa-external-link\"></i>' :\n          url\n        }\n      </li>);\n    });\n    \n    // Tags\n    let tag = await graph.requestKnot(new URL(TAG_URL));\n    let tagContainer = this.get('#tag-container');\n    tagContainer.innerHTML = \"\";\n    graph.query(knot, tag, _).forEach(triple => {\n      let tagElement = this.buildTagWidget(triple.object, triple);\n      tagContainer.appendChild(tagElement);\n    });\n    this.get('#add-tag').onclick = event => this.addTag(event);\n\n    // spo tables\n    // this.replaceTableBodyFor('#po-table', knot, _, _, 'predicate', 'object');\n    // this.replaceTableBodyFor('#so-table', _, knot, _, 'subject', 'object');\n    // this.replaceTableBodyFor('#sp-table', _, _, knot, 'subject', 'predicate');\n\n    // add button behavior\n    this.get('#r-add-triple-as-subject').onclick = evt => this.addTripleWithKnotAsSubject(evt);\n    this.get('#r-add-triple-as-predicate').onclick = evt => this.addTripleWithKnotAsPredicate(evt);\n    this.get('#r-add-triple-as-object').onclick = evt => this.addTripleWithKnotAsObject(evt);\n\n    // metadata\n    //this.buildMetadata(knot);\n    \n    // content\n    this.buildContentFor(knot);\n\n  }\n  \n  buildTagWidget(tag, triple) {\n    return <div>\n      {this.buildNavigatableLinkFor(tag)}\n      {this.buildDeleteTagElement(triple)}\n    </div>;\n  }\n  buildDeleteTagElement(triple) {\n    return <i class=\"fa fa-trash\" click={e => {\n      this.deleteTagTriple(triple);\n    }}></i>;\n  }\n  async deleteTagTriple(triple) {\n    const graph = await Graph.getInstance();\n    const knot = await graph.requestKnot(new URL(triple.fileName));\n    \n    if(await graph.deleteKnot(knot)) {\n      this.refresh();\n    } else {\n      lively.notify(`did not delete tag ${triple.object.fileName}`);\n    }\n  }\n\n  refresh() {\n    this.loadKnot(this.urlString);\n  }\n  async deleteKnot() {\n    const graph = await Graph.getInstance();\n    const knot = await graph.requestKnot(new URL(this.urlString));\n    \n    if(await graph.deleteKnot(knot)) {\n      const elementToRemove = this.parentElement.isWindow ? this.parentElement : this;\n      elementToRemove.remove();\n    } else {\n      lively.notify(`did not delete knot ${this.urlString}`);\n    }\n  }\n  \n  async createAddTriple() {\n    const addTriple = await lively.openComponentInWindow(\"add-triple\");\n    addTriple.afterSubmit = () => {\n      addTriple.parentElement.remove();\n      this.refresh();\n    }\n    return addTriple;\n  }\n  async addTag(event) {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('subject', this.urlString);\n    addTriple.setField('predicate', this.tagURLString);\n    addTriple.focus('object');\n  }\n  \n  async addTripleWithKnotAsSubject() {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('subject', this.urlString);\n    addTriple.focus('predicate');\n  }\n\n  async addTripleWithKnotAsPredicate() {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('predicate', this.urlString);\n    addTriple.focus('subject');\n  }\n\n  async addTripleWithKnotAsObject() {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('object', this.urlString);\n    addTriple.focus('subject');\n  }\n\n  buildListItemFor(knot, role) {\n    return <li>{role}: {this.buildRefFor(knot)}</li>;\n  }\n  async buildContentFor(knot) {\n    let editorComp = this.get('#content-editor');\n    lively.removeEventListener('knot-view-editor', editorComp, 'change');\n    let spoList = this.get('#spo-list');\n    if(knot.isTriple()) {\n      this.hide(editorComp);\n      this.show(spoList);\n      spoList.innerHTML = '';\n      spoList.appendChild(this.buildListItemFor(knot.subject, 'Subject'));\n      spoList.appendChild(this.buildListItemFor(knot.predicate, 'Predicate'));\n      spoList.appendChild(this.buildListItemFor(knot.object, 'Object'));\n    } else {\n      this.show(editorComp);\n      this.hide(spoList);\n      if (editorComp.value !== knot.content) {\n        editorComp.value = knot.content;\n      }\n      editorComp.enableAutocompletion();\n\n      let graph = await Graph.getInstance();\n      let urls = graph.getUrlsByKnot(knot);\n      if(urls.length >= 1) {\n        editorComp.changeModeForFile(urls[0]);\n      } else {\n        lively.error('no url found for ' + knot.label());\n      }\n      const saveKnot = async text => {\n        await knot.save(text);\n        lively.notify('saved knot')\n        // this.refresh();\n      }\n      editorComp.doSave = saveKnot;\n      const debouncedSave = (() => saveKnot(editorComp.value)).debounce(2000);\n      lively.addEventListener('knot-view-editor', editorComp, 'change', debouncedSave);\n    }\n  }\n  \n  hide(element) { element.style.display = \"none\"; }\n  show(element) { element.style.display = \"block\"; }\n\n  onPathEntered(path) {\n    this.loadKnotForURL(path);\n  }\n  \n  livelyPrepareSave() {\n    this.setAttribute(\"data-knot-url\", this.urlString);\n  }\n}\n"],"mappings":"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"}