solid-panes 3.7.3 → 4.0.0-60467249

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 (379) hide show
  1. package/dist/RDFXMLPane.js +59 -0
  2. package/dist/RDFXMLPane.js.map +1 -0
  3. package/{lib → dist}/argument/argumentPane.js +14 -15
  4. package/dist/argument/argumentPane.js.map +1 -0
  5. package/{lib → dist}/attach/attachPane.js +83 -93
  6. package/dist/attach/attachPane.js.map +1 -0
  7. package/{lib → dist}/audio/audioPane.js +49 -50
  8. package/dist/audio/audioPane.js.map +1 -0
  9. package/{lib → dist}/classInstancePane.js +23 -24
  10. package/dist/classInstancePane.js.map +1 -0
  11. package/dist/dashboard/basicPreferences.js +147 -0
  12. package/dist/dashboard/basicPreferences.js.map +1 -0
  13. package/{lib → dist}/dashboard/dashboardPane.js +17 -21
  14. package/dist/dashboard/dashboardPane.js.map +1 -0
  15. package/dist/dashboard/homepage.js +54 -0
  16. package/dist/dashboard/homepage.js.map +1 -0
  17. package/{lib → dist}/dataContentPane.js +64 -63
  18. package/dist/dataContentPane.js.map +1 -0
  19. package/{lib → dist}/defaultPane.js +15 -16
  20. package/dist/defaultPane.js.map +1 -0
  21. package/{lib → dist}/dokieli/dokieliPane.js +49 -53
  22. package/dist/dokieli/dokieliPane.js.map +1 -0
  23. package/{src → dist}/dokieli/new.js +9 -3
  24. package/dist/dokieli/new.js.map +1 -0
  25. package/{lib → dist}/form/pane.js +44 -45
  26. package/dist/form/pane.js.map +1 -0
  27. package/dist/home/homePane.js +73 -0
  28. package/dist/home/homePane.js.map +1 -0
  29. package/dist/humanReadablePane.js +135 -0
  30. package/dist/humanReadablePane.js.map +1 -0
  31. package/dist/imagePane.js +70 -0
  32. package/dist/imagePane.js.map +1 -0
  33. package/{lib → dist}/index.js +17 -20
  34. package/dist/index.js.map +1 -0
  35. package/{lib → dist}/internal/internalPane.js +41 -41
  36. package/dist/internal/internalPane.js.map +1 -0
  37. package/{lib → dist}/mainPage/footer.js +2 -2
  38. package/{lib → dist}/mainPage/footer.js.map +1 -1
  39. package/dist/mainPage/header.js +86 -0
  40. package/dist/mainPage/header.js.map +1 -0
  41. package/{lib → dist}/mainPage/index.d.ts.map +1 -1
  42. package/dist/mainPage/index.js +25 -0
  43. package/dist/mainPage/index.js.map +1 -0
  44. package/{lib → dist}/microblogPane/microblogPane.js +270 -270
  45. package/dist/microblogPane/microblogPane.js.map +1 -0
  46. package/dist/n3Pane.js +57 -0
  47. package/dist/n3Pane.js.map +1 -0
  48. package/{lib → dist}/outline/context.js +4 -4
  49. package/{lib → dist}/outline/context.js.map +1 -1
  50. package/dist/outline/manager.js +1997 -0
  51. package/dist/outline/manager.js.map +1 -0
  52. package/{lib → dist}/outline/outlineIcons.js +2 -3
  53. package/dist/outline/outlineIcons.js.map +1 -0
  54. package/{lib → dist}/outline/propertyViews.js +4 -4
  55. package/dist/outline/propertyViews.js.map +1 -0
  56. package/{lib → dist}/outline/queryByExample.js +33 -33
  57. package/dist/outline/queryByExample.js.map +1 -0
  58. package/{lib → dist}/outline/userInput.js +268 -266
  59. package/dist/outline/userInput.js.map +1 -0
  60. package/dist/outline/viewAsImage.js +15 -0
  61. package/dist/outline/viewAsImage.js.map +1 -0
  62. package/dist/outline/viewAsMbox.js +22 -0
  63. package/dist/outline/viewAsMbox.js.map +1 -0
  64. package/{lib → dist}/pad/padPane.js +90 -96
  65. package/dist/pad/padPane.js.map +1 -0
  66. package/{lib → dist}/playlist/playlistPane.js +36 -37
  67. package/dist/playlist/playlistPane.js.map +1 -0
  68. package/{lib → dist}/registerPanes.js +29 -29
  69. package/dist/registerPanes.js.map +1 -0
  70. package/{lib → dist}/schedule/schedulePane.js +171 -178
  71. package/dist/schedule/schedulePane.js.map +1 -0
  72. package/{lib → dist}/sharing/sharingPane.js +12 -12
  73. package/dist/sharing/sharingPane.js.map +1 -0
  74. package/dist/slideshow/slideshowPane.js +80 -0
  75. package/dist/slideshow/slideshowPane.js.map +1 -0
  76. package/{lib → dist}/socialPane.js +142 -142
  77. package/dist/socialPane.js.map +1 -0
  78. package/dist/tabbed/tabbedPane.js +58 -0
  79. package/dist/tabbed/tabbedPane.js.map +1 -0
  80. package/{lib → dist}/tableViewPane.js +8 -9
  81. package/dist/tableViewPane.js.map +1 -0
  82. package/{lib → dist}/transaction/pane.js +117 -118
  83. package/dist/transaction/pane.js.map +1 -0
  84. package/{lib → dist}/transaction/period.js +82 -83
  85. package/dist/transaction/period.js.map +1 -0
  86. package/{lib → dist}/trip/tripPane.js +47 -48
  87. package/dist/trip/tripPane.js.map +1 -0
  88. package/dist/trustedApplications/trustedApplications.dom.js +146 -0
  89. package/dist/trustedApplications/trustedApplications.dom.js.map +1 -0
  90. package/dist/trustedApplications/trustedApplications.utils.js +24 -0
  91. package/dist/trustedApplications/trustedApplications.utils.js.map +1 -0
  92. package/dist/trustedApplications/trustedApplications.view.js +56 -0
  93. package/dist/trustedApplications/trustedApplications.view.js.map +1 -0
  94. package/{lib → dist}/ui/pane.js +30 -31
  95. package/dist/ui/pane.js.map +1 -0
  96. package/dist/versionInfo.js +37 -0
  97. package/dist/versionInfo.js.map +1 -0
  98. package/dist/video/videoPane.js +43 -0
  99. package/dist/video/videoPane.js.map +1 -0
  100. package/package.json +46 -40
  101. package/Documentation/VisualLanguage.html +0 -538
  102. package/Documentation/conventions.md +0 -333
  103. package/coverage/clover.xml +0 -152
  104. package/coverage/coverage-final.json +0 -6
  105. package/coverage/lcov-report/base.css +0 -224
  106. package/coverage/lcov-report/block-navigation.js +0 -87
  107. package/coverage/lcov-report/favicon.png +0 -0
  108. package/coverage/lcov-report/index.html +0 -131
  109. package/coverage/lcov-report/outline/index.html +0 -161
  110. package/coverage/lcov-report/outline/outlineIcons.js.html +0 -565
  111. package/coverage/lcov-report/outline/propertyViews.ts.html +0 -196
  112. package/coverage/lcov-report/outline/viewAsImage.ts.html +0 -121
  113. package/coverage/lcov-report/outline/viewAsMbox.ts.html +0 -127
  114. package/coverage/lcov-report/prettify.css +0 -1
  115. package/coverage/lcov-report/prettify.js +0 -2
  116. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  117. package/coverage/lcov-report/sorter.js +0 -210
  118. package/coverage/lcov-report/trustedApplications/index.html +0 -116
  119. package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +0 -238
  120. package/coverage/lcov.info +0 -204
  121. package/dev/index.html +0 -28
  122. package/dev/loader.ts +0 -91
  123. package/dev/pane/index.ts +0 -10
  124. package/doc/images/panes-for-classes.epgz +0 -0
  125. package/doc/images/panes-for-classes.svg +0 -609
  126. package/eslint.config.mjs +0 -34
  127. package/jest.config.js +0 -27
  128. package/jest.setup.ts +0 -4
  129. package/lib/RDFXMLPane.js +0 -59
  130. package/lib/RDFXMLPane.js.map +0 -1
  131. package/lib/argument/argumentPane.js.map +0 -1
  132. package/lib/attach/attachPane.js.map +0 -1
  133. package/lib/audio/audioPane.js.map +0 -1
  134. package/lib/classInstancePane.js.map +0 -1
  135. package/lib/dashboard/basicPreferences.js +0 -229
  136. package/lib/dashboard/basicPreferences.js.map +0 -1
  137. package/lib/dashboard/dashboardPane.js.map +0 -1
  138. package/lib/dashboard/homepage.js +0 -86
  139. package/lib/dashboard/homepage.js.map +0 -1
  140. package/lib/dataContentPane.js.map +0 -1
  141. package/lib/defaultPane.js.map +0 -1
  142. package/lib/dokieli/dokieliPane.js.map +0 -1
  143. package/lib/dokieli/new.js +0 -9
  144. package/lib/dokieli/new.js.map +0 -1
  145. package/lib/form/pane.js.map +0 -1
  146. package/lib/global.d.js +0 -2
  147. package/lib/global.d.js.map +0 -1
  148. package/lib/home/homePane.js +0 -91
  149. package/lib/home/homePane.js.map +0 -1
  150. package/lib/humanReadablePane.js +0 -138
  151. package/lib/humanReadablePane.js.map +0 -1
  152. package/lib/imagePane.js +0 -71
  153. package/lib/imagePane.js.map +0 -1
  154. package/lib/index.js.map +0 -1
  155. package/lib/internal/internalPane.js.map +0 -1
  156. package/lib/mainPage/header.js +0 -152
  157. package/lib/mainPage/header.js.map +0 -1
  158. package/lib/mainPage/index.js +0 -42
  159. package/lib/mainPage/index.js.map +0 -1
  160. package/lib/microblogPane/microblogPane.js.map +0 -1
  161. package/lib/n3Pane.js +0 -57
  162. package/lib/n3Pane.js.map +0 -1
  163. package/lib/outline/manager.js +0 -2264
  164. package/lib/outline/manager.js.map +0 -1
  165. package/lib/outline/manager.test.d.ts +0 -2
  166. package/lib/outline/manager.test.d.ts.map +0 -1
  167. package/lib/outline/manager.test.js +0 -210
  168. package/lib/outline/manager.test.js.map +0 -1
  169. package/lib/outline/outlineIcons.js.map +0 -1
  170. package/lib/outline/propertyViews.js.map +0 -1
  171. package/lib/outline/propertyViews.test.d.ts +0 -2
  172. package/lib/outline/propertyViews.test.d.ts.map +0 -1
  173. package/lib/outline/propertyViews.test.js +0 -27
  174. package/lib/outline/propertyViews.test.js.map +0 -1
  175. package/lib/outline/queryByExample.js.map +0 -1
  176. package/lib/outline/userInput.js.map +0 -1
  177. package/lib/outline/viewAsImage.js +0 -17
  178. package/lib/outline/viewAsImage.js.map +0 -1
  179. package/lib/outline/viewAsMbox.js +0 -23
  180. package/lib/outline/viewAsMbox.js.map +0 -1
  181. package/lib/pad/padPane.js.map +0 -1
  182. package/lib/playlist/playlistPane.js.map +0 -1
  183. package/lib/registerPanes.js.map +0 -1
  184. package/lib/schedule/formsForSchedule.js +0 -8
  185. package/lib/schedule/formsForSchedule.js.map +0 -1
  186. package/lib/schedule/schedulePane.js.map +0 -1
  187. package/lib/sharing/sharingPane.js.map +0 -1
  188. package/lib/slideshow/slideshowPane.js +0 -84
  189. package/lib/slideshow/slideshowPane.js.map +0 -1
  190. package/lib/socialPane.js.map +0 -1
  191. package/lib/tabbed/tabbedPane.js +0 -72
  192. package/lib/tabbed/tabbedPane.js.map +0 -1
  193. package/lib/tableViewPane.js.map +0 -1
  194. package/lib/test-import-export/common.js +0 -12
  195. package/lib/test-import-export/common.js.map +0 -1
  196. package/lib/test-import-export/edit-importer.js +0 -25
  197. package/lib/test-import-export/edit-importer.js.map +0 -1
  198. package/lib/test-import-export/testImportExport.js +0 -2
  199. package/lib/test-import-export/testImportExport.js.map +0 -1
  200. package/lib/transaction/pane.js.map +0 -1
  201. package/lib/transaction/period.js.map +0 -1
  202. package/lib/trip/tripPane.js.map +0 -1
  203. package/lib/trustedApplications/trustedApplications.dom.js +0 -177
  204. package/lib/trustedApplications/trustedApplications.dom.js.map +0 -1
  205. package/lib/trustedApplications/trustedApplications.test.d.ts +0 -2
  206. package/lib/trustedApplications/trustedApplications.test.d.ts.map +0 -1
  207. package/lib/trustedApplications/trustedApplications.test.js +0 -64
  208. package/lib/trustedApplications/trustedApplications.test.js.map +0 -1
  209. package/lib/trustedApplications/trustedApplications.utils.js +0 -34
  210. package/lib/trustedApplications/trustedApplications.utils.js.map +0 -1
  211. package/lib/trustedApplications/trustedApplications.view.js +0 -87
  212. package/lib/trustedApplications/trustedApplications.view.js.map +0 -1
  213. package/lib/types.d.ts +0 -30
  214. package/lib/types.d.ts.map +0 -1
  215. package/lib/types.js +0 -6
  216. package/lib/types.js.map +0 -1
  217. package/lib/ui/pane.js.map +0 -1
  218. package/lib/versionInfo.d.ts +0 -32
  219. package/lib/versionInfo.d.ts.map +0 -1
  220. package/lib/versionInfo.js +0 -37
  221. package/lib/versionInfo.js.map +0 -1
  222. package/lib/video/videoPane.js +0 -44
  223. package/lib/video/videoPane.js.map +0 -1
  224. package/src/RDFXMLPane.js +0 -60
  225. package/src/argument/argumentPane.js +0 -65
  226. package/src/argument/argument_icon_v04.jpg +0 -0
  227. package/src/argument/icon_argument.png +0 -0
  228. package/src/argument/transparentyingyang.png +0 -0
  229. package/src/attach/attachPane.js +0 -508
  230. package/src/attach/tbl-paperclip-128.png +0 -0
  231. package/src/attach/tbl-paperclip-22.png +0 -0
  232. package/src/attach/tbl-paperclip-22a.png +0 -0
  233. package/src/audio/audioPane.js +0 -197
  234. package/src/chatPreferencesForm.ttl +0 -12
  235. package/src/classInstancePane.js +0 -110
  236. package/src/dashboard/basicPreferences.ts +0 -201
  237. package/src/dashboard/dashboardPane.ts +0 -83
  238. package/src/dashboard/homepage.ts +0 -72
  239. package/src/dashboard/languages/codes.html +0 -8611
  240. package/src/dashboard/languages/codes.xml +0 -3563
  241. package/src/dashboard/languages/codes2.txt +0 -170
  242. package/src/dashboard/languages/foo +0 -70
  243. package/src/dashboard/languages/foo.ttl +0 -0
  244. package/src/dashboard/languages/get-language-names.sh +0 -12
  245. package/src/dashboard/ontologyData.ttl +0 -35
  246. package/src/dashboard/preferencesFormText.ttl +0 -18
  247. package/src/dataContentPane.js +0 -290
  248. package/src/defaultPane.js +0 -102
  249. package/src/dokieli/Makefile +0 -6
  250. package/src/dokieli/dokieliPane.js +0 -190
  251. package/src/dokieli/new.html +0 -30
  252. package/src/form/form-22.png +0 -0
  253. package/src/form/form-b-22.png +0 -0
  254. package/src/form/form.graffle +0 -0
  255. package/src/form/form.png +0 -0
  256. package/src/form/pane.js +0 -217
  257. package/src/form/psuedocode-notes.txt +0 -57
  258. package/src/global.d.ts +0 -4
  259. package/src/home/homePane.ts +0 -72
  260. package/src/humanReadablePane.js +0 -150
  261. package/src/imagePane.js +0 -75
  262. package/src/index.ts +0 -71
  263. package/src/internal/internalPane.ts +0 -263
  264. package/src/mainPage/footer.ts +0 -19
  265. package/src/mainPage/header.ts +0 -79
  266. package/src/mainPage/index.ts +0 -20
  267. package/src/meeting/Makefile +0 -3
  268. package/src/meeting/test/meeting1/Actions/actions.ttl +0 -14
  269. package/src/meeting/test/meeting1/Actions/config.ttl +0 -16
  270. package/src/meeting/test/meeting1/Actions/state.ttl +0 -30
  271. package/src/meeting/test/meeting1/Schedule/details.ttl +0 -34
  272. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -20
  273. package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -75
  274. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -20
  275. package/src/meeting/test/meeting1/Schedule/index.html +0 -72
  276. package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -20
  277. package/src/meeting/test/meeting1/Schedule/results.ttl +0 -15
  278. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -20
  279. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -23
  280. package/src/meeting/test/meeting1/chat/chat.ttl +0 -1
  281. package/src/meeting/test/meeting1/details.ttl +0 -35
  282. package/src/meeting/test/meeting1/pad/pad.ttl +0 -16
  283. package/src/microblogPane/mbStyle.css +0 -267
  284. package/src/microblogPane/microblogPane.js +0 -1412
  285. package/src/n3Pane.js +0 -56
  286. package/src/outline/context.ts +0 -21
  287. package/src/outline/manager.js +0 -2384
  288. package/src/outline/manager.test.ts +0 -189
  289. package/src/outline/outlineIcons.js +0 -160
  290. package/src/outline/propertyViews.test.ts +0 -36
  291. package/src/outline/propertyViews.ts +0 -37
  292. package/src/outline/queryByExample.js +0 -296
  293. package/src/outline/userInput.js +0 -2373
  294. package/src/outline/viewAsImage.ts +0 -12
  295. package/src/outline/viewAsMbox.ts +0 -14
  296. package/src/pad/images/ColourOff.ai +2 -872
  297. package/src/pad/images/ColourOff.png +0 -0
  298. package/src/pad/images/ColourOn.ai +1 -935
  299. package/src/pad/images/ColourOn.png +0 -0
  300. package/src/pad/padPane.ts +0 -559
  301. package/src/playlist/playlistPane.js +0 -161
  302. package/src/registerPanes.js +0 -147
  303. package/src/schedule/Makefile +0 -6
  304. package/src/schedule/formsForSchedule.js +0 -117
  305. package/src/schedule/formsForSchedule.ttl +0 -115
  306. package/src/schedule/schedulePane.js +0 -1201
  307. package/src/sharing/sharingPane.ts +0 -49
  308. package/src/slideshow/slideshowPane.js +0 -80
  309. package/src/socialPane.js +0 -523
  310. package/src/style/tabbedtab.css +0 -1347
  311. package/src/tabbed/tabbedPane.ts +0 -60
  312. package/src/tableViewPane.js +0 -51
  313. package/src/test-import-export/common.js +0 -6
  314. package/src/test-import-export/edit-importer.js +0 -20
  315. package/src/test-import-export/testImportExport.js +0 -0
  316. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  317. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  318. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  319. package/src/transaction/pane.js +0 -629
  320. package/src/transaction/period.js +0 -374
  321. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  322. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  323. package/src/trip/tripPane.js +0 -176
  324. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -176
  325. package/src/trustedApplications/trustedApplications.dom.ts +0 -276
  326. package/src/trustedApplications/trustedApplications.test.ts +0 -82
  327. package/src/trustedApplications/trustedApplications.utils.ts +0 -51
  328. package/src/trustedApplications/trustedApplications.view.ts +0 -80
  329. package/src/types.ts +0 -34
  330. package/src/ui/22-builder.png +0 -0
  331. package/src/ui/builder.graffle +0 -0
  332. package/src/ui/builder.png +0 -0
  333. package/src/ui/builder2.png +0 -0
  334. package/src/ui/pane.js +0 -226
  335. package/src/versionInfo.ts +0 -30
  336. package/src/video/videoPane.js +0 -44
  337. package/timestamp.sh +0 -13
  338. package/travis/bumpversion.js +0 -29
  339. package/tsconfig.json +0 -78
  340. package/typings/raw-loader.d.ts +0 -4
  341. package/typings/solid-namespace/index.d.ts +0 -9
  342. package/webpack.config.js +0 -41
  343. /package/{lib → dist}/dashboard/basicPreferences.d.ts +0 -0
  344. /package/{lib → dist}/dashboard/basicPreferences.d.ts.map +0 -0
  345. /package/{lib → dist}/dashboard/dashboardPane.d.ts +0 -0
  346. /package/{lib → dist}/dashboard/dashboardPane.d.ts.map +0 -0
  347. /package/{lib → dist}/dashboard/homepage.d.ts +0 -0
  348. /package/{lib → dist}/dashboard/homepage.d.ts.map +0 -0
  349. /package/{lib → dist}/home/homePane.d.ts +0 -0
  350. /package/{lib → dist}/home/homePane.d.ts.map +0 -0
  351. /package/{lib → dist}/index.d.ts +0 -0
  352. /package/{lib → dist}/index.d.ts.map +0 -0
  353. /package/{lib → dist}/internal/internalPane.d.ts +0 -0
  354. /package/{lib → dist}/internal/internalPane.d.ts.map +0 -0
  355. /package/{lib → dist}/mainPage/footer.d.ts +0 -0
  356. /package/{lib → dist}/mainPage/footer.d.ts.map +0 -0
  357. /package/{lib → dist}/mainPage/header.d.ts +0 -0
  358. /package/{lib → dist}/mainPage/header.d.ts.map +0 -0
  359. /package/{lib → dist}/mainPage/index.d.ts +0 -0
  360. /package/{lib → dist}/outline/context.d.ts +0 -0
  361. /package/{lib → dist}/outline/context.d.ts.map +0 -0
  362. /package/{lib → dist}/outline/propertyViews.d.ts +0 -0
  363. /package/{lib → dist}/outline/propertyViews.d.ts.map +0 -0
  364. /package/{lib → dist}/outline/viewAsImage.d.ts +0 -0
  365. /package/{lib → dist}/outline/viewAsImage.d.ts.map +0 -0
  366. /package/{lib → dist}/outline/viewAsMbox.d.ts +0 -0
  367. /package/{lib → dist}/outline/viewAsMbox.d.ts.map +0 -0
  368. /package/{lib → dist}/pad/padPane.d.ts +0 -0
  369. /package/{lib → dist}/pad/padPane.d.ts.map +0 -0
  370. /package/{lib → dist}/sharing/sharingPane.d.ts +0 -0
  371. /package/{lib → dist}/sharing/sharingPane.d.ts.map +0 -0
  372. /package/{lib → dist}/tabbed/tabbedPane.d.ts +0 -0
  373. /package/{lib → dist}/tabbed/tabbedPane.d.ts.map +0 -0
  374. /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts +0 -0
  375. /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
  376. /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts +0 -0
  377. /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  378. /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts +0 -0
  379. /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microblogPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","icon","icons","originalIconBase","name","label","subject","store","whether","ns","rdf","foaf","render","s","doc","SIOC","Namespace","SIOCt","FOAF","terms","RDF","kb","charCount","sf","fetcher","sparqlUpdater","updater","FollowList","user","userlist","uris","myFollows","each","sym","mf","add","any","uri","prototype","push","selectUser","length","Favorites","favorites","favoritesURI","split","created","c","favs","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","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","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","xcloseContainer","xcloseButton","xpost","uholdsaccount","undefined","xuname","href","xunameText","xuavatar","xpostContent","postText","xpostLink","tags","mention","lookUpThing","postTags","postFunction","p","pop","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'\nimport * as $rdf from 'rdflib'\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 = $rdf.Namespace('http://rdfs.org/sioc/ns#')\n const SIOCt = $rdf.Namespace('http://rdfs.org/sioc/types#')\n const FOAF = $rdf.Namespace('http://xmlns.com/foaf/0.1/')\n const terms = $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 $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 $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 $rdf.Statement(\n newPost,\n RDF('type'),\n SIOCt('MicroblogPost'),\n myUser\n ),\n new $rdf.Statement(\n newPost,\n SIOC('has_creator'),\n kb.sym(myUserURI),\n myUser\n ),\n new $rdf.Statement(newPost, SIOC('content'), statusMsg, myUser),\n new $rdf.Statement(newPost, terms('created'), new Date(), myUser),\n new $rdf.Statement(micro, SIOC('container_of'), newPost, myUser)\n ]\n\n // message replies\n if (replyTo) {\n batch.push(\n new $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 $rdf.Statement(\n newPost,\n SIOC('topic'),\n kb.sym(meta.recipients[r]),\n myUser\n )\n )\n batch.push(\n new $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 $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 $rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('type'),\n SIOC('User'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mb'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mbn'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#fav'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('name'),\n name,\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('id'),\n id,\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('label'),\n id,\n kb.sym(host)\n ),\n new $rdf.Statement(\n s,\n FOAF('holdsAccount'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // microblog\n new $rdf.Statement(\n kb.sym(host + '#mb'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new $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 $rdf.Statement(\n kb.sym(host + '#mbn'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new $rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('topic'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n new $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 $rdf.Statement(\n kb.sym(host + '#fav'),\n RDF('type'),\n SIOCt('FavouriteThings'),\n kb.sym(host)\n ),\n new $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 $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 }\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 $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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","ignoreList":[]}
package/dist/n3Pane.js ADDED
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.n3Pane = void 0;
7
+ var UI = _interopRequireWildcard(require("solid-ui"));
8
+ var $rdf = _interopRequireWildcard(require("rdflib"));
9
+ 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); }
10
+ /* Notation3 content Pane
11
+ **
12
+ ** This pane shows the content of a particular RDF resource
13
+ ** or at least the RDF semantics we attribute to that resource,
14
+ ** in generated N3 syntax.
15
+ */
16
+
17
+ const ns = UI.ns;
18
+ const n3Pane = exports.n3Pane = {
19
+ icon: UI.icons.originalIconBase + 'w3c/n3_smaller.png',
20
+ name: 'n3',
21
+ audience: [ns.solid('Developer')],
22
+ label: function (subject, context) {
23
+ const store = context.session.store;
24
+ if ('http://www.w3.org/2007/ont/link#ProtocolEvent' in store.findTypeURIs(subject)) {
25
+ return null;
26
+ }
27
+ const n = store.statementsMatching(undefined, undefined, undefined, subject).length;
28
+ if (n === 0) return null;
29
+ return 'Data (' + n + ') as N3';
30
+ },
31
+ render: function (subject, context) {
32
+ const myDocument = context.dom;
33
+ const kb = context.session.store;
34
+ const div = myDocument.createElement('div');
35
+ div.setAttribute('class', 'n3Pane');
36
+ // Because of smushing etc, this will not be a copy of the original source
37
+ // We could instead either fetch and re-parse the source,
38
+ // or we could keep all the pre-smushed triples.
39
+ const sts = kb.statementsMatching(undefined, undefined, undefined, subject); // @@ slow with current store!
40
+ /*
41
+ var kludge = kb.formula([]) // No features
42
+ for (var i=0; i< sts.length; i++) {
43
+ s = sts[i]
44
+ kludge.add(s.subject, s.predicate, s.object)
45
+ }
46
+ */
47
+ const sz = $rdf.Serializer(kb);
48
+ sz.suggestNamespaces(kb.namespaces);
49
+ sz.setBase(subject.uri);
50
+ const str = sz.statementsToN3(sts);
51
+ const pre = myDocument.createElement('PRE');
52
+ pre.appendChild(myDocument.createTextNode(str));
53
+ div.appendChild(pre);
54
+ return div;
55
+ }
56
+ };
57
+ //# sourceMappingURL=n3Pane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n3Pane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","n3Pane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","store","session","findTypeURIs","statementsMatching","undefined","length","render","myDocument","dom","kb","div","createElement","setAttribute","sts","sz","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'\nimport * as $rdf from 'rdflib'\n\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 = $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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","ignoreList":[]}
@@ -7,12 +7,12 @@ exports.createContext = createContext;
7
7
  var _index = require("../index");
8
8
  function createContext(dom, paneRegistry, store, logic) {
9
9
  return {
10
- dom: dom,
10
+ dom,
11
11
  getOutliner: _index.getOutliner,
12
12
  session: {
13
- paneRegistry: paneRegistry,
14
- store: store,
15
- logic: logic
13
+ paneRegistry,
14
+ store,
15
+ logic
16
16
  }
17
17
  };
18
18
  }
@@ -1 +1 @@
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","ignoreList":[]}
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;IACHI,WAAW,EAAXA,kBAAW;IACXC,OAAO,EAAE;MACPJ,YAAY;MACZC,KAAK;MACLC;IACF;EACF,CAAC;AACH","ignoreList":[]}