{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-croquet/src/client/protocols/bib.js"],"names":["PolymorphicIdentifier","BibliographyScheme","FileIndex","Literature","BibScheme","scheme","searchEntries","entries","query","key","filter","entry","content","authors","undefined","keywords","title","files","current","db","where","equals","toArray","literatureNotes","ea","name","match","papers","map","join","year","length","microsoftid","source","concat","url","register"],"mappings":"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","file":"bib.js","sourcesContent":["import PolymorphicIdentifier  from \"src/client/poid.js\"\nimport BibliographyScheme from \"./bibliography-scheme.js\";\nimport FileIndex from \"src/client/fileindex.js\"\n\nimport Literature from \"src/client/literature.js\"\n\n\nexport class BibScheme extends BibliographyScheme {\n  \n  get scheme() {\n    return \"bib\"\n  }\n  \n  async searchEntries(entries, query) {\n    var key = query\n    return entries.filter(entry => entry.key == key)\n  }\n  \n  \n  async content(entries, query) {\n    var entry = entries[0] || {authors: undefined, keywords: undefined, title: \"\"}\n    var key = query\n    var files = await FileIndex.current().db.files.where(\"bibkey\").equals(key).toArray()\n    var literatureNotes = await FileIndex.current().db.files\n      .filter( ea => ea.name.match(key + \".md\")).toArray()\n\n    \n    var papers = await Literature.db.papers.where(\"key\").equals(key).toArray()\n     \n    var content = `<h2>[${key}]<br/>${\n        entry.authors ? \n          entry.authors.map(ea => `<a href=\"author://${ea}\">${ea}</a>` ).join(\", \") + \".\": \"\"\n        }  ${entry.year|| \"\"}<br/><i> ${entry.title|| \"\"} </i></h2>`\n  \n    if (papers.length > 0) {\n      content += \"<div>\" + papers.map(ea => {\n        return `<academic-paper mode=\"short\" microsoftid=\"${ea.microsoftid}\"></academic-paper>`   \n      }).join(\" \") + \"</div><br>\"      \n    } else if (entry.year) {\n      content += \"<div>\" + `<a href=\"academic://${entry.authors.join(\",\") + \".\" + entry.year}\">[search academic]</a>` + \"</div><br>\"\n    }\n\n    if (entry.keywords) {\n      content += `<div><b>Keywords:</b> ${entry.keywords.map(ea => `<a href=\"keyword://${ea}\">${ea}</a>`).join(\", \") } </div>`\n    }\n    if (entry.source) {\n      content += \"<pre>\" + entry.source+ \"</pre>\"\n    }         \n    content += \"<h3>Documents</h3><ul>\" + (files.concat(literatureNotes)).map(ea => {\n      return `<li><a href=\"${ea.url}\">${ea.name}</a></li>`     \n    }).join(\"\\n\") + \"</ul>\"\n\n    \n    content += \"<h3>Bibliographies</h3><ul>\" + entries.map(ea => {\n      return `<li><a href=\"${ea.url}\">${ea.url}</a></li>`     \n    }).join(\"\\n\") + \"</ul>\"    \n    return content\n  }\n}\n\nPolymorphicIdentifier.register(BibScheme)"]}