solid-panes 4.4.2-1 → 4.4.2-3

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 (386) hide show
  1. package/README.md +10 -10
  2. package/dist/RDFXMLPane.d.ts +2 -3
  3. package/dist/RDFXMLPane2.cjs.js +3 -0
  4. package/dist/RDFXMLPane2.cjs.js.map +1 -0
  5. package/dist/RDFXMLPane2.esm.js +55 -0
  6. package/dist/RDFXMLPane2.esm.js.map +1 -0
  7. package/dist/_virtual/_rolldown/runtime.cjs.js +1 -0
  8. package/dist/_virtual/~icons/lucide/user.cjs.js +2 -0
  9. package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -0
  10. package/dist/_virtual/~icons/lucide/user.esm.js +11 -0
  11. package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -0
  12. package/dist/audio/audioPane.cjs.js +2 -0
  13. package/dist/audio/audioPane.cjs.js.map +1 -0
  14. package/dist/audio/audioPane.esm.js +96 -0
  15. package/dist/audio/audioPane.esm.js.map +1 -0
  16. package/dist/classInstancePane.cjs.js +2 -0
  17. package/dist/classInstancePane.cjs.js.map +1 -0
  18. package/dist/classInstancePane.esm.js +50 -0
  19. package/dist/classInstancePane.esm.js.map +1 -0
  20. package/dist/components/header/Header.d.ts +8 -0
  21. package/dist/components/header/Header.d.ts.map +1 -0
  22. package/dist/components/header/index.d.ts +4 -0
  23. package/dist/components/header/index.d.ts.map +1 -0
  24. package/dist/dashboard/basicPreferences.cjs.js +2 -0
  25. package/dist/dashboard/basicPreferences.cjs.js.map +1 -0
  26. package/dist/dashboard/basicPreferences.d.ts +1 -1
  27. package/dist/dashboard/basicPreferences.esm.js +70 -0
  28. package/dist/dashboard/basicPreferences.esm.js.map +1 -0
  29. package/dist/dashboard/dashboardPane.d.ts +1 -1
  30. package/dist/dashboard/homepage.d.ts +1 -1
  31. package/dist/dashboard/ontologyData.cjs.js +37 -0
  32. package/dist/dashboard/ontologyData.cjs.js.map +1 -0
  33. package/dist/dashboard/ontologyData.esm.js +6 -0
  34. package/dist/dashboard/ontologyData.esm.js.map +1 -0
  35. package/dist/dashboard/preferencesFormText.cjs.js +20 -0
  36. package/dist/dashboard/preferencesFormText.cjs.js.map +1 -0
  37. package/dist/dashboard/preferencesFormText.esm.js +6 -0
  38. package/dist/dashboard/preferencesFormText.esm.js.map +1 -0
  39. package/dist/dataContentPane.d.ts +2 -3
  40. package/dist/dataContentPane2.cjs.js +2 -0
  41. package/dist/dataContentPane2.cjs.js.map +1 -0
  42. package/dist/dataContentPane2.esm.js +109 -0
  43. package/dist/dataContentPane2.esm.js.map +1 -0
  44. package/dist/defaultPane.d.ts +2 -3
  45. package/dist/defaultPane2.cjs.js +2 -0
  46. package/dist/defaultPane2.cjs.js.map +1 -0
  47. package/dist/defaultPane2.esm.js +41 -0
  48. package/dist/defaultPane2.esm.js.map +1 -0
  49. package/dist/dev.d.ts +10 -0
  50. package/dist/dev.d.ts.map +1 -0
  51. package/dist/dokieli/dokieliPane.cjs.js +2 -0
  52. package/dist/dokieli/dokieliPane.cjs.js.map +1 -0
  53. package/dist/dokieli/dokieliPane.esm.js +39 -0
  54. package/dist/dokieli/dokieliPane.esm.js.map +1 -0
  55. package/dist/dokieli/{new.js → new.cjs.js} +4 -10
  56. package/dist/dokieli/new.cjs.js.map +1 -0
  57. package/dist/dokieli/new.esm.js +6 -0
  58. package/dist/dokieli/new.esm.js.map +1 -0
  59. package/dist/form/pane.cjs.js +4 -0
  60. package/dist/form/pane.cjs.js.map +1 -0
  61. package/dist/form/pane.d.ts +1 -2
  62. package/dist/form/pane.esm.js +121 -0
  63. package/dist/form/pane.esm.js.map +1 -0
  64. package/dist/home/homePane.cjs.js +2 -0
  65. package/dist/home/homePane.cjs.js.map +1 -0
  66. package/dist/home/homePane.d.ts +1 -1
  67. package/dist/home/homePane.esm.js +35 -0
  68. package/dist/home/homePane.esm.js.map +1 -0
  69. package/dist/humanReadablePane.d.ts +2 -3
  70. package/dist/humanReadablePane2.cjs.js +2 -0
  71. package/dist/humanReadablePane2.cjs.js.map +1 -0
  72. package/dist/humanReadablePane2.esm.js +123 -0
  73. package/dist/humanReadablePane2.esm.js.map +1 -0
  74. package/dist/icons/dashboard.cjs.js +2 -0
  75. package/dist/icons/dashboard.cjs.js.map +1 -0
  76. package/dist/icons/dashboard.esm.js +6 -0
  77. package/dist/icons/dashboard.esm.js.map +1 -0
  78. package/dist/icons/folder.cjs.js +2 -0
  79. package/dist/icons/folder.cjs.js.map +1 -0
  80. package/dist/icons/folder.esm.js +6 -0
  81. package/dist/icons/folder.esm.js.map +1 -0
  82. package/dist/icons/friends.cjs.js +2 -0
  83. package/dist/icons/friends.cjs.js.map +1 -0
  84. package/dist/icons/friends.esm.js +6 -0
  85. package/dist/icons/friends.esm.js.map +1 -0
  86. package/dist/icons/iconHelper.cjs.js +2 -0
  87. package/dist/icons/iconHelper.cjs.js.map +1 -0
  88. package/dist/icons/iconHelper.esm.js +17 -0
  89. package/dist/icons/iconHelper.esm.js.map +1 -0
  90. package/dist/icons/{menu.svg → menu.cjs.js} +3 -2
  91. package/dist/icons/menu.cjs.js.map +1 -0
  92. package/dist/icons/menu.esm.js +6 -0
  93. package/dist/icons/menu.esm.js.map +1 -0
  94. package/dist/icons/person.cjs.js +2 -0
  95. package/dist/icons/person.cjs.js.map +1 -0
  96. package/dist/icons/person.esm.js +6 -0
  97. package/dist/icons/person.esm.js.map +1 -0
  98. package/dist/imagePane.d.ts +2 -3
  99. package/dist/imagePane2.cjs.js +2 -0
  100. package/dist/imagePane2.cjs.js.map +1 -0
  101. package/dist/imagePane2.esm.js +32 -0
  102. package/dist/imagePane2.esm.js.map +1 -0
  103. package/dist/index.cjs.js +2 -0
  104. package/dist/index.cjs.js.map +1 -0
  105. package/dist/index.d.ts +4 -4
  106. package/dist/index.esm.js +26 -0
  107. package/dist/index.esm.js.map +1 -0
  108. package/dist/internal/internalPane.d.ts +1 -2
  109. package/dist/internal/internalPane2.cjs.js +2 -0
  110. package/dist/internal/internalPane2.cjs.js.map +1 -0
  111. package/dist/internal/internalPane2.esm.js +104 -0
  112. package/dist/internal/internalPane2.esm.js.map +1 -0
  113. package/dist/mainPage/footer.cjs.js +2 -0
  114. package/dist/mainPage/footer.cjs.js.map +1 -0
  115. package/dist/mainPage/footer.d.ts +1 -3
  116. package/dist/mainPage/footer.esm.js +18 -0
  117. package/dist/mainPage/footer.esm.js.map +1 -0
  118. package/dist/mainPage/header.cjs.js +2 -0
  119. package/dist/mainPage/header.cjs.js.map +1 -0
  120. package/dist/mainPage/header.d.ts +1 -15
  121. package/dist/mainPage/header.d.ts.map +1 -1
  122. package/dist/mainPage/header.esm.js +24 -0
  123. package/dist/mainPage/header.esm.js.map +1 -0
  124. package/dist/mainPage/index.cjs.js +2 -0
  125. package/dist/mainPage/index.cjs.js.map +1 -0
  126. package/dist/mainPage/index.d.ts +3 -7
  127. package/dist/mainPage/index.d.ts.map +1 -1
  128. package/dist/mainPage/index.esm.js +38 -0
  129. package/dist/mainPage/index.esm.js.map +1 -0
  130. package/dist/mainPage/menu.d.ts +1 -2
  131. package/dist/mainPage/menu2.cjs.js +2 -0
  132. package/dist/mainPage/menu2.cjs.js.map +1 -0
  133. package/dist/mainPage/menu2.esm.js +184 -0
  134. package/dist/mainPage/menu2.esm.js.map +1 -0
  135. package/dist/n3Pane.d.ts +2 -3
  136. package/dist/n3Pane2.cjs.js +3 -0
  137. package/dist/n3Pane2.cjs.js.map +1 -0
  138. package/dist/n3Pane2.esm.js +52 -0
  139. package/dist/n3Pane2.esm.js.map +1 -0
  140. package/dist/outline/context.cjs.js +2 -0
  141. package/dist/outline/context.cjs.js.map +1 -0
  142. package/dist/outline/context.d.ts +3 -3
  143. package/dist/outline/context.esm.js +18 -0
  144. package/dist/outline/context.esm.js.map +1 -0
  145. package/dist/outline/manager2.cjs.js +3 -0
  146. package/dist/outline/manager2.cjs.js.map +1 -0
  147. package/dist/outline/manager2.esm.js +875 -0
  148. package/dist/outline/manager2.esm.js.map +1 -0
  149. package/dist/outline/outlineIcons.cjs.js +2 -0
  150. package/dist/outline/outlineIcons.cjs.js.map +1 -0
  151. package/dist/outline/outlineIcons.esm.js +10 -0
  152. package/dist/outline/outlineIcons.esm.js.map +1 -0
  153. package/dist/outline/propertyViews.cjs.js +2 -0
  154. package/dist/outline/propertyViews.cjs.js.map +1 -0
  155. package/dist/outline/propertyViews.esm.js +19 -0
  156. package/dist/outline/propertyViews.esm.js.map +1 -0
  157. package/dist/outline/queryByExample.cjs.js +2 -0
  158. package/dist/outline/queryByExample.cjs.js.map +1 -0
  159. package/dist/outline/queryByExample.esm.js +25 -0
  160. package/dist/outline/queryByExample.esm.js.map +1 -0
  161. package/dist/outline/userInput.cjs.js +61 -0
  162. package/dist/outline/userInput.cjs.js.map +1 -0
  163. package/dist/outline/userInput.esm.js +784 -0
  164. package/dist/outline/userInput.esm.js.map +1 -0
  165. package/dist/outline/viewAsImage.cjs.js +2 -0
  166. package/dist/outline/viewAsImage.cjs.js.map +1 -0
  167. package/dist/outline/viewAsImage.esm.js +10 -0
  168. package/dist/outline/viewAsImage.esm.js.map +1 -0
  169. package/dist/outline/viewAsMbox.cjs.js +2 -0
  170. package/dist/outline/viewAsMbox.cjs.js.map +1 -0
  171. package/dist/outline/viewAsMbox.esm.js +9 -0
  172. package/dist/outline/viewAsMbox.esm.js.map +1 -0
  173. package/dist/pad/padPane.d.ts +1 -2
  174. package/dist/pad/padPane2.cjs.js +2 -0
  175. package/dist/pad/padPane2.cjs.js.map +1 -0
  176. package/dist/pad/padPane2.esm.js +172 -0
  177. package/dist/pad/padPane2.esm.js.map +1 -0
  178. package/dist/playlist/playlistPane.cjs.js +2 -0
  179. package/dist/playlist/playlistPane.cjs.js.map +1 -0
  180. package/dist/playlist/playlistPane.esm.js +49 -0
  181. package/dist/playlist/playlistPane.esm.js.map +1 -0
  182. package/dist/profileUtils/ownerProfile.cjs.js +2 -0
  183. package/dist/profileUtils/ownerProfile.cjs.js.map +1 -0
  184. package/dist/profileUtils/ownerProfile.d.ts +1 -1
  185. package/dist/profileUtils/ownerProfile.esm.js +50 -0
  186. package/dist/profileUtils/ownerProfile.esm.js.map +1 -0
  187. package/dist/registerPanes.cjs.js +2 -0
  188. package/dist/registerPanes.cjs.js.map +1 -0
  189. package/dist/registerPanes.esm.js +45 -0
  190. package/dist/registerPanes.esm.js.map +1 -0
  191. package/dist/schedule/formsForSchedule.cjs.js +117 -0
  192. package/dist/schedule/formsForSchedule.cjs.js.map +1 -0
  193. package/dist/schedule/formsForSchedule.esm.js +6 -0
  194. package/dist/schedule/formsForSchedule.esm.js.map +1 -0
  195. package/dist/schedule/schedulePane.d.ts +2 -4
  196. package/dist/schedule/schedulePane2.cjs.js +8 -0
  197. package/dist/schedule/schedulePane2.cjs.js.map +1 -0
  198. package/dist/schedule/schedulePane2.esm.js +384 -0
  199. package/dist/schedule/schedulePane2.esm.js.map +1 -0
  200. package/dist/sharing/sharingPane.cjs.js +2 -0
  201. package/dist/sharing/sharingPane.cjs.js.map +1 -0
  202. package/dist/sharing/sharingPane.esm.js +22 -0
  203. package/dist/sharing/sharingPane.esm.js.map +1 -0
  204. package/dist/slideshow/slideshowPane.cjs.js +2 -0
  205. package/dist/slideshow/slideshowPane.cjs.js.map +1 -0
  206. package/dist/slideshow/slideshowPane.esm.js +46 -0
  207. package/dist/slideshow/slideshowPane.esm.js.map +1 -0
  208. package/dist/social/editProfileDetails.cjs.js +2 -0
  209. package/dist/social/editProfileDetails.cjs.js.map +1 -0
  210. package/dist/social/editProfileDetails.d.ts +1 -2
  211. package/dist/social/editProfileDetails.esm.js +10 -0
  212. package/dist/social/editProfileDetails.esm.js.map +1 -0
  213. package/dist/social/icons.cjs.js +82 -0
  214. package/dist/social/icons.cjs.js.map +1 -0
  215. package/dist/social/{icons.js → icons.esm.js} +12 -18
  216. package/dist/social/icons.esm.js.map +1 -0
  217. package/dist/social/socialPane.d.ts +2 -3
  218. package/dist/social/socialPane2.cjs.js +6 -0
  219. package/dist/social/socialPane2.cjs.js.map +1 -0
  220. package/dist/social/socialPane2.esm.js +326 -0
  221. package/dist/social/socialPane2.esm.js.map +1 -0
  222. package/dist/social/socialSections.cjs.js +2 -0
  223. package/dist/social/socialSections.cjs.js.map +1 -0
  224. package/dist/social/socialSections.d.ts +2 -2
  225. package/dist/social/socialSections.esm.js +221 -0
  226. package/dist/social/socialSections.esm.js.map +1 -0
  227. package/dist/social/triage.cjs.js +2 -0
  228. package/dist/social/triage.cjs.js.map +1 -0
  229. package/dist/social/triage.d.ts +2 -2
  230. package/dist/social/triage.esm.js +44 -0
  231. package/dist/social/triage.esm.js.map +1 -0
  232. package/dist/tabbed/tabbedPane.cjs.js +2 -0
  233. package/dist/tabbed/tabbedPane.cjs.js.map +1 -0
  234. package/dist/tabbed/tabbedPane.d.ts +1 -1
  235. package/dist/tabbed/tabbedPane.esm.js +38 -0
  236. package/dist/tabbed/tabbedPane.esm.js.map +1 -0
  237. package/dist/tableViewPane.cjs.js +2 -0
  238. package/dist/tableViewPane.cjs.js.map +1 -0
  239. package/dist/tableViewPane.esm.js +20 -0
  240. package/dist/tableViewPane.esm.js.map +1 -0
  241. package/dist/transaction/pane.cjs.js +8 -0
  242. package/dist/transaction/pane.cjs.js.map +1 -0
  243. package/dist/transaction/pane.esm.js +212 -0
  244. package/dist/transaction/pane.esm.js.map +1 -0
  245. package/dist/transaction/period.cjs.js +4 -0
  246. package/dist/transaction/period.cjs.js.map +1 -0
  247. package/dist/transaction/period.esm.js +126 -0
  248. package/dist/transaction/period.esm.js.map +1 -0
  249. package/dist/trip/tripPane.cjs.js +2 -0
  250. package/dist/trip/tripPane.cjs.js.map +1 -0
  251. package/dist/trip/tripPane.esm.js +85 -0
  252. package/dist/trip/tripPane.esm.js.map +1 -0
  253. package/dist/trustedApplications/trustedApplications.dom.cjs.js +2 -0
  254. package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -0
  255. package/dist/trustedApplications/trustedApplications.dom.d.ts +1 -1
  256. package/dist/trustedApplications/trustedApplications.dom.esm.js +108 -0
  257. package/dist/trustedApplications/trustedApplications.dom.esm.js.map +1 -0
  258. package/dist/trustedApplications/trustedApplications.utils.cjs.js +2 -0
  259. package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -0
  260. package/dist/trustedApplications/trustedApplications.utils.d.ts +1 -1
  261. package/dist/trustedApplications/trustedApplications.utils.esm.js +20 -0
  262. package/dist/trustedApplications/trustedApplications.utils.esm.js.map +1 -0
  263. package/dist/trustedApplications/trustedApplications.view.cjs.js +2 -0
  264. package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -0
  265. package/dist/trustedApplications/trustedApplications.view.d.ts +1 -1
  266. package/dist/trustedApplications/trustedApplications.view.esm.js +41 -0
  267. package/dist/trustedApplications/trustedApplications.view.esm.js.map +1 -0
  268. package/dist/ui/pane.cjs.js +4 -0
  269. package/dist/ui/pane.cjs.js.map +1 -0
  270. package/dist/ui/pane.esm.js +56 -0
  271. package/dist/ui/pane.esm.js.map +1 -0
  272. package/dist/versionInfo.cjs.js +2 -0
  273. package/dist/versionInfo.cjs.js.map +1 -0
  274. package/dist/versionInfo.esm.js +40 -0
  275. package/dist/versionInfo.esm.js.map +1 -0
  276. package/dist/video/videoPane.cjs.js +2 -0
  277. package/dist/video/videoPane.cjs.js.map +1 -0
  278. package/dist/video/videoPane.esm.js +25 -0
  279. package/dist/video/videoPane.esm.js.map +1 -0
  280. package/package.json +50 -61
  281. package/dist/0314353e28ce6e5539af.svg +0 -9
  282. package/dist/04567ff683933c35c465.png +0 -0
  283. package/dist/10163fd9b5a0e00d63a0.png +0 -0
  284. package/dist/1234dcb2eec2e45f252b.png +0 -0
  285. package/dist/20899934157df4db56cb.png +0 -0
  286. package/dist/33760bf79f097f449da5.png +0 -0
  287. package/dist/4cceba29ab33b1ddd9bb.svg +0 -6
  288. package/dist/578d2b6ed32e7624164e.png +0 -0
  289. package/dist/5f62a5b2b7e99b9640c7.png +0 -0
  290. package/dist/6525766ecd288ec60129.png +0 -0
  291. package/dist/7800be6f6c4b5b0f4f20.png +0 -0
  292. package/dist/7b7538c6f6b317968009.svg +0 -9
  293. package/dist/92d03142abe6efc0b42d.svg +0 -6
  294. package/dist/976473cf5fe24d657d4b.png +0 -0
  295. package/dist/RDFXMLPane.css +0 -70
  296. package/dist/RDFXMLPane.js +0 -100
  297. package/dist/argument/argumentPane.js +0 -60
  298. package/dist/attach/attachPane.js +0 -393
  299. package/dist/audio/audioPane.js +0 -181
  300. package/dist/bda84f59e7216675a208.png +0 -0
  301. package/dist/cd68e8f3990ba8b2139e.png +0 -0
  302. package/dist/classInstancePane.js +0 -91
  303. package/dist/dashboard/basicPreferences.js +0 -147
  304. package/dist/dashboard/dashboardPane.js +0 -73
  305. package/dist/dashboard/homepage.js +0 -42
  306. package/dist/dataContentPane.css +0 -271
  307. package/dist/dataContentPane.js +0 -226
  308. package/dist/defaultPane.css +0 -97
  309. package/dist/defaultPane.js +0 -81
  310. package/dist/dokieli/dokieliPane.js +0 -74
  311. package/dist/e7074a7e2cb69e51cfd3.png +0 -0
  312. package/dist/f3772696fb7ee53c23d8.png +0 -0
  313. package/dist/form/formPane.css +0 -120
  314. package/dist/form/pane.js +0 -250
  315. package/dist/home/homePane.js +0 -74
  316. package/dist/humanReadablePane.css +0 -129
  317. package/dist/humanReadablePane.js +0 -243
  318. package/dist/icons/clock.svg +0 -7
  319. package/dist/icons/comment.svg +0 -6
  320. package/dist/icons/dashboard.svg +0 -9
  321. package/dist/icons/downArrow.svg +0 -6
  322. package/dist/icons/folder.svg +0 -6
  323. package/dist/icons/friends.svg +0 -9
  324. package/dist/icons/help.svg +0 -8
  325. package/dist/icons/iconHelper.js +0 -23
  326. package/dist/icons/person.svg +0 -6
  327. package/dist/icons/personInCircle.svg +0 -8
  328. package/dist/icons/sharing.svg +0 -10
  329. package/dist/icons/signOut.svg +0 -8
  330. package/dist/icons/signUp.svg +0 -9
  331. package/dist/icons/star.svg +0 -3
  332. package/dist/imagePane.css +0 -4
  333. package/dist/imagePane.js +0 -67
  334. package/dist/index.js +0 -123
  335. package/dist/internal/internalPane.css +0 -14
  336. package/dist/internal/internalPane.js +0 -183
  337. package/dist/mainPage/footer.js +0 -29
  338. package/dist/mainPage/header.js +0 -203
  339. package/dist/mainPage/index.js +0 -78
  340. package/dist/mainPage/menu.css +0 -243
  341. package/dist/mainPage/menu.js +0 -449
  342. package/dist/microblogPane/mbStyle.css +0 -267
  343. package/dist/microblogPane/microblogPane.js +0 -1031
  344. package/dist/n3Pane.css +0 -49
  345. package/dist/n3Pane.js +0 -88
  346. package/dist/outline/context.js +0 -21
  347. package/dist/outline/manager.css +0 -78
  348. package/dist/outline/manager.js +0 -2115
  349. package/dist/outline/outlineIcons.js +0 -126
  350. package/dist/outline/propertyViews.js +0 -43
  351. package/dist/outline/queryByExample.js +0 -285
  352. package/dist/outline/userInput.js +0 -1821
  353. package/dist/outline/viewAsImage.js +0 -14
  354. package/dist/outline/viewAsMbox.js +0 -21
  355. package/dist/pad/padPane.css +0 -40
  356. package/dist/pad/padPane.js +0 -421
  357. package/dist/playlist/playlistPane.js +0 -119
  358. package/dist/profileUtils/ownerProfile.js +0 -84
  359. package/dist/registerPanes.js +0 -145
  360. package/dist/schedule/schedulePane.css +0 -294
  361. package/dist/schedule/schedulePane.js +0 -1022
  362. package/dist/sharing/sharingPane.js +0 -48
  363. package/dist/slideshow/slideshowPane.js +0 -79
  364. package/dist/social/editProfileDetails.js +0 -362
  365. package/dist/social/socialPane.css +0 -1464
  366. package/dist/social/socialPane.js +0 -651
  367. package/dist/social/socialSections.js +0 -393
  368. package/dist/social/spinner.js +0 -13
  369. package/dist/social/triage.js +0 -79
  370. package/dist/solid-panes.js +0 -87502
  371. package/dist/solid-panes.js.map +0 -1
  372. package/dist/solid-panes.min.js +0 -3811
  373. package/dist/solid-panes.min.js.map +0 -1
  374. package/dist/styles/tabbedtab.css +0 -1066
  375. package/dist/styles/utilities.css +0 -5
  376. package/dist/tabbed/tabbedPane.js +0 -59
  377. package/dist/tableViewPane.js +0 -56
  378. package/dist/transaction/pane.js +0 -477
  379. package/dist/transaction/period.js +0 -323
  380. package/dist/trip/tripPane.js +0 -174
  381. package/dist/trustedApplications/trustedApplications.dom.js +0 -145
  382. package/dist/trustedApplications/trustedApplications.utils.js +0 -23
  383. package/dist/trustedApplications/trustedApplications.view.js +0 -55
  384. package/dist/ui/pane.js +0 -146
  385. package/dist/versionInfo.js +0 -41
  386. package/dist/video/videoPane.js +0 -42
@@ -1,1031 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _solidLogic = require("solid-logic");
8
- var UI = _interopRequireWildcard(require("solid-ui"));
9
- var $rdf = _interopRequireWildcard(require("rdflib"));
10
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- /*
12
- Microblog pane
13
- Charles McKenzie <charles2@mit.edu>
14
- */
15
- /* global alert */
16
- var _default = exports.default = {
17
- icon: UI.icons.originalIconBase + 'microblog/microblog.png',
18
- name: 'microblogPane',
19
- label: function (subject) {
20
- if (_solidLogic.store.whether(subject, UI.ns.rdf('type'), UI.ns.foaf('Person'))) {
21
- return 'Microblog';
22
- } else {
23
- return null;
24
- }
25
- },
26
- render: function (s, doc) {
27
- //* **********************************************
28
- // NAMESPACES SECTION
29
- //* **********************************************
30
- const SIOC = $rdf.Namespace('http://rdfs.org/sioc/ns#');
31
- const SIOCt = $rdf.Namespace('http://rdfs.org/sioc/types#');
32
- const FOAF = $rdf.Namespace('http://xmlns.com/foaf/0.1/');
33
- const terms = $rdf.Namespace('http://purl.org/dc/terms/');
34
- const RDF = UI.ns.rdf;
35
- const kb = _solidLogic.store;
36
- const charCount = 140;
37
- const sf = _solidLogic.store.fetcher;
38
- //* **********************************************
39
- // BACK END
40
- //* **********************************************
41
- const sparqlUpdater = kb.updater;
42
- // ----------------------------------------------
43
- // FOLLOW LIST
44
- // store the URIs of followed users for
45
- // dereferencing the @replies
46
- // ----------------------------------------------
47
- const FollowList = function (user) {
48
- this.userlist = {};
49
- this.uris = {};
50
- const myFollows = kb.each(kb.sym(user), SIOC('follows'));
51
- for (const mf in myFollows) {
52
- this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri);
53
- }
54
- };
55
- FollowList.prototype.add = function (user, uri) {
56
- // add a user to the follows store
57
- if (this.userlist[user]) {
58
- if (!(uri in this.uris)) {
59
- this.userlist[user].push(uri);
60
- this.uris[uri] = '';
61
- }
62
- } else {
63
- this.userlist[user] = [uri];
64
- }
65
- };
66
- FollowList.prototype.selectUser = function (user) {
67
- // check if a user is in the follows list.
68
- if (this.userlist[user]) {
69
- return [this.userlist[user].length === 1, this.userlist[user]];
70
- } else {
71
- // user does not follow any users with this nick
72
- return [false, []];
73
- }
74
- };
75
- // ----------------------------------------------
76
- // FAVORITES
77
- // controls the list of favorites.
78
- // constructor expects a user as uri.
79
- // ----------------------------------------------
80
- const Favorites = function (user) {
81
- this.favorites = {};
82
- this.favoritesURI = '';
83
- if (!user) {
84
- // TODO is this even useful?
85
- return;
86
- }
87
- this.user = user.split('#')[0];
88
- const created = kb.each(kb.sym(user), SIOC('creator_of'));
89
- for (const c in created) {
90
- if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {
91
- this.favoritesURI = created[c];
92
- const favs = kb.each(created[c], SIOC('container_of'));
93
- for (const f in favs) {
94
- this.favorites[favs[f]] = '';
95
- }
96
- break;
97
- }
98
- }
99
- };
100
- Favorites.prototype.favorited = function (post) {
101
- /* Favorited- returns true if the post is a favorite
102
- false otherwise */
103
- return kb.sym(post) in this.favorites;
104
- };
105
- Favorites.prototype.add = function (post, callback) {
106
- const batch = new $rdf.Statement(this.favoritesURI, SIOC('container_of'), kb.sym(post), kb.sym(this.user));
107
- sparqlUpdater.insert_statement(batch, function (a, success, c) {
108
- if (success) {
109
- kb.add(batch.subject, batch.predicate, batch.object, batch.why);
110
- }
111
- callback(a, success, c);
112
- });
113
- };
114
- Favorites.prototype.remove = function (post, callback) {
115
- const batch = new $rdf.Statement(this.favoritesURI, SIOC('container_of'), kb.sym(post), kb.sym(this.user));
116
- sparqlUpdater.delete_statement(batch, function (a, success, c) {
117
- if (success) {
118
- kb.add(batch.subject, batch.predicate, batch.object, batch.why);
119
- }
120
- callback(a, success, c);
121
- });
122
- };
123
- // ----------------------------------------------
124
- // MICROBLOG
125
- // store the uri's of followed users for
126
- // dereferencing the @replies.
127
- // ----------------------------------------------
128
- const Microblog = function (kb) {
129
- this.kb = kb;
130
-
131
- // attempt to fetch user account from local preferences if just
132
- // in case the user's foaf was not writable. add it to the store
133
- // this will probably need to change.
134
- const theUser = _solidLogic.authn.currentUser();
135
- if (theUser) {
136
- let theAccount = UI.preferences.get('acct');
137
- if (theAccount) {
138
- theAccount = kb.sym(theAccount);
139
- }
140
- if (theUser && theAccount) {
141
- kb.add(theUser, FOAF('holdsAccount'), theAccount, theUser.uri.split('#')[0]);
142
- }
143
- }
144
- };
145
- Microblog.prototype.getUser = function (uri) {
146
- const User = {};
147
- User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : '';
148
- User.avatar = kb.any(uri, SIOC('avatar')) ? kb.any(uri, SIOC('avatar')) : '';
149
- User.id = kb.any(uri, SIOC('id'));
150
- User.sym = uri;
151
- return User;
152
- };
153
- Microblog.prototype.getPost = function (uri) {
154
- const Post = {};
155
- // date ----------
156
- let postLink = new Date(kb.anyValue(uri, terms('created')));
157
- let h = postLink.getHours();
158
- const a = h > 12 ? ' PM' : ' AM';
159
- h = h > 12 ? h - 12 : h;
160
- let m = postLink.getMinutes();
161
- m = m < 10 ? '0' + m : m;
162
- const mo = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
163
- const da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
164
- const ds = da[postLink.getDay()] + ' ' + postLink.getDate() + ' ' + mo[postLink.getMonth()] + ' ' + postLink.getFullYear();
165
- postLink = h + ':' + m + a + ' on ' + ds;
166
- Post.date = postLink;
167
- // ---------
168
- Post.mentions = '';
169
- Post.message = String(kb.any(uri, SIOC('content')));
170
- Post.creator = kb.any(uri, SIOC('has_creator'));
171
- Post.uri = '';
172
- return Post;
173
- };
174
- Microblog.prototype.gen_random_uri = function (base) {
175
- // generate random uri
176
- const uriNonce = base + '#n' + Math.floor(Math.random() * 10e9);
177
- return kb.sym(uriNonce);
178
- };
179
- Microblog.prototype.statusUpdate = function (statusMsg, callback, replyTo, meta) {
180
- const myUserURI = this.getMyURI();
181
- const myUser = kb.sym(myUserURI.split('#')[0]);
182
- const newPost = this.gen_random_uri(myUser.uri);
183
- const microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'));
184
- let micro;
185
- for (const microlistelement in microlist) {
186
- if (kb.whether(microlist[microlistelement], RDF('type'), SIOCt('Microblog')) && !kb.whether(microlist[microlistelement], SIOC('topic'), kb.sym(this.getMyURI()))) {
187
- micro = microlist[microlistelement];
188
- break;
189
- }
190
- }
191
-
192
- // generate new post
193
- const batch = [new $rdf.Statement(newPost, RDF('type'), SIOCt('MicroblogPost'), myUser), new $rdf.Statement(newPost, SIOC('has_creator'), kb.sym(myUserURI), myUser), new $rdf.Statement(newPost, SIOC('content'), statusMsg, myUser), new $rdf.Statement(newPost, terms('created'), new Date(), myUser), new $rdf.Statement(micro, SIOC('container_of'), newPost, myUser)];
194
-
195
- // message replies
196
- if (replyTo) {
197
- batch.push(new $rdf.Statement(newPost, SIOC('reply_of'), kb.sym(replyTo), myUser));
198
- }
199
-
200
- // @replies, #hashtags, !groupReplies
201
- for (const r in meta.recipients) {
202
- batch.push(new $rdf.Statement(newPost, SIOC('topic'), kb.sym(meta.recipients[r]), myUser));
203
- batch.push(new $rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser));
204
- const mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'));
205
- for (const mbl in mblogs) {
206
- if (kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))) {
207
- const replyBatch = new $rdf.Statement(mblogs[mbl], SIOC('container_of'), newPost, kb.sym(meta.recipients[r].split('#')[0]));
208
- sparqlUpdater.insert_statement(replyBatch);
209
- }
210
- }
211
- }
212
- sparqlUpdater.insert_statement(batch, function (a, b, c) {
213
- callback(a, b, c, batch);
214
- });
215
- };
216
- Microblog.prototype.getMyURI = function () {
217
- const me = _solidLogic.authn.currentUser();
218
- console.log(me);
219
- const myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'));
220
- console.log('\n\n' + myMicroblog);
221
- return myMicroblog ? myMicroblog.uri : false;
222
- };
223
- Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {
224
- const host = loc + '/' + id;
225
- const rememberMicroblog = function () {
226
- UI.preferences.set('acct', host + '#' + id);
227
- };
228
- const cbgenUserMB = function (a, success, c, d) {
229
- if (success) {
230
- alert('Microblog generated at ' + host + '#' + id + 'please add <b>' + host + '</b> to your foaf.');
231
- // mbCancelNewMB() @@TBD
232
- // assume the foaf is not writable and store the microblog to the
233
- // preferences for later retrieval.
234
- // this will probably need to change.
235
- rememberMicroblog();
236
- for (const triple in d) {
237
- kb.add(d[triple].subject, d[triple].predicate, d[triple].object, d[triple].why);
238
- }
239
- }
240
- };
241
- const genUserMB = [
242
- // user
243
- new $rdf.Statement(kb.sym(host + '#' + id), RDF('type'), SIOC('User'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#' + id), SIOC('creator_of'), kb.sym(host + '#mb'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#' + id), SIOC('creator_of'), kb.sym(host + '#mbn'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#' + id), SIOC('creator_of'), kb.sym(host + '#fav'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#' + id), SIOC('name'), name, kb.sym(host)), new $rdf.Statement(kb.sym(host + '#' + id), SIOC('id'), id, kb.sym(host)), new $rdf.Statement(kb.sym(host + '#' + id), RDF('label'), id, kb.sym(host)), new $rdf.Statement(s, FOAF('holdsAccount'), kb.sym(host + '#' + id), kb.sym(host)),
244
- // microblog
245
- new $rdf.Statement(kb.sym(host + '#mb'), RDF('type'), SIOCt('Microblog'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#mb'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host)),
246
- // notification microblog
247
- new $rdf.Statement(kb.sym(host + '#mbn'), RDF('type'), SIOCt('Microblog'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#mbn'), SIOC('topic'), kb.sym(host + '#' + id), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#mbn'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host)),
248
- // favorites container
249
- new $rdf.Statement(kb.sym(host + '#fav'), RDF('type'), SIOCt('FavouriteThings'), kb.sym(host)), new $rdf.Statement(kb.sym(host + '#fav'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host))];
250
- if (avatar) {
251
- // avatar optional
252
- genUserMB.push(new $rdf.Statement(kb.sym(host + '#' + id), SIOC('avatar'), kb.sym(avatar), kb.sym(host)));
253
- }
254
- sparqlUpdater.insert_statement(genUserMB, cbgenUserMB);
255
- };
256
- const mb = new Microblog(kb);
257
- const myFavorites = new Favorites(mb.getMyURI());
258
- const myFollowList = new FollowList(mb.getMyURI());
259
-
260
- //* **********************************************
261
- // FRONT END FUNCTIONALITY
262
- //* **********************************************
263
- // ----------------------------------------------
264
- // PANE
265
- // User Interface for the Microblog Pane
266
- // ----------------------------------------------
267
- const Pane = function (s, doc, microblogPane) {
268
- const TabManager = function (doc) {
269
- this.tablist = {};
270
- this.doc = doc;
271
- this.tabView = doc.createElement('ul');
272
- this.tabView.className = 'tabslist';
273
- };
274
- TabManager.prototype.create = function (id, caption, view, isDefault) {
275
- const tab = this.doc.createElement('li');
276
- tab.innerHTML = caption;
277
- if (isDefault) {
278
- tab.className = 'active';
279
- }
280
- tab.id = id;
281
- const change = this.change;
282
- const tablist = this.tablist;
283
- tab.addEventListener('click', function (evt) {
284
- change(evt.target.id, tablist, doc);
285
- }, false);
286
- this.tablist[id] = {
287
- view: view.id,
288
- tab
289
- };
290
- this.tabView.appendChild(tab);
291
- };
292
- TabManager.prototype.getTabView = function () {
293
- return this.tabView;
294
- };
295
- TabManager.prototype.change = function (id, tablist, doc) {
296
- for (const tab in tablist) {
297
- if (tab === id) {
298
- tablist[id].tab.className = 'active';
299
- doc.getElementById(tablist[id].view).className += ' active';
300
- } else {
301
- const view = doc.getElementById(tablist[tab].view);
302
- view.className = view.className.replace(/\w*active\w*/, '');
303
- tablist[tab].tab.className = tablist[id].tab.className.replace(/\w*active\w*/, '');
304
- }
305
- }
306
- };
307
- this.microblogPane = microblogPane;
308
- const accounts = kb.each(s, FOAF('holdsAccount'));
309
- let account;
310
- for (const a in accounts) {
311
- if (kb.whether(accounts[a], RDF('type'), SIOC('User')) && kb.whether(kb.any(accounts[a], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
312
- account = accounts[a];
313
- break;
314
- }
315
- }
316
- this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account);
317
- const resourceType = kb.any(s, RDF('type'));
318
- if (resourceType.uri === SIOCt('Microblog').uri || resourceType.uri === SIOCt('MicroblogPost').uri) {
319
- this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI();
320
- } else if (resourceType.uri === SIOC('User').uri) {
321
- this.thisIsMe = s.uri === mb.getMyURI();
322
- } else if (resourceType.uri === FOAF('Person').uri) {
323
- const me = _solidLogic.authn.currentUser();
324
- const meUri = me && me.uri;
325
- this.thisIsMe = s.uri === meUri;
326
- } else {
327
- this.thisIsMe = false;
328
- }
329
- this.Tab = new TabManager(doc);
330
- };
331
- Pane.prototype.notify = function (messageString) {
332
- const xmsg = doc.createElement('li');
333
- xmsg.className = 'notify';
334
- xmsg.innerHTML = messageString;
335
- doc.getElementById('notify-container').appendChild(xmsg);
336
- setTimeout(function () {
337
- doc.getElementById('notify-container').removeChild(xmsg);
338
- // delete xmsg;
339
- }, 4000);
340
- };
341
- Pane.prototype.header = function (s, doc) {
342
- const that = this;
343
- function lsFollowUser() {
344
- const myUser = kb.sym(mb.getMyURI());
345
- // var Ifollow = that.Ifollow
346
- const username = that.creator.name;
347
- const mbconfirmFollow = function (uri, success, _msg) {
348
- if (success === true) {
349
- if (!that.Ifollow) {
350
- // prevent duplicate entries from being added to kb (because that was happening)
351
- if (!kb.whether(followMe.subject, followMe.predicate, followMe.object, followMe.why)) {
352
- kb.add(followMe.subject, followMe.predicate, followMe.object, followMe.why);
353
- }
354
- } else {
355
- kb.removeMany(followMe.subject, followMe.predicate, followMe.object, followMe.why);
356
- }
357
- console.log(that.Ifollow);
358
- that.Ifollow = !that.Ifollow;
359
- xfollowButton.disabled = false;
360
- console.log(that.Ifollow);
361
- const followButtonLabel = that.Ifollow ? 'Unfollow ' : 'Follow ';
362
- const doFollow = that.Ifollow ? 'now follow ' : 'no longer follow ';
363
- xfollowButton.value = followButtonLabel + username;
364
- that.notify('You ' + doFollow + username + '.');
365
- }
366
- };
367
- const followMe = new $rdf.Statement(myUser, SIOC('follows'), that.creator.sym, myUser);
368
- xfollowButton.disabled = true;
369
- xfollowButton.value = 'Updating...';
370
- if (!that.Ifollow) {
371
- sparqlUpdater.insert_statement(followMe, mbconfirmFollow);
372
- } else {
373
- sparqlUpdater.delete_statement(followMe, mbconfirmFollow);
374
- }
375
- }
376
- const notify = function (messageString) {
377
- const xmsg = doc.createElement('li');
378
- xmsg.className = 'notify';
379
- xmsg.innerHTML = messageString;
380
- doc.getElementById('notify-container').appendChild(xmsg);
381
- setTimeout(function () {
382
- doc.getElementById('notify-container').removeChild(xmsg);
383
- // delete xmsg;
384
- }, 4000);
385
- };
386
- const mbCancelNewMB = function (_evt) {
387
- xupdateContainer.removeChild(xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]);
388
- xcreateNewMB.disabled = false;
389
- };
390
- const lsCreateNewMB = function (_evt) {
391
- // disable the create new microblog button.
392
- // then prefills the information.
393
- xcreateNewMB.disabled = true;
394
- const xcmb = doc.createElement('div');
395
- const xcmbName = doc.createElement('input');
396
- if (kb.whether(s, FOAF('name'))) {
397
- // handle use of FOAF:NAME
398
- xcmbName.value = kb.any(s, FOAF('name'));
399
- } else {
400
- // handle use of family and given name
401
- xcmbName.value = kb.any(s, FOAF('givenname')) ? kb.any(s, FOAF('givenname')) + ' ' : '';
402
- xcmbName.value += kb.any(s, FOAF('family_name')) ? kb.any(s, FOAF('givenname')) : '';
403
- xcmbName.value = kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'));
404
- }
405
- const xcmbId = doc.createElement('input');
406
- xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : '';
407
- const xcmbAvatar = doc.createElement('input');
408
- if (kb.whether(s, FOAF('img'))) {
409
- // handle use of img
410
- xcmbAvatar.value = kb.any(s, FOAF('img')).uri;
411
- } else {
412
- // otherwise try depiction
413
- xcmbAvatar.value = kb.any(s, FOAF('depiction')) ? kb.any(s, FOAF('depiction')).uri : '';
414
- }
415
- let workspace;
416
- // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION
417
- const xcmbWritable = doc.createElement('input');
418
- xcmbWritable.value = workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox'; // @@@
419
- xcmb.innerHTML = `
420
- <form class ="createNewMB" id="createNewMB">
421
- <p id="xcmbname"><span class="">Name: </span></p>
422
- <p id="xcmbid">Id: </p>
423
- <p id="xcmbavatar">Avatar: </p>
424
- <p id="xcmbwritable">Host my microblog at: </p>
425
- <input type="button" id="mbCancel" value="Cancel" />
426
- <input type="submit" id="mbCreate" value="Create!" />
427
- </form>
428
- `;
429
- xupdateContainer.appendChild(xcmb);
430
- doc.getElementById('xcmbname').appendChild(xcmbName);
431
- doc.getElementById('xcmbid').appendChild(xcmbId);
432
- doc.getElementById('xcmbavatar').appendChild(xcmbAvatar);
433
- doc.getElementById('xcmbwritable').appendChild(xcmbWritable);
434
- doc.getElementById('mbCancel').addEventListener('click', mbCancelNewMB, false);
435
- doc.getElementById('createNewMB').addEventListener('submit', function () {
436
- mb.generateNewMB(xcmbId.value, xcmbName.value, xcmbAvatar.value, xcmbWritable.value);
437
- }, false);
438
- xcmbName.focus();
439
- };
440
- const mbSubmitPost = function () {
441
- const meta = {
442
- recipients: []
443
- };
444
- // user has selected a microblog to post to
445
- if (mb.getMyURI()) {
446
- // let myUser = kb.sym(mb.getMyURI())
447
- // submission callback
448
- const cbconfirmSubmit = function (uri, success, responseText, d) {
449
- if (success === true) {
450
- for (const triple in d) {
451
- kb.add(d[triple].subject, d[triple].predicate, d[triple].object, d[triple].why);
452
- }
453
- xupdateSubmit.disabled = false;
454
- xupdateStatus.value = '';
455
- mbLetterCount();
456
- notify('Microblog Updated.');
457
- if (that.thisIsMe) {
458
- doc.getElementById('postNotificationList').insertBefore(that.generatePost(d[0].subject), doc.getElementById('postNotificationList').childNodes[0]);
459
- }
460
- } else {
461
- notify('There was a problem submitting your post.');
462
- }
463
- };
464
- const words = xupdateStatus.value.split(' ');
465
- const mbUpdateWithReplies = function () {
466
- xupdateSubmit.disabled = true;
467
- xupdateSubmit.value = 'Updating...';
468
- mb.statusUpdate(xupdateStatus.value, cbconfirmSubmit, xinReplyToContainer.value, meta);
469
- };
470
- for (const word in words) {
471
- if (words[word].match(/@\w+/)) {
472
- const atUser = words[word].replace(/\W/g, '');
473
- const recipient = myFollowList.selectUser(atUser);
474
- if (recipient[0] === true) {
475
- meta.recipients.push(recipient[1][0]);
476
- } else if (recipient[1].length > 1) {
477
- // if multiple users allow the user to choose
478
- const xrecipients = doc.createElement('select');
479
- const xrecipientsSubmit = doc.createElement('input');
480
- xrecipientsSubmit.type = 'button';
481
- xrecipientsSubmit.value = 'Continue';
482
- xrecipientsSubmit.addEventListener('click', function () {
483
- meta.recipients.push(recipient[1][xrecipients.value]);
484
- mbUpdateWithReplies();
485
- xrecipients.parentNode.removeChild(xrecipientsSubmit);
486
- xrecipients.parentNode.removeChild(xrecipients);
487
- }, false);
488
- const recipChoice = function (recip, c) {
489
- const name = kb.any(kb.sym(recip), SIOC('name'));
490
- const choice = doc.createElement('option');
491
- choice.value = c;
492
- choice.innerHTML = name;
493
- return choice;
494
- };
495
- for (const r in recipient[1]) {
496
- xrecipients.appendChild(recipChoice(recipient[1][r], r));
497
- }
498
- xupdateContainer.appendChild(xrecipients);
499
- xupdateContainer.appendChild(xrecipientsSubmit);
500
- return;
501
- } else {
502
- // no users known or self reference.
503
- if (String(kb.any(kb.sym(mb.getMyURI()), SIOC('id'))).toLowerCase() === atUser.toLowerCase()) {
504
- meta.recipients.push(mb.getMyURI());
505
- } else {
506
- notify('You do not follow ' + atUser + '. Try following ' + atUser + ' before mentioning them.');
507
- return;
508
- }
509
- }
510
- }
511
- /* else if(words[word].match(/\#\w+/)){
512
- //hashtag
513
- } else if(words[word].match(/\!\w+/)){
514
- //usergroup
515
- } */
516
- }
517
- mbUpdateWithReplies();
518
- } else {
519
- notify('Please set your microblog first.');
520
- }
521
- };
522
- const mbLetterCount = function () {
523
- xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length;
524
- xupdateStatusCounter.style.color = charCount - xupdateStatus.value.length < 0 ? '#c33' : '';
525
- if (xupdateStatus.value.length === 0) {
526
- xinReplyToContainer.value = '';
527
- xupdateSubmit.value = 'Send';
528
- }
529
- };
530
- // reply viewer
531
- const xviewReply = doc.createElement('ul');
532
- xviewReply.className = 'replyView';
533
- xviewReply.addEventListener('click', function () {
534
- xviewReply.className = 'replyView';
535
- }, false);
536
- this.xviewReply = xviewReply;
537
- const headerContainer = doc.createElement('div');
538
- headerContainer.className = 'header-container';
539
-
540
- // ---create status update box---
541
- const xnotify = doc.createElement('ul');
542
- xnotify.id = 'notify-container';
543
- xnotify.className = 'notify-container';
544
- this.xnotify = xnotify;
545
- const xupdateContainer = doc.createElement('form');
546
- xupdateContainer.className = 'update-container';
547
- xupdateContainer.innerHTML = '<h3>What are you up to?</h3>';
548
- let xinReplyToContainer;
549
- let xupdateStatus;
550
- let xupdateStatusCounter;
551
- let xupdateSubmit;
552
- let xcreateNewMB;
553
- if (mb.getMyURI()) {
554
- xinReplyToContainer = doc.createElement('input');
555
- xinReplyToContainer.id = 'xinReplyToContainer';
556
- xinReplyToContainer.type = 'hidden';
557
- xupdateStatus = doc.createElement('textarea');
558
- xupdateStatus.id = 'xupdateStatus';
559
- xupdateStatusCounter = doc.createElement('span');
560
- xupdateStatusCounter.appendChild(doc.createTextNode(charCount));
561
- xupdateStatus.cols = 30;
562
- xupdateStatus.addEventListener('keyup', mbLetterCount, false);
563
- xupdateStatus.addEventListener('focus', mbLetterCount, false);
564
- xupdateSubmit = doc.createElement('input');
565
- xupdateSubmit.id = 'xupdateSubmit';
566
- xupdateSubmit.type = 'submit';
567
- xupdateSubmit.value = 'Send';
568
- xupdateContainer.appendChild(xinReplyToContainer);
569
- xupdateContainer.appendChild(xupdateStatusCounter);
570
- xupdateContainer.appendChild(xupdateStatus);
571
- xupdateContainer.appendChild(xupdateSubmit);
572
- xupdateContainer.addEventListener('submit', mbSubmitPost, false);
573
- } else {
574
- const xnewUser = doc.createTextNode('Hi, it looks like you don\'t have a microblog, ' + ' would you like to create one? ');
575
- xcreateNewMB = doc.createElement('input');
576
- xcreateNewMB.type = 'button';
577
- xcreateNewMB.value = 'Create a new Microblog';
578
- xcreateNewMB.addEventListener('click', lsCreateNewMB, false);
579
- xupdateContainer.appendChild(xnewUser);
580
- xupdateContainer.appendChild(xcreateNewMB);
581
- }
582
- headerContainer.appendChild(xupdateContainer);
583
- const subheaderContainer = doc.createElement('div');
584
- subheaderContainer.className = 'subheader-container';
585
-
586
- // user header
587
- // this.creator
588
- const creators = kb.each(s, FOAF('holdsAccount'));
589
- let creator;
590
- for (const c in creators) {
591
- if (kb.whether(creators[c], RDF('type'), SIOC('User')) && kb.whether(kb.any(creators[c], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
592
- creator = creators[c];
593
- // var mb = kb.sym(creator.uri.split("#")[0]);
594
- // store.fetcher.refresh(mb);
595
- break;
596
- // TODO add support for more than one microblog in same foaf
597
- }
598
- }
599
- let xfollowButton;
600
- if (creator) {
601
- this.creator = mb.getUser(creator);
602
- // ---display avatar, if available ---
603
- if (this.creator.avatar !== '') {
604
- const avatar = doc.createElement('img');
605
- avatar.src = this.creator.avatar.uri;
606
- subheaderContainer.appendChild(avatar);
607
- }
608
- // ---generate name ---
609
- const userName = doc.createElement('h1');
610
- userName.className = 'fn';
611
- userName.appendChild(doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')'));
612
- subheaderContainer.appendChild(userName);
613
- // ---display follow button---
614
- if (!this.thisIsMe && mb.getMyURI()) {
615
- xfollowButton = doc.createElement('input');
616
- xfollowButton.setAttribute('type', 'button');
617
- const followButtonLabel = this.Ifollow ? 'Unfollow ' : 'Follow ';
618
- xfollowButton.value = followButtonLabel + this.creator.name;
619
- xfollowButton.addEventListener('click', lsFollowUser, false);
620
- subheaderContainer.appendChild(xfollowButton);
621
- }
622
- // user header end
623
- // header tabs
624
- const xtabsList = this.Tab.getTabView();
625
- headerContainer.appendChild(subheaderContainer);
626
- headerContainer.appendChild(xtabsList);
627
- }
628
- return headerContainer;
629
- };
630
- Pane.prototype.generatePost = function (post, _me) {
631
- /*
632
- generatePost - Creates and formats microblog posts
633
- post - symbol of the uri the post in question
634
- */
635
- const that = this;
636
- const viewPost = function (uris) {
637
- const xviewReply = that.xviewReply;
638
- for (let i = 0; i < xviewReply.childNodes.length; i++) {
639
- xviewReply.removeChild(xviewReply.childNodes[0]);
640
- }
641
- const xcloseContainer = doc.createElement('li');
642
- xcloseContainer.className = 'closeContainer';
643
- const xcloseButton = doc.createElement('span');
644
- xcloseButton.innerHTML = '&#215;';
645
- xcloseButton.className = 'closeButton';
646
- xcloseContainer.appendChild(xcloseButton);
647
- xviewReply.appendChild(xcloseContainer);
648
- for (const uri in uris) {
649
- xviewReply.appendChild(that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view'));
650
- }
651
- xviewReply.className = 'replyView-active';
652
- that.microblogPane.appendChild(xviewReply);
653
- };
654
- // container for post
655
- const xpost = doc.createElement('li');
656
- xpost.className = 'post';
657
- xpost.setAttribute('id', String(post.uri).split('#')[1]);
658
- const Post = mb.getPost(post);
659
- // username text
660
- // var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))
661
- const uholdsaccount = kb.any(undefined, FOAF('holdsAccount'), kb.any(post, SIOC('has_creator')));
662
- const xuname = doc.createElement('a');
663
- xuname.href = uholdsaccount.uri;
664
- xuname.className = 'userLink';
665
- const xunameText = doc.createTextNode(mb.getUser(Post.creator).id);
666
- xuname.appendChild(xunameText);
667
- // user image
668
- const xuavatar = doc.createElement('img');
669
- xuavatar.src = mb.getUser(Post.creator).avatar.uri;
670
- xuavatar.className = 'postAvatar';
671
- // post content
672
- const xpostContent = doc.createElement('blockquote');
673
- let postText = Post.message;
674
- // post date
675
- const xpostLink = doc.createElement('a');
676
- xpostLink.className = 'postLink';
677
- xpostLink.addEventListener('click', function () {
678
- viewPost([post.uri]);
679
- }, false);
680
- xpostLink.id = 'post_' + String(post.uri).split('#')[1];
681
- xpostLink.setAttribute('content', post.uri);
682
- xpostLink.setAttribute('property', 'permalink');
683
- const postLink = doc.createTextNode(Post.date ? Post.date : 'post date unknown');
684
- xpostLink.appendChild(postLink);
685
-
686
- // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)
687
- const mentions = kb.each(post, SIOC('topic'));
688
- const tags = {};
689
- for (const mention in mentions) {
690
- sf.lookUpThing(mentions[mention]);
691
- const id = kb.any(mentions[mention], SIOC('id'));
692
- tags['@' + id] = mentions[mention];
693
- }
694
- const postTags = postText.match(/(@|#|!)\w+/g);
695
- const postFunction = function () {
696
- const p = postTags.pop();
697
- return tags[p] ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri : p;
698
- };
699
- for (const t in tags) {
700
- const person = t.replace(/@/, '');
701
- const replacePerson = RegExp('(@|!|#)(' + person + ')');
702
- postText = postText.replace(replacePerson, '$1<a href="' + postFunction() + '">$2</a>');
703
- }
704
- xpostContent.innerHTML = postText;
705
-
706
- // in reply to logic
707
- // This has the potential to support a post that replies to many messages.
708
- const inReplyTo = kb.each(post, SIOC('reply_of'));
709
- const xreplyTo = doc.createElement('span');
710
- let theReply;
711
- for (const reply in inReplyTo) {
712
- theReply = String(inReplyTo[reply]).replace(/<|>/g, '');
713
- const genReplyTo = function () {
714
- const reply = doc.createElement('a');
715
- reply.innerHTML = ', <b>in reply to</b>';
716
- reply.addEventListener('click', function () {
717
- viewPost([post.uri, theReply]);
718
- return false;
719
- }, false);
720
- return reply;
721
- };
722
- xreplyTo.appendChild(genReplyTo());
723
- }
724
-
725
- // END LINK META DATA
726
- // add the reply to and delete buttons to the interface
727
- const mbReplyTo = function () {
728
- const id = mb.getUser(Post.creator).id;
729
- const xupdateStatus = doc.getElementById('xupdateStatus');
730
- const xinReplyToContainer = doc.getElementById('xinReplyToContainer');
731
- const xupdateSubmit = doc.getElementById('xupdateSubmit');
732
- xupdateStatus.value = '@' + id + ' ';
733
- xupdateStatus.focus();
734
- xinReplyToContainer.value = post.uri;
735
- xupdateSubmit.value = 'Reply';
736
- };
737
- let xconfirmDeletionDialog;
738
- const mbDeletePost = function (evt) {
739
- const lsconfirmNo = function () {
740
- doc.getElementById('notify-container').removeChild(xconfirmDeletionDialog);
741
- evt.target.disabled = false;
742
- };
743
- const lsconfirmYes = function () {
744
- reallyDelete();
745
- doc.getElementById('notify-container').removeChild(xconfirmDeletionDialog);
746
- };
747
- evt.target.disabled = true;
748
- xconfirmDeletionDialog = doc.createElement('li');
749
- xconfirmDeletionDialog.className = 'notify conf';
750
- xconfirmDeletionDialog.innerHTML += '<p>Are you sure you want to delete this post?</p>';
751
- xconfirmDeletionDialog.addEventListener('keyup', function (evt) {
752
- if (evt.keyCode === 27) {
753
- lsconfirmNo();
754
- }
755
- }, false);
756
- const confirmyes = doc.createElement('input');
757
- confirmyes.type = 'button';
758
- confirmyes.className = 'confirm';
759
- confirmyes.value = 'Delete';
760
- confirmyes.addEventListener('click', lsconfirmYes, false);
761
- const confirmno = doc.createElement('input');
762
- confirmno.type = 'button';
763
- confirmno.className = 'confirm';
764
- confirmno.value = 'Cancel';
765
- confirmno.addEventListener('click', lsconfirmNo, false);
766
- xconfirmDeletionDialog.appendChild(confirmno);
767
- xconfirmDeletionDialog.appendChild(confirmyes);
768
- doc.getElementById('notify-container').appendChild(xconfirmDeletionDialog);
769
- confirmno.focus();
770
- const reallyDelete = function () {
771
- // callback after deletion
772
- const mbconfirmDeletePost = function (a, success) {
773
- if (success) {
774
- that.notify('Post deleted.');
775
- // update the ui to reflect model changes.
776
- const deleteThisNode = evt.target.parentNode;
777
- deleteThisNode.parentNode.removeChild(deleteThisNode);
778
- kb.removeMany(deleteMe);
779
- } else {
780
- that.notify('Oops, there was a problem, please try again');
781
- evt.target.disabled = true;
782
- }
783
- };
784
- // delete references to post
785
- const deleteContainerOf = function (a, success) {
786
- if (success) {
787
- const deleteContainer = kb.statementsMatching(undefined, SIOC('container_of'), kb.sym(doc.getElementById('post_' + evt.target.parentNode.id).getAttribute('content')));
788
- sparqlUpdater.batch_delete_statement(deleteContainer, mbconfirmDeletePost);
789
- } else {
790
- that.notify('Oops, there was a problem, please try again');
791
- evt.target.disabled = false;
792
- }
793
- };
794
- // delete attributes of post
795
- evt.target.disabled = true;
796
- const deleteMe = kb.statementsMatching(kb.sym(doc.getElementById('post_' + evt.target.parentNode.id).getAttribute('content')));
797
- sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf);
798
- };
799
- };
800
- let themaker;
801
- let xreplyButton;
802
- let xdeleteButton;
803
- if (mb.getMyURI()) {
804
- // If the microblog in question does not belong to the user,
805
- // display the delete post and reply to post buttons.
806
- themaker = kb.any(post, SIOC('has_creator'));
807
- if (mb.getMyURI() !== themaker.uri) {
808
- xreplyButton = doc.createElement('input');
809
- xreplyButton.type = 'button';
810
- xreplyButton.value = 'reply';
811
- xreplyButton.className = 'reply';
812
- xreplyButton.addEventListener('click', mbReplyTo, false);
813
- } else {
814
- xdeleteButton = doc.createElement('input');
815
- xdeleteButton.type = 'button';
816
- xdeleteButton.value = 'Delete';
817
- xdeleteButton.className = 'reply';
818
- xdeleteButton.addEventListener('click', mbDeletePost, false);
819
- }
820
- }
821
- const mbFavorite = function (evt) {
822
- const nid = evt.target.parentNode.id;
823
- const favpost = doc.getElementById('post_' + nid).getAttribute('content');
824
- xfavorite.className += ' ing';
825
- const cbFavorite = function (a, success, _c, _d) {
826
- if (success) {
827
- xfavorite.className = xfavorite.className.split(' ')[1] === 'ed' ? 'favorit' : 'favorit ed';
828
- }
829
- };
830
- if (!myFavorites.favorited(favpost)) {
831
- myFavorites.add(favpost, cbFavorite);
832
- } else {
833
- myFavorites.remove(favpost, cbFavorite);
834
- }
835
- };
836
- const xfavorite = doc.createElement('a');
837
- xfavorite.innerHTML = '&#9733;';
838
- xfavorite.addEventListener('click', mbFavorite, false);
839
- if (myFavorites.favorited(post.uri)) {
840
- xfavorite.className = 'favorit ed';
841
- } else {
842
- xfavorite.className = 'favorit';
843
- }
844
- // build
845
- xpost.appendChild(xuavatar);
846
- xpost.appendChild(xpostContent);
847
- if (mb.getMyURI()) {
848
- xpost.appendChild(xfavorite);
849
- if (mb.getMyURI() !== themaker.uri) {
850
- xpost.appendChild(xreplyButton);
851
- } else {
852
- xpost.appendChild(xdeleteButton);
853
- }
854
- }
855
- xpost.appendChild(xuname);
856
- xpost.appendChild(xpostLink);
857
- if (inReplyTo !== '') {
858
- xpost.appendChild(xreplyTo);
859
- }
860
- return xpost;
861
- };
862
- Pane.prototype.generatePostList = function (gmbPosts) {
863
- /*
864
- generatePostList - Generate the posts and
865
- display their results on the interface.
866
- */
867
- const postList = doc.createElement('ul');
868
- const postlist = {};
869
- const datelist = [];
870
- for (const post in gmbPosts) {
871
- const postDate = kb.any(gmbPosts[post], terms('created'));
872
- if (postDate) {
873
- datelist.push(postDate);
874
- postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe);
875
- }
876
- }
877
- datelist.sort().reverse();
878
- for (const d in datelist) {
879
- postList.appendChild(postlist[datelist[d]]);
880
- }
881
- return postList;
882
- };
883
- Pane.prototype.followsView = function () {
884
- const getFollowed = function (user) {
885
- let userid = kb.any(user, SIOC('id'));
886
- const follow = doc.createElement('li');
887
- follow.className = 'follow';
888
- userid = userid || user.uri;
889
- let fol = kb.any(undefined, FOAF('holdsAccount'), user);
890
- fol = fol ? fol.uri : user.uri;
891
- follow.innerHTML = '<a href="' + fol + '">' + userid + '</a>';
892
- return follow;
893
- };
894
- const xfollows = doc.createElement('div');
895
- xfollows.id = 'xfollows';
896
- xfollows.className = 'followlist-container view-container';
897
- if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {
898
- const creatorFollows = kb.each(this.creator.sym, SIOC('follows'));
899
- const xfollowsList = doc.createElement('ul');
900
- for (const thisPerson in creatorFollows) {
901
- xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]));
902
- }
903
- xfollows.appendChild(xfollowsList);
904
- }
905
- this.Tab.create('tab-follows', 'Follows', xfollows, false);
906
- return xfollows;
907
- };
908
- Pane.prototype.streamView = function (s, doc) {
909
- const postContainer = doc.createElement('div');
910
- postContainer.id = 'postContainer';
911
- postContainer.className = 'post-container view-container active';
912
- let mbPosts = [];
913
- if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {
914
- sf.lookUpThing(kb.any(s, FOAF('holdsAccount')));
915
- const follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'));
916
- for (const f in follows) {
917
- sf.lookUpThing(follows[f]);
918
- // look up people user follows
919
- const smicroblogs = kb.each(follows[f], SIOC('creator_of'));
920
- // get the follows microblogs
921
- for (const smb in smicroblogs) {
922
- sf.lookUpThing(smicroblogs[smb]);
923
- if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {
924
- continue;
925
- } else {
926
- mbPosts = mbPosts.concat(kb.each(smicroblogs[smb], SIOC('container_of')));
927
- }
928
- }
929
- }
930
- }
931
- if (mbPosts.length > 0) {
932
- const postList = this.generatePostList(mbPosts);
933
- // generate stream
934
- postList.id = 'postList';
935
- postList.className = 'postList';
936
- postContainer.appendChild(postList);
937
- }
938
- this.Tab.create('tab-stream', 'By Follows', postContainer, true);
939
- return postContainer;
940
- };
941
- Pane.prototype.notificationsView = function (s, doc) {
942
- const postNotificationContainer = doc.createElement('div');
943
- postNotificationContainer.id = 'postNotificationContainer';
944
- postNotificationContainer.className = 'notification-container view-container';
945
- const postMentionContainer = doc.createElement('div');
946
- postMentionContainer.id = 'postMentionContainer';
947
- postMentionContainer.className = 'mention-container view-container';
948
- let mbnPosts = [];
949
- let mbmPosts = [];
950
- // get mbs that I am the creator of.
951
- const theUser = kb.any(s, FOAF('holdsAccount'));
952
- const user = kb.any(theUser, SIOC('id'));
953
- const microblogs = kb.each(theUser, SIOC('creator_of'));
954
- for (const mbm in microblogs) {
955
- sf.lookUpThing(microblogs[mbm]);
956
- if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {
957
- mbmPosts = mbmPosts.concat(kb.each(microblogs[mbm], SIOC('container_of')));
958
- } else {
959
- if (kb.whether(microblogs[mbm], RDF('type'), SIOCt('Microblog'))) {
960
- mbnPosts = mbnPosts.concat(kb.each(microblogs[mbm], SIOC('container_of')));
961
- }
962
- }
963
- }
964
- const postNotificationList = this.generatePostList(mbnPosts);
965
- postNotificationList.id = 'postNotificationList';
966
- postNotificationList.className = 'postList';
967
- postNotificationContainer.appendChild(postNotificationList);
968
- const postMentionList = this.generatePostList(mbmPosts);
969
- postMentionList.id = 'postMentionList';
970
- postMentionList.className = 'postList';
971
- postMentionContainer.appendChild(postMentionList);
972
- this.postMentionContainer = postMentionContainer;
973
- this.postNotificationContainer = postNotificationContainer;
974
- this.Tab.create('tab-by-user', 'By ' + user, postNotificationContainer, false);
975
- this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false);
976
- };
977
- Pane.prototype.build = function () {
978
- const microblogPane = this.microblogPane;
979
- this.headerContainer = this.header(s, doc);
980
- this.postContainer = this.streamView(s, doc);
981
- this.notificationsView(s, doc);
982
- this.xfollows = this.followsView();
983
- microblogPane.className = 'ppane';
984
- microblogPane.appendChild(this.xviewReply);
985
- microblogPane.appendChild(this.xnotify);
986
- microblogPane.appendChild(this.headerContainer);
987
- if (this.xfollows !== undefined) {
988
- microblogPane.appendChild(this.xfollows);
989
- }
990
- microblogPane.appendChild(this.postContainer);
991
- microblogPane.appendChild(this.postNotificationContainer);
992
- microblogPane.appendChild(this.postMentionContainer);
993
- };
994
- const microblogpane = doc.createElement('div');
995
- // var getusersfollows = function(uri){
996
- // var follows = new Object();
997
- // var followsa = {follows:0, matches:0};
998
- // var accounts = kb.each(s, FOAF("holdsAccount"));
999
- // //get all of the accounts that a person holds
1000
- // for (var acct in accounts){
1001
- // var account = accounts[acct].uri;
1002
- // var act = kb.each(kb.sym(account),SIOC("follows"));
1003
- // for (var a in act){
1004
- // var thisuri = act[a].uri.split("#")[0];
1005
- // if (!follows[thisuri]){followsa.follows+=1;}
1006
- // follows[thisuri] =true;
1007
- // }
1008
- // }
1009
- //
1010
- // var buildPaneUI = function(uri){
1011
- // followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;
1012
- // console.log(follows.toSource());
1013
- // if(followsa.follows == followsa.matches ){
1014
- const ppane = new Pane(s, doc, microblogpane);
1015
- ppane.build();
1016
- // return false;
1017
- // }
1018
- // else{
1019
- // return true;
1020
- // }
1021
- // }
1022
- // sf.addCallback('done',buildPaneUI);
1023
- // sf.addCallback('fail',buildPaneUI);
1024
- // //fetch each of the followers
1025
- // for (var f in follows){
1026
- // sf.refresh(kb.sym(f));
1027
- // }
1028
- // }(s);
1029
- return microblogpane;
1030
- }
1031
- };