{"version":3,"names":["BibliographyScheme","Scheme","PolymorphicIdentifier","focalStorage","parseQuery","getDeepProperty","FileIndex","_","scheme","Error","resolve","generateArticlesSource","entries","map","ea","key","authors","join","title","keywords","response","content","Response","headers","status","searchEntries","query","GET","options","url","replace","RegExp","length","decodeURI","current","db","bibliography","toArray","filteredEntries","OPTIONS","JSON","stringify","undefined"],"sources":["bibliography-scheme.js"],"sourcesContent":["import {Scheme}  from \"src/client/poid.js\"\nimport PolymorphicIdentifier  from \"src/client/poid.js\"\nimport focalStorage from \"src/external/focalStorage.js\"\nimport {parseQuery, getDeepProperty} from 'utils'\n\nimport FileIndex from \"src/client/fileindex.js\"\n\nimport _ from 'src/external/lodash/lodash.js'\n/*MD # Abstract Class for all Bibliograpgy Schemes MD*/\n\nexport default class BibliographyScheme extends Scheme {\n  \n  get scheme() {\n    throw new Error(\"subclass responsibility\")\n  }\n  \n  resolve() {\n    return true\n  }  \n  \n  generateArticlesSource(entries) {\n    return \"<h3>Articles</h3><ul>\" + entries.map(ea => {\n      return `<li><a href=\"bib://${ea.key}\">[${ea.key}]</a> ${\n        ea.authors.map(ea => `<a href=\"author://${ea}\">${ea}</a>`).join(\", \")\n      }. ${\n        ea.title\n      }. ${\n        ea.keywords.map(ea => `<a href=\"keyword://${ea}\">${ea}</a>`).join(\", \")\n      }.</li>`     \n    }).join(\"\\n\") + \"</ul>\"\n  }\n  \n  response(content) {\n    return new Response(content, {\n      headers: {\n        \"content-type\": \"text/html\",\n      },\n      status: 200,\n    })\n  }\n  \n  async searchEntries(entries, query) {\n    return entries\n  }\n  \n  async content(entries, query) {\n    var content = `<h2>${this.scheme}: ${query}</h2>`\n    content += this.generateArticlesSource(entries)\n    return content\n  }\n  \n  async GET(options) {\n    var query = this.url.replace(new RegExp(this.scheme + \"\\:\\/\\/\"),\"\")\n    if (query.length < 2)  return this.response(\"query to short\")\n    \n    query = decodeURI(query)    \n    var entries = await FileIndex.current().db.bibliography.toArray()\n  \n    let filteredEntries = await this.searchEntries(entries, query)\n    \n    // entries = _.uniqBy(entries, ea => ea.key)\n    \n    var content = await this.content(filteredEntries, query)\n    \n    return this.response(content)\n  }\n\n  async OPTIONS(options) {    \n    var content = JSON.stringify({}, undefined, 2)\n    return new Response(content, {\n      headers: {\n        \"content-type\": \"application/json\",\n      },\n      status: 200,\n    })\n  }\n  \n}\n"],"mappings":"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"}