solid-panes 3.5.19 → 3.5.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dev/loader.ts +11 -11
  2. package/lib/argument/argumentPane.js +15 -7
  3. package/lib/argument/argumentPane.js.map +1 -1
  4. package/lib/dashboard/basicPreferences.d.ts.map +1 -1
  5. package/lib/dashboard/basicPreferences.js +6 -6
  6. package/lib/dashboard/basicPreferences.js.map +1 -1
  7. package/lib/dashboard/dashboardPane.d.ts.map +1 -1
  8. package/lib/dashboard/dashboardPane.js +6 -4
  9. package/lib/dashboard/dashboardPane.js.map +1 -1
  10. package/lib/dataContentPane.js +1 -1
  11. package/lib/dataContentPane.js.map +1 -1
  12. package/lib/form/pane.js +15 -6
  13. package/lib/form/pane.js.map +1 -1
  14. package/lib/home/homePane.d.ts.map +1 -1
  15. package/lib/home/homePane.js +7 -5
  16. package/lib/home/homePane.js.map +1 -1
  17. package/lib/index.d.ts +7 -3
  18. package/lib/index.d.ts.map +1 -1
  19. package/lib/index.js +15 -4
  20. package/lib/index.js.map +1 -1
  21. package/lib/mainPage/header.d.ts.map +1 -1
  22. package/lib/mainPage/header.js +4 -2
  23. package/lib/mainPage/header.js.map +1 -1
  24. package/lib/microblogPane/microblogPane.js +16 -14
  25. package/lib/microblogPane/microblogPane.js.map +1 -1
  26. package/lib/outline/dragDrop.js +16 -6
  27. package/lib/outline/dragDrop.js.map +1 -1
  28. package/lib/outline/licenseOptions.js +12 -5
  29. package/lib/outline/licenseOptions.js.map +1 -1
  30. package/lib/outline/manager.js +29 -21
  31. package/lib/outline/manager.js.map +1 -1
  32. package/lib/outline/queryByExample.js +14 -6
  33. package/lib/outline/queryByExample.js.map +1 -1
  34. package/lib/outline/userInput.js +90 -80
  35. package/lib/outline/userInput.js.map +1 -1
  36. package/lib/pad/padPane.d.ts.map +1 -1
  37. package/lib/pad/padPane.js +6 -4
  38. package/lib/pad/padPane.js.map +1 -1
  39. package/lib/profile/editProfile.view.d.ts.map +1 -1
  40. package/lib/profile/editProfile.view.js +3 -3
  41. package/lib/profile/editProfile.view.js.map +1 -1
  42. package/lib/schedule/schedulePane.js +26 -14
  43. package/lib/schedule/schedulePane.js.map +1 -1
  44. package/lib/socialPane.js +16 -6
  45. package/lib/socialPane.js.map +1 -1
  46. package/lib/transaction/pane.js +1 -1
  47. package/lib/transaction/pane.js.map +1 -1
  48. package/lib/transaction/period.js +1 -1
  49. package/lib/transaction/period.js.map +1 -1
  50. package/lib/trip/tripPane.js +1 -1
  51. package/lib/trip/tripPane.js.map +1 -1
  52. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +1 -1
  53. package/lib/trustedApplications/trustedApplications.dom.js +11 -9
  54. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  55. package/lib/trustedApplications/trustedApplications.view.d.ts.map +1 -1
  56. package/lib/trustedApplications/trustedApplications.view.js +5 -3
  57. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  58. package/lib/versionInfo.js +3 -3
  59. package/lib/versionInfo.js.map +1 -1
  60. package/package.json +14 -14
  61. package/src/argument/argumentPane.js +5 -5
  62. package/src/dashboard/basicPreferences.ts +4 -5
  63. package/src/dashboard/dashboardPane.ts +4 -3
  64. package/src/dataContentPane.js +1 -1
  65. package/src/form/pane.js +5 -4
  66. package/src/home/homePane.ts +7 -6
  67. package/src/index.ts +24 -18
  68. package/src/mainPage/header.ts +3 -2
  69. package/src/microblogPane/microblogPane.js +9 -8
  70. package/src/outline/dragDrop.js +5 -4
  71. package/src/outline/licenseOptions.js +4 -5
  72. package/src/outline/manager.js +22 -21
  73. package/src/outline/queryByExample.js +4 -4
  74. package/src/outline/userInput.js +72 -72
  75. package/src/pad/padPane.ts +3 -3
  76. package/src/profile/editProfile.view.ts +5 -8
  77. package/src/schedule/schedulePane.js +14 -13
  78. package/src/socialPane.js +5 -4
  79. package/src/transaction/pane.js +1 -1
  80. package/src/transaction/period.js +1 -1
  81. package/src/trip/tripPane.js +1 -1
  82. package/src/trustedApplications/trustedApplications.dom.ts +2 -1
  83. package/src/trustedApplications/trustedApplications.view.ts +4 -4
  84. package/src/versionInfo.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/microblogPane/microblogPane.js"],"names":["UI","require","module","exports","icon","icons","originalIconBase","name","label","subject","store","whether","ns","rdf","foaf","render","s","doc","SIOC","Namespace","SIOCt","FOAF","terms","RDF","kb","charCount","sf","fetcher","sparqlUpdater","updater","FollowList","user","userlist","uris","myFollows","each","sym","mf","add","any","uri","prototype","push","selectUser","length","Favorites","favorites","favoritesURI","split","created","c","favs","f","favorited","post","callback","batch","Statement","insert_statement","a","success","predicate","object","why","remove","delete_statement","Microblog","theUser","authn","currentUser","theAccount","preferences","get","getUser","User","avatar","id","getPost","Post","postLink","Date","anyValue","h","getHours","m","getMinutes","mo","da","ds","getDay","getDate","getMonth","getFullYear","date","mentions","message","String","creator","gen_random_uri","base","uriNonce","Math","floor","random","statusUpdate","statusMsg","replyTo","meta","myUserURI","getMyURI","myUser","newPost","microlist","micro","microlistelement","r","recipients","mblogs","mbl","replyBatch","b","me","console","log","myMicroblog","generateNewMB","loc","host","rememberMicroblog","set","cbgenUserMB","d","alert","triple","genUserMB","mb","myFavorites","myFollowList","Pane","microblogPane","TabManager","tablist","tabView","createElement","className","create","caption","view","isDefault","tab","innerHTML","change","addEventListener","evt","target","appendChild","getTabView","getElementById","replace","accounts","account","Ifollow","resourceType","thisIsMe","meUri","Tab","notify","messageString","xmsg","setTimeout","removeChild","header","that","lsFollowUser","username","mbconfirmFollow","_msg","followMe","removeMany","xfollowButton","disabled","followButtonLabel","doFollow","value","mbCancelNewMB","_evt","xupdateContainer","childNodes","xcreateNewMB","lsCreateNewMB","xcmb","xcmbName","xcmbId","xcmbAvatar","workspace","xcmbWritable","focus","mbSubmitPost","cbconfirmSubmit","responseText","xupdateSubmit","xupdateStatus","mbLetterCount","insertBefore","generatePost","words","mbUpdateWithReplies","xinReplyToContainer","word","match","atUser","recipient","xrecipients","xrecipientsSubmit","type","parentNode","recipChoice","recip","choice","toLowerCase","xupdateStatusCounter","style","color","xviewReply","headerContainer","xnotify","createTextNode","cols","xnewUser","subheaderContainer","creators","src","userName","setAttribute","xtabsList","_me","viewPost","i","xcloseContainer","xcloseButton","xpost","uholdsaccount","undefined","xuname","href","xunameText","xuavatar","xpostContent","postText","xpostLink","tags","mention","lookUpThing","postTags","postFunction","p","pop","t","person","replacePerson","RegExp","inReplyTo","xreplyTo","theReply","reply","genReplyTo","mbReplyTo","xconfirmDeletionDialog","mbDeletePost","lsconfirmNo","lsconfirmYes","reallyDelete","keyCode","confirmyes","confirmno","mbconfirmDeletePost","deleteThisNode","deleteMe","deleteContainerOf","deleteContainer","statementsMatching","getAttribute","batch_delete_statement","themaker","xreplyButton","xdeleteButton","mbFavorite","nid","favpost","xfavorite","cbFavorite","_c","_d","generatePostList","gmbPosts","postList","postlist","datelist","postDate","sort","reverse","followsView","getFollowed","userid","follow","fol","xfollows","creatorFollows","xfollowsList","thisPerson","streamView","postContainer","mbPosts","follows","smicroblogs","smb","concat","notificationsView","postNotificationContainer","postMentionContainer","mbnPosts","mbmPosts","microblogs","mbm","postNotificationList","postMentionList","build","microblogpane","ppane"],"mappings":"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","sourcesContent":["/*\n Microblog pane\n Charles McKenzie <charles2@mit.edu>\n*/\n/* global alert */\nconst UI = require('solid-ui')\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'microblog/microblog.png',\n name: 'microblogPane',\n label: function (subject) {\n if (UI.store.whether(subject, UI.ns.rdf('type'), UI.ns.foaf('Person'))) {\n return 'Microblog'\n } else {\n return null\n }\n },\n render: function (s, doc) {\n //* **********************************************\n // NAMESPACES SECTION\n //* **********************************************\n const SIOC = UI.rdf.Namespace('http://rdfs.org/sioc/ns#')\n const SIOCt = UI.rdf.Namespace('http://rdfs.org/sioc/types#')\n const FOAF = UI.rdf.Namespace('http://xmlns.com/foaf/0.1/')\n const terms = UI.rdf.Namespace('http://purl.org/dc/terms/')\n const RDF = UI.ns.rdf\n\n const kb = UI.store\n const charCount = 140\n const sf = UI.store.fetcher\n //* **********************************************\n // BACK END\n //* **********************************************\n const sparqlUpdater = kb.updater\n // ----------------------------------------------\n // FOLLOW LIST\n // store the URIs of followed users for\n // dereferencing the @replies\n // ----------------------------------------------\n const FollowList = function (user) {\n this.userlist = {}\n this.uris = {}\n const myFollows = kb.each(kb.sym(user), SIOC('follows'))\n for (const mf in myFollows) {\n this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri)\n }\n }\n FollowList.prototype.add = function (user, uri) {\n // add a user to the follows store\n if (this.userlist[user]) {\n if (!(uri in this.uris)) {\n this.userlist[user].push(uri)\n this.uris[uri] = ''\n }\n } else {\n this.userlist[user] = [uri]\n }\n }\n FollowList.prototype.selectUser = function (user) {\n // check if a user is in the follows list.\n if (this.userlist[user]) {\n return [this.userlist[user].length === 1, this.userlist[user]]\n } else {\n // user does not follow any users with this nick\n return [false, []]\n }\n }\n // ----------------------------------------------\n // FAVORITES\n // controls the list of favorites.\n // constructor expects a user as uri.\n // ----------------------------------------------\n const Favorites = function (user) {\n this.favorites = {}\n this.favoritesURI = ''\n if (!user) {\n // TODO is this even useful?\n return\n }\n this.user = user.split('#')[0]\n const created = kb.each(kb.sym(user), SIOC('creator_of'))\n for (const c in created) {\n if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {\n this.favoritesURI = created[c]\n const favs = kb.each(created[c], SIOC('container_of'))\n for (const f in favs) {\n this.favorites[favs[f]] = ''\n }\n break\n }\n }\n }\n Favorites.prototype.favorited = function (post) {\n /* Favorited- returns true if the post is a favorite\n false otherwise */\n return kb.sym(post) in this.favorites\n }\n Favorites.prototype.add = function (post, callback) {\n const batch = new UI.rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.insert_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n Favorites.prototype.remove = function (post, callback) {\n const batch = new UI.rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.delete_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n // ----------------------------------------------\n // MICROBLOG\n // store the uri's of followed users for\n // dereferencing the @replies.\n // ----------------------------------------------\n const Microblog = function (kb) {\n this.kb = kb\n\n // attempt to fetch user account from local preferences if just\n // in case the user's foaf was not writable. add it to the store\n // this will probably need to change.\n const theUser = UI.authn.currentUser()\n\n if (theUser) {\n let theAccount = UI.preferences.get('acct')\n\n if (theAccount) {\n theAccount = kb.sym(theAccount)\n }\n\n if (theUser && theAccount) {\n kb.add(\n theUser,\n FOAF('holdsAccount'),\n theAccount,\n theUser.uri.split('#')[0]\n )\n }\n }\n }\n Microblog.prototype.getUser = function (uri) {\n const User = {}\n User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : ''\n User.avatar = kb.any(uri, SIOC('avatar'))\n ? kb.any(uri, SIOC('avatar'))\n : ''\n User.id = kb.any(uri, SIOC('id'))\n User.sym = uri\n return User\n }\n\n Microblog.prototype.getPost = function (uri) {\n const Post = {}\n // date ----------\n let postLink = new Date(kb.anyValue(uri, terms('created')))\n let h = postLink.getHours()\n const a = h > 12 ? ' PM' : ' AM'\n h = h > 12 ? h - 12 : h\n let m = postLink.getMinutes()\n m = m < 10 ? '0' + m : m\n const mo = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ]\n const da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n const ds =\n da[postLink.getDay()] +\n ' ' +\n postLink.getDate() +\n ' ' +\n mo[postLink.getMonth()] +\n ' ' +\n postLink.getFullYear()\n postLink = h + ':' + m + a + ' on ' + ds\n Post.date = postLink\n // ---------\n Post.mentions = ''\n Post.message = String(kb.any(uri, SIOC('content')))\n Post.creator = kb.any(uri, SIOC('has_creator'))\n Post.uri = ''\n return Post\n }\n Microblog.prototype.gen_random_uri = function (base) {\n // generate random uri\n const uriNonce = base + '#n' + Math.floor(Math.random() * 10e9)\n return kb.sym(uriNonce)\n }\n Microblog.prototype.statusUpdate = function (\n statusMsg,\n callback,\n replyTo,\n meta\n ) {\n const myUserURI = this.getMyURI()\n const myUser = kb.sym(myUserURI.split('#')[0])\n const newPost = this.gen_random_uri(myUser.uri)\n const microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'))\n let micro\n for (const microlistelement in microlist) {\n if (\n kb.whether(\n microlist[microlistelement],\n RDF('type'),\n SIOCt('Microblog')\n ) &&\n !kb.whether(\n microlist[microlistelement],\n SIOC('topic'),\n kb.sym(this.getMyURI())\n )\n ) {\n micro = microlist[microlistelement]\n break\n }\n }\n\n // generate new post\n const batch = [\n new UI.rdf.Statement(\n newPost,\n RDF('type'),\n SIOCt('MicroblogPost'),\n myUser\n ),\n new UI.rdf.Statement(\n newPost,\n SIOC('has_creator'),\n kb.sym(myUserURI),\n myUser\n ),\n new UI.rdf.Statement(newPost, SIOC('content'), statusMsg, myUser),\n new UI.rdf.Statement(newPost, terms('created'), new Date(), myUser),\n new UI.rdf.Statement(micro, SIOC('container_of'), newPost, myUser)\n ]\n\n // message replies\n if (replyTo) {\n batch.push(\n new UI.rdf.Statement(\n newPost,\n SIOC('reply_of'),\n kb.sym(replyTo),\n myUser\n )\n )\n }\n\n // @replies, #hashtags, !groupReplies\n for (const r in meta.recipients) {\n batch.push(\n new UI.rdf.Statement(\n newPost,\n SIOC('topic'),\n kb.sym(meta.recipients[r]),\n myUser\n )\n )\n batch.push(\n new UI.rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser)\n )\n const mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'))\n for (const mbl in mblogs) {\n if (\n kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))\n ) {\n const replyBatch = new UI.rdf.Statement(\n mblogs[mbl],\n SIOC('container_of'),\n newPost,\n kb.sym(meta.recipients[r].split('#')[0])\n )\n sparqlUpdater.insert_statement(replyBatch)\n }\n }\n }\n\n sparqlUpdater.insert_statement(batch, function (a, b, c) {\n callback(a, b, c, batch)\n })\n }\n Microblog.prototype.getMyURI = function () {\n const me = UI.authn.currentUser()\n console.log(me)\n const myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'))\n console.log('\\n\\n' + myMicroblog)\n return myMicroblog ? myMicroblog.uri : false\n }\n Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {\n const host = loc + '/' + id\n const rememberMicroblog = function () {\n UI.preferences.set('acct', host + '#' + id)\n }\n const cbgenUserMB = function (a, success, c, d) {\n if (success) {\n alert(\n 'Microblog generated at ' +\n host +\n '#' +\n id +\n 'please add <b>' +\n host +\n '</b> to your foaf.'\n )\n // mbCancelNewMB() @@TBD\n // assume the foaf is not writable and store the microblog to the\n // preferences for later retrieval.\n // this will probably need to change.\n rememberMicroblog()\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n }\n }\n\n const genUserMB = [\n // user\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('type'),\n SIOC('User'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mb'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mbn'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#fav'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('name'),\n name,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('id'),\n id,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('label'),\n id,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n s,\n FOAF('holdsAccount'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // microblog\n new UI.rdf.Statement(\n kb.sym(host + '#mb'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mb'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // notification microblog\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('topic'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // favorites container\n new UI.rdf.Statement(\n kb.sym(host + '#fav'),\n RDF('type'),\n SIOCt('FavouriteThings'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#fav'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n )\n ]\n if (avatar) {\n // avatar optional\n genUserMB.push(\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('avatar'),\n kb.sym(avatar),\n kb.sym(host)\n )\n )\n }\n sparqlUpdater.insert_statement(genUserMB, cbgenUserMB)\n }\n const mb = new Microblog(kb)\n const myFavorites = new Favorites(mb.getMyURI())\n const myFollowList = new FollowList(mb.getMyURI())\n\n //* **********************************************\n // FRONT END FUNCTIONALITY\n //* **********************************************\n // ----------------------------------------------\n // PANE\n // User Interface for the Microblog Pane\n // ----------------------------------------------\n const Pane = function (s, doc, microblogPane) {\n const TabManager = function (doc) {\n this.tablist = {}\n this.doc = doc\n this.tabView = doc.createElement('ul')\n this.tabView.className = 'tabslist'\n }\n TabManager.prototype.create = function (id, caption, view, isDefault) {\n const tab = this.doc.createElement('li')\n tab.innerHTML = caption\n if (isDefault) {\n tab.className = 'active'\n }\n tab.id = id\n const change = this.change\n const tablist = this.tablist\n tab.addEventListener(\n 'click',\n function (evt) {\n change(evt.target.id, tablist, doc)\n },\n false\n )\n\n this.tablist[id] = { view: view.id, tab: tab }\n this.tabView.appendChild(tab)\n }\n TabManager.prototype.getTabView = function () {\n return this.tabView\n }\n TabManager.prototype.change = function (id, tablist, doc) {\n for (const tab in tablist) {\n if (tab === id) {\n tablist[id].tab.className = 'active'\n doc.getElementById(tablist[id].view).className += ' active'\n } else {\n const view = doc.getElementById(tablist[tab].view)\n view.className = view.className.replace(/\\w*active\\w*/, '')\n tablist[tab].tab.className = tablist[id].tab.className.replace(\n /\\w*active\\w*/,\n ''\n )\n }\n }\n }\n this.microblogPane = microblogPane\n const accounts = kb.each(s, FOAF('holdsAccount'))\n let account\n for (const a in accounts) {\n if (\n kb.whether(accounts[a], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(accounts[a], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n account = accounts[a]\n break\n }\n }\n this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account)\n const resourceType = kb.any(s, RDF('type'))\n if (\n resourceType.uri === SIOCt('Microblog').uri ||\n resourceType.uri === SIOCt('MicroblogPost').uri\n ) {\n this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI()\n } else if (resourceType.uri === SIOC('User').uri) {\n this.thisIsMe = s.uri === mb.getMyURI()\n } else if (resourceType.uri === FOAF('Person').uri) {\n const me = UI.authn.currentUser()\n const meUri = me && me.uri\n this.thisIsMe = s.uri === meUri\n } else {\n this.thisIsMe = false\n }\n\n this.Tab = new TabManager(doc)\n }\n\n Pane.prototype.notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n\n Pane.prototype.header = function (s, doc) {\n const that = this\n function lsFollowUser () {\n const myUser = kb.sym(mb.getMyURI())\n // var Ifollow = that.Ifollow\n const username = that.creator.name\n const mbconfirmFollow = function (uri, success, _msg) {\n if (success === true) {\n if (!that.Ifollow) {\n // prevent duplicate entries from being added to kb (because that was happening)\n if (\n !kb.whether(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n ) {\n kb.add(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n } else {\n kb.removeMany(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n console.log(that.Ifollow)\n that.Ifollow = !that.Ifollow\n xfollowButton.disabled = false\n console.log(that.Ifollow)\n const followButtonLabel = that.Ifollow ? 'Unfollow ' : 'Follow '\n const doFollow = that.Ifollow ? 'now follow ' : 'no longer follow '\n xfollowButton.value = followButtonLabel + username\n that.notify('You ' + doFollow + username + '.')\n }\n }\n const followMe = new UI.rdf.Statement(\n myUser,\n SIOC('follows'),\n that.creator.sym,\n myUser\n )\n xfollowButton.disabled = true\n xfollowButton.value = 'Updating...'\n if (!that.Ifollow) {\n sparqlUpdater.insert_statement(followMe, mbconfirmFollow)\n } else {\n sparqlUpdater.delete_statement(followMe, mbconfirmFollow)\n }\n }\n const notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n const mbCancelNewMB = function (_evt) {\n xupdateContainer.removeChild(\n xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]\n )\n xcreateNewMB.disabled = false\n }\n const lsCreateNewMB = function (_evt) {\n // disable the create new microblog button.\n // then prefills the information.\n xcreateNewMB.disabled = true\n const xcmb = doc.createElement('div')\n const xcmbName = doc.createElement('input')\n if (kb.whether(s, FOAF('name'))) {\n // handle use of FOAF:NAME\n xcmbName.value = kb.any(s, FOAF('name'))\n } else {\n // handle use of family and given name\n xcmbName.value = kb.any(s, FOAF('givenname'))\n ? kb.any(s, FOAF('givenname')) + ' '\n : ''\n xcmbName.value += kb.any(s, FOAF('family_name'))\n ? kb.any(s, FOAF('givenname'))\n : ''\n xcmbName.value =\n kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'))\n }\n const xcmbId = doc.createElement('input')\n xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : ''\n const xcmbAvatar = doc.createElement('input')\n if (kb.whether(s, FOAF('img'))) {\n // handle use of img\n xcmbAvatar.value = kb.any(s, FOAF('img')).uri\n } else {\n // otherwise try depiction\n xcmbAvatar.value = kb.any(s, FOAF('depiction'))\n ? kb.any(s, FOAF('depiction')).uri\n : ''\n }\n let workspace\n // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION\n const xcmbWritable = doc.createElement('input')\n xcmbWritable.value =\n workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox' // @@@\n xcmb.innerHTML = `\n <form class =\"createNewMB\" id=\"createNewMB\">\n <p id=\"xcmbname\"><span class=\"\">Name: </span></p>\n <p id=\"xcmbid\">Id: </p>\n <p id=\"xcmbavatar\">Avatar: </p>\n <p id=\"xcmbwritable\">Host my microblog at: </p>\n <input type=\"button\" id=\"mbCancel\" value=\"Cancel\" />\n <input type=\"submit\" id=\"mbCreate\" value=\"Create!\" />\n </form>\n `\n xupdateContainer.appendChild(xcmb)\n doc.getElementById('xcmbname').appendChild(xcmbName)\n doc.getElementById('xcmbid').appendChild(xcmbId)\n doc.getElementById('xcmbavatar').appendChild(xcmbAvatar)\n doc.getElementById('xcmbwritable').appendChild(xcmbWritable)\n doc\n .getElementById('mbCancel')\n .addEventListener('click', mbCancelNewMB, false)\n doc.getElementById('createNewMB').addEventListener(\n 'submit',\n function () {\n mb.generateNewMB(\n xcmbId.value,\n xcmbName.value,\n xcmbAvatar.value,\n xcmbWritable.value\n )\n },\n false\n )\n xcmbName.focus()\n }\n const mbSubmitPost = function () {\n const meta = {\n recipients: []\n }\n // user has selected a microblog to post to\n if (mb.getMyURI()) {\n // let myUser = kb.sym(mb.getMyURI())\n // submission callback\n const cbconfirmSubmit = function (uri, success, responseText, d) {\n if (success === true) {\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n xupdateSubmit.disabled = false\n xupdateStatus.value = ''\n mbLetterCount()\n notify('Microblog Updated.')\n if (that.thisIsMe) {\n doc\n .getElementById('postNotificationList')\n .insertBefore(\n that.generatePost(d[0].subject),\n doc.getElementById('postNotificationList').childNodes[0]\n )\n }\n } else {\n notify('There was a problem submitting your post.')\n }\n }\n const words = xupdateStatus.value.split(' ')\n const mbUpdateWithReplies = function () {\n xupdateSubmit.disabled = true\n xupdateSubmit.value = 'Updating...'\n mb.statusUpdate(\n xupdateStatus.value,\n cbconfirmSubmit,\n xinReplyToContainer.value,\n meta\n )\n }\n for (const word in words) {\n if (words[word].match(/@\\w+/)) {\n const atUser = words[word].replace(/\\W/g, '')\n const recipient = myFollowList.selectUser(atUser)\n if (recipient[0] === true) {\n meta.recipients.push(recipient[1][0])\n } else if (recipient[1].length > 1) {\n // if multiple users allow the user to choose\n const xrecipients = doc.createElement('select')\n const xrecipientsSubmit = doc.createElement('input')\n xrecipientsSubmit.type = 'button'\n xrecipientsSubmit.value = 'Continue'\n xrecipientsSubmit.addEventListener(\n 'click',\n function () {\n meta.recipients.push(recipient[1][xrecipients.value])\n mbUpdateWithReplies()\n xrecipients.parentNode.removeChild(xrecipientsSubmit)\n xrecipients.parentNode.removeChild(xrecipients)\n },\n false\n )\n const recipChoice = function (recip, c) {\n const name = kb.any(kb.sym(recip), SIOC('name'))\n const choice = doc.createElement('option')\n choice.value = c\n choice.innerHTML = name\n return choice\n }\n for (const r in recipient[1]) {\n xrecipients.appendChild(recipChoice(recipient[1][r], r))\n }\n xupdateContainer.appendChild(xrecipients)\n xupdateContainer.appendChild(xrecipientsSubmit)\n return\n } else {\n // no users known or self reference.\n if (\n String(\n kb.any(kb.sym(mb.getMyURI()), SIOC('id'))\n ).toLowerCase() === atUser.toLowerCase()\n ) {\n meta.recipients.push(mb.getMyURI())\n } else {\n notify(\n 'You do not follow ' +\n atUser +\n '. Try following ' +\n atUser +\n ' before mentioning them.'\n )\n return\n }\n }\n }\n /* else if(words[word].match(/\\#\\w+/)){\n //hashtag\n } else if(words[word].match(/\\!\\w+/)){\n //usergroup\n } */\n }\n mbUpdateWithReplies()\n } else {\n notify('Please set your microblog first.')\n }\n }\n const mbLetterCount = function () {\n xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length\n xupdateStatusCounter.style.color =\n charCount - xupdateStatus.value.length < 0 ? '#c33' : ''\n if (xupdateStatus.value.length === 0) {\n xinReplyToContainer.value = ''\n xupdateSubmit.value = 'Send'\n }\n }\n // reply viewer\n const xviewReply = doc.createElement('ul')\n xviewReply.className = 'replyView'\n xviewReply.addEventListener(\n 'click',\n function () {\n xviewReply.className = 'replyView'\n },\n false\n )\n this.xviewReply = xviewReply\n const headerContainer = doc.createElement('div')\n headerContainer.className = 'header-container'\n\n // ---create status update box---\n const xnotify = doc.createElement('ul')\n xnotify.id = 'notify-container'\n xnotify.className = 'notify-container'\n this.xnotify = xnotify\n const xupdateContainer = doc.createElement('form')\n xupdateContainer.className = 'update-container'\n xupdateContainer.innerHTML = '<h3>What are you up to?</h3>'\n let xinReplyToContainer\n let xupdateStatus\n let xupdateStatusCounter\n let xupdateSubmit\n let xcreateNewMB\n if (mb.getMyURI()) {\n xinReplyToContainer = doc.createElement('input')\n xinReplyToContainer.id = 'xinReplyToContainer'\n xinReplyToContainer.type = 'hidden'\n\n xupdateStatus = doc.createElement('textarea')\n xupdateStatus.id = 'xupdateStatus'\n\n xupdateStatusCounter = doc.createElement('span')\n xupdateStatusCounter.appendChild(doc.createTextNode(charCount))\n xupdateStatus.cols = 30\n xupdateStatus.addEventListener('keyup', mbLetterCount, false)\n xupdateStatus.addEventListener('focus', mbLetterCount, false)\n\n xupdateSubmit = doc.createElement('input')\n xupdateSubmit.id = 'xupdateSubmit'\n xupdateSubmit.type = 'submit'\n xupdateSubmit.value = 'Send'\n\n xupdateContainer.appendChild(xinReplyToContainer)\n xupdateContainer.appendChild(xupdateStatusCounter)\n xupdateContainer.appendChild(xupdateStatus)\n xupdateContainer.appendChild(xupdateSubmit)\n xupdateContainer.addEventListener('submit', mbSubmitPost, false)\n } else {\n const xnewUser = doc.createTextNode(\n \"Hi, it looks like you don't have a microblog, \" +\n ' would you like to create one? '\n )\n xcreateNewMB = doc.createElement('input')\n xcreateNewMB.type = 'button'\n xcreateNewMB.value = 'Create a new Microblog'\n xcreateNewMB.addEventListener('click', lsCreateNewMB, false)\n xupdateContainer.appendChild(xnewUser)\n xupdateContainer.appendChild(xcreateNewMB)\n }\n\n headerContainer.appendChild(xupdateContainer)\n\n const subheaderContainer = doc.createElement('div')\n subheaderContainer.className = 'subheader-container'\n\n // user header\n // this.creator\n const creators = kb.each(s, FOAF('holdsAccount'))\n let creator\n for (const c in creators) {\n if (\n kb.whether(creators[c], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(creators[c], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n creator = creators[c]\n // var mb = kb.sym(creator.uri.split(\"#\")[0]);\n // UI.store.fetcher.refresh(mb);\n break\n // TODO add support for more than one microblog in same foaf\n }\n }\n let xfollowButton\n if (creator) {\n this.creator = mb.getUser(creator)\n // ---display avatar, if available ---\n if (this.creator.avatar !== '') {\n const avatar = doc.createElement('img')\n avatar.src = this.creator.avatar.uri\n subheaderContainer.appendChild(avatar)\n }\n // ---generate name ---\n const userName = doc.createElement('h1')\n userName.className = 'fn'\n userName.appendChild(\n doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')')\n )\n subheaderContainer.appendChild(userName)\n // ---display follow button---\n if (!this.thisIsMe && mb.getMyURI()) {\n xfollowButton = doc.createElement('input')\n xfollowButton.setAttribute('type', 'button')\n const followButtonLabel = this.Ifollow ? 'Unfollow ' : 'Follow '\n xfollowButton.value = followButtonLabel + this.creator.name\n xfollowButton.addEventListener('click', lsFollowUser, false)\n subheaderContainer.appendChild(xfollowButton)\n }\n // user header end\n // header tabs\n const xtabsList = this.Tab.getTabView()\n headerContainer.appendChild(subheaderContainer)\n headerContainer.appendChild(xtabsList)\n }\n return headerContainer\n }\n Pane.prototype.generatePost = function (post, _me) {\n /*\n generatePost - Creates and formats microblog posts\n post - symbol of the uri the post in question\n */\n const that = this\n const viewPost = function (uris) {\n const xviewReply = that.xviewReply\n for (let i = 0; i < xviewReply.childNodes.length; i++) {\n xviewReply.removeChild(xviewReply.childNodes[0])\n }\n const xcloseContainer = doc.createElement('li')\n xcloseContainer.className = 'closeContainer'\n const xcloseButton = doc.createElement('span')\n xcloseButton.innerHTML = '&#215;'\n xcloseButton.className = 'closeButton'\n xcloseContainer.appendChild(xcloseButton)\n xviewReply.appendChild(xcloseContainer)\n for (const uri in uris) {\n xviewReply.appendChild(\n that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view')\n )\n }\n xviewReply.className = 'replyView-active'\n that.microblogPane.appendChild(xviewReply)\n }\n // container for post\n const xpost = doc.createElement('li')\n xpost.className = 'post'\n xpost.setAttribute('id', String(post.uri).split('#')[1])\n const Post = mb.getPost(post)\n // username text\n // var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))\n const uholdsaccount = kb.any(\n undefined,\n FOAF('holdsAccount'),\n kb.any(post, SIOC('has_creator'))\n )\n const xuname = doc.createElement('a')\n xuname.href = uholdsaccount.uri\n xuname.className = 'userLink'\n const xunameText = doc.createTextNode(mb.getUser(Post.creator).id)\n xuname.appendChild(xunameText)\n // user image\n const xuavatar = doc.createElement('img')\n xuavatar.src = mb.getUser(Post.creator).avatar.uri\n xuavatar.className = 'postAvatar'\n // post content\n const xpostContent = doc.createElement('blockquote')\n let postText = Post.message\n // post date\n const xpostLink = doc.createElement('a')\n xpostLink.className = 'postLink'\n xpostLink.addEventListener(\n 'click',\n function () {\n viewPost([post.uri])\n },\n false\n )\n xpostLink.id = 'post_' + String(post.uri).split('#')[1]\n xpostLink.setAttribute('content', post.uri)\n xpostLink.setAttribute('property', 'permalink')\n const postLink = doc.createTextNode(\n Post.date ? Post.date : 'post date unknown'\n )\n xpostLink.appendChild(postLink)\n\n // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)\n const mentions = kb.each(post, SIOC('topic'))\n const tags = {}\n\n for (const mention in mentions) {\n sf.lookUpThing(mentions[mention])\n const id = kb.any(mentions[mention], SIOC('id'))\n tags['@' + id] = mentions[mention]\n }\n const postTags = postText.match(/(@|#|!)\\w+/g)\n const postFunction = function () {\n const p = postTags.pop()\n return tags[p]\n ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri\n : p\n }\n for (const t in tags) {\n const person = t.replace(/@/, '')\n const replacePerson = RegExp('(@|!|#)(' + person + ')')\n postText = postText.replace(\n replacePerson,\n '$1<a href=\"' + postFunction() + '\">$2</a>'\n )\n }\n xpostContent.innerHTML = postText\n\n // in reply to logic\n // This has the potential to support a post that replies to many messages.\n const inReplyTo = kb.each(post, SIOC('reply_of'))\n const xreplyTo = doc.createElement('span')\n let theReply\n for (const reply in inReplyTo) {\n theReply = String(inReplyTo[reply]).replace(/<|>/g, '')\n const genReplyTo = function () {\n const reply = doc.createElement('a')\n reply.innerHTML = ', <b>in reply to</b>'\n reply.addEventListener(\n 'click',\n function () {\n viewPost([post.uri, theReply])\n return false\n },\n false\n )\n return reply\n }\n xreplyTo.appendChild(genReplyTo())\n }\n\n // END LINK META DATA\n // add the reply to and delete buttons to the interface\n const mbReplyTo = function () {\n const id = mb.getUser(Post.creator).id\n const xupdateStatus = doc.getElementById('xupdateStatus')\n const xinReplyToContainer = doc.getElementById('xinReplyToContainer')\n const xupdateSubmit = doc.getElementById('xupdateSubmit')\n xupdateStatus.value = '@' + id + ' '\n xupdateStatus.focus()\n xinReplyToContainer.value = post.uri\n xupdateSubmit.value = 'Reply'\n }\n let xconfirmDeletionDialog\n const mbDeletePost = function (evt) {\n const lsconfirmNo = function () {\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n evt.target.disabled = false\n }\n const lsconfirmYes = function () {\n reallyDelete()\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n }\n evt.target.disabled = true\n xconfirmDeletionDialog = doc.createElement('li')\n xconfirmDeletionDialog.className = 'notify conf'\n xconfirmDeletionDialog.innerHTML +=\n '<p>Are you sure you want to delete this post?</p>'\n xconfirmDeletionDialog.addEventListener(\n 'keyup',\n function (evt) {\n if (evt.keyCode === 27) {\n lsconfirmNo()\n }\n },\n false\n )\n const confirmyes = doc.createElement('input')\n confirmyes.type = 'button'\n confirmyes.className = 'confirm'\n confirmyes.value = 'Delete'\n confirmyes.addEventListener('click', lsconfirmYes, false)\n const confirmno = doc.createElement('input')\n confirmno.type = 'button'\n confirmno.className = 'confirm'\n confirmno.value = 'Cancel'\n confirmno.addEventListener('click', lsconfirmNo, false)\n xconfirmDeletionDialog.appendChild(confirmno)\n xconfirmDeletionDialog.appendChild(confirmyes)\n doc\n .getElementById('notify-container')\n .appendChild(xconfirmDeletionDialog)\n confirmno.focus()\n\n const reallyDelete = function () {\n // callback after deletion\n const mbconfirmDeletePost = function (a, success) {\n if (success) {\n that.notify('Post deleted.')\n // update the ui to reflect model changes.\n const deleteThisNode = evt.target.parentNode\n deleteThisNode.parentNode.removeChild(deleteThisNode)\n kb.removeMany(deleteMe)\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = true\n }\n }\n // delete references to post\n const deleteContainerOf = function (a, success) {\n if (success) {\n const deleteContainer = kb.statementsMatching(\n undefined,\n SIOC('container_of'),\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(\n deleteContainer,\n mbconfirmDeletePost\n )\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = false\n }\n }\n // delete attributes of post\n evt.target.disabled = true\n const deleteMe = kb.statementsMatching(\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf)\n }\n }\n let themaker\n let xreplyButton\n let xdeleteButton\n if (mb.getMyURI()) {\n // If the microblog in question does not belong to the user,\n // display the delete post and reply to post buttons.\n themaker = kb.any(post, SIOC('has_creator'))\n if (mb.getMyURI() !== themaker.uri) {\n xreplyButton = doc.createElement('input')\n xreplyButton.type = 'button'\n xreplyButton.value = 'reply'\n xreplyButton.className = 'reply'\n xreplyButton.addEventListener('click', mbReplyTo, false)\n } else {\n xdeleteButton = doc.createElement('input')\n xdeleteButton.type = 'button'\n xdeleteButton.value = 'Delete'\n xdeleteButton.className = 'reply'\n xdeleteButton.addEventListener('click', mbDeletePost, false)\n }\n }\n\n const mbFavorite = function (evt) {\n const nid = evt.target.parentNode.id\n const favpost = doc.getElementById('post_' + nid).getAttribute('content')\n xfavorite.className += ' ing'\n const cbFavorite = function (a, success, _c, _d) {\n if (success) {\n xfavorite.className =\n xfavorite.className.split(' ')[1] === 'ed'\n ? 'favorit'\n : 'favorit ed'\n }\n }\n if (!myFavorites.favorited(favpost)) {\n myFavorites.add(favpost, cbFavorite)\n } else {\n myFavorites.remove(favpost, cbFavorite)\n }\n }\n const xfavorite = doc.createElement('a')\n xfavorite.innerHTML = '&#9733;'\n xfavorite.addEventListener('click', mbFavorite, false)\n if (myFavorites.favorited(post.uri)) {\n xfavorite.className = 'favorit ed'\n } else {\n xfavorite.className = 'favorit'\n }\n // build\n xpost.appendChild(xuavatar)\n xpost.appendChild(xpostContent)\n if (mb.getMyURI()) {\n xpost.appendChild(xfavorite)\n if (mb.getMyURI() !== themaker.uri) {\n xpost.appendChild(xreplyButton)\n } else {\n xpost.appendChild(xdeleteButton)\n }\n }\n xpost.appendChild(xuname)\n xpost.appendChild(xpostLink)\n if (inReplyTo !== '') {\n xpost.appendChild(xreplyTo)\n }\n return xpost\n }\n Pane.prototype.generatePostList = function (gmbPosts) {\n /*\n generatePostList - Generate the posts and\n display their results on the interface.\n */\n const postList = doc.createElement('ul')\n const postlist = {}\n const datelist = []\n for (const post in gmbPosts) {\n const postDate = kb.any(gmbPosts[post], terms('created'))\n if (postDate) {\n datelist.push(postDate)\n postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe)\n }\n }\n datelist.sort().reverse()\n for (const d in datelist) {\n postList.appendChild(postlist[datelist[d]])\n }\n return postList\n }\n Pane.prototype.followsView = function () {\n const getFollowed = function (user) {\n let userid = kb.any(user, SIOC('id'))\n const follow = doc.createElement('li')\n follow.className = 'follow'\n userid = userid || user.uri\n let fol = kb.any(undefined, FOAF('holdsAccount'), user)\n fol = fol ? fol.uri : user.uri\n follow.innerHTML = '<a href=\"' + fol + '\">' + userid + '</a>'\n return follow\n }\n const xfollows = doc.createElement('div')\n xfollows.id = 'xfollows'\n xfollows.className = 'followlist-container view-container'\n if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {\n const creatorFollows = kb.each(this.creator.sym, SIOC('follows'))\n const xfollowsList = doc.createElement('ul')\n for (const thisPerson in creatorFollows) {\n xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]))\n }\n xfollows.appendChild(xfollowsList)\n }\n this.Tab.create('tab-follows', 'Follows', xfollows, false)\n return xfollows\n }\n Pane.prototype.streamView = function (s, doc) {\n const postContainer = doc.createElement('div')\n postContainer.id = 'postContainer'\n postContainer.className = 'post-container view-container active'\n let mbPosts = []\n if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {\n sf.lookUpThing(kb.any(s, FOAF('holdsAccount')))\n const follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'))\n for (const f in follows) {\n sf.lookUpThing(follows[f])\n // look up people user follows\n const smicroblogs = kb.each(follows[f], SIOC('creator_of'))\n // get the follows microblogs\n for (const smb in smicroblogs) {\n sf.lookUpThing(smicroblogs[smb])\n if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {\n continue\n } else {\n mbPosts = mbPosts.concat(\n kb.each(smicroblogs[smb], SIOC('container_of'))\n )\n }\n }\n }\n }\n if (mbPosts.length > 0) {\n const postList = this.generatePostList(mbPosts)\n // generate stream\n postList.id = 'postList'\n postList.className = 'postList'\n postContainer.appendChild(postList)\n }\n this.Tab.create('tab-stream', 'By Follows', postContainer, true)\n return postContainer\n }\n Pane.prototype.notificationsView = function (s, doc) {\n const postNotificationContainer = doc.createElement('div')\n postNotificationContainer.id = 'postNotificationContainer'\n postNotificationContainer.className =\n 'notification-container view-container'\n const postMentionContainer = doc.createElement('div')\n postMentionContainer.id = 'postMentionContainer'\n postMentionContainer.className = 'mention-container view-container'\n let mbnPosts = []\n let mbmPosts = []\n // get mbs that I am the creator of.\n const theUser = kb.any(s, FOAF('holdsAccount'))\n const user = kb.any(theUser, SIOC('id'))\n const microblogs = kb.each(theUser, SIOC('creator_of'))\n for (const mbm in microblogs) {\n sf.lookUpThing(microblogs[mbm])\n if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {\n mbmPosts = mbmPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n } else {\n if (kb.whether(microblogs[mbm], RDF('type'), SIOCt('Microblog'))) {\n mbnPosts = mbnPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n }\n }\n }\n const postNotificationList = this.generatePostList(mbnPosts)\n postNotificationList.id = 'postNotificationList'\n postNotificationList.className = 'postList'\n postNotificationContainer.appendChild(postNotificationList)\n\n const postMentionList = this.generatePostList(mbmPosts)\n postMentionList.id = 'postMentionList'\n postMentionList.className = 'postList'\n postMentionContainer.appendChild(postMentionList)\n this.postMentionContainer = postMentionContainer\n this.postNotificationContainer = postNotificationContainer\n this.Tab.create(\n 'tab-by-user',\n 'By ' + user,\n postNotificationContainer,\n false\n )\n this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false)\n }\n Pane.prototype.build = function () {\n const microblogPane = this.microblogPane\n this.headerContainer = this.header(s, doc)\n this.postContainer = this.streamView(s, doc)\n this.notificationsView(s, doc)\n this.xfollows = this.followsView()\n microblogPane.className = 'ppane'\n microblogPane.appendChild(this.xviewReply)\n microblogPane.appendChild(this.xnotify)\n microblogPane.appendChild(this.headerContainer)\n if (this.xfollows !== undefined) {\n microblogPane.appendChild(this.xfollows)\n }\n microblogPane.appendChild(this.postContainer)\n microblogPane.appendChild(this.postNotificationContainer)\n microblogPane.appendChild(this.postMentionContainer)\n }\n\n const microblogpane = doc.createElement('div')\n // var getusersfollows = function(uri){\n // var follows = new Object();\n // var followsa = {follows:0, matches:0};\n // var accounts = kb.each(s, FOAF(\"holdsAccount\"));\n // //get all of the accounts that a person holds\n // for (var acct in accounts){\n // var account = accounts[acct].uri;\n // var act = kb.each(kb.sym(account),SIOC(\"follows\"));\n // for (var a in act){\n // var thisuri = act[a].uri.split(\"#\")[0];\n // if (!follows[thisuri]){followsa.follows+=1;}\n // follows[thisuri] =true;\n // }\n // }\n //\n // var buildPaneUI = function(uri){\n // followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;\n // console.log(follows.toSource());\n // if(followsa.follows == followsa.matches ){\n const ppane = new Pane(s, doc, microblogpane)\n ppane.build()\n // return false;\n // }\n // else{\n // return true;\n // }\n // }\n // sf.addCallback('done',buildPaneUI);\n // sf.addCallback('fail',buildPaneUI);\n // //fetch each of the followers\n // for (var f in follows){\n // sf.refresh(kb.sym(f));\n // }\n // }(s);\n return microblogpane\n }\n}\n"],"file":"microblogPane.js"}
1
+ {"version":3,"sources":["../../src/microblogPane/microblogPane.js"],"names":["module","exports","icon","UI","icons","originalIconBase","name","label","subject","store","whether","ns","rdf","foaf","render","s","doc","SIOC","Namespace","SIOCt","FOAF","terms","RDF","kb","charCount","sf","fetcher","sparqlUpdater","updater","FollowList","user","userlist","uris","myFollows","each","sym","mf","add","any","uri","prototype","push","selectUser","length","Favorites","favorites","favoritesURI","split","created","c","favs","f","favorited","post","callback","batch","Statement","insert_statement","a","success","predicate","object","why","remove","delete_statement","Microblog","theUser","authn","currentUser","theAccount","preferences","get","getUser","User","avatar","id","getPost","Post","postLink","Date","anyValue","h","getHours","m","getMinutes","mo","da","ds","getDay","getDate","getMonth","getFullYear","date","mentions","message","String","creator","gen_random_uri","base","uriNonce","Math","floor","random","statusUpdate","statusMsg","replyTo","meta","myUserURI","getMyURI","myUser","newPost","microlist","micro","microlistelement","r","recipients","mblogs","mbl","replyBatch","b","me","console","log","myMicroblog","generateNewMB","loc","host","rememberMicroblog","set","cbgenUserMB","d","alert","triple","genUserMB","mb","myFavorites","myFollowList","Pane","microblogPane","TabManager","tablist","tabView","createElement","className","create","caption","view","isDefault","tab","innerHTML","change","addEventListener","evt","target","appendChild","getTabView","getElementById","replace","accounts","account","Ifollow","resourceType","thisIsMe","meUri","Tab","notify","messageString","xmsg","setTimeout","removeChild","header","that","lsFollowUser","username","mbconfirmFollow","_msg","followMe","removeMany","xfollowButton","disabled","followButtonLabel","doFollow","value","mbCancelNewMB","_evt","xupdateContainer","childNodes","xcreateNewMB","lsCreateNewMB","xcmb","xcmbName","xcmbId","xcmbAvatar","workspace","xcmbWritable","focus","mbSubmitPost","cbconfirmSubmit","responseText","xupdateSubmit","xupdateStatus","mbLetterCount","insertBefore","generatePost","words","mbUpdateWithReplies","xinReplyToContainer","word","match","atUser","recipient","xrecipients","xrecipientsSubmit","type","parentNode","recipChoice","recip","choice","toLowerCase","xupdateStatusCounter","style","color","xviewReply","headerContainer","xnotify","createTextNode","cols","xnewUser","subheaderContainer","creators","src","userName","setAttribute","xtabsList","_me","viewPost","i","xcloseContainer","xcloseButton","xpost","uholdsaccount","undefined","xuname","href","xunameText","xuavatar","xpostContent","postText","xpostLink","tags","mention","lookUpThing","postTags","postFunction","p","pop","t","person","replacePerson","RegExp","inReplyTo","xreplyTo","theReply","reply","genReplyTo","mbReplyTo","xconfirmDeletionDialog","mbDeletePost","lsconfirmNo","lsconfirmYes","reallyDelete","keyCode","confirmyes","confirmno","mbconfirmDeletePost","deleteThisNode","deleteMe","deleteContainerOf","deleteContainer","statementsMatching","getAttribute","batch_delete_statement","themaker","xreplyButton","xdeleteButton","mbFavorite","nid","favpost","xfavorite","cbFavorite","_c","_d","generatePostList","gmbPosts","postList","postlist","datelist","postDate","sort","reverse","followsView","getFollowed","userid","follow","fol","xfollows","creatorFollows","xfollowsList","thisPerson","streamView","postContainer","mbPosts","follows","smicroblogs","smb","concat","notificationsView","postNotificationContainer","postMentionContainer","mbnPosts","mbmPosts","microblogs","mbm","postNotificationList","postMentionList","build","microblogpane","ppane"],"mappings":"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","sourcesContent":["/*\n Microblog pane\n Charles McKenzie <charles2@mit.edu>\n*/\n/* global alert */\nimport { authn, store } from 'solid-logic'\nimport * as UI from 'solid-ui'\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'microblog/microblog.png',\n name: 'microblogPane',\n label: function (subject) {\n if (store.whether(subject, UI.ns.rdf('type'), UI.ns.foaf('Person'))) {\n return 'Microblog'\n } else {\n return null\n }\n },\n render: function (s, doc) {\n //* **********************************************\n // NAMESPACES SECTION\n //* **********************************************\n const SIOC = UI.rdf.Namespace('http://rdfs.org/sioc/ns#')\n const SIOCt = UI.rdf.Namespace('http://rdfs.org/sioc/types#')\n const FOAF = UI.rdf.Namespace('http://xmlns.com/foaf/0.1/')\n const terms = UI.rdf.Namespace('http://purl.org/dc/terms/')\n const RDF = UI.ns.rdf\n\n const kb = store\n const charCount = 140\n const sf = store.fetcher\n //* **********************************************\n // BACK END\n //* **********************************************\n const sparqlUpdater = kb.updater\n // ----------------------------------------------\n // FOLLOW LIST\n // store the URIs of followed users for\n // dereferencing the @replies\n // ----------------------------------------------\n const FollowList = function (user) {\n this.userlist = {}\n this.uris = {}\n const myFollows = kb.each(kb.sym(user), SIOC('follows'))\n for (const mf in myFollows) {\n this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri)\n }\n }\n FollowList.prototype.add = function (user, uri) {\n // add a user to the follows store\n if (this.userlist[user]) {\n if (!(uri in this.uris)) {\n this.userlist[user].push(uri)\n this.uris[uri] = ''\n }\n } else {\n this.userlist[user] = [uri]\n }\n }\n FollowList.prototype.selectUser = function (user) {\n // check if a user is in the follows list.\n if (this.userlist[user]) {\n return [this.userlist[user].length === 1, this.userlist[user]]\n } else {\n // user does not follow any users with this nick\n return [false, []]\n }\n }\n // ----------------------------------------------\n // FAVORITES\n // controls the list of favorites.\n // constructor expects a user as uri.\n // ----------------------------------------------\n const Favorites = function (user) {\n this.favorites = {}\n this.favoritesURI = ''\n if (!user) {\n // TODO is this even useful?\n return\n }\n this.user = user.split('#')[0]\n const created = kb.each(kb.sym(user), SIOC('creator_of'))\n for (const c in created) {\n if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {\n this.favoritesURI = created[c]\n const favs = kb.each(created[c], SIOC('container_of'))\n for (const f in favs) {\n this.favorites[favs[f]] = ''\n }\n break\n }\n }\n }\n Favorites.prototype.favorited = function (post) {\n /* Favorited- returns true if the post is a favorite\n false otherwise */\n return kb.sym(post) in this.favorites\n }\n Favorites.prototype.add = function (post, callback) {\n const batch = new UI.rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.insert_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n Favorites.prototype.remove = function (post, callback) {\n const batch = new UI.rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.delete_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n // ----------------------------------------------\n // MICROBLOG\n // store the uri's of followed users for\n // dereferencing the @replies.\n // ----------------------------------------------\n const Microblog = function (kb) {\n this.kb = kb\n\n // attempt to fetch user account from local preferences if just\n // in case the user's foaf was not writable. add it to the store\n // this will probably need to change.\n const theUser = authn.currentUser()\n\n if (theUser) {\n let theAccount = UI.preferences.get('acct')\n\n if (theAccount) {\n theAccount = kb.sym(theAccount)\n }\n\n if (theUser && theAccount) {\n kb.add(\n theUser,\n FOAF('holdsAccount'),\n theAccount,\n theUser.uri.split('#')[0]\n )\n }\n }\n }\n Microblog.prototype.getUser = function (uri) {\n const User = {}\n User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : ''\n User.avatar = kb.any(uri, SIOC('avatar'))\n ? kb.any(uri, SIOC('avatar'))\n : ''\n User.id = kb.any(uri, SIOC('id'))\n User.sym = uri\n return User\n }\n\n Microblog.prototype.getPost = function (uri) {\n const Post = {}\n // date ----------\n let postLink = new Date(kb.anyValue(uri, terms('created')))\n let h = postLink.getHours()\n const a = h > 12 ? ' PM' : ' AM'\n h = h > 12 ? h - 12 : h\n let m = postLink.getMinutes()\n m = m < 10 ? '0' + m : m\n const mo = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ]\n const da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n const ds =\n da[postLink.getDay()] +\n ' ' +\n postLink.getDate() +\n ' ' +\n mo[postLink.getMonth()] +\n ' ' +\n postLink.getFullYear()\n postLink = h + ':' + m + a + ' on ' + ds\n Post.date = postLink\n // ---------\n Post.mentions = ''\n Post.message = String(kb.any(uri, SIOC('content')))\n Post.creator = kb.any(uri, SIOC('has_creator'))\n Post.uri = ''\n return Post\n }\n Microblog.prototype.gen_random_uri = function (base) {\n // generate random uri\n const uriNonce = base + '#n' + Math.floor(Math.random() * 10e9)\n return kb.sym(uriNonce)\n }\n Microblog.prototype.statusUpdate = function (\n statusMsg,\n callback,\n replyTo,\n meta\n ) {\n const myUserURI = this.getMyURI()\n const myUser = kb.sym(myUserURI.split('#')[0])\n const newPost = this.gen_random_uri(myUser.uri)\n const microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'))\n let micro\n for (const microlistelement in microlist) {\n if (\n kb.whether(\n microlist[microlistelement],\n RDF('type'),\n SIOCt('Microblog')\n ) &&\n !kb.whether(\n microlist[microlistelement],\n SIOC('topic'),\n kb.sym(this.getMyURI())\n )\n ) {\n micro = microlist[microlistelement]\n break\n }\n }\n\n // generate new post\n const batch = [\n new UI.rdf.Statement(\n newPost,\n RDF('type'),\n SIOCt('MicroblogPost'),\n myUser\n ),\n new UI.rdf.Statement(\n newPost,\n SIOC('has_creator'),\n kb.sym(myUserURI),\n myUser\n ),\n new UI.rdf.Statement(newPost, SIOC('content'), statusMsg, myUser),\n new UI.rdf.Statement(newPost, terms('created'), new Date(), myUser),\n new UI.rdf.Statement(micro, SIOC('container_of'), newPost, myUser)\n ]\n\n // message replies\n if (replyTo) {\n batch.push(\n new UI.rdf.Statement(\n newPost,\n SIOC('reply_of'),\n kb.sym(replyTo),\n myUser\n )\n )\n }\n\n // @replies, #hashtags, !groupReplies\n for (const r in meta.recipients) {\n batch.push(\n new UI.rdf.Statement(\n newPost,\n SIOC('topic'),\n kb.sym(meta.recipients[r]),\n myUser\n )\n )\n batch.push(\n new UI.rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser)\n )\n const mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'))\n for (const mbl in mblogs) {\n if (\n kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))\n ) {\n const replyBatch = new UI.rdf.Statement(\n mblogs[mbl],\n SIOC('container_of'),\n newPost,\n kb.sym(meta.recipients[r].split('#')[0])\n )\n sparqlUpdater.insert_statement(replyBatch)\n }\n }\n }\n\n sparqlUpdater.insert_statement(batch, function (a, b, c) {\n callback(a, b, c, batch)\n })\n }\n Microblog.prototype.getMyURI = function () {\n const me = authn.currentUser()\n console.log(me)\n const myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'))\n console.log('\\n\\n' + myMicroblog)\n return myMicroblog ? myMicroblog.uri : false\n }\n Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {\n const host = loc + '/' + id\n const rememberMicroblog = function () {\n UI.preferences.set('acct', host + '#' + id)\n }\n const cbgenUserMB = function (a, success, c, d) {\n if (success) {\n alert(\n 'Microblog generated at ' +\n host +\n '#' +\n id +\n 'please add <b>' +\n host +\n '</b> to your foaf.'\n )\n // mbCancelNewMB() @@TBD\n // assume the foaf is not writable and store the microblog to the\n // preferences for later retrieval.\n // this will probably need to change.\n rememberMicroblog()\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n }\n }\n\n const genUserMB = [\n // user\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('type'),\n SIOC('User'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mb'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mbn'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#fav'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('name'),\n name,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('id'),\n id,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('label'),\n id,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n s,\n FOAF('holdsAccount'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // microblog\n new UI.rdf.Statement(\n kb.sym(host + '#mb'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mb'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // notification microblog\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('topic'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // favorites container\n new UI.rdf.Statement(\n kb.sym(host + '#fav'),\n RDF('type'),\n SIOCt('FavouriteThings'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#fav'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n )\n ]\n if (avatar) {\n // avatar optional\n genUserMB.push(\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('avatar'),\n kb.sym(avatar),\n kb.sym(host)\n )\n )\n }\n sparqlUpdater.insert_statement(genUserMB, cbgenUserMB)\n }\n const mb = new Microblog(kb)\n const myFavorites = new Favorites(mb.getMyURI())\n const myFollowList = new FollowList(mb.getMyURI())\n\n //* **********************************************\n // FRONT END FUNCTIONALITY\n //* **********************************************\n // ----------------------------------------------\n // PANE\n // User Interface for the Microblog Pane\n // ----------------------------------------------\n const Pane = function (s, doc, microblogPane) {\n const TabManager = function (doc) {\n this.tablist = {}\n this.doc = doc\n this.tabView = doc.createElement('ul')\n this.tabView.className = 'tabslist'\n }\n TabManager.prototype.create = function (id, caption, view, isDefault) {\n const tab = this.doc.createElement('li')\n tab.innerHTML = caption\n if (isDefault) {\n tab.className = 'active'\n }\n tab.id = id\n const change = this.change\n const tablist = this.tablist\n tab.addEventListener(\n 'click',\n function (evt) {\n change(evt.target.id, tablist, doc)\n },\n false\n )\n\n this.tablist[id] = { view: view.id, tab: tab }\n this.tabView.appendChild(tab)\n }\n TabManager.prototype.getTabView = function () {\n return this.tabView\n }\n TabManager.prototype.change = function (id, tablist, doc) {\n for (const tab in tablist) {\n if (tab === id) {\n tablist[id].tab.className = 'active'\n doc.getElementById(tablist[id].view).className += ' active'\n } else {\n const view = doc.getElementById(tablist[tab].view)\n view.className = view.className.replace(/\\w*active\\w*/, '')\n tablist[tab].tab.className = tablist[id].tab.className.replace(\n /\\w*active\\w*/,\n ''\n )\n }\n }\n }\n this.microblogPane = microblogPane\n const accounts = kb.each(s, FOAF('holdsAccount'))\n let account\n for (const a in accounts) {\n if (\n kb.whether(accounts[a], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(accounts[a], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n account = accounts[a]\n break\n }\n }\n this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account)\n const resourceType = kb.any(s, RDF('type'))\n if (\n resourceType.uri === SIOCt('Microblog').uri ||\n resourceType.uri === SIOCt('MicroblogPost').uri\n ) {\n this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI()\n } else if (resourceType.uri === SIOC('User').uri) {\n this.thisIsMe = s.uri === mb.getMyURI()\n } else if (resourceType.uri === FOAF('Person').uri) {\n const me = authn.currentUser()\n const meUri = me && me.uri\n this.thisIsMe = s.uri === meUri\n } else {\n this.thisIsMe = false\n }\n\n this.Tab = new TabManager(doc)\n }\n\n Pane.prototype.notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n\n Pane.prototype.header = function (s, doc) {\n const that = this\n function lsFollowUser () {\n const myUser = kb.sym(mb.getMyURI())\n // var Ifollow = that.Ifollow\n const username = that.creator.name\n const mbconfirmFollow = function (uri, success, _msg) {\n if (success === true) {\n if (!that.Ifollow) {\n // prevent duplicate entries from being added to kb (because that was happening)\n if (\n !kb.whether(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n ) {\n kb.add(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n } else {\n kb.removeMany(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n console.log(that.Ifollow)\n that.Ifollow = !that.Ifollow\n xfollowButton.disabled = false\n console.log(that.Ifollow)\n const followButtonLabel = that.Ifollow ? 'Unfollow ' : 'Follow '\n const doFollow = that.Ifollow ? 'now follow ' : 'no longer follow '\n xfollowButton.value = followButtonLabel + username\n that.notify('You ' + doFollow + username + '.')\n }\n }\n const followMe = new UI.rdf.Statement(\n myUser,\n SIOC('follows'),\n that.creator.sym,\n myUser\n )\n xfollowButton.disabled = true\n xfollowButton.value = 'Updating...'\n if (!that.Ifollow) {\n sparqlUpdater.insert_statement(followMe, mbconfirmFollow)\n } else {\n sparqlUpdater.delete_statement(followMe, mbconfirmFollow)\n }\n }\n const notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n const mbCancelNewMB = function (_evt) {\n xupdateContainer.removeChild(\n xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]\n )\n xcreateNewMB.disabled = false\n }\n const lsCreateNewMB = function (_evt) {\n // disable the create new microblog button.\n // then prefills the information.\n xcreateNewMB.disabled = true\n const xcmb = doc.createElement('div')\n const xcmbName = doc.createElement('input')\n if (kb.whether(s, FOAF('name'))) {\n // handle use of FOAF:NAME\n xcmbName.value = kb.any(s, FOAF('name'))\n } else {\n // handle use of family and given name\n xcmbName.value = kb.any(s, FOAF('givenname'))\n ? kb.any(s, FOAF('givenname')) + ' '\n : ''\n xcmbName.value += kb.any(s, FOAF('family_name'))\n ? kb.any(s, FOAF('givenname'))\n : ''\n xcmbName.value =\n kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'))\n }\n const xcmbId = doc.createElement('input')\n xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : ''\n const xcmbAvatar = doc.createElement('input')\n if (kb.whether(s, FOAF('img'))) {\n // handle use of img\n xcmbAvatar.value = kb.any(s, FOAF('img')).uri\n } else {\n // otherwise try depiction\n xcmbAvatar.value = kb.any(s, FOAF('depiction'))\n ? kb.any(s, FOAF('depiction')).uri\n : ''\n }\n let workspace\n // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION\n const xcmbWritable = doc.createElement('input')\n xcmbWritable.value =\n workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox' // @@@\n xcmb.innerHTML = `\n <form class =\"createNewMB\" id=\"createNewMB\">\n <p id=\"xcmbname\"><span class=\"\">Name: </span></p>\n <p id=\"xcmbid\">Id: </p>\n <p id=\"xcmbavatar\">Avatar: </p>\n <p id=\"xcmbwritable\">Host my microblog at: </p>\n <input type=\"button\" id=\"mbCancel\" value=\"Cancel\" />\n <input type=\"submit\" id=\"mbCreate\" value=\"Create!\" />\n </form>\n `\n xupdateContainer.appendChild(xcmb)\n doc.getElementById('xcmbname').appendChild(xcmbName)\n doc.getElementById('xcmbid').appendChild(xcmbId)\n doc.getElementById('xcmbavatar').appendChild(xcmbAvatar)\n doc.getElementById('xcmbwritable').appendChild(xcmbWritable)\n doc\n .getElementById('mbCancel')\n .addEventListener('click', mbCancelNewMB, false)\n doc.getElementById('createNewMB').addEventListener(\n 'submit',\n function () {\n mb.generateNewMB(\n xcmbId.value,\n xcmbName.value,\n xcmbAvatar.value,\n xcmbWritable.value\n )\n },\n false\n )\n xcmbName.focus()\n }\n const mbSubmitPost = function () {\n const meta = {\n recipients: []\n }\n // user has selected a microblog to post to\n if (mb.getMyURI()) {\n // let myUser = kb.sym(mb.getMyURI())\n // submission callback\n const cbconfirmSubmit = function (uri, success, responseText, d) {\n if (success === true) {\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n xupdateSubmit.disabled = false\n xupdateStatus.value = ''\n mbLetterCount()\n notify('Microblog Updated.')\n if (that.thisIsMe) {\n doc\n .getElementById('postNotificationList')\n .insertBefore(\n that.generatePost(d[0].subject),\n doc.getElementById('postNotificationList').childNodes[0]\n )\n }\n } else {\n notify('There was a problem submitting your post.')\n }\n }\n const words = xupdateStatus.value.split(' ')\n const mbUpdateWithReplies = function () {\n xupdateSubmit.disabled = true\n xupdateSubmit.value = 'Updating...'\n mb.statusUpdate(\n xupdateStatus.value,\n cbconfirmSubmit,\n xinReplyToContainer.value,\n meta\n )\n }\n for (const word in words) {\n if (words[word].match(/@\\w+/)) {\n const atUser = words[word].replace(/\\W/g, '')\n const recipient = myFollowList.selectUser(atUser)\n if (recipient[0] === true) {\n meta.recipients.push(recipient[1][0])\n } else if (recipient[1].length > 1) {\n // if multiple users allow the user to choose\n const xrecipients = doc.createElement('select')\n const xrecipientsSubmit = doc.createElement('input')\n xrecipientsSubmit.type = 'button'\n xrecipientsSubmit.value = 'Continue'\n xrecipientsSubmit.addEventListener(\n 'click',\n function () {\n meta.recipients.push(recipient[1][xrecipients.value])\n mbUpdateWithReplies()\n xrecipients.parentNode.removeChild(xrecipientsSubmit)\n xrecipients.parentNode.removeChild(xrecipients)\n },\n false\n )\n const recipChoice = function (recip, c) {\n const name = kb.any(kb.sym(recip), SIOC('name'))\n const choice = doc.createElement('option')\n choice.value = c\n choice.innerHTML = name\n return choice\n }\n for (const r in recipient[1]) {\n xrecipients.appendChild(recipChoice(recipient[1][r], r))\n }\n xupdateContainer.appendChild(xrecipients)\n xupdateContainer.appendChild(xrecipientsSubmit)\n return\n } else {\n // no users known or self reference.\n if (\n String(\n kb.any(kb.sym(mb.getMyURI()), SIOC('id'))\n ).toLowerCase() === atUser.toLowerCase()\n ) {\n meta.recipients.push(mb.getMyURI())\n } else {\n notify(\n 'You do not follow ' +\n atUser +\n '. Try following ' +\n atUser +\n ' before mentioning them.'\n )\n return\n }\n }\n }\n /* else if(words[word].match(/\\#\\w+/)){\n //hashtag\n } else if(words[word].match(/\\!\\w+/)){\n //usergroup\n } */\n }\n mbUpdateWithReplies()\n } else {\n notify('Please set your microblog first.')\n }\n }\n const mbLetterCount = function () {\n xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length\n xupdateStatusCounter.style.color =\n charCount - xupdateStatus.value.length < 0 ? '#c33' : ''\n if (xupdateStatus.value.length === 0) {\n xinReplyToContainer.value = ''\n xupdateSubmit.value = 'Send'\n }\n }\n // reply viewer\n const xviewReply = doc.createElement('ul')\n xviewReply.className = 'replyView'\n xviewReply.addEventListener(\n 'click',\n function () {\n xviewReply.className = 'replyView'\n },\n false\n )\n this.xviewReply = xviewReply\n const headerContainer = doc.createElement('div')\n headerContainer.className = 'header-container'\n\n // ---create status update box---\n const xnotify = doc.createElement('ul')\n xnotify.id = 'notify-container'\n xnotify.className = 'notify-container'\n this.xnotify = xnotify\n const xupdateContainer = doc.createElement('form')\n xupdateContainer.className = 'update-container'\n xupdateContainer.innerHTML = '<h3>What are you up to?</h3>'\n let xinReplyToContainer\n let xupdateStatus\n let xupdateStatusCounter\n let xupdateSubmit\n let xcreateNewMB\n if (mb.getMyURI()) {\n xinReplyToContainer = doc.createElement('input')\n xinReplyToContainer.id = 'xinReplyToContainer'\n xinReplyToContainer.type = 'hidden'\n\n xupdateStatus = doc.createElement('textarea')\n xupdateStatus.id = 'xupdateStatus'\n\n xupdateStatusCounter = doc.createElement('span')\n xupdateStatusCounter.appendChild(doc.createTextNode(charCount))\n xupdateStatus.cols = 30\n xupdateStatus.addEventListener('keyup', mbLetterCount, false)\n xupdateStatus.addEventListener('focus', mbLetterCount, false)\n\n xupdateSubmit = doc.createElement('input')\n xupdateSubmit.id = 'xupdateSubmit'\n xupdateSubmit.type = 'submit'\n xupdateSubmit.value = 'Send'\n\n xupdateContainer.appendChild(xinReplyToContainer)\n xupdateContainer.appendChild(xupdateStatusCounter)\n xupdateContainer.appendChild(xupdateStatus)\n xupdateContainer.appendChild(xupdateSubmit)\n xupdateContainer.addEventListener('submit', mbSubmitPost, false)\n } else {\n const xnewUser = doc.createTextNode(\n \"Hi, it looks like you don't have a microblog, \" +\n ' would you like to create one? '\n )\n xcreateNewMB = doc.createElement('input')\n xcreateNewMB.type = 'button'\n xcreateNewMB.value = 'Create a new Microblog'\n xcreateNewMB.addEventListener('click', lsCreateNewMB, false)\n xupdateContainer.appendChild(xnewUser)\n xupdateContainer.appendChild(xcreateNewMB)\n }\n\n headerContainer.appendChild(xupdateContainer)\n\n const subheaderContainer = doc.createElement('div')\n subheaderContainer.className = 'subheader-container'\n\n // user header\n // this.creator\n const creators = kb.each(s, FOAF('holdsAccount'))\n let creator\n for (const c in creators) {\n if (\n kb.whether(creators[c], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(creators[c], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n creator = creators[c]\n // var mb = kb.sym(creator.uri.split(\"#\")[0]);\n // store.fetcher.refresh(mb);\n break\n // TODO add support for more than one microblog in same foaf\n }\n }\n let xfollowButton\n if (creator) {\n this.creator = mb.getUser(creator)\n // ---display avatar, if available ---\n if (this.creator.avatar !== '') {\n const avatar = doc.createElement('img')\n avatar.src = this.creator.avatar.uri\n subheaderContainer.appendChild(avatar)\n }\n // ---generate name ---\n const userName = doc.createElement('h1')\n userName.className = 'fn'\n userName.appendChild(\n doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')')\n )\n subheaderContainer.appendChild(userName)\n // ---display follow button---\n if (!this.thisIsMe && mb.getMyURI()) {\n xfollowButton = doc.createElement('input')\n xfollowButton.setAttribute('type', 'button')\n const followButtonLabel = this.Ifollow ? 'Unfollow ' : 'Follow '\n xfollowButton.value = followButtonLabel + this.creator.name\n xfollowButton.addEventListener('click', lsFollowUser, false)\n subheaderContainer.appendChild(xfollowButton)\n }\n // user header end\n // header tabs\n const xtabsList = this.Tab.getTabView()\n headerContainer.appendChild(subheaderContainer)\n headerContainer.appendChild(xtabsList)\n }\n return headerContainer\n }\n Pane.prototype.generatePost = function (post, _me) {\n /*\n generatePost - Creates and formats microblog posts\n post - symbol of the uri the post in question\n */\n const that = this\n const viewPost = function (uris) {\n const xviewReply = that.xviewReply\n for (let i = 0; i < xviewReply.childNodes.length; i++) {\n xviewReply.removeChild(xviewReply.childNodes[0])\n }\n const xcloseContainer = doc.createElement('li')\n xcloseContainer.className = 'closeContainer'\n const xcloseButton = doc.createElement('span')\n xcloseButton.innerHTML = '&#215;'\n xcloseButton.className = 'closeButton'\n xcloseContainer.appendChild(xcloseButton)\n xviewReply.appendChild(xcloseContainer)\n for (const uri in uris) {\n xviewReply.appendChild(\n that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view')\n )\n }\n xviewReply.className = 'replyView-active'\n that.microblogPane.appendChild(xviewReply)\n }\n // container for post\n const xpost = doc.createElement('li')\n xpost.className = 'post'\n xpost.setAttribute('id', String(post.uri).split('#')[1])\n const Post = mb.getPost(post)\n // username text\n // var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))\n const uholdsaccount = kb.any(\n undefined,\n FOAF('holdsAccount'),\n kb.any(post, SIOC('has_creator'))\n )\n const xuname = doc.createElement('a')\n xuname.href = uholdsaccount.uri\n xuname.className = 'userLink'\n const xunameText = doc.createTextNode(mb.getUser(Post.creator).id)\n xuname.appendChild(xunameText)\n // user image\n const xuavatar = doc.createElement('img')\n xuavatar.src = mb.getUser(Post.creator).avatar.uri\n xuavatar.className = 'postAvatar'\n // post content\n const xpostContent = doc.createElement('blockquote')\n let postText = Post.message\n // post date\n const xpostLink = doc.createElement('a')\n xpostLink.className = 'postLink'\n xpostLink.addEventListener(\n 'click',\n function () {\n viewPost([post.uri])\n },\n false\n )\n xpostLink.id = 'post_' + String(post.uri).split('#')[1]\n xpostLink.setAttribute('content', post.uri)\n xpostLink.setAttribute('property', 'permalink')\n const postLink = doc.createTextNode(\n Post.date ? Post.date : 'post date unknown'\n )\n xpostLink.appendChild(postLink)\n\n // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)\n const mentions = kb.each(post, SIOC('topic'))\n const tags = {}\n\n for (const mention in mentions) {\n sf.lookUpThing(mentions[mention])\n const id = kb.any(mentions[mention], SIOC('id'))\n tags['@' + id] = mentions[mention]\n }\n const postTags = postText.match(/(@|#|!)\\w+/g)\n const postFunction = function () {\n const p = postTags.pop()\n return tags[p]\n ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri\n : p\n }\n for (const t in tags) {\n const person = t.replace(/@/, '')\n const replacePerson = RegExp('(@|!|#)(' + person + ')')\n postText = postText.replace(\n replacePerson,\n '$1<a href=\"' + postFunction() + '\">$2</a>'\n )\n }\n xpostContent.innerHTML = postText\n\n // in reply to logic\n // This has the potential to support a post that replies to many messages.\n const inReplyTo = kb.each(post, SIOC('reply_of'))\n const xreplyTo = doc.createElement('span')\n let theReply\n for (const reply in inReplyTo) {\n theReply = String(inReplyTo[reply]).replace(/<|>/g, '')\n const genReplyTo = function () {\n const reply = doc.createElement('a')\n reply.innerHTML = ', <b>in reply to</b>'\n reply.addEventListener(\n 'click',\n function () {\n viewPost([post.uri, theReply])\n return false\n },\n false\n )\n return reply\n }\n xreplyTo.appendChild(genReplyTo())\n }\n\n // END LINK META DATA\n // add the reply to and delete buttons to the interface\n const mbReplyTo = function () {\n const id = mb.getUser(Post.creator).id\n const xupdateStatus = doc.getElementById('xupdateStatus')\n const xinReplyToContainer = doc.getElementById('xinReplyToContainer')\n const xupdateSubmit = doc.getElementById('xupdateSubmit')\n xupdateStatus.value = '@' + id + ' '\n xupdateStatus.focus()\n xinReplyToContainer.value = post.uri\n xupdateSubmit.value = 'Reply'\n }\n let xconfirmDeletionDialog\n const mbDeletePost = function (evt) {\n const lsconfirmNo = function () {\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n evt.target.disabled = false\n }\n const lsconfirmYes = function () {\n reallyDelete()\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n }\n evt.target.disabled = true\n xconfirmDeletionDialog = doc.createElement('li')\n xconfirmDeletionDialog.className = 'notify conf'\n xconfirmDeletionDialog.innerHTML +=\n '<p>Are you sure you want to delete this post?</p>'\n xconfirmDeletionDialog.addEventListener(\n 'keyup',\n function (evt) {\n if (evt.keyCode === 27) {\n lsconfirmNo()\n }\n },\n false\n )\n const confirmyes = doc.createElement('input')\n confirmyes.type = 'button'\n confirmyes.className = 'confirm'\n confirmyes.value = 'Delete'\n confirmyes.addEventListener('click', lsconfirmYes, false)\n const confirmno = doc.createElement('input')\n confirmno.type = 'button'\n confirmno.className = 'confirm'\n confirmno.value = 'Cancel'\n confirmno.addEventListener('click', lsconfirmNo, false)\n xconfirmDeletionDialog.appendChild(confirmno)\n xconfirmDeletionDialog.appendChild(confirmyes)\n doc\n .getElementById('notify-container')\n .appendChild(xconfirmDeletionDialog)\n confirmno.focus()\n\n const reallyDelete = function () {\n // callback after deletion\n const mbconfirmDeletePost = function (a, success) {\n if (success) {\n that.notify('Post deleted.')\n // update the ui to reflect model changes.\n const deleteThisNode = evt.target.parentNode\n deleteThisNode.parentNode.removeChild(deleteThisNode)\n kb.removeMany(deleteMe)\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = true\n }\n }\n // delete references to post\n const deleteContainerOf = function (a, success) {\n if (success) {\n const deleteContainer = kb.statementsMatching(\n undefined,\n SIOC('container_of'),\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(\n deleteContainer,\n mbconfirmDeletePost\n )\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = false\n }\n }\n // delete attributes of post\n evt.target.disabled = true\n const deleteMe = kb.statementsMatching(\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf)\n }\n }\n let themaker\n let xreplyButton\n let xdeleteButton\n if (mb.getMyURI()) {\n // If the microblog in question does not belong to the user,\n // display the delete post and reply to post buttons.\n themaker = kb.any(post, SIOC('has_creator'))\n if (mb.getMyURI() !== themaker.uri) {\n xreplyButton = doc.createElement('input')\n xreplyButton.type = 'button'\n xreplyButton.value = 'reply'\n xreplyButton.className = 'reply'\n xreplyButton.addEventListener('click', mbReplyTo, false)\n } else {\n xdeleteButton = doc.createElement('input')\n xdeleteButton.type = 'button'\n xdeleteButton.value = 'Delete'\n xdeleteButton.className = 'reply'\n xdeleteButton.addEventListener('click', mbDeletePost, false)\n }\n }\n\n const mbFavorite = function (evt) {\n const nid = evt.target.parentNode.id\n const favpost = doc.getElementById('post_' + nid).getAttribute('content')\n xfavorite.className += ' ing'\n const cbFavorite = function (a, success, _c, _d) {\n if (success) {\n xfavorite.className =\n xfavorite.className.split(' ')[1] === 'ed'\n ? 'favorit'\n : 'favorit ed'\n }\n }\n if (!myFavorites.favorited(favpost)) {\n myFavorites.add(favpost, cbFavorite)\n } else {\n myFavorites.remove(favpost, cbFavorite)\n }\n }\n const xfavorite = doc.createElement('a')\n xfavorite.innerHTML = '&#9733;'\n xfavorite.addEventListener('click', mbFavorite, false)\n if (myFavorites.favorited(post.uri)) {\n xfavorite.className = 'favorit ed'\n } else {\n xfavorite.className = 'favorit'\n }\n // build\n xpost.appendChild(xuavatar)\n xpost.appendChild(xpostContent)\n if (mb.getMyURI()) {\n xpost.appendChild(xfavorite)\n if (mb.getMyURI() !== themaker.uri) {\n xpost.appendChild(xreplyButton)\n } else {\n xpost.appendChild(xdeleteButton)\n }\n }\n xpost.appendChild(xuname)\n xpost.appendChild(xpostLink)\n if (inReplyTo !== '') {\n xpost.appendChild(xreplyTo)\n }\n return xpost\n }\n Pane.prototype.generatePostList = function (gmbPosts) {\n /*\n generatePostList - Generate the posts and\n display their results on the interface.\n */\n const postList = doc.createElement('ul')\n const postlist = {}\n const datelist = []\n for (const post in gmbPosts) {\n const postDate = kb.any(gmbPosts[post], terms('created'))\n if (postDate) {\n datelist.push(postDate)\n postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe)\n }\n }\n datelist.sort().reverse()\n for (const d in datelist) {\n postList.appendChild(postlist[datelist[d]])\n }\n return postList\n }\n Pane.prototype.followsView = function () {\n const getFollowed = function (user) {\n let userid = kb.any(user, SIOC('id'))\n const follow = doc.createElement('li')\n follow.className = 'follow'\n userid = userid || user.uri\n let fol = kb.any(undefined, FOAF('holdsAccount'), user)\n fol = fol ? fol.uri : user.uri\n follow.innerHTML = '<a href=\"' + fol + '\">' + userid + '</a>'\n return follow\n }\n const xfollows = doc.createElement('div')\n xfollows.id = 'xfollows'\n xfollows.className = 'followlist-container view-container'\n if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {\n const creatorFollows = kb.each(this.creator.sym, SIOC('follows'))\n const xfollowsList = doc.createElement('ul')\n for (const thisPerson in creatorFollows) {\n xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]))\n }\n xfollows.appendChild(xfollowsList)\n }\n this.Tab.create('tab-follows', 'Follows', xfollows, false)\n return xfollows\n }\n Pane.prototype.streamView = function (s, doc) {\n const postContainer = doc.createElement('div')\n postContainer.id = 'postContainer'\n postContainer.className = 'post-container view-container active'\n let mbPosts = []\n if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {\n sf.lookUpThing(kb.any(s, FOAF('holdsAccount')))\n const follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'))\n for (const f in follows) {\n sf.lookUpThing(follows[f])\n // look up people user follows\n const smicroblogs = kb.each(follows[f], SIOC('creator_of'))\n // get the follows microblogs\n for (const smb in smicroblogs) {\n sf.lookUpThing(smicroblogs[smb])\n if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {\n continue\n } else {\n mbPosts = mbPosts.concat(\n kb.each(smicroblogs[smb], SIOC('container_of'))\n )\n }\n }\n }\n }\n if (mbPosts.length > 0) {\n const postList = this.generatePostList(mbPosts)\n // generate stream\n postList.id = 'postList'\n postList.className = 'postList'\n postContainer.appendChild(postList)\n }\n this.Tab.create('tab-stream', 'By Follows', postContainer, true)\n return postContainer\n }\n Pane.prototype.notificationsView = function (s, doc) {\n const postNotificationContainer = doc.createElement('div')\n postNotificationContainer.id = 'postNotificationContainer'\n postNotificationContainer.className =\n 'notification-container view-container'\n const postMentionContainer = doc.createElement('div')\n postMentionContainer.id = 'postMentionContainer'\n postMentionContainer.className = 'mention-container view-container'\n let mbnPosts = []\n let mbmPosts = []\n // get mbs that I am the creator of.\n const theUser = kb.any(s, FOAF('holdsAccount'))\n const user = kb.any(theUser, SIOC('id'))\n const microblogs = kb.each(theUser, SIOC('creator_of'))\n for (const mbm in microblogs) {\n sf.lookUpThing(microblogs[mbm])\n if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {\n mbmPosts = mbmPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n } else {\n if (kb.whether(microblogs[mbm], RDF('type'), SIOCt('Microblog'))) {\n mbnPosts = mbnPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n }\n }\n }\n const postNotificationList = this.generatePostList(mbnPosts)\n postNotificationList.id = 'postNotificationList'\n postNotificationList.className = 'postList'\n postNotificationContainer.appendChild(postNotificationList)\n\n const postMentionList = this.generatePostList(mbmPosts)\n postMentionList.id = 'postMentionList'\n postMentionList.className = 'postList'\n postMentionContainer.appendChild(postMentionList)\n this.postMentionContainer = postMentionContainer\n this.postNotificationContainer = postNotificationContainer\n this.Tab.create(\n 'tab-by-user',\n 'By ' + user,\n postNotificationContainer,\n false\n )\n this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false)\n }\n Pane.prototype.build = function () {\n const microblogPane = this.microblogPane\n this.headerContainer = this.header(s, doc)\n this.postContainer = this.streamView(s, doc)\n this.notificationsView(s, doc)\n this.xfollows = this.followsView()\n microblogPane.className = 'ppane'\n microblogPane.appendChild(this.xviewReply)\n microblogPane.appendChild(this.xnotify)\n microblogPane.appendChild(this.headerContainer)\n if (this.xfollows !== undefined) {\n microblogPane.appendChild(this.xfollows)\n }\n microblogPane.appendChild(this.postContainer)\n microblogPane.appendChild(this.postNotificationContainer)\n microblogPane.appendChild(this.postMentionContainer)\n }\n\n const microblogpane = doc.createElement('div')\n // var getusersfollows = function(uri){\n // var follows = new Object();\n // var followsa = {follows:0, matches:0};\n // var accounts = kb.each(s, FOAF(\"holdsAccount\"));\n // //get all of the accounts that a person holds\n // for (var acct in accounts){\n // var account = accounts[acct].uri;\n // var act = kb.each(kb.sym(account),SIOC(\"follows\"));\n // for (var a in act){\n // var thisuri = act[a].uri.split(\"#\")[0];\n // if (!follows[thisuri]){followsa.follows+=1;}\n // follows[thisuri] =true;\n // }\n // }\n //\n // var buildPaneUI = function(uri){\n // followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;\n // console.log(follows.toSource());\n // if(followsa.follows == followsa.matches ){\n const ppane = new Pane(s, doc, microblogpane)\n ppane.build()\n // return false;\n // }\n // else{\n // return true;\n // }\n // }\n // sf.addCallback('done',buildPaneUI);\n // sf.addCallback('fail',buildPaneUI);\n // //fetch each of the followers\n // for (var f in follows){\n // sf.refresh(kb.sym(f));\n // }\n // }(s);\n return microblogpane\n }\n}\n"],"file":"microblogPane.js"}
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ var _solidLogic = require("solid-logic");
6
+
7
+ var UI = _interopRequireWildcard(require("solid-ui"));
8
+
9
+ var $rdf = _interopRequireWildcard(require("rdflib"));
10
+
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+
3
15
  /* istanbul ignore file */
4
16
 
5
17
  /**
@@ -23,10 +35,6 @@ if (!tabulator_gBrowser) {
23
35
  */
24
36
 
25
37
  /* 2007: adapted from dragAndDrop UI Library */
26
- var UI = require('solid-ui');
27
-
28
- var $rdf = require('rdflib');
29
-
30
38
  var dragAndDrop = module.exports = {};
31
39
  dragAndDrop.util = {};
32
40
 
@@ -241,7 +249,8 @@ var TabulatorOutlinerObserver = {
241
249
  if (contentType === 'application/x-moz-file') {
242
250
  if (aXferData.data.fileSize === 0) {
243
251
  var templateDoc = $rdf.sym('chrome://tabulator/content/internalKnowledge.n3#defaultNew');
244
- UI.store.copyTo(templateDoc, $rdf.sym(url));
252
+
253
+ _solidLogic.store.copyTo(templateDoc, $rdf.sym(url));
245
254
  /*
246
255
  function WriteToFileRepresentedBy (subject){
247
256
  var outputFormulaTerm=kb.any(subject,OWL('unionOf'))
@@ -249,6 +258,7 @@ var TabulatorOutlinerObserver = {
249
258
  var outputFormula= theClass.instances[kb.the(outputFormulaTerm,tabont('accesskey')).value]
250
259
  }
251
260
  */
261
+
252
262
  }
253
263
  }
254
264
 
@@ -295,7 +305,7 @@ var TabulatorOutlinerObserver = {
295
305
  var table = targetTd.ownerDocument.getElementById('outline'); // var table=ancestor(ancestor(targetTd,'TABLE').parentNode,'TABLE')
296
306
 
297
307
  var thisOutline = table.outline;
298
- thisOutline.UserInput.insertTermTo(targetTd, UI.utils.getAbout(UI.store, this.dragTarget));
308
+ thisOutline.UserInput.insertTermTo(targetTd, UI.utils.getAbout(_solidLogic.store, this.dragTarget));
299
309
  },
300
310
  onDragStart: function onDragStart(x, y, td) {
301
311
  /* seeAlso nsDragAndDrop.js::nsDragAndDrop.startDrag */