solid-panes 3.5.30 → 3.5.31-eef22dd6

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 (309) hide show
  1. package/.babelrc +0 -0
  2. package/.eslintignore +0 -0
  3. package/.eslintrc +0 -0
  4. package/.github/workflows/ci.yml +21 -2
  5. package/.nvmrc +0 -0
  6. package/Documentation/VisualLanguage.html +0 -0
  7. package/Documentation/conventions.md +0 -0
  8. package/LICENSE.md +0 -0
  9. package/README.md +0 -0
  10. package/dev/index.html +0 -0
  11. package/dev/loader.ts +0 -0
  12. package/dev/pane/index.ts +0 -0
  13. package/doc/images/panes-for-classes.epgz +0 -0
  14. package/doc/images/panes-for-classes.svg +0 -0
  15. package/jest.config.js +0 -0
  16. package/jest.setup.ts +0 -0
  17. package/lib/RDFXMLPane.js +0 -0
  18. package/lib/RDFXMLPane.js.map +1 -1
  19. package/lib/argument/argumentPane.js +0 -0
  20. package/lib/argument/argumentPane.js.map +1 -1
  21. package/lib/attach/attachPane.js +0 -0
  22. package/lib/attach/attachPane.js.map +1 -1
  23. package/lib/audio/audioPane.js +0 -0
  24. package/lib/audio/audioPane.js.map +1 -1
  25. package/lib/classInstancePane.js +0 -0
  26. package/lib/classInstancePane.js.map +1 -1
  27. package/lib/dashboard/basicPreferences.d.ts +0 -0
  28. package/lib/dashboard/basicPreferences.d.ts.map +0 -0
  29. package/lib/dashboard/basicPreferences.js +0 -0
  30. package/lib/dashboard/basicPreferences.js.map +1 -1
  31. package/lib/dashboard/dashboardPane.d.ts +0 -0
  32. package/lib/dashboard/dashboardPane.d.ts.map +0 -0
  33. package/lib/dashboard/dashboardPane.js +0 -0
  34. package/lib/dashboard/dashboardPane.js.map +1 -1
  35. package/lib/dashboard/homepage.d.ts +0 -0
  36. package/lib/dashboard/homepage.d.ts.map +0 -0
  37. package/lib/dashboard/homepage.js +0 -0
  38. package/lib/dashboard/homepage.js.map +1 -1
  39. package/lib/dataContentPane.js +0 -0
  40. package/lib/dataContentPane.js.map +1 -1
  41. package/lib/defaultPane.js +0 -0
  42. package/lib/defaultPane.js.map +1 -1
  43. package/lib/dokieli/dokieliPane.js +0 -0
  44. package/lib/dokieli/dokieliPane.js.map +1 -1
  45. package/lib/dokieli/new.js +0 -0
  46. package/lib/dokieli/new.js.map +0 -0
  47. package/lib/form/pane.js +0 -0
  48. package/lib/form/pane.js.map +1 -1
  49. package/lib/global.d.js +0 -0
  50. package/lib/global.d.js.map +0 -0
  51. package/lib/home/homePane.d.ts +0 -0
  52. package/lib/home/homePane.d.ts.map +0 -0
  53. package/lib/home/homePane.js +0 -0
  54. package/lib/home/homePane.js.map +1 -1
  55. package/lib/humanReadablePane.js +0 -0
  56. package/lib/humanReadablePane.js.map +1 -1
  57. package/lib/imagePane.js +0 -0
  58. package/lib/imagePane.js.map +1 -1
  59. package/lib/index.d.ts +0 -0
  60. package/lib/index.d.ts.map +0 -0
  61. package/lib/index.js +0 -0
  62. package/lib/index.js.map +1 -1
  63. package/lib/internal/internalPane.d.ts +0 -0
  64. package/lib/internal/internalPane.d.ts.map +0 -0
  65. package/lib/internal/internalPane.js +0 -0
  66. package/lib/internal/internalPane.js.map +1 -1
  67. package/lib/mainPage/footer.d.ts +0 -0
  68. package/lib/mainPage/footer.d.ts.map +0 -0
  69. package/lib/mainPage/footer.js +0 -0
  70. package/lib/mainPage/footer.js.map +1 -1
  71. package/lib/mainPage/header.d.ts +0 -0
  72. package/lib/mainPage/header.d.ts.map +0 -0
  73. package/lib/mainPage/header.js +0 -0
  74. package/lib/mainPage/header.js.map +1 -1
  75. package/lib/mainPage/index.d.ts +0 -0
  76. package/lib/mainPage/index.d.ts.map +0 -0
  77. package/lib/mainPage/index.js +0 -0
  78. package/lib/mainPage/index.js.map +1 -1
  79. package/lib/microblogPane/microblogPane.js +0 -0
  80. package/lib/microblogPane/microblogPane.js.map +1 -1
  81. package/lib/n3Pane.js +0 -0
  82. package/lib/n3Pane.js.map +1 -1
  83. package/lib/outline/context.d.ts +0 -0
  84. package/lib/outline/context.d.ts.map +0 -0
  85. package/lib/outline/context.js +0 -0
  86. package/lib/outline/context.js.map +1 -1
  87. package/lib/outline/licenseOptions.js +0 -0
  88. package/lib/outline/licenseOptions.js.map +1 -1
  89. package/lib/outline/manager.js +0 -0
  90. package/lib/outline/manager.js.map +1 -1
  91. package/lib/outline/manager.test.js +0 -0
  92. package/lib/outline/manager.test.js.map +1 -1
  93. package/lib/outline/outlineIcons.js +0 -0
  94. package/lib/outline/outlineIcons.js.map +1 -1
  95. package/lib/outline/propertyViews.d.ts +0 -0
  96. package/lib/outline/propertyViews.d.ts.map +0 -0
  97. package/lib/outline/propertyViews.js +0 -0
  98. package/lib/outline/propertyViews.js.map +1 -1
  99. package/lib/outline/propertyViews.test.js +0 -0
  100. package/lib/outline/propertyViews.test.js.map +1 -1
  101. package/lib/outline/queryByExample.js +0 -0
  102. package/lib/outline/queryByExample.js.map +1 -1
  103. package/lib/outline/userInput.js +0 -0
  104. package/lib/outline/userInput.js.map +1 -1
  105. package/lib/outline/viewAsImage.d.ts +0 -0
  106. package/lib/outline/viewAsImage.d.ts.map +0 -0
  107. package/lib/outline/viewAsImage.js +0 -0
  108. package/lib/outline/viewAsImage.js.map +1 -1
  109. package/lib/outline/viewAsMbox.d.ts +0 -0
  110. package/lib/outline/viewAsMbox.d.ts.map +0 -0
  111. package/lib/outline/viewAsMbox.js +0 -0
  112. package/lib/outline/viewAsMbox.js.map +1 -1
  113. package/lib/pad/padPane.d.ts +0 -0
  114. package/lib/pad/padPane.d.ts.map +0 -0
  115. package/lib/pad/padPane.js +0 -0
  116. package/lib/pad/padPane.js.map +1 -1
  117. package/lib/playlist/playlistPane.js +0 -0
  118. package/lib/playlist/playlistPane.js.map +1 -1
  119. package/lib/profile/editProfile.view.d.ts +0 -0
  120. package/lib/profile/editProfile.view.d.ts.map +0 -0
  121. package/lib/profile/editProfile.view.js +0 -0
  122. package/lib/profile/editProfile.view.js.map +1 -1
  123. package/lib/profile/profile.dom.d.ts +0 -0
  124. package/lib/profile/profile.dom.d.ts.map +0 -0
  125. package/lib/profile/profile.dom.js +0 -0
  126. package/lib/profile/profile.dom.js.map +1 -1
  127. package/lib/registerPanes.js +0 -0
  128. package/lib/registerPanes.js.map +1 -1
  129. package/lib/schedule/formsForSchedule.js +0 -0
  130. package/lib/schedule/formsForSchedule.js.map +0 -0
  131. package/lib/schedule/schedulePane.js +0 -0
  132. package/lib/schedule/schedulePane.js.map +1 -1
  133. package/lib/sharing/sharingPane.d.ts +0 -0
  134. package/lib/sharing/sharingPane.d.ts.map +0 -0
  135. package/lib/sharing/sharingPane.js +0 -0
  136. package/lib/sharing/sharingPane.js.map +1 -1
  137. package/lib/slideshow/slideshowPane.js +0 -0
  138. package/lib/slideshow/slideshowPane.js.map +1 -1
  139. package/lib/socialPane.js +0 -0
  140. package/lib/socialPane.js.map +1 -1
  141. package/lib/tabbed/tabbedPane.d.ts +0 -0
  142. package/lib/tabbed/tabbedPane.d.ts.map +0 -0
  143. package/lib/tabbed/tabbedPane.js +0 -0
  144. package/lib/tabbed/tabbedPane.js.map +1 -1
  145. package/lib/tableViewPane.js +0 -0
  146. package/lib/tableViewPane.js.map +1 -1
  147. package/lib/test-import-export/common.js +0 -0
  148. package/lib/test-import-export/common.js.map +1 -1
  149. package/lib/test-import-export/edit-importer.js +0 -0
  150. package/lib/test-import-export/edit-importer.js.map +1 -1
  151. package/lib/test-import-export/testImportExport.js +0 -0
  152. package/lib/test-import-export/testImportExport.js.map +0 -0
  153. package/lib/transaction/pane.js +0 -0
  154. package/lib/transaction/pane.js.map +1 -1
  155. package/lib/transaction/period.js +0 -0
  156. package/lib/transaction/period.js.map +1 -1
  157. package/lib/trip/tripPane.js +0 -0
  158. package/lib/trip/tripPane.js.map +1 -1
  159. package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
  160. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
  161. package/lib/trustedApplications/trustedApplications.dom.js +0 -0
  162. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  163. package/lib/trustedApplications/trustedApplications.test.js +0 -0
  164. package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
  165. package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
  166. package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  167. package/lib/trustedApplications/trustedApplications.utils.js +0 -0
  168. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  169. package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
  170. package/lib/trustedApplications/trustedApplications.view.d.ts.map +0 -0
  171. package/lib/trustedApplications/trustedApplications.view.js +0 -0
  172. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  173. package/lib/types.d.ts +0 -0
  174. package/lib/types.d.ts.map +0 -0
  175. package/lib/types.js +0 -0
  176. package/lib/types.js.map +0 -0
  177. package/lib/ui/pane.js +0 -0
  178. package/lib/ui/pane.js.map +1 -1
  179. package/lib/versionInfo.d.ts +0 -0
  180. package/lib/versionInfo.d.ts.map +0 -0
  181. package/lib/versionInfo.js +14 -14
  182. package/lib/versionInfo.js.map +1 -1
  183. package/lib/video/videoPane.js +0 -0
  184. package/lib/video/videoPane.js.map +1 -1
  185. package/package.json +17 -17
  186. package/src/RDFXMLPane.js +0 -0
  187. package/src/argument/argumentPane.js +0 -0
  188. package/src/argument/argument_icon_v04.jpg +0 -0
  189. package/src/argument/icon_argument.png +0 -0
  190. package/src/argument/transparentyingyang.png +0 -0
  191. package/src/attach/attachPane.js +0 -0
  192. package/src/attach/tbl-paperclip-128.png +0 -0
  193. package/src/attach/tbl-paperclip-22.png +0 -0
  194. package/src/attach/tbl-paperclip-22a.png +0 -0
  195. package/src/audio/audioPane.js +0 -0
  196. package/src/chatPreferencesForm.ttl +0 -0
  197. package/src/classInstancePane.js +0 -0
  198. package/src/dashboard/basicPreferences.ts +0 -0
  199. package/src/dashboard/dashboardPane.ts +0 -0
  200. package/src/dashboard/homepage.ts +0 -0
  201. package/src/dashboard/languages/codes.html +0 -0
  202. package/src/dashboard/languages/codes.xml +0 -0
  203. package/src/dashboard/languages/codes2.txt +0 -0
  204. package/src/dashboard/languages/foo +0 -0
  205. package/src/dashboard/languages/foo.ttl +0 -0
  206. package/src/dashboard/languages/get-language-names.sh +0 -0
  207. package/src/dashboard/ontologyData.ttl +0 -0
  208. package/src/dashboard/preferencesFormText.ttl +0 -0
  209. package/src/dataContentPane.js +0 -0
  210. package/src/defaultPane.js +0 -0
  211. package/src/dokieli/Makefile +0 -0
  212. package/src/dokieli/dokieliPane.js +0 -0
  213. package/src/dokieli/new.html +0 -0
  214. package/src/dokieli/new.js +0 -0
  215. package/src/form/form-22.png +0 -0
  216. package/src/form/form-b-22.png +0 -0
  217. package/src/form/form.graffle +0 -0
  218. package/src/form/form.png +0 -0
  219. package/src/form/pane.js +0 -0
  220. package/src/form/psuedocode-notes.txt +0 -0
  221. package/src/global.d.ts +0 -0
  222. package/src/home/homePane.ts +0 -0
  223. package/src/humanReadablePane.js +0 -0
  224. package/src/imagePane.js +0 -0
  225. package/src/index.ts +0 -0
  226. package/src/internal/internalPane.ts +0 -0
  227. package/src/mainPage/footer.ts +0 -0
  228. package/src/mainPage/header.ts +0 -0
  229. package/src/mainPage/index.ts +0 -0
  230. package/src/meeting/Makefile +0 -0
  231. package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
  232. package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
  233. package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
  234. package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
  235. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
  236. package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
  237. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
  238. package/src/meeting/test/meeting1/Schedule/index.html +0 -0
  239. package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
  240. package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
  241. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
  242. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
  243. package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
  244. package/src/meeting/test/meeting1/details.ttl +0 -0
  245. package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
  246. package/src/microblogPane/mbStyle.css +0 -0
  247. package/src/microblogPane/microblogPane.js +0 -0
  248. package/src/n3Pane.js +0 -0
  249. package/src/outline/context.ts +0 -0
  250. package/src/outline/licenseOptions.js +0 -0
  251. package/src/outline/manager.js +0 -0
  252. package/src/outline/manager.test.ts +0 -0
  253. package/src/outline/outlineIcons.js +0 -0
  254. package/src/outline/propertyViews.test.ts +0 -0
  255. package/src/outline/propertyViews.ts +0 -0
  256. package/src/outline/queryByExample.js +0 -0
  257. package/src/outline/userInput.js +0 -0
  258. package/src/outline/viewAsImage.ts +0 -0
  259. package/src/outline/viewAsMbox.ts +0 -0
  260. package/src/pad/images/ColourOff.ai +0 -0
  261. package/src/pad/images/ColourOff.png +0 -0
  262. package/src/pad/images/ColourOn.ai +0 -0
  263. package/src/pad/images/ColourOn.png +0 -0
  264. package/src/pad/padPane.ts +0 -0
  265. package/src/playlist/playlistPane.js +0 -0
  266. package/src/profile/editProfile.view.ts +0 -0
  267. package/src/profile/profile.dom.ts +0 -0
  268. package/src/profile/profileFormText.ttl +0 -0
  269. package/src/registerPanes.js +0 -0
  270. package/src/schedule/Makefile +0 -0
  271. package/src/schedule/formsForSchedule.js +0 -0
  272. package/src/schedule/formsForSchedule.ttl +0 -0
  273. package/src/schedule/schedulePane.js +0 -0
  274. package/src/sharing/sharingPane.ts +0 -0
  275. package/src/slideshow/slideshowPane.js +0 -0
  276. package/src/socialPane.js +0 -0
  277. package/src/style/tabbedtab.css +0 -0
  278. package/src/tabbed/tabbedPane.ts +0 -0
  279. package/src/tableViewPane.js +0 -0
  280. package/src/test-import-export/common.js +0 -0
  281. package/src/test-import-export/edit-importer.js +0 -0
  282. package/src/test-import-export/testImportExport.js +0 -0
  283. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  284. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  285. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  286. package/src/transaction/pane.js +0 -0
  287. package/src/transaction/period.js +0 -0
  288. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  289. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  290. package/src/trip/tripPane.js +0 -0
  291. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
  292. package/src/trustedApplications/trustedApplications.dom.ts +0 -0
  293. package/src/trustedApplications/trustedApplications.test.ts +0 -0
  294. package/src/trustedApplications/trustedApplications.utils.ts +0 -0
  295. package/src/trustedApplications/trustedApplications.view.ts +0 -0
  296. package/src/types.ts +0 -0
  297. package/src/ui/22-builder.png +0 -0
  298. package/src/ui/builder.graffle +0 -0
  299. package/src/ui/builder.png +0 -0
  300. package/src/ui/builder2.png +0 -0
  301. package/src/ui/pane.js +0 -0
  302. package/src/versionInfo.ts +14 -14
  303. package/src/video/videoPane.js +0 -0
  304. package/timestamp.sh +0 -0
  305. package/travis/bumpversion.js +0 -0
  306. package/tsconfig.json +0 -0
  307. package/typings/raw-loader.d.ts +0 -0
  308. package/typings/solid-namespace/index.d.ts +0 -0
  309. package/webpack.config.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"microblogPane.js","names":["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"],"sources":["../../src/microblogPane/microblogPane.js"],"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\nexport default {\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"],"mappings":"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"}
1
+ {"version":3,"file":"microblogPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_default","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","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","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","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","_loop","word","match","atUser","recipient","xrecipients","xrecipientsSubmit","type","parentNode","recipChoice","recip","choice","v","toLowerCase","_ret","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","exports"],"sources":["../../src/microblogPane/microblogPane.js"],"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\nexport default {\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"],"mappings":"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"}
package/lib/n3Pane.js CHANGED
File without changes
package/lib/n3Pane.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"n3Pane.js","names":["ns","UI","n3Pane","icon","icons","originalIconBase","name","audience","solid","label","subject","context","store","session","findTypeURIs","n","statementsMatching","undefined","length","render","myDocument","dom","kb","div","createElement","setAttribute","sts","sz","rdf","Serializer","suggestNamespaces","namespaces","setBase","uri","str","statementsToN3","pre","appendChild","createTextNode"],"sources":["../src/n3Pane.js"],"sourcesContent":["/* Notation3 content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource,\n ** in generated N3 syntax.\n */\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport const n3Pane = {\n icon: UI.icons.originalIconBase + 'w3c/n3_smaller.png',\n\n name: 'n3',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n const store = context.session.store\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = store.statementsMatching(undefined, undefined, undefined, subject)\n .length\n if (n === 0) return null\n return 'Data (' + n + ') as N3'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'n3Pane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n /*\n var kludge = kb.formula([]) // No features\n for (var i=0; i< sts.length; i++) {\n s = sts[i]\n kludge.add(s.subject, s.predicate, s.object)\n }\n */\n const sz = UI.rdf.Serializer(kb)\n sz.suggestNamespaces(kb.namespaces)\n sz.setBase(subject.uri)\n const str = sz.statementsToN3(sts)\n const pre = myDocument.createElement('PRE')\n pre.appendChild(myDocument.createTextNode(str))\n div.appendChild(pre)\n return div\n }\n}\n"],"mappings":";;;;;;;AAMA;AAA8B;AAAA;AAN9B;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,EAAE,GAAGC,EAAE,CAACD,EAAE;AAET,IAAME,MAAM,GAAI;EACrBC,IAAI,EAAEF,EAAE,CAACG,KAAK,CAACC,gBAAgB,GAAG,oBAAoB;EAEtDC,IAAI,EAAE,IAAI;EAEVC,QAAQ,EAAE,CAACP,EAAE,CAACQ,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjCC,KAAK,EAAE,eAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,IAAMC,KAAK,GAAGD,OAAO,CAACE,OAAO,CAACD,KAAK;IACnC,IACE,+CAA+C,IAC/CA,KAAK,CAACE,YAAY,CAACJ,OAAO,CAAC,EAC3B;MACA,OAAO,IAAI;IACb;IACA,IAAMK,CAAC,GAAGH,KAAK,CAACI,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEP,OAAO,CAAC,CACzEQ,MAAM;IACT,IAAIH,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;IACxB,OAAO,QAAQ,GAAGA,CAAC,GAAG,SAAS;EACjC,CAAC;EAEDI,MAAM,EAAE,gBAAUT,OAAO,EAAEC,OAAO,EAAE;IAClC,IAAMS,UAAU,GAAGT,OAAO,CAACU,GAAG;IAC9B,IAAMC,EAAE,GAAGX,OAAO,CAACE,OAAO,CAACD,KAAK;IAChC,IAAMW,GAAG,GAAGH,UAAU,CAACI,aAAa,CAAC,KAAK,CAAC;IAC3CD,GAAG,CAACE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnC;IACA;IACA;IACA,IAAMC,GAAG,GAAGJ,EAAE,CAACN,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEP,OAAO,CAAC,EAAC;IAC5E;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAMiB,EAAE,GAAG1B,EAAE,CAAC2B,GAAG,CAACC,UAAU,CAACP,EAAE,CAAC;IAChCK,EAAE,CAACG,iBAAiB,CAACR,EAAE,CAACS,UAAU,CAAC;IACnCJ,EAAE,CAACK,OAAO,CAACtB,OAAO,CAACuB,GAAG,CAAC;IACvB,IAAMC,GAAG,GAAGP,EAAE,CAACQ,cAAc,CAACT,GAAG,CAAC;IAClC,IAAMU,GAAG,GAAGhB,UAAU,CAACI,aAAa,CAAC,KAAK,CAAC;IAC3CY,GAAG,CAACC,WAAW,CAACjB,UAAU,CAACkB,cAAc,CAACJ,GAAG,CAAC,CAAC;IAC/CX,GAAG,CAACc,WAAW,CAACD,GAAG,CAAC;IACpB,OAAOb,GAAG;EACZ;AACF,CAAC;AAAA"}
1
+ {"version":3,"file":"n3Pane.js","names":["UI","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ns","n3Pane","icon","icons","originalIconBase","name","audience","solid","label","subject","context","store","session","findTypeURIs","n","statementsMatching","undefined","length","render","myDocument","dom","kb","div","createElement","setAttribute","sts","sz","rdf","Serializer","suggestNamespaces","namespaces","setBase","uri","str","statementsToN3","pre","appendChild","createTextNode","exports"],"sources":["../src/n3Pane.js"],"sourcesContent":["/* Notation3 content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource,\n ** in generated N3 syntax.\n */\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport const n3Pane = {\n icon: UI.icons.originalIconBase + 'w3c/n3_smaller.png',\n\n name: 'n3',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n const store = context.session.store\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = store.statementsMatching(undefined, undefined, undefined, subject)\n .length\n if (n === 0) return null\n return 'Data (' + n + ') as N3'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'n3Pane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n /*\n var kludge = kb.formula([]) // No features\n for (var i=0; i< sts.length; i++) {\n s = sts[i]\n kludge.add(s.subject, s.predicate, s.object)\n }\n */\n const sz = UI.rdf.Serializer(kb)\n sz.suggestNamespaces(kb.namespaces)\n sz.setBase(subject.uri)\n const str = sz.statementsToN3(sts)\n const pre = myDocument.createElement('PRE')\n pre.appendChild(myDocument.createTextNode(str))\n div.appendChild(pre)\n return div\n }\n}\n"],"mappings":"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"}
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","dom","paneRegistry","store","logic","getOutliner","session"],"sources":["../../src/outline/context.ts"],"sourcesContent":["import { DataBrowserContext, PaneRegistry } from 'pane-registry'\nimport { getOutliner } from '../index'\nimport { SolidLogic } from 'solid-logic'\nimport { LiveStore } from 'rdflib'\n\nexport function createContext (\n dom: HTMLDocument,\n paneRegistry: PaneRegistry,\n store: LiveStore,\n logic: SolidLogic\n): DataBrowserContext {\n return {\n dom,\n getOutliner,\n session: {\n paneRegistry,\n store,\n logic\n }\n }\n}\n"],"mappings":";;;;;;AACA;AAIO,SAASA,aAAa,CAC3BC,GAAiB,EACjBC,YAA0B,EAC1BC,KAAgB,EAChBC,KAAiB,EACG;EACpB,OAAO;IACLH,GAAG,EAAHA,GAAG;IACHI,WAAW,EAAXA,kBAAW;IACXC,OAAO,EAAE;MACPJ,YAAY,EAAZA,YAAY;MACZC,KAAK,EAALA,KAAK;MACLC,KAAK,EAALA;IACF;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"context.js","names":["_index","require","createContext","dom","paneRegistry","store","logic","getOutliner","session"],"sources":["../../src/outline/context.ts"],"sourcesContent":["import { DataBrowserContext, PaneRegistry } from 'pane-registry'\nimport { getOutliner } from '../index'\nimport { SolidLogic } from 'solid-logic'\nimport { LiveStore } from 'rdflib'\n\nexport function createContext (\n dom: HTMLDocument,\n paneRegistry: PaneRegistry,\n store: LiveStore,\n logic: SolidLogic\n): DataBrowserContext {\n return {\n dom,\n getOutliner,\n session: {\n paneRegistry,\n store,\n logic\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAIO,SAASC,aAAaA,CAC3BC,GAAiB,EACjBC,YAA0B,EAC1BC,KAAgB,EAChBC,KAAiB,EACG;EACpB,OAAO;IACLH,GAAG,EAAHA,GAAG;IACHI,WAAW,EAAXA,kBAAW;IACXC,OAAO,EAAE;MACPJ,YAAY,EAAZA,YAAY;MACZC,KAAK,EAALA,KAAK;MACLC,KAAK,EAALA;IACF;EACF,CAAC;AACH"}
File without changes