solid-panes 3.7.3-18da570b → 3.7.3-322e9b27

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 (380) hide show
  1. package/Documentation/VisualLanguage.html +538 -0
  2. package/Documentation/conventions.md +333 -0
  3. package/coverage/clover.xml +152 -0
  4. package/coverage/coverage-final.json +6 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +131 -0
  9. package/coverage/lcov-report/outline/index.html +161 -0
  10. package/coverage/lcov-report/outline/outlineIcons.js.html +565 -0
  11. package/coverage/lcov-report/outline/propertyViews.ts.html +196 -0
  12. package/coverage/lcov-report/outline/viewAsImage.ts.html +121 -0
  13. package/coverage/lcov-report/outline/viewAsMbox.ts.html +127 -0
  14. package/coverage/lcov-report/prettify.css +1 -0
  15. package/coverage/lcov-report/prettify.js +2 -0
  16. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  17. package/coverage/lcov-report/sorter.js +210 -0
  18. package/coverage/lcov-report/trustedApplications/index.html +116 -0
  19. package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +238 -0
  20. package/coverage/lcov.info +204 -0
  21. package/dev/index.html +28 -0
  22. package/dev/loader.ts +91 -0
  23. package/dev/pane/index.ts +10 -0
  24. package/doc/images/panes-for-classes.epgz +0 -0
  25. package/doc/images/panes-for-classes.svg +609 -0
  26. package/eslint.config.mjs +34 -0
  27. package/jest.config.js +27 -0
  28. package/jest.setup.ts +4 -0
  29. package/lib/RDFXMLPane.js +59 -0
  30. package/lib/RDFXMLPane.js.map +1 -0
  31. package/{dist → lib}/argument/argumentPane.js +15 -14
  32. package/lib/argument/argumentPane.js.map +1 -0
  33. package/{dist → lib}/attach/attachPane.js +93 -83
  34. package/lib/attach/attachPane.js.map +1 -0
  35. package/{dist → lib}/audio/audioPane.js +50 -49
  36. package/lib/audio/audioPane.js.map +1 -0
  37. package/{dist → lib}/classInstancePane.js +24 -23
  38. package/lib/classInstancePane.js.map +1 -0
  39. package/lib/dashboard/basicPreferences.js +229 -0
  40. package/lib/dashboard/basicPreferences.js.map +1 -0
  41. package/{dist → lib}/dashboard/dashboardPane.js +21 -17
  42. package/lib/dashboard/dashboardPane.js.map +1 -0
  43. package/lib/dashboard/homepage.js +86 -0
  44. package/lib/dashboard/homepage.js.map +1 -0
  45. package/{dist → lib}/dataContentPane.js +63 -63
  46. package/lib/dataContentPane.js.map +1 -0
  47. package/{dist → lib}/defaultPane.js +15 -14
  48. package/lib/defaultPane.js.map +1 -0
  49. package/{dist → lib}/dokieli/dokieliPane.js +53 -49
  50. package/lib/dokieli/dokieliPane.js.map +1 -0
  51. package/lib/dokieli/new.js +9 -0
  52. package/lib/dokieli/new.js.map +1 -0
  53. package/{dist → lib}/form/pane.js +45 -44
  54. package/lib/form/pane.js.map +1 -0
  55. package/lib/home/homePane.js +91 -0
  56. package/lib/home/homePane.js.map +1 -0
  57. package/lib/humanReadablePane.js +138 -0
  58. package/lib/humanReadablePane.js.map +1 -0
  59. package/lib/imagePane.js +71 -0
  60. package/lib/imagePane.js.map +1 -0
  61. package/{dist → lib}/index.js +20 -17
  62. package/lib/index.js.map +1 -0
  63. package/{dist → lib}/internal/internalPane.js +41 -41
  64. package/lib/internal/internalPane.js.map +1 -0
  65. package/{dist → lib}/mainPage/footer.js +2 -2
  66. package/{dist → lib}/mainPage/footer.js.map +1 -1
  67. package/lib/mainPage/header.js +152 -0
  68. package/lib/mainPage/header.js.map +1 -0
  69. package/{dist → lib}/mainPage/index.d.ts.map +1 -1
  70. package/lib/mainPage/index.js +42 -0
  71. package/lib/mainPage/index.js.map +1 -0
  72. package/{dist → lib}/microblogPane/microblogPane.js +262 -261
  73. package/lib/microblogPane/microblogPane.js.map +1 -0
  74. package/lib/n3Pane.js +57 -0
  75. package/lib/n3Pane.js.map +1 -0
  76. package/{dist → lib}/outline/context.js +4 -4
  77. package/{dist → lib}/outline/context.js.map +1 -1
  78. package/lib/outline/manager.js +2264 -0
  79. package/lib/outline/manager.js.map +1 -0
  80. package/lib/outline/manager.test.d.ts +2 -0
  81. package/lib/outline/manager.test.d.ts.map +1 -0
  82. package/lib/outline/manager.test.js +210 -0
  83. package/lib/outline/manager.test.js.map +1 -0
  84. package/{dist → lib}/outline/outlineIcons.js +3 -2
  85. package/lib/outline/outlineIcons.js.map +1 -0
  86. package/{dist → lib}/outline/propertyViews.js +4 -4
  87. package/lib/outline/propertyViews.js.map +1 -0
  88. package/lib/outline/propertyViews.test.d.ts +2 -0
  89. package/lib/outline/propertyViews.test.d.ts.map +1 -0
  90. package/lib/outline/propertyViews.test.js +27 -0
  91. package/lib/outline/propertyViews.test.js.map +1 -0
  92. package/{dist → lib}/outline/queryByExample.js +31 -30
  93. package/lib/outline/queryByExample.js.map +1 -0
  94. package/{dist → lib}/outline/userInput.js +260 -262
  95. package/lib/outline/userInput.js.map +1 -0
  96. package/lib/outline/viewAsImage.js +17 -0
  97. package/lib/outline/viewAsImage.js.map +1 -0
  98. package/lib/outline/viewAsMbox.js +23 -0
  99. package/lib/outline/viewAsMbox.js.map +1 -0
  100. package/{dist → lib}/pad/padPane.js +96 -90
  101. package/lib/pad/padPane.js.map +1 -0
  102. package/{dist → lib}/playlist/playlistPane.js +37 -36
  103. package/lib/playlist/playlistPane.js.map +1 -0
  104. package/{dist → lib}/registerPanes.js +29 -29
  105. package/lib/registerPanes.js.map +1 -0
  106. package/lib/schedule/formsForSchedule.js +8 -0
  107. package/lib/schedule/formsForSchedule.js.map +1 -0
  108. package/{dist → lib}/schedule/schedulePane.js +178 -171
  109. package/lib/schedule/schedulePane.js.map +1 -0
  110. package/{dist → lib}/sharing/sharingPane.js +12 -12
  111. package/lib/sharing/sharingPane.js.map +1 -0
  112. package/lib/slideshow/slideshowPane.js +84 -0
  113. package/lib/slideshow/slideshowPane.js.map +1 -0
  114. package/{dist → lib}/socialPane.js +142 -141
  115. package/lib/socialPane.js.map +1 -0
  116. package/lib/tabbed/tabbedPane.js +72 -0
  117. package/lib/tabbed/tabbedPane.js.map +1 -0
  118. package/{dist → lib}/tableViewPane.js +9 -8
  119. package/lib/tableViewPane.js.map +1 -0
  120. package/lib/test-import-export/common.js +12 -0
  121. package/lib/test-import-export/common.js.map +1 -0
  122. package/lib/test-import-export/edit-importer.js +25 -0
  123. package/lib/test-import-export/edit-importer.js.map +1 -0
  124. package/lib/test-import-export/testImportExport.js +2 -0
  125. package/lib/test-import-export/testImportExport.js.map +1 -0
  126. package/{dist → lib}/transaction/pane.js +118 -117
  127. package/lib/transaction/pane.js.map +1 -0
  128. package/{dist → lib}/transaction/period.js +83 -82
  129. package/lib/transaction/period.js.map +1 -0
  130. package/{dist → lib}/trip/tripPane.js +48 -47
  131. package/lib/trip/tripPane.js.map +1 -0
  132. package/lib/trustedApplications/trustedApplications.dom.js +177 -0
  133. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -0
  134. package/lib/trustedApplications/trustedApplications.test.d.ts +2 -0
  135. package/lib/trustedApplications/trustedApplications.test.d.ts.map +1 -0
  136. package/lib/trustedApplications/trustedApplications.test.js +64 -0
  137. package/lib/trustedApplications/trustedApplications.test.js.map +1 -0
  138. package/lib/trustedApplications/trustedApplications.utils.js +34 -0
  139. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -0
  140. package/lib/trustedApplications/trustedApplications.view.js +87 -0
  141. package/lib/trustedApplications/trustedApplications.view.js.map +1 -0
  142. package/lib/types.js.map +1 -0
  143. package/{dist → lib}/ui/pane.js +31 -30
  144. package/lib/ui/pane.js.map +1 -0
  145. package/lib/versionInfo.d.ts +32 -0
  146. package/lib/versionInfo.d.ts.map +1 -0
  147. package/lib/versionInfo.js +37 -0
  148. package/lib/versionInfo.js.map +1 -0
  149. package/lib/video/videoPane.js +44 -0
  150. package/lib/video/videoPane.js.map +1 -0
  151. package/package.json +14 -27
  152. package/src/RDFXMLPane.js +60 -0
  153. package/src/argument/argumentPane.js +65 -0
  154. package/src/argument/argument_icon_v04.jpg +0 -0
  155. package/src/argument/icon_argument.png +0 -0
  156. package/src/argument/transparentyingyang.png +0 -0
  157. package/src/attach/attachPane.js +508 -0
  158. package/src/attach/tbl-paperclip-128.png +0 -0
  159. package/src/attach/tbl-paperclip-22.png +0 -0
  160. package/src/attach/tbl-paperclip-22a.png +0 -0
  161. package/src/audio/audioPane.js +197 -0
  162. package/src/chatPreferencesForm.ttl +12 -0
  163. package/src/classInstancePane.js +110 -0
  164. package/src/dashboard/basicPreferences.ts +201 -0
  165. package/src/dashboard/dashboardPane.ts +83 -0
  166. package/src/dashboard/homepage.ts +72 -0
  167. package/src/dashboard/languages/codes.html +8611 -0
  168. package/src/dashboard/languages/codes.xml +3563 -0
  169. package/src/dashboard/languages/codes2.txt +170 -0
  170. package/src/dashboard/languages/foo +70 -0
  171. package/src/dashboard/languages/foo.ttl +0 -0
  172. package/src/dashboard/languages/get-language-names.sh +12 -0
  173. package/src/dashboard/ontologyData.ttl +35 -0
  174. package/src/dashboard/preferencesFormText.ttl +18 -0
  175. package/src/dataContentPane.js +290 -0
  176. package/src/defaultPane.js +102 -0
  177. package/src/dokieli/Makefile +6 -0
  178. package/src/dokieli/dokieliPane.js +190 -0
  179. package/src/dokieli/new.html +30 -0
  180. package/{dist → src}/dokieli/new.js +3 -9
  181. package/src/form/form-22.png +0 -0
  182. package/src/form/form-b-22.png +0 -0
  183. package/src/form/form.graffle +0 -0
  184. package/src/form/form.png +0 -0
  185. package/src/form/pane.js +217 -0
  186. package/src/form/psuedocode-notes.txt +57 -0
  187. package/src/global.d.ts +4 -0
  188. package/src/home/homePane.ts +72 -0
  189. package/src/humanReadablePane.js +150 -0
  190. package/src/imagePane.js +75 -0
  191. package/src/index.ts +71 -0
  192. package/src/internal/internalPane.ts +263 -0
  193. package/src/mainPage/footer.ts +19 -0
  194. package/src/mainPage/header.ts +79 -0
  195. package/src/mainPage/index.ts +20 -0
  196. package/src/meeting/Makefile +3 -0
  197. package/src/meeting/test/meeting1/Actions/actions.ttl +14 -0
  198. package/src/meeting/test/meeting1/Actions/config.ttl +16 -0
  199. package/src/meeting/test/meeting1/Actions/state.ttl +30 -0
  200. package/src/meeting/test/meeting1/Schedule/details.ttl +34 -0
  201. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +20 -0
  202. package/src/meeting/test/meeting1/Schedule/forms.ttl +75 -0
  203. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +20 -0
  204. package/src/meeting/test/meeting1/Schedule/index.html +72 -0
  205. package/src/meeting/test/meeting1/Schedule/index.html.acl +20 -0
  206. package/src/meeting/test/meeting1/Schedule/results.ttl +15 -0
  207. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +20 -0
  208. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +23 -0
  209. package/src/meeting/test/meeting1/chat/chat.ttl +1 -0
  210. package/src/meeting/test/meeting1/details.ttl +35 -0
  211. package/src/meeting/test/meeting1/pad/pad.ttl +16 -0
  212. package/src/microblogPane/mbStyle.css +267 -0
  213. package/src/microblogPane/microblogPane.js +1412 -0
  214. package/src/n3Pane.js +56 -0
  215. package/src/outline/context.ts +21 -0
  216. package/src/outline/manager.js +2384 -0
  217. package/src/outline/manager.test.ts +189 -0
  218. package/src/outline/outlineIcons.js +160 -0
  219. package/src/outline/propertyViews.test.ts +36 -0
  220. package/src/outline/propertyViews.ts +37 -0
  221. package/src/outline/queryByExample.js +296 -0
  222. package/src/outline/userInput.js +2373 -0
  223. package/src/outline/viewAsImage.ts +12 -0
  224. package/src/outline/viewAsMbox.ts +14 -0
  225. package/src/pad/images/ColourOff.ai +873 -1
  226. package/src/pad/images/ColourOff.png +0 -0
  227. package/src/pad/images/ColourOn.ai +934 -2
  228. package/src/pad/images/ColourOn.png +0 -0
  229. package/src/pad/padPane.ts +559 -0
  230. package/src/playlist/playlistPane.js +161 -0
  231. package/src/registerPanes.js +147 -0
  232. package/src/schedule/Makefile +6 -0
  233. package/src/schedule/formsForSchedule.js +117 -0
  234. package/src/schedule/formsForSchedule.ttl +115 -0
  235. package/src/schedule/schedulePane.js +1201 -0
  236. package/src/sharing/sharingPane.ts +49 -0
  237. package/src/slideshow/slideshowPane.js +80 -0
  238. package/src/socialPane.js +523 -0
  239. package/src/style/tabbedtab.css +1347 -0
  240. package/src/tabbed/tabbedPane.ts +60 -0
  241. package/src/tableViewPane.js +51 -0
  242. package/src/test-import-export/common.js +6 -0
  243. package/src/test-import-export/edit-importer.js +20 -0
  244. package/src/test-import-export/testImportExport.js +0 -0
  245. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  246. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  247. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  248. package/src/transaction/pane.js +629 -0
  249. package/src/transaction/period.js +374 -0
  250. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  251. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  252. package/src/trip/tripPane.js +176 -0
  253. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +176 -0
  254. package/src/trustedApplications/trustedApplications.dom.ts +276 -0
  255. package/src/trustedApplications/trustedApplications.test.ts +82 -0
  256. package/src/trustedApplications/trustedApplications.utils.ts +51 -0
  257. package/src/trustedApplications/trustedApplications.view.ts +80 -0
  258. package/src/types.ts +34 -0
  259. package/src/ui/22-builder.png +0 -0
  260. package/src/ui/builder.graffle +0 -0
  261. package/src/ui/builder.png +0 -0
  262. package/src/ui/builder2.png +0 -0
  263. package/src/ui/pane.js +226 -0
  264. package/src/versionInfo.ts +30 -0
  265. package/src/video/videoPane.js +44 -0
  266. package/timestamp.sh +13 -0
  267. package/travis/bumpversion.js +29 -0
  268. package/tsconfig.json +78 -0
  269. package/typings/raw-loader.d.ts +4 -0
  270. package/typings/solid-namespace/index.d.ts +9 -0
  271. package/webpack.config.js +41 -0
  272. package/dist/RDFXMLPane.js +0 -58
  273. package/dist/RDFXMLPane.js.map +0 -1
  274. package/dist/argument/argumentPane.js.map +0 -1
  275. package/dist/attach/attachPane.js.map +0 -1
  276. package/dist/audio/audioPane.js.map +0 -1
  277. package/dist/classInstancePane.js.map +0 -1
  278. package/dist/dashboard/basicPreferences.js +0 -147
  279. package/dist/dashboard/basicPreferences.js.map +0 -1
  280. package/dist/dashboard/dashboardPane.js.map +0 -1
  281. package/dist/dashboard/homepage.js +0 -54
  282. package/dist/dashboard/homepage.js.map +0 -1
  283. package/dist/dataContentPane.js.map +0 -1
  284. package/dist/defaultPane.js.map +0 -1
  285. package/dist/dokieli/dokieliPane.js.map +0 -1
  286. package/dist/dokieli/new.js.map +0 -1
  287. package/dist/form/pane.js.map +0 -1
  288. package/dist/home/homePane.js +0 -73
  289. package/dist/home/homePane.js.map +0 -1
  290. package/dist/humanReadablePane.js +0 -135
  291. package/dist/humanReadablePane.js.map +0 -1
  292. package/dist/imagePane.js +0 -70
  293. package/dist/imagePane.js.map +0 -1
  294. package/dist/index.js.map +0 -1
  295. package/dist/internal/internalPane.js.map +0 -1
  296. package/dist/mainPage/header.js +0 -85
  297. package/dist/mainPage/header.js.map +0 -1
  298. package/dist/mainPage/index.js +0 -25
  299. package/dist/mainPage/index.js.map +0 -1
  300. package/dist/microblogPane/microblogPane.js.map +0 -1
  301. package/dist/n3Pane.js +0 -56
  302. package/dist/n3Pane.js.map +0 -1
  303. package/dist/outline/manager.js +0 -1997
  304. package/dist/outline/manager.js.map +0 -1
  305. package/dist/outline/outlineIcons.js.map +0 -1
  306. package/dist/outline/propertyViews.js.map +0 -1
  307. package/dist/outline/queryByExample.js.map +0 -1
  308. package/dist/outline/userInput.js.map +0 -1
  309. package/dist/outline/viewAsImage.js +0 -15
  310. package/dist/outline/viewAsImage.js.map +0 -1
  311. package/dist/outline/viewAsMbox.js +0 -22
  312. package/dist/outline/viewAsMbox.js.map +0 -1
  313. package/dist/pad/padPane.js.map +0 -1
  314. package/dist/playlist/playlistPane.js.map +0 -1
  315. package/dist/registerPanes.js.map +0 -1
  316. package/dist/schedule/schedulePane.js.map +0 -1
  317. package/dist/sharing/sharingPane.js.map +0 -1
  318. package/dist/slideshow/slideshowPane.js +0 -80
  319. package/dist/slideshow/slideshowPane.js.map +0 -1
  320. package/dist/socialPane.js.map +0 -1
  321. package/dist/tabbed/tabbedPane.js +0 -58
  322. package/dist/tabbed/tabbedPane.js.map +0 -1
  323. package/dist/tableViewPane.js.map +0 -1
  324. package/dist/transaction/pane.js.map +0 -1
  325. package/dist/transaction/period.js.map +0 -1
  326. package/dist/trip/tripPane.js.map +0 -1
  327. package/dist/trustedApplications/trustedApplications.dom.js +0 -146
  328. package/dist/trustedApplications/trustedApplications.dom.js.map +0 -1
  329. package/dist/trustedApplications/trustedApplications.utils.js +0 -24
  330. package/dist/trustedApplications/trustedApplications.utils.js.map +0 -1
  331. package/dist/trustedApplications/trustedApplications.view.js +0 -56
  332. package/dist/trustedApplications/trustedApplications.view.js.map +0 -1
  333. package/dist/types.js.map +0 -1
  334. package/dist/ui/pane.js.map +0 -1
  335. package/dist/versionInfo.js +0 -37
  336. package/dist/versionInfo.js.map +0 -1
  337. package/dist/video/videoPane.js +0 -43
  338. package/dist/video/videoPane.js.map +0 -1
  339. /package/{dist → lib}/dashboard/basicPreferences.d.ts +0 -0
  340. /package/{dist → lib}/dashboard/basicPreferences.d.ts.map +0 -0
  341. /package/{dist → lib}/dashboard/dashboardPane.d.ts +0 -0
  342. /package/{dist → lib}/dashboard/dashboardPane.d.ts.map +0 -0
  343. /package/{dist → lib}/dashboard/homepage.d.ts +0 -0
  344. /package/{dist → lib}/dashboard/homepage.d.ts.map +0 -0
  345. /package/{dist → lib}/global.d.js +0 -0
  346. /package/{dist → lib}/global.d.js.map +0 -0
  347. /package/{dist → lib}/home/homePane.d.ts +0 -0
  348. /package/{dist → lib}/home/homePane.d.ts.map +0 -0
  349. /package/{dist → lib}/index.d.ts +0 -0
  350. /package/{dist → lib}/index.d.ts.map +0 -0
  351. /package/{dist → lib}/internal/internalPane.d.ts +0 -0
  352. /package/{dist → lib}/internal/internalPane.d.ts.map +0 -0
  353. /package/{dist → lib}/mainPage/footer.d.ts +0 -0
  354. /package/{dist → lib}/mainPage/footer.d.ts.map +0 -0
  355. /package/{dist → lib}/mainPage/header.d.ts +0 -0
  356. /package/{dist → lib}/mainPage/header.d.ts.map +0 -0
  357. /package/{dist → lib}/mainPage/index.d.ts +0 -0
  358. /package/{dist → lib}/outline/context.d.ts +0 -0
  359. /package/{dist → lib}/outline/context.d.ts.map +0 -0
  360. /package/{dist → lib}/outline/propertyViews.d.ts +0 -0
  361. /package/{dist → lib}/outline/propertyViews.d.ts.map +0 -0
  362. /package/{dist → lib}/outline/viewAsImage.d.ts +0 -0
  363. /package/{dist → lib}/outline/viewAsImage.d.ts.map +0 -0
  364. /package/{dist → lib}/outline/viewAsMbox.d.ts +0 -0
  365. /package/{dist → lib}/outline/viewAsMbox.d.ts.map +0 -0
  366. /package/{dist → lib}/pad/padPane.d.ts +0 -0
  367. /package/{dist → lib}/pad/padPane.d.ts.map +0 -0
  368. /package/{dist → lib}/sharing/sharingPane.d.ts +0 -0
  369. /package/{dist → lib}/sharing/sharingPane.d.ts.map +0 -0
  370. /package/{dist → lib}/tabbed/tabbedPane.d.ts +0 -0
  371. /package/{dist → lib}/tabbed/tabbedPane.d.ts.map +0 -0
  372. /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts +0 -0
  373. /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
  374. /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts +0 -0
  375. /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  376. /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts +0 -0
  377. /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
  378. /package/{dist → lib}/types.d.ts +0 -0
  379. /package/{dist → lib}/types.d.ts.map +0 -0
  380. /package/{dist → lib}/types.js +0 -0
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports["default"] = void 0;
7
7
  var _solidUi = require("solid-ui");
8
8
  var _solidLogic = require("solid-logic");
9
9
  var _rdflib = require("rdflib");
@@ -11,29 +11,29 @@ var _rdflib = require("rdflib");
11
11
  **
12
12
  */
13
13
 
14
- const paneDef = {
14
+ var paneDef = {
15
15
  // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',
16
16
  icon: _solidUi.icons.iconBase + 'noun_79217.svg',
17
17
  name: 'pad',
18
18
  audience: [_solidUi.ns.solid('PowerUser')],
19
19
  // Does the subject deserve an pad pane?
20
- label: function (subject, context) {
21
- const t = context.session.store.findTypeURIs(subject);
20
+ label: function label(subject, context) {
21
+ var t = context.session.store.findTypeURIs(subject);
22
22
  if (t['http://www.w3.org/ns/pim/pad#Notepad']) {
23
23
  return 'pad';
24
24
  }
25
25
  return null; // No under other circumstances
26
26
  },
27
27
  mintClass: _solidUi.ns.pad('Notepad'),
28
- mintNew: function (context, newPaneOptions) {
29
- const store = context.session.store;
30
- const updater = store.updater;
28
+ mintNew: function mintNew(context, newPaneOptions) {
29
+ var store = context.session.store;
30
+ var updater = store.updater;
31
31
  if (newPaneOptions.me && !newPaneOptions.me.uri) {
32
32
  throw new Error('notepad mintNew: Invalid userid');
33
33
  }
34
- const newInstance = newPaneOptions.newInstance = newPaneOptions.newInstance || store.sym(newPaneOptions.newBase + 'index.ttl#this');
34
+ var newInstance = newPaneOptions.newInstance = newPaneOptions.newInstance || store.sym(newPaneOptions.newBase + 'index.ttl#this');
35
35
  // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');
36
- const newPadDoc = newInstance.doc();
36
+ var newPadDoc = newInstance.doc();
37
37
  store.add(newInstance, _solidUi.ns.rdf('type'), _solidUi.ns.pad('Notepad'), newPadDoc);
38
38
  store.add(newInstance, _solidUi.ns.dc('title'), 'Shared Notes', newPadDoc);
39
39
  store.add(newInstance, _solidUi.ns.dc('created'), new Date(), newPadDoc); // @@ TODO Remove casting
@@ -42,7 +42,7 @@ const paneDef = {
42
42
  }
43
43
  // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);
44
44
  // linked list empty @@
45
- const chunk = store.sym(newInstance.uri + '_line0');
45
+ var chunk = store.sym(newInstance.uri + '_line0');
46
46
  store.add(newInstance, _solidUi.ns.pad('next'), chunk, newPadDoc); // Linked list has one entry
47
47
  store.add(chunk, _solidUi.ns.pad('next'), newInstance, newPadDoc);
48
48
  store.add(chunk, _solidUi.ns.dc('author'), newPaneOptions.me, newPadDoc);
@@ -63,16 +63,16 @@ const paneDef = {
63
63
  },
64
64
  // and follow instructions there
65
65
  // @@ TODO Set better type for paneOptions
66
- render: function (subject, context, paneOptions) {
67
- const dom = context.dom;
68
- const store = context.session.store;
66
+ render: function render(subject, context, paneOptions) {
67
+ var dom = context.dom;
68
+ var store = context.session.store;
69
69
  // Utility functions
70
- const complainIfBad = function (ok, message) {
70
+ var complainIfBad = function complainIfBad(ok, message) {
71
71
  if (!ok) {
72
72
  div.appendChild(_solidUi.widgets.errorMessageBlock(dom, message, 'pink'));
73
73
  }
74
74
  };
75
- const clearElement = function (ele) {
75
+ var clearElement = function clearElement(ele) {
76
76
  while (ele.firstChild) {
77
77
  ele.removeChild(ele.firstChild);
78
78
  }
@@ -83,12 +83,12 @@ const paneDef = {
83
83
 
84
84
  // Two constiations of ACL for this app, public read and public read/write
85
85
  // In all cases owner has read write control
86
- const genACLtext = function (docURI, aclURI, allWrite) {
87
- const g = (0, _rdflib.graph)();
88
- const auth = (0, _rdflib.Namespace)('http://www.w3.org/ns/auth/acl#');
89
- let a = g.sym(aclURI + '#a1');
90
- const acl = g.sym(aclURI);
91
- const doc = g.sym(docURI);
86
+ var genACLtext = function genACLtext(docURI, aclURI, allWrite) {
87
+ var g = (0, _rdflib.graph)();
88
+ var auth = (0, _rdflib.Namespace)('http://www.w3.org/ns/auth/acl#');
89
+ var a = g.sym(aclURI + '#a1');
90
+ var acl = g.sym(aclURI);
91
+ var doc = g.sym(docURI);
92
92
  g.add(a, _solidUi.ns.rdf('type'), auth('Authorization'), acl);
93
93
  g.add(a, auth('accessTo'), doc, acl);
94
94
  g.add(a, auth('agent'), me, acl);
@@ -114,35 +114,39 @@ const paneDef = {
114
114
  *
115
115
  * @returns {Promise<Response>}
116
116
  */
117
- const setACL = function setACL(docURI, allWrite, callbackFunction) {
118
- const aclDoc = store.any((0, _rdflib.sym)(docURI), (0, _rdflib.sym)('http://www.iana.org/assignments/link-relations/acl')); // @@ check that this get set by web.js
117
+ var setACL = function setACL(docURI, allWrite, callbackFunction) {
118
+ var aclDoc = store.any((0, _rdflib.sym)(docURI), (0, _rdflib.sym)('http://www.iana.org/assignments/link-relations/acl')); // @@ check that this get set by web.js
119
119
  if (!fetcher) {
120
120
  throw new Error('Have no fetcher');
121
121
  }
122
122
  if (aclDoc) {
123
123
  // Great we already know where it is
124
- const aclText = genACLtext(docURI, aclDoc.uri, allWrite);
124
+ var aclText = genACLtext(docURI, aclDoc.uri, allWrite);
125
125
  return fetcher.webOperation('PUT', aclDoc.uri, {
126
126
  data: aclText,
127
127
  contentType: 'text/turtle'
128
- }).then(() => callbackFunction(true)).catch(err => {
128
+ }).then(function () {
129
+ return callbackFunction(true);
130
+ })["catch"](function (err) {
129
131
  callbackFunction(false, err.message);
130
132
  });
131
133
  } else {
132
- return fetcher.load(docURI).catch(err => {
134
+ return fetcher.load(docURI)["catch"](function (err) {
133
135
  callbackFunction(false, 'Getting headers for ACL: ' + err);
134
- }).then(() => {
135
- const aclDoc = store.any((0, _rdflib.sym)(docURI), (0, _rdflib.sym)('http://www.iana.org/assignments/link-relations/acl'));
136
+ }).then(function () {
137
+ var aclDoc = store.any((0, _rdflib.sym)(docURI), (0, _rdflib.sym)('http://www.iana.org/assignments/link-relations/acl'));
136
138
  if (!aclDoc) {
137
139
  // complainIfBad(false, "No Link rel=ACL header for " + docURI);
138
140
  throw new Error('No Link rel=ACL header for ' + docURI);
139
141
  }
140
- const aclText = genACLtext(docURI, aclDoc.uri, allWrite);
142
+ var aclText = genACLtext(docURI, aclDoc.uri, allWrite);
141
143
  return fetcher.webOperation('PUT', aclDoc.uri, {
142
144
  data: aclText,
143
145
  contentType: 'text/turtle'
144
146
  });
145
- }).then(() => callbackFunction(true)).catch(err => {
147
+ }).then(function () {
148
+ return callbackFunction(true);
149
+ })["catch"](function (err) {
146
150
  callbackFunction(false, err.message);
147
151
  });
148
152
  }
@@ -151,8 +155,8 @@ const paneDef = {
151
155
  // Reproduction: spawn a new instance
152
156
  //
153
157
  // Viral growth path: user of app decides to make another instance
154
- const newInstanceButton = function () {
155
- const button = div.appendChild(dom.createElement('button'));
158
+ var newInstanceButton = function newInstanceButton() {
159
+ var button = div.appendChild(dom.createElement('button'));
156
160
  button.textContent = 'Start another pad';
157
161
  button.addEventListener('click', function () {
158
162
  return showBootstrap(subject, spawnArea, 'pad');
@@ -161,21 +165,21 @@ const paneDef = {
161
165
  };
162
166
 
163
167
  // Option of either using the workspace system or just typing in a URI
164
- const showBootstrap = function showBootstrap(thisInstance, container, noun) {
165
- const div = clearElement(container);
166
- const appDetails = {
168
+ var showBootstrap = function showBootstrap(thisInstance, container, noun) {
169
+ var div = clearElement(container);
170
+ var appDetails = {
167
171
  noun: 'notepad'
168
172
  };
169
- div.appendChild(_solidUi.login.newAppInstance(dom, appDetails, (workspace, newBase) => {
173
+ div.appendChild(_solidUi.login.newAppInstance(dom, appDetails, function (workspace, newBase) {
170
174
  // FIXME: not sure if this will work at all, just
171
175
  // trying to get the types to match - Michiel.
172
176
  return initializeNewInstanceInWorkspace(new _rdflib.NamedNode(workspace || newBase));
173
177
  }));
174
178
  div.appendChild(dom.createElement('hr')); // @@
175
179
 
176
- const p = div.appendChild(dom.createElement('p'));
180
+ var p = div.appendChild(dom.createElement('p'));
177
181
  p.textContent = 'Where would you like to store the data for the ' + noun + '? ' + 'Give the URL of the directory where you would like the data stored.';
178
- const baseField = div.appendChild(dom.createElement('input'));
182
+ var baseField = div.appendChild(dom.createElement('input'));
179
183
  baseField.setAttribute('type', 'text');
180
184
  baseField.size = 80 // really a string
181
185
  ;
@@ -183,10 +187,10 @@ const paneDef = {
183
187
  baseField.autocomplete = 'on';
184
188
  div.appendChild(dom.createElement('br')); // @@
185
189
 
186
- const button = div.appendChild(dom.createElement('button'));
190
+ var button = div.appendChild(dom.createElement('button'));
187
191
  button.textContent = 'Start new ' + noun + ' at this URI';
188
192
  button.addEventListener('click', function (_e) {
189
- let newBase = baseField.value;
193
+ var newBase = baseField.value;
190
194
  if (newBase.slice(-1) !== '/') {
191
195
  newBase += '/';
192
196
  }
@@ -195,9 +199,9 @@ const paneDef = {
195
199
  };
196
200
 
197
201
  // Create new document files for new instance of app
198
- const initializeNewInstanceInWorkspace = function (ws) {
202
+ var initializeNewInstanceInWorkspace = function initializeNewInstanceInWorkspace(ws) {
199
203
  // @@ TODO Clean up type for newBase
200
- let newBase = store.any(ws, _solidUi.ns.space('uriPrefix'));
204
+ var newBase = store.any(ws, _solidUi.ns.space('uriPrefix'));
201
205
  if (!newBase) {
202
206
  newBase = ws.uri.split('#')[0];
203
207
  } else {
@@ -207,34 +211,34 @@ const paneDef = {
207
211
  _rdflib.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase); // @@ paramater?
208
212
  newBase = newBase + '/';
209
213
  }
210
- const now = new Date();
214
+ var now = new Date();
211
215
  newBase += appPathSegment + '/id' + now.getTime() + '/'; // unique id
212
216
 
213
217
  initializeNewInstanceAtBase(thisInstance, newBase);
214
218
  };
215
- const initializeNewInstanceAtBase = function (thisInstance, newBase) {
216
- const here = (0, _rdflib.sym)(thisInstance.uri.split('#')[0]);
217
- const base = here; // @@ ???
219
+ var initializeNewInstanceAtBase = function initializeNewInstanceAtBase(thisInstance, newBase) {
220
+ var here = (0, _rdflib.sym)(thisInstance.uri.split('#')[0]);
221
+ var base = here; // @@ ???
218
222
 
219
- const newPadDoc = store.sym(newBase + 'pad.ttl');
220
- const newIndexDoc = store.sym(newBase + 'index.html');
221
- const toBeCopied = [{
223
+ var newPadDoc = store.sym(newBase + 'pad.ttl');
224
+ var newIndexDoc = store.sym(newBase + 'index.html');
225
+ var toBeCopied = [{
222
226
  local: 'index.html',
223
227
  contentType: 'text/html'
224
228
  }];
225
- const newInstance = store.sym(newPadDoc.uri + '#thisPad');
229
+ var newInstance = store.sym(newPadDoc.uri + '#thisPad');
226
230
 
227
231
  // log.debug("\n Ready to put " + kb.statementsMatching(undefined, undefined, undefined, there)); //@@
228
232
 
229
- const agenda = [];
230
- let f; // @@ This needs some form of visible progress bar
233
+ var agenda = [];
234
+ var f; // @@ This needs some form of visible progress bar
231
235
  for (f = 0; f < toBeCopied.length; f++) {
232
- const item = toBeCopied[f];
233
- const fun = function copyItem(item) {
236
+ var item = toBeCopied[f];
237
+ var fun = function copyItem(item) {
234
238
  agenda.push(function () {
235
- const newURI = newBase + item.local;
239
+ var newURI = newBase + item.local;
236
240
  console.log('Copying ' + base + item.local + ' to ' + newURI);
237
- const setThatACL = function () {
241
+ var setThatACL = function setThatACL() {
238
242
  setACL(newURI, false, function (ok, message) {
239
243
  if (!ok) {
240
244
  complainIfBad(ok, 'FAILED to set ACL ' + newURI + ' : ' + message);
@@ -247,10 +251,12 @@ const paneDef = {
247
251
  if (!store.fetcher) {
248
252
  throw new Error('Store has no fetcher');
249
253
  }
250
- store.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(() => _solidLogic.authn.checkUser()).then(webId => {
254
+ store.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(function () {
255
+ return _solidLogic.authn.checkUser();
256
+ }).then(function (webId) {
251
257
  me = webId;
252
258
  setThatACL();
253
- }).catch(err => {
259
+ })["catch"](function (err) {
254
260
  console.log('FAILED to copy ' + base + item.local + ' : ' + err.message);
255
261
  complainIfBad(false, 'FAILED to copy ' + base + item.local + ' : ' + err.message);
256
262
  });
@@ -294,29 +300,29 @@ const paneDef = {
294
300
  agenda.push(function () {
295
301
  // give the user links to the new app
296
302
 
297
- const p = div.appendChild(dom.createElement('p'));
303
+ var p = div.appendChild(dom.createElement('p'));
298
304
  p.setAttribute('style', 'font-size: 140%;');
299
- p.innerHTML = 'Your <a href=\'' + newIndexDoc.uri + '\'><b>new notepad</b></a> is ready. ' + '<br/><br/><a href=\'' + newIndexDoc.uri + '\'>Go to new pad</a>';
305
+ p.innerHTML = "Your <a href='" + newIndexDoc.uri + "'><b>new notepad</b></a> is ready. " + "<br/><br/><a href='" + newIndexDoc.uri + "'>Go to new pad</a>";
300
306
  });
301
307
  agenda.shift()();
302
308
  // Created new data files.
303
309
  };
304
310
 
305
311
  // Update on incoming changes
306
- const showResults = function (exists) {
312
+ var showResults = function showResults(exists) {
307
313
  console.log('showResults()');
308
314
  me = _solidLogic.authn.currentUser();
309
- _solidLogic.authn.checkUser().then(webId => {
315
+ _solidLogic.authn.checkUser().then(function (webId) {
310
316
  me = webId;
311
317
  });
312
- const title = store.any(subject, _solidUi.ns.dc('title')) || store.any(subject, _solidUi.ns.vcard('fn'));
318
+ var title = store.any(subject, _solidUi.ns.dc('title')) || store.any(subject, _solidUi.ns.vcard('fn'));
313
319
  if (paneOptions.solo && typeof window !== 'undefined' && title) {
314
320
  window.document.title = title.value;
315
321
  }
316
322
  options.exists = exists;
317
323
  padEle = _solidUi.pad.notepad(dom, padDoc, subject, me, options);
318
324
  naviMain.appendChild(padEle);
319
- const partipationTarget = store.any(subject, _solidUi.ns.meeting('parentMeeting')) || subject;
325
+ var partipationTarget = store.any(subject, _solidUi.ns.meeting('parentMeeting')) || subject;
320
326
  _solidUi.pad.manageParticipation(dom, naviMiddle2, padDoc, partipationTarget, me, options);
321
327
  if (!store.updater) {
322
328
  throw new Error('Store has no updater');
@@ -325,7 +331,7 @@ const paneDef = {
325
331
  };
326
332
 
327
333
  // Read or create empty data file
328
- const loadPadData = function () {
334
+ var loadPadData = function loadPadData() {
329
335
  if (!fetcher) {
330
336
  throw new Error('Have no fetcher');
331
337
  }
@@ -363,43 +369,43 @@ const paneDef = {
363
369
  };
364
370
 
365
371
  // Body of Pane
366
- const appPathSegment = 'app-pad.timbl.com'; // how to allocate this string and connect to
372
+ var appPathSegment = 'app-pad.timbl.com'; // how to allocate this string and connect to
367
373
 
368
- const fetcher = store.fetcher;
369
- const updater = store.updater;
370
- let me;
371
- const PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
372
- const thisInstance = subject;
373
- const padDoc = subject.doc();
374
- let padEle;
375
- const div = dom.createElement('div');
374
+ var fetcher = store.fetcher;
375
+ var updater = store.updater;
376
+ var me;
377
+ var PAD = (0, _rdflib.Namespace)('http://www.w3.org/ns/pim/pad#');
378
+ var thisInstance = subject;
379
+ var padDoc = subject.doc();
380
+ var padEle;
381
+ var div = dom.createElement('div');
376
382
 
377
383
  // Build the DOM
378
- const structure = div.appendChild(dom.createElement('table')); // @@ make responsive style
384
+ var structure = div.appendChild(dom.createElement('table')); // @@ make responsive style
379
385
  structure.setAttribute('style', 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;');
380
- const naviLoginoutTR = structure.appendChild(dom.createElement('tr'));
386
+ var naviLoginoutTR = structure.appendChild(dom.createElement('tr'));
381
387
  naviLoginoutTR.appendChild(dom.createElement('td')); // naviLoginout1
382
388
  naviLoginoutTR.appendChild(dom.createElement('td'));
383
389
  naviLoginoutTR.appendChild(dom.createElement('td'));
384
- const naviTop = structure.appendChild(dom.createElement('tr')); // stuff
385
- const naviMain = naviTop.appendChild(dom.createElement('td'));
390
+ var naviTop = structure.appendChild(dom.createElement('tr')); // stuff
391
+ var naviMain = naviTop.appendChild(dom.createElement('td'));
386
392
  naviMain.setAttribute('colspan', '3');
387
- const naviMiddle = structure.appendChild(dom.createElement('tr')); // controls
388
- const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'));
389
- const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'));
390
- const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'));
391
- const naviStatus = structure.appendChild(dom.createElement('tr')); // status etc
392
- const statusArea = naviStatus.appendChild(dom.createElement('div'));
393
- const naviSpawn = structure.appendChild(dom.createElement('tr')); // create new
394
- const spawnArea = naviSpawn.appendChild(dom.createElement('div'));
395
- const naviMenu = structure.appendChild(dom.createElement('tr'));
393
+ var naviMiddle = structure.appendChild(dom.createElement('tr')); // controls
394
+ var naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'));
395
+ var naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'));
396
+ var naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'));
397
+ var naviStatus = structure.appendChild(dom.createElement('tr')); // status etc
398
+ var statusArea = naviStatus.appendChild(dom.createElement('div'));
399
+ var naviSpawn = structure.appendChild(dom.createElement('tr')); // create new
400
+ var spawnArea = naviSpawn.appendChild(dom.createElement('div'));
401
+ var naviMenu = structure.appendChild(dom.createElement('tr'));
396
402
  naviMenu.setAttribute('class', 'naviMenu');
397
403
  // naviMenu.setAttribute('style', 'margin-top: 3em;');
398
404
  naviMenu.appendChild(dom.createElement('td')); // naviLeft
399
405
  naviMenu.appendChild(dom.createElement('td'));
400
406
  naviMenu.appendChild(dom.createElement('td'));
401
- const options = {
402
- statusArea,
407
+ var options = {
408
+ statusArea: statusArea,
403
409
  timingArea: naviMiddle1
404
410
  };
405
411
  loadPadData();
@@ -407,5 +413,5 @@ const paneDef = {
407
413
  }
408
414
  };
409
415
  // ends
410
- var _default = exports.default = paneDef;
416
+ var _default = exports["default"] = paneDef;
411
417
  //# sourceMappingURL=padPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"padPane.js","names":["_solidUi","require","_solidLogic","_rdflib","paneDef","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","t","session","store","findTypeURIs","mintClass","pad","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newPadDoc","doc","add","rdf","dc","Date","chunk","sioc","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","render","paneOptions","dom","complainIfBad","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","foaf","serialize","setACL","callbackFunction","aclDoc","any","fetcher","aclText","webOperation","data","contentType","then","err","load","newInstanceButton","button","createElement","textContent","addEventListener","showBootstrap","spawnArea","thisInstance","container","noun","appDetails","login","newAppInstance","workspace","initializeNewInstanceInWorkspace","NamedNode","p","baseField","setAttribute","size","autocomplete","_e","value","slice","initializeNewInstanceAtBase","ws","space","split","log","error","appPathSegment","now","getTime","here","base","newIndexDoc","toBeCopied","local","agenda","f","length","item","fun","copyItem","push","newURI","console","setThatACL","shift","webCopy","authn","checkUser","webId","createNewPadDataFile","PAD","padDoc","_uri2","body","innerHTML","showResults","exists","currentUser","title","vcard","solo","window","document","options","padEle","notepad","naviMain","partipationTarget","meeting","manageParticipation","naviMiddle2","setRefreshHandler","reloadAndSync","loadPadData","nowOrWhenFetched","response","status","holds","wf","naviMiddle3","structure","naviLoginoutTR","naviTop","naviMiddle","naviMiddle1","naviStatus","statusArea","naviSpawn","naviMenu","timingArea","_default","exports"],"sources":["../../src/pad/padPane.ts"],"sourcesContent":["import { icons, ns, pad, widgets, login } from 'solid-ui'\nimport { authn, AppDetails } from 'solid-logic'\nimport { graph, log, NamedNode, Namespace, sym, serialize, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\n/* pad Pane\n **\n */\n\nconst paneDef: PaneDefinition = {\n // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',\n icon: icons.iconBase + 'noun_79217.svg',\n\n name: 'pad',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an pad pane?\n label: function (subject, context) {\n const t = (context.session.store as Store).findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/pad#Notepad']) {\n return 'pad'\n }\n return null // No under other circumstances\n },\n\n mintClass: ns.pad('Notepad'),\n\n mintNew: function (context, newPaneOptions: any) {\n const store = context.session.store as Store\n const updater = store.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('notepad mintNew: Invalid userid')\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n store.sym(newPaneOptions.newBase + 'index.ttl#this'))\n // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');\n const newPadDoc = newInstance.doc()\n\n store.add(newInstance, ns.rdf('type'), ns.pad('Notepad'), newPadDoc)\n store.add(newInstance, ns.dc('title'), 'Shared Notes', newPadDoc)\n store.add(newInstance, ns.dc('created'), new Date() as any, newPadDoc) // @@ TODO Remove casting\n if (newPaneOptions.me) {\n store.add(newInstance, ns.dc('author'), newPaneOptions.me, newPadDoc)\n }\n // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);\n // linked list empty @@\n const chunk = store.sym(newInstance.uri + '_line0')\n store.add(newInstance, ns.pad('next'), chunk, newPadDoc) // Linked list has one entry\n store.add(chunk, ns.pad('next'), newInstance, newPadDoc)\n store.add(chunk, ns.dc('author'), newPaneOptions.me, newPadDoc)\n store.add(chunk, ns.sioc('content'), '', newPadDoc)\n\n return new Promise(function (resolve, reject) {\n if (!updater) {\n reject(new Error('Have no updater'))\n return\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n // and follow instructions there\n // @@ TODO Set better type for paneOptions\n render: function (subject, context, paneOptions: any) {\n const dom = context.dom\n const store = context.session.store as Store\n // Utility functions\n const complainIfBad = function (ok: boolean, message: string) {\n if (!ok) {\n div.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele: HTMLElement) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n // Access control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n const genACLtext = function (\n docURI: string,\n aclURI: string,\n allWrite: boolean\n ) {\n const g = graph()\n const auth = Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n // TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:\n return serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /**\n * @param docURI\n * @param allWrite\n * @param callbackFunction\n *\n * @returns {Promise<Response>}\n */\n const setACL = function setACL (\n docURI: string,\n allWrite: boolean,\n callbackFunction: Function\n ) {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode // @@ check that this get set by web.js\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch((err: Error) => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI);\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n const newInstanceButton = function () {\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start another pad'\n button.addEventListener('click', function () {\n return showBootstrap(subject, spawnArea, 'pad')\n })\n return button\n }\n\n // Option of either using the workspace system or just typing in a URI\n const showBootstrap = function showBootstrap (\n thisInstance: any,\n container: HTMLElement,\n noun: string\n ) {\n const div = clearElement(container)\n const appDetails = { noun: 'notepad' } as AppDetails\n div.appendChild(\n login.newAppInstance(dom, appDetails, (workspace: string | null, newBase) => {\n // FIXME: not sure if this will work at all, just\n // trying to get the types to match - Michiel.\n return initializeNewInstanceInWorkspace(new NamedNode(workspace || newBase))\n })\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the ' +\n noun +\n '? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n ;(baseField as any).label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start new ' + noun + ' at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // Create new document files for new instance of app\n const initializeNewInstanceInWorkspace = function (ws: NamedNode) {\n // @@ TODO Clean up type for newBase\n let newBase: any = store.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (\n thisInstance: any,\n newBase: string\n ) {\n const here = sym(thisInstance.uri.split('#')[0])\n const base = here // @@ ???\n\n const newPadDoc = store.sym(newBase + 'pad.ttl')\n const newIndexDoc = store.sym(newBase + 'index.html')\n\n const toBeCopied = [{ local: 'index.html', contentType: 'text/html' }]\n\n const newInstance = store.sym(newPadDoc.uri + '#thisPad')\n\n // log.debug(\"\\n Ready to put \" + kb.statementsMatching(undefined, undefined, undefined, there)); //@@\n\n const agenda: Function[] = []\n\n let f // @@ This needs some form of visible progress bar\n for (f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item: any) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL(newURI, false, function (ok: boolean, message: string) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()!() // beware too much nesting\n }\n })\n }\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createNewPadDataFile () {\n store.add(newInstance, ns.rdf('type'), PAD('Notepad'), newPadDoc)\n\n // TODO @@ Remove casting of add\n store.add(\n newInstance,\n ns.dc('created'),\n new Date() as any, // @@ TODO Remove casting\n newPadDoc\n )\n if (me) {\n store.add(newInstance, ns.dc('author'), me, newPadDoc)\n }\n store.add(newInstance, PAD('next'), newInstance, newPadDoc) // linked list empty\n\n // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy\n store.add(newInstance, ns.space('inspiration'), thisInstance, padDoc)\n store.add(newInstance, ns.space('inspiration'), thisInstance, newPadDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (_uri2, ok, message) {\n if (ok) {\n agenda.shift()!()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n setACL(newPadDoc.uri, true, function (ok: boolean, body: string) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on pad data file: ' + body\n )\n if (ok) agenda.shift()!()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n newIndexDoc.uri +\n \"'><b>new notepad</b></a> is ready. \" +\n \"<br/><br/><a href='\" +\n newIndexDoc.uri +\n \"'>Go to new pad</a>\"\n })\n\n agenda.shift()!()\n // Created new data files.\n }\n\n // Update on incoming changes\n const showResults = function (exists: boolean) {\n console.log('showResults()')\n\n me = authn.currentUser()\n\n authn.checkUser().then((webId: unknown) => {\n me = webId as string\n })\n\n const title =\n store.any(subject, ns.dc('title')) || store.any(subject, ns.vcard('fn'))\n if (paneOptions.solo && typeof window !== 'undefined' && title) {\n window.document.title = title.value\n }\n options.exists = exists\n padEle = pad.notepad(dom, padDoc, subject, me, options)\n naviMain.appendChild(padEle)\n\n const partipationTarget =\n store.any(subject, ns.meeting('parentMeeting')) || subject\n pad.manageParticipation(\n dom,\n naviMiddle2,\n padDoc,\n partipationTarget as any,\n me,\n options\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync) // initiated =\n }\n\n // Read or create empty data file\n const loadPadData = function () {\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (\n ok: boolean,\n body: string,\n response: any\n ) {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing results file ' + padDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(padDoc, [], 'text/turtle', function (\n _uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults(false)\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n if (store.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))) {\n showBootstrap(subject, naviMain, 'pad')\n }\n showResults(true)\n naviMiddle3.appendChild(newInstanceButton())\n }\n })\n }\n\n // Body of Pane\n const appPathSegment = 'app-pad.timbl.com' // how to allocate this string and connect to\n\n const fetcher = store.fetcher\n const updater = store.updater\n let me: any\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n const thisInstance = subject\n const padDoc = subject.doc()\n\n let padEle\n\n const div = dom.createElement('div')\n\n // Build the DOM\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td')) // naviLoginout1\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const naviTop = structure.appendChild(dom.createElement('tr')) // stuff\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMiddle = structure.appendChild(dom.createElement('tr')) // controls\n const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'))\n\n const naviStatus = structure.appendChild(dom.createElement('tr')) // status etc\n const statusArea = naviStatus.appendChild(dom.createElement('div'))\n\n const naviSpawn = structure.appendChild(dom.createElement('tr')) // create new\n const spawnArea = naviSpawn.appendChild(dom.createElement('div'))\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n // naviMenu.setAttribute('style', 'margin-top: 3em;');\n naviMenu.appendChild(dom.createElement('td')) // naviLeft\n naviMenu.appendChild(dom.createElement('td'))\n naviMenu.appendChild(dom.createElement('td'))\n\n const options: any = { statusArea: statusArea, timingArea: naviMiddle1 }\n\n loadPadData()\n\n return div\n }\n}\n// ends\n\nexport default paneDef\n"],"mappings":"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","ignoreList":[]}
@@ -1,78 +1,79 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.default = void 0;
7
+ exports["default"] = void 0;
7
8
  var UI = _interopRequireWildcard(require("solid-ui"));
8
9
  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
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _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
11
  /* Playlist Pane
11
12
  **
12
13
  ** This pane allows playlists and playlists slots to be viewed
13
14
  ** seeAlso: http://smiy.sourceforge.net/pbo/spec/playbackontology.html
14
15
  */
15
16
 
16
- const ns = UI.ns;
17
- var _default = exports.default = {
17
+ var ns = UI.ns;
18
+ var _default = exports["default"] = {
18
19
  icon: UI.icons.iconBase + 'noun_1619.svg',
19
20
  name: 'playlistSlot',
20
21
  audience: [ns.solid('PowerUser')],
21
- label: function (subject, context) {
22
- const kb = context.session.store;
22
+ label: function label(subject, context) {
23
+ var kb = context.session.store;
23
24
  if (!kb.anyStatementMatching(subject, UI.ns.rdf('type'), kb.sym('http://purl.org/ontology/pbo/core#PlaylistSlot'))) {
24
25
  return null;
25
26
  }
26
27
  return 'playlist slot';
27
28
  },
28
- render: function (subject, context) {
29
- const myDocument = context.dom;
29
+ render: function render(subject, context) {
30
+ var myDocument = context.dom;
30
31
  function isVideo(src, _index) {
31
32
  if (!src) {
32
33
  return {
33
34
  html5: true
34
35
  };
35
36
  }
36
- const youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-_%]+)/i);
37
- const vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i);
38
- const dailymotion = src.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i);
39
- const vk = src.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);
37
+ var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-_%]+)/i);
38
+ var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i);
39
+ var dailymotion = src.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i);
40
+ var vk = src.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);
40
41
  if (youtube) {
41
42
  return {
42
- youtube
43
+ youtube: youtube
43
44
  };
44
45
  } else if (vimeo) {
45
46
  return {
46
- vimeo
47
+ vimeo: vimeo
47
48
  };
48
49
  } else if (dailymotion) {
49
50
  return {
50
- dailymotion
51
+ dailymotion: dailymotion
51
52
  };
52
53
  } else if (vk) {
53
54
  return {
54
- vk
55
+ vk: vk
55
56
  };
56
57
  }
57
58
  }
58
- const link = function (contents, uri) {
59
+ var link = function link(contents, uri) {
59
60
  if (!uri) return contents;
60
- const a = myDocument.createElement('a');
61
+ var a = myDocument.createElement('a');
61
62
  a.setAttribute('href', uri);
62
63
  a.appendChild(contents);
63
64
  a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true);
64
65
  return a;
65
66
  };
66
- const text = function (str) {
67
+ var text = function text(str) {
67
68
  return myDocument.createTextNode(str);
68
69
  };
69
- const kb = context.session.store;
70
- const obj = kb.any(subject, $rdf.sym('http://purl.org/ontology/pbo/core#playlist_item'));
71
- let index = kb.any(subject, $rdf.sym('http://purl.org/ontology/olo/core#index'));
72
- let uri = obj.uri;
73
- const video = isVideo(uri);
74
- const div = myDocument.createElement('div');
75
- let img;
70
+ var kb = context.session.store;
71
+ var obj = kb.any(subject, $rdf.sym('http://purl.org/ontology/pbo/core#playlist_item'));
72
+ var index = kb.any(subject, $rdf.sym('http://purl.org/ontology/olo/core#index'));
73
+ var uri = obj.uri;
74
+ var video = isVideo(uri);
75
+ var div = myDocument.createElement('div');
76
+ var img;
76
77
  if (video && video.youtube) {
77
78
  uri = uri.replace('watch?v=', 'embed/');
78
79
  div.setAttribute('class', 'imageView');
@@ -91,28 +92,28 @@ var _default = exports.default = {
91
92
  img.setAttribute('height', 315);
92
93
  img.setAttribute('style', 'max-width: 560; max-height: 315;');
93
94
  }
94
- let descDiv;
95
+ var descDiv;
95
96
  if (index) {
96
- const sl = kb.statementsMatching(null, $rdf.sym('http://purl.org/ontology/olo/core#index'));
97
- const slots = [];
98
- for (let i = 0; i < sl.length; i++) {
97
+ var sl = kb.statementsMatching(null, $rdf.sym('http://purl.org/ontology/olo/core#index'));
98
+ var slots = [];
99
+ for (var i = 0; i < sl.length; i++) {
99
100
  if (sl[i]) {
100
101
  slots.push(parseInt(sl[i].object.value, 10));
101
102
  }
102
103
  }
103
104
  index = parseInt(index.value, 10);
104
105
  descDiv = myDocument.createElement('div');
105
- const pIndex = slots[(slots.indexOf(index) - 1 + slots.length) % slots.length];
106
- const nIndex = slots[(slots.indexOf(index) + 1 + slots.length) % slots.length];
107
- const prev = link(text('<<'), subject.uri.split('#')[0] + '#' + pIndex);
106
+ var pIndex = slots[(slots.indexOf(index) - 1 + slots.length) % slots.length];
107
+ var nIndex = slots[(slots.indexOf(index) + 1 + slots.length) % slots.length];
108
+ var prev = link(text('<<'), subject.uri.split('#')[0] + '#' + pIndex);
108
109
  descDiv.appendChild(prev);
109
- const indexDiv = myDocument.createElement('span');
110
+ var indexDiv = myDocument.createElement('span');
110
111
  indexDiv.innerHTML = ' Playlist slot : ' + index + ' ';
111
112
  descDiv.appendChild(indexDiv);
112
- const next = link(text('>>'), subject.uri.split('#')[0] + '#' + nIndex);
113
+ var next = link(text('>>'), subject.uri.split('#')[0] + '#' + nIndex);
113
114
  descDiv.appendChild(next);
114
115
  }
115
- const tr = myDocument.createElement('TR'); // why need tr?
116
+ var tr = myDocument.createElement('TR'); // why need tr?
116
117
  tr.appendChild(img);
117
118
  if (descDiv) {
118
119
  tr.appendChild(descDiv);