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":"userInput.js","names":["UI","_interopRequireWildcard","require","_solidLogic","panes","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UserInputFormula","TempFormula","UserInput","outline","myDocument","document","menuId","qp","str","console","log","rdf","ns","bibo","Namespace","dcelems","movedArrow","Formula","superFormula","store","IndexedFormula","name","updater","UpdateManager","sparqler","lastModified","lastModifiedStat","statIsInverse","addNewPredicateObject","utils","getTarget","className","This","target","insertTr","createElement","ancestor","insertBefore","tempTr","reqTerm1","generateRequest","appendChild","firstChild","reqTerm2","previousSibling","AJAR_statement","preStat","formUndetStat","subject","why","getAbout","parentNode","doc","sym","Util","uri","docpart","walk","info","getSelection","map","item","textContent","join","startFillInText","addNewObject","predicateTd","isInverse","AJAR_inverse","appendToPredicate","reqTerm","predicate","object","lastChild","Delete","selectedTd","deleteTriple","Enter","literalModification","Click","getTerm","termType","preventDefault","stopPropagation","pasteFromClipboard","address","termFrom","fromCode","term","clipboard","shift","warn","allArray","all","sameTerm","splice","Error","nextSibling","returnArray","insertTermTo","whatSortOfEditCell","emptyNode","createInputBoxIn","isNew","select","performAutoCompleteEdit","debug","indexOf","about","getStatementAbout","obj","trNode","error","tdNode","removeChild","value","match","textBox","createTextNode","setAttribute","length","toString","menu","addEventListener","getAutoCompleteHandler","backOut","clearMenu","getElementById","menuID","clearInputAndSave","s","defaultpropview","defaultValue","trCache","Statement","literal","views","defaults","update","success","errorBody","add","s1","s2","s3","valueCache","oldValue","st","replace","textTerm","selectedPredicate","elements","any","undefined","pageX","findPos","pageY","clientHeight","showMenu","dialogTerm","bnodeTerm","type","the","anyStatementMatching","remove","enclosingTd","defaultPane","byName","outlineExpand","pane","already","focusTd","fillInRequest","removeMany","upperTr","replaceTD","outlineObjectTD","isBackOut","whether","link","removefromview","removedTr","trIterator","childNodes","theNext","parseInt","getAttribute","clipboardInit","objects","predicates","copyToClipboard","unshift","isObject","AJAR_statemnet","stackString","statements","push","paneDiv","newTr","outlinePredicateTD","Refill","isPredicate","predicateQuery","subjectClass","sparqlText","endl","rdfs","variable","SPARQLToQuery","predicateTerm","owl","classQuery","mode","InputBox","enterEvent","setHighlightItem","lastHighlight","showURI","newText","keyCode","tagName","createNew","inputURI","jtitle","innerHTML","juri","slice","inputTerm","fillInType","String","fromCharCode","charCode","inputText","WildCardButtons","menuDiv","div","input1","input2","highlightInput","Keypress","targetOf","preRows","Mousedown","window","ctrlKey","switchMode","oncontextmenu","button","Mouseover","_tabulatorMode","preTd","style","cursor","border","borderColor","Mouseout","something","statement","defaultText","UpAndDown","OutlinerKeypressPanel","location","inputBox","_e","targetdoc","newTerm","nextSymbol","tiptext","typeURIhandler","newuri","isEnd","colspan","display","hasAttribute","table","bnode2symbol","bnode","symbol","copyTo","tipText","trNew","notShow","tp","newNode","menuType","inputQuery","extraInformation","_order","x","id","top","left","getOffset","el","_lf","_tp","oldlf","oldtp","newlf","newtp","isNaN","offsetLeft","offsetTop","scrollLeft","scrollTop","loc","body","highlightTr","selectItem","IDpredicate","IDterm","clickedTd","predicateChoices","tr","newTd","NameSpaces","each","forEach","ontology","label","addMenuItem","Label","predicateLabelForXML","theNamespace","string_startswith","th","toUpperCase","addPredicateChoice","selectedQuery","bindings","vars","width","h1","h1th","plist","statementsMatching","text","h2","h2th","ans1","ans2","labeller","searchAdv","results","tempQuery","tempBinding","Kenny","fromNT","NT","entries","search","types","thisNT","toNT","typeLabel","juris","matchedtitle","jtstr","matchstr","toLowerCase","jTitleLowerCase","choiceTerm","choices","nullFetcher","constructor","query","stat","newStat","doNext","eventhandler","_errorBody","newStats","inverse"],"sources":["../../src/outline/userInput.js"],"sourcesContent":["/* istanbul ignore file */\n// Original author: kennyluck\n//\n// Kenny's Notes:\n/* places to generate SPARQL update: clearInputAndSave() pasteFromClipboard()->insertTermTo();\n undetermined statement generated formUndetStat()\n ->fillInRequest()\n ontological issues\n temporarily using the tabont namespace\n clipboard: 'predicates' 'objects' 'all'(internal)\n request: 'from' 'to' 'message' 'Request'\n*/\n\nimport * as UI from 'solid-ui'\nimport { store } from 'solid-logic'\nimport * as panes from 'pane-registry'\nimport * as $rdf from 'rdflib'\n\nlet UserInputFormula // Formula to store references of user's work\nlet TempFormula // Formula to store incomplete triples (Requests),\n// temporarily disjoint with kb to avoid bugs\n\nexport function UserInput (outline) {\n const myDocument = outline.document // is this ok?\n // UI.log.warn(\"myDocument when it's set is \"+myDocument.location);\n this.menuId = 'predicateMenu1'\n\n /* //namespace information, as a subgraph of the knowledge base, is built in showMenu\n this.namespaces={};\n\n for (var name in UI.ns) {\n this.namespaces[name] = UI.ns[name]('').uri;\n }\n var NameSpaces=this.namespaces;\n */\n\n // hq, print and trim functions\n const qp = function qp (str) {\n console.log(str + '\\n')\n }\n\n // var tabont = UI.ns.tabont;\n // var foaf = UI.ns.foaf\n const rdf = UI.ns.rdf\n // var RDFS = UI.ns.rdfs\n // var OWL = UI.ns.owl\n // var dc = UI.ns.dc\n // var rss = UI.ns.rss\n // var contact = UI.ns.contact\n // var mo = UI.ns.mo\n const bibo = $rdf.Namespace('http://purl.org/ontology/bibo/') // hql for pubsPane\n // var dcterms = $rdf.Namespace('http://purl.org/dc/terms/')\n const dcelems = $rdf.Namespace('http://purl.org/dc/elements/1.1/')\n\n let movedArrow = false // hq\n\n // var updateService=new updateCenter(kb);\n\n if (!UserInputFormula) {\n UserInputFormula = new $rdf.Formula()\n UserInputFormula.superFormula = store\n // UserInputFormula.registerFormula(\"Your Work\");\n }\n if (!TempFormula) TempFormula = new $rdf.IndexedFormula()\n // Use RDFIndexedFormula so add returns the statement\n TempFormula.name = 'TempFormula'\n if (!store.updater) store.updater = new $rdf.UpdateManager(store)\n\n return {\n // updateService: updateService,\n\n sparqler: store.updater,\n lastModified: null, // the last <input> being modified, .isNew indicates whether it's a new input\n lastModifiedStat: null, // the last statement being modified\n statIsInverse: false, // whether the statement is an inverse\n\n /**\n * Triggering Events: event entry points, should be called only from outline.js but not anywhere else\n * in userinput.js, should be as short as possible, function names to be discussed\n */\n\n // Called when the blue cross under the default pane is clicked.\n // Add a new row to a property list ( P and O)\n addNewPredicateObject: function addNewPredicateObject (e) {\n if (UI.utils.getTarget(e).className !== 'bottom-border-active') return\n const This = outline.UserInput\n const target = UI.utils.getTarget(e)\n\n // UI.log.warn(ancestor(target,'TABLE').textContent);\n const insertTr = myDocument.createElement('tr')\n UI.utils\n .ancestor(target, 'DIV')\n .insertBefore(insertTr, UI.utils.ancestor(target, 'TR'))\n const tempTr = myDocument.createElement('tr')\n const reqTerm1 = This.generateRequest('(TBD)', tempTr, true)\n insertTr.appendChild(tempTr.firstChild)\n const reqTerm2 = This.generateRequest(\n '(Enter text or drag an object onto this field)',\n tempTr,\n false\n )\n insertTr.appendChild(tempTr.firstChild)\n // there should be an elegant way of doing this\n\n // Take the why of the last TR and write to it.\n if (\n UI.utils.ancestor(target, 'TR').previousSibling && // there is a previous predicate/object line\n UI.utils.ancestor(target, 'TR').previousSibling.AJAR_statement\n ) {\n const preStat = UI.utils.ancestor(target, 'TR').previousSibling\n .AJAR_statement\n // This should always(?) input a non-inverse statement\n This.formUndetStat(\n insertTr,\n preStat.subject,\n reqTerm1,\n reqTerm2,\n preStat.why,\n false\n )\n } else {\n // no previous row: write to the document defining the subject\n const subject = UI.utils.getAbout(\n store,\n UI.utils.ancestor(target.parentNode.parentNode, 'TD')\n )\n const doc = store.sym($rdf.Util.uri.docpart(subject.uri))\n This.formUndetStat(insertTr, subject, reqTerm1, reqTerm2, doc, false)\n }\n\n outline.walk('moveTo', insertTr.firstChild)\n UI.log.info(\n 'addNewPredicateObject: selection = ' +\n outline\n .getSelection()\n .map(function (item) {\n return item.textContent\n })\n .join(', ')\n )\n this.startFillInText(outline.getSelection()[0])\n },\n\n // Called when a blue cross on a predicate is clicked\n // tr.AJAR_inverse stores whether the clicked predicate is an inverse one\n // tr.AJAR_statement (an incomplete statement in TempFormula) stores the destination(why), now\n // determined by the preceding one (is this good?)\n addNewObject: function addNewObject (e) {\n const predicateTd = UI.utils.getTarget(e).parentNode.parentNode\n // var predicateTerm = UI.utils.getAbout(kb, predicateTd)\n const isInverse = predicateTd.parentNode.AJAR_inverse\n // var titleTerm=UI.utils.getAbout(kb,UI.utils.ancestor(predicateTd.parentNode,'TD'));\n // set pseudo lastModifiedStat here\n this.lastModifiedStat = predicateTd.parentNode.AJAR_statement\n\n const insertTr = this.appendToPredicate(predicateTd)\n const reqTerm = this.generateRequest(' (Error) ', insertTr, false)\n const preStat = insertTr.previousSibling.AJAR_statement\n if (!isInverse) {\n this.formUndetStat(\n insertTr,\n preStat.subject,\n preStat.predicate,\n reqTerm,\n preStat.why,\n false\n )\n } else {\n this.formUndetStat(\n insertTr,\n reqTerm,\n preStat.predicate,\n preStat.object,\n preStat.why,\n true\n )\n }\n\n outline.walk('moveTo', insertTr.lastChild)\n this.startFillInText(insertTr.lastChild)\n // this.statIsInverse=false;\n },\n\n // Called when delete is pressed\n Delete: function Delete (selectedTd) {\n this.deleteTriple(selectedTd, false)\n },\n // Called when enter is pressed\n Enter: function Enter (selectedTd) {\n this.literalModification(selectedTd)\n },\n // Called when a selected cell is clicked again\n Click: function Click (e) {\n const target = UI.utils.getTarget(e)\n if (UI.utils.getTerm(target).termType !== 'Literal') return\n this.literalModification(target)\n // this prevents the generated inputbox to be clicked again\n e.preventDefault()\n e.stopPropagation()\n },\n // Called when paste is called (Ctrl+v)\n pasteFromClipboard: function pasteFromClipboard (address, selectedTd) {\n function termFrom (fromCode) {\n const term = outline.clipboard[fromCode].shift()\n if (term === null) {\n UI.log.warn('no more element in clipboard!')\n return\n }\n switch (fromCode) {\n case 'predicates':\n case 'objects': {\n const allArray = outline.clipboard.all\n for (let i = 0; true; i++) {\n if (term.sameTerm(allArray[i])) {\n allArray.splice(i, 1)\n break\n }\n }\n break\n }\n case 'all':\n throw new Error(\n 'hostorical code not understood - what is theCollection?'\n )\n /*\n var isObject = term.sameTerm(theCollection('objects').elements[0])\n isObject ? outline.clipboard.objecs.shift() : outline.clipboard.predicates.shift() // drop the corresponding term\n return [term, isObject]\n break\n */\n }\n return term\n }\n let term\n switch (selectedTd.className) {\n case 'undetermined selected':\n term = selectedTd.nextSibling\n ? termFrom('predicates')\n : termFrom('objects')\n if (!term) return\n break\n case 'pred selected': // paste objects into this predicate\n term = termFrom('objects')\n if (!term) return\n break\n case 'selected': { // header <TD>, undetermined generated\n const returnArray = termFrom('all')\n if (!returnArray) return\n term = returnArray[0]\n this.insertTermTo(selectedTd, term, returnArray[1])\n return\n }\n }\n this.insertTermTo(selectedTd, term)\n },\n\n /**\n * Intermediate Processing:\n */\n\n // a general entry point for any event except Click&Enter(goes to literalModification)\n // do a little inference to pick the right input box\n startFillInText: function startFillInText (selectedTd) {\n switch (this.whatSortOfEditCell(selectedTd)) {\n case 'DatatypeProperty-like':\n // this.clearMenu();\n // selectedTd.className='';\n UI.utils.emptyNode(selectedTd)\n this.lastModified = this.createInputBoxIn(\n selectedTd,\n ' (Please Input) '\n )\n this.lastModified.isNew = false\n\n this.lastModified.select()\n break\n case 'predicate':\n // the goal is to bring back all the menus (with autocomplete functionality\n // this.performAutoCompleteEdit(selectedTd,['PredicateAutoComplete',\n // this.choiceQuery('SuggestPredicateByDomain')]);\n this.performAutoCompleteEdit(selectedTd, 'PredicateAutoComplete')\n break\n case 'ObjectProperty-like':\n case 'no-idea':\n // menu should be either function that\n this.performAutoCompleteEdit(selectedTd, 'GeneralAutoComplete')\n\n /*\n //<code time=\"original\">\n emptyNode(selectedTd);\n this.lastModified=this.createInputBoxIn(selectedTd,\"\");\n this.lastModified.select();\n this.lastModified.addEventListener('keypress',this.AutoComplete,false);\n //this pops up the autocomplete menu\n this.AutoComplete(1);\n //</code>\n */\n }\n },\n\n literalModification: function literalModification (selectedTd) {\n UI.log.debug(\n 'entering literal Modification with ' +\n selectedTd +\n selectedTd.textContent\n )\n // var This=outline.UserInput;\n if (selectedTd.className.indexOf(' pendingedit') !== -1) {\n UI.log.warn(\n 'The node you attempted to edit has a request still pending.\\n' +\n 'Please wait for the request to finish (the text will turn black)\\n' +\n 'before editing this node again.'\n )\n return true\n }\n\n const target = selectedTd\n const about = this.getStatementAbout(target) // timbl - to avoid alert from random clicks\n if (!about) return\n let obj\n let trNode\n try {\n obj = UI.utils.getTerm(target)\n trNode = UI.utils.ancestor(target, 'TR')\n } catch (e) {\n UI.log.warn('userinput.js: ' + e + UI.utils.getAbout(store, selectedTd))\n UI.log.error(target + ' getStatement Error:' + e)\n }\n\n let tdNode\n try {\n tdNode = trNode.lastChild\n } catch (e) {\n UI.log.error(e + '@' + target)\n }\n // seems to be a event handling problem of firefox3\n /*\n if (e.type!='keypress'&&(selectedTd.className=='undetermined selected'||selectedTd.className=='undetermined')){\n this.Refill(e,selectedTd);\n return;\n }\n */\n // ignore clicking trNode.firstChild (be careful for <div> or <span>)\n // if (e.type!='keypress'&&target!=tdNode && UI.utils.ancestor(target,'TD')!=tdNode) return;\n\n if (obj.termType === 'Literal') {\n tdNode.removeChild(tdNode.firstChild) // remove the text\n\n if (obj.value.match('\\n')) {\n // match a line feed and require <TEXTAREA>\n const textBox = myDocument.createElement('textarea')\n textBox.appendChild(myDocument.createTextNode(obj.value))\n textBox.setAttribute(\n 'rows',\n (obj.value.match(/\\n/g).length + 1).toString()\n )\n // g is for global(??)\n textBox.setAttribute('cols', '100') // should be the size of <TD>\n textBox.setAttribute('class', 'textinput')\n tdNode.appendChild(textBox)\n this.lastModified = textBox\n } else {\n this.lastModified = this.createInputBoxIn(tdNode, obj.value)\n }\n this.lastModified.isNew = false\n // Kenny: What should be expected after you click a editable text element?\n // Choice 1\n this.lastModified.select()\n // Choice 2 - direct the key cursor to where you click (failed attempt)\n // --------------------------------------------------------------------------\n // duplicate the event so user can edit without clicking twice\n // var e2=myDocument.createEvent(\"MouseEvents\");\n // e2.initMouseEvent(\"click\",true,true,window,0,0,0,0,0,false,false,false,false,0,null);\n // inputBox.dispatchEvent(e2);\n // ---------------------------------------------------------------------------\n }\n\n return true // this is not a valid modification\n },\n\n /**\n * UIs: input event handlers, menu generation\n */\n performAutoCompleteEdit: function performAutoCompleteEdit (\n selectedTd,\n menu\n ) {\n UI.utils.emptyNode(selectedTd)\n qp('perform AutoCompleteEdit. THIS IS=' + this)\n this.lastModified = this.createInputBoxIn(selectedTd, '')\n this.lastModified.select()\n this.lastModified.addEventListener(\n 'keypress',\n this.getAutoCompleteHandler(menu),\n false\n )\n /* keypress!?\n This is what I hate about UI programming.\n I shall write something about this but not now.\n */\n // this pops up the autocomplete menu\n // Pops up the menu even though no keypress has occurred\n // 1 is a dummy variable for the \"enterEvent\"\n this.getAutoCompleteHandler(menu)(1)\n },\n backOut: function backOut () {\n this.deleteTriple(this.lastModified.parentNode, true)\n this.lastModified = null\n },\n\n clearMenu: function clearMenu () {\n const menu = myDocument.getElementById(this.menuID)\n if (menu) {\n menu.parentNode.removeChild(menu)\n // emptyNode(menu);\n }\n },\n\n /* goes here when either this is a literal or escape from menu and then input text */\n clearInputAndSave: function clearInputAndSave (e) {\n let obj\n if (!this.lastModified) return\n if (!this.lastModified.isNew) {\n try {\n obj = this.getStatementAbout(this.lastModified).object\n } catch (e) {\n return\n }\n }\n let s = this.lastModifiedStat // when 'isNew' this is set at addNewObject()\n\n let defaultpropview\n let trNode\n let reqTerm\n let preStat\n if (this.lastModified.value !== this.lastModified.defaultValue) {\n let trCache\n if (this.lastModified.value === '') {\n // ToDo: remove this\n this.lastModified.value = this.lastModified.defaultValue\n this.clearInputAndSave()\n return\n } else if (this.lastModified.isNew) {\n s = new $rdf.Statement(\n s.subject,\n s.predicate,\n store.literal(this.lastModified.value),\n s.why\n )\n // TODO: DEFINE ERROR CALLBACK\n defaultpropview = this.views.defaults[s.predicate.uri]\n trCache = UI.utils.ancestor(this.lastModified, 'TR')\n try {\n store.updater.update([], [s], function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n UI.log.error(\n 'Error occurs while inserting ' +\n s +\n '\\n\\n' +\n errorBody +\n '\\n'\n )\n // UI.log.warn(\"Error occurs while inserting \"+s+'\\n\\n'+errorBody);\n outline.UserInput.deleteTriple(trCache.lastChild, true)\n }\n })\n } catch (e) {\n UI.log.error('Error inserting fact ' + s + ':\\n\\t' + e + '\\n')\n return\n }\n s = store.add(\n s.subject,\n s.predicate,\n store.literal(this.lastModified.value),\n s.why\n )\n } else {\n if (this.statIsInverse) {\n UI.log.error(\n 'Invalid Input: a literal can\\'t be a subject in RDF/XML'\n )\n this.backOut()\n return\n }\n let s1, s2, s3\n switch (obj.termType) {\n case 'Literal': {\n // generate path and nailing from current values\n\n // TODO: DEFINE ERROR CALLBACK\n const valueCache = this.lastModified.value\n trCache = UI.utils.ancestor(this.lastModified, 'TR')\n const oldValue = this.lastModified.defaultValue\n s2 = $rdf.st(\n s.subject,\n s.predicate,\n store.literal(this.lastModified.value),\n s.why\n )\n try {\n store.updater.update([s], [s2], function (\n uri,\n success,\n errorBody\n ) {\n if (success) {\n obj.value = valueCache\n } else {\n UI.log.warn(\n 'Error occurs while editing ' + s + '\\n\\n' + errorBody\n )\n trCache.lastChild.textContent = oldValue\n }\n trCache.lastChild.className = trCache.lastChild.className.replace(\n / pendingedit/g,\n ''\n )\n })\n } catch (e) {\n UI.log.warn('Error occurs while editing ' + s + ':\\n\\t' + e)\n return\n }\n // obj.value=this.lastModified.value;\n // UserInputFormula.statements.push(s);\n break\n }\n case 'BlankNode': { // a request refill with text\n // var newStat\n const textTerm = store.literal(this.lastModified.value, '')\n // <Feature about=\"labelChoice\">\n if (s.predicate.termType === 'Collection') {\n // case: add triple ????????? Weird - tbl\n const selectedPredicate = s.predicate.elements[0] // @@ TBL elements is a list on the predicate??\n if (store.any(undefined, selectedPredicate, textTerm)) {\n if (!e) {\n // keyboard\n const tdNode = this.lastModified.parentNode\n e = {}\n e.pageX = UI.utils.findPos(tdNode)[0]\n e.pageY = UI.utils.findPos(tdNode)[1] + tdNode.clientHeight\n }\n this.showMenu(e, 'DidYouMeanDialog', undefined, {\n dialogTerm: store.any(undefined, selectedPredicate, textTerm),\n bnodeTerm: s.subject\n })\n } else {\n s1 = UI.utils.ancestor(\n UI.utils.ancestor(this.lastModified, 'TR').parentNode,\n 'TR'\n ).AJAR_statement\n s2 = $rdf.st(s.subject, selectedPredicate, textTerm, s.why)\n const type = store.the(s.subject, rdf('type'))\n s3 = store.anyStatementMatching(\n s.subject,\n rdf('type'),\n type,\n s.why\n )\n // TODO: DEFINE ERROR CALLBACK\n // because the table is repainted, so...\n trCache = UI.utils.ancestor(\n UI.utils.ancestor(this.lastModified, 'TR'),\n 'TD'\n ).parentNode\n try {\n store.updater.update([], [s1, s2, s3], function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n console.log(\n 'Error occurs while editing ' +\n s1 +\n '\\n\\n' +\n errorBody\n )\n outline.UserInput.deleteTriple(trCache.lastChild, true) // @@@@ This\n }\n })\n } catch (e) {\n console.log(\n 'Error occurs while editing ' + s1 + ':\\n\\t' + e\n )\n return\n }\n store.remove(s)\n store.add(s.subject, selectedPredicate, textTerm, s.why) // was: newStat =\n // a subtle bug occurs here, if foaf:nick hasn't been dereferneced,\n // this add will cause a repainting\n }\n const enclosingTd = UI.utils.ancestor(\n this.lastModified.parentNode.parentNode,\n 'TD'\n )\n const defaultPane = panes.byName('default') // @@ check\n outline.outlineExpand(enclosingTd, s.subject, {\n pane: defaultPane,\n already: true\n })\n outline.walk('right', outline.focusTd)\n // </Feature>\n } else {\n this.fillInRequest(\n 'object',\n this.lastModified.parentNode,\n store.literal(this.lastModified.value)\n )\n return // The new Td is already generated by fillInRequest, so it's done.\n }\n break\n }\n }\n }\n } else if (this.lastModified.isNew) {\n // generate 'Request', there is no way you can input ' (Please Input) '\n trNode = UI.utils.ancestor(this.lastModified, 'TR')\n reqTerm = this.generateRequest(\n '(To be determined. Re-type of drag an object onto this field)'\n )\n preStat = trNode.previousSibling.AJAR_statement // the statement of the same predicate\n this.formUndetStat(\n trNode,\n preStat.subject,\n preStat.predicate,\n reqTerm,\n preStat.why,\n false\n )\n // this why being the same as the previous statement\n this.lastModified = null\n\n // UI.log.warn(\"test .isNew)\");\n return\n } else if (s.predicate.termType === 'Collection') {\n store.removeMany(s.subject)\n const upperTr = UI.utils.ancestor(\n UI.utils.ancestor(this.lastModified, 'TR').parentNode,\n 'TR'\n )\n preStat = upperTr.AJAR_statement\n reqTerm = this.generateRequest(\n '(To be determined. Re-type of drag an object onto this field)'\n )\n this.formUndetStat(\n upperTr,\n preStat.subject,\n preStat.predicate,\n reqTerm,\n preStat.why,\n false\n )\n outline.replaceTD(\n outline.outlineObjectTD(reqTerm, defaultpropview),\n upperTr.lastChild\n )\n this.lastModified = null\n return\n } else if (this.statIsInverse) {\n /*\n if ((s.object.termType === 'BlankNode' && !this.statIsInverse) ||\n s.subject.termType === 'BlankNode' && this.statIsInverse) {\n this.backOut()\n return\n */\n if (s.subject.termType === 'BlankNode') {\n this.backOut()\n return\n }\n } else {\n if (s.object.termType === 'BlankNode') {\n this.backOut()\n return\n }\n }\n // case modified - literal modification only(for now).\n trNode = UI.utils.ancestor(this.lastModified, 'TR')\n // var defaultpropview = this.views.defaults[s.predicate.uri]\n\n if (!this.statIsInverse) {\n // this is for an old feature\n // outline.replaceTD(outline.outlineObjectTD(s.object, defaultpropview),trNode.lastChild);\n outline.replaceTD(\n outline.outlineObjectTD(\n store.literal(this.lastModified.value),\n defaultpropview\n ),\n trNode.lastChild\n )\n } else {\n outline.replaceTD(\n outline.outlineObjectTD(s.subject, defaultpropview),\n trNode.lastChild\n )\n }\n if (this.lastModified.value !== this.lastModified.defaultValue) {\n trNode.lastChild.className += ' pendingedit'\n }\n // trNode.AJAR_statement=s;//you don't have to set AJAR_inverse because it's not changed\n // This is going to be painful when predicate-edit allowed\n this.lastModified = null\n },\n\n /* deletes the triple corresponding to selectedTd, remove that Td. */\n deleteTriple: function deleteTriple (selectedTd, isBackOut) {\n // ToDo: complete deletion of a node\n UI.log.debug('deleteTriple entered')\n\n // allow a pending node to be deleted if it's a backout sent by SPARQL update callback\n if (!isBackOut && selectedTd.className.indexOf(' pendingedit') !== -1) {\n console.log(\n 'The node you attempted to edit has a request still pending.\\n' +\n 'Please wait for the request to finish (the text will turn black)\\n' +\n 'before editing this node again.'\n )\n outline.walk('up')\n return\n }\n // var afterTr\n const s = this.getStatementAbout(selectedTd)\n if (\n !isBackOut &&\n !store.whether(s.object, rdf('type'), UI.ns.link('Request')) &&\n // Better to check whether provenance is internal?\n !store.whether(s.predicate, rdf('type'), UI.ns.link('Request')) &&\n !store.whether(s.subject, rdf('type'), UI.ns.link('Request'))\n ) {\n UI.log.debug('about to send SPARQLUpdate')\n try {\n store.updater.update([s], [], function (uri, success, errorBody) {\n if (success) {\n removefromview()\n } else {\n // removedTr.AJAR_statement=kb.add(s.subject,s.predicate,s.object,s.why);\n console.log(\n 'Error occurs while deleting ' + s + '\\n\\n' + errorBody\n )\n selectedTd.className = selectedTd.className.replace(\n / pendingedit/g,\n ''\n )\n }\n })\n selectedTd.className += ' pendingedit'\n } catch (e) {\n UI.log.error(e)\n UI.log.warn('Error deleting statement ' + s + ':\\n\\t' + e)\n return\n }\n\n UI.log.debug('SPARQLUpdate sent')\n } else {\n // removal of an undetermined statement associated with pending TRs\n // TempFormula.remove(s);\n }\n UI.log.debug('about to remove ' + s)\n\n UI.log.debug('removed')\n outline.walk('up')\n\n const removedTr = selectedTd.parentNode\n // afterTr = removedTr.nextSibling\n function removefromview () {\n let trIterator\n for (\n trIterator = removedTr;\n trIterator.childNodes.length === 1;\n trIterator = trIterator.previousSibling\n );\n let predicateTd\n if (trIterator === removedTr) {\n const theNext = trIterator.nextSibling\n if (theNext.nextSibling && theNext.childNodes.length === 1) {\n predicateTd = trIterator.firstChild\n predicateTd.setAttribute(\n 'rowspan',\n parseInt(predicateTd.getAttribute('rowspan')) - 1\n )\n theNext.insertBefore(trIterator.firstChild, theNext.firstChild)\n }\n removedTr.parentNode.removeChild(removedTr)\n } else {\n // !DisplayOptions[\"display:block on\"].enabled){\n predicateTd = trIterator.firstChild\n predicateTd.setAttribute(\n 'rowspan',\n parseInt(predicateTd.getAttribute('rowspan')) - 1\n )\n removedTr.parentNode.removeChild(removedTr)\n }\n }\n if (isBackOut) removefromview()\n },\n\n /* clipboard principle: copy wildly, paste carefully\n ToDoS:\n 1. register Subcollection?\n 2. copy from more than one selectedTd: 1.sequece 2.collection\n 3. make a clipboard class?\n */\n clipboardInit: function clipboardInit () {\n outline.clipboard = {}\n outline.clipboard.objects = []\n outline.clipboard.predicates = []\n outline.clipboard.all = []\n },\n\n copyToClipboard: function copyToClipboard (address, selectedTd) {\n /*\n var clip = Components.classes[\"@mozilla.org/widget/clipboard;1\"].getService(Components.interfaces.nsIClipboard);\n if (!clip) return false;\n var clipid = Components.interfaces.nsIClipboard;\n\n var trans = Components.classes[\"@mozilla.org/widget/transferable;1\"].createInstance(Components.interfaces.nsITransferable);\n if (!trans) return false;\n\n var copytext = \"Tabulator!!\";\n\n var str = Components.classes[\"@mozilla.org/supports-string;1\"].\n createInstance(Components.interfaces.nsISupportsString);\n if (!str) return false;\n\n str.data = copytext;\n\n trans.addDataFlavor(\"text/x-moz-url\");\n trans.setTransferData(\"text/x-mox-url\", str, copytext.length * 2);\n\n clip.setData(trans, null, clipid.kGlobalClipboard);\n */\n\n const term = UI.utils.getTerm(selectedTd)\n switch (selectedTd.className) {\n case 'selected': // table header\n case 'obj selected':\n // var objects = outline.clipboard.objects\n outline.clipboard.objects.unshift(term)\n break\n case 'pred selected':\n case 'pred internal selected':\n outline.clipboard.predicates.unshift(term)\n }\n\n outline.clipboard.all.unshift(term)\n },\n\n insertTermTo: function insertTermTo (selectedTd, term, isObject) {\n let defaultpropview\n let preStat\n switch (selectedTd.className) {\n case 'undetermined selected':\n defaultpropview = this.views.defaults[\n selectedTd.parentNode.AJAR_statement.predicate.uri\n ]\n this.fillInRequest(\n selectedTd.nextSibling ? 'predicate' : 'object',\n selectedTd,\n term\n )\n break\n case 'pred selected': { // paste objects into this predicate\n const insertTr = this.appendToPredicate(selectedTd)\n preStat = selectedTd.parentNode.AJAR_statement\n defaultpropview = this.views.defaults[preStat.predicate.uri]\n insertTr.appendChild(outline.outlineObjectTD(term, defaultpropview))\n // modify store and update here\n const isInverse = selectedTd.parentNode.AJAR_inverse\n if (!isInverse) {\n insertTr.AJAR_statement = store.add(\n preStat.subject,\n preStat.predicate,\n term,\n preStat.why\n )\n } else {\n insertTr.AJAR_statemnet = store.add(\n term,\n preStat.predicate,\n preStat.object,\n preStat.why\n )\n }\n\n try {\n store.updater.update([], [insertTr.AJAR_statement], function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n UI.log.error(\n 'userinput.js (pred selected): Fail trying to insert statement ' +\n insertTr.AJAR_statement +\n ': ' +\n errorBody\n )\n }\n })\n } catch (e) {\n UI.log.error(\n 'Exception trying to insert statement ' +\n insertTr.AJAR_statement +\n ': ' +\n UI.utils.stackString(e)\n )\n return\n }\n insertTr.AJAR_inverse = isInverse\n UserInputFormula.statements.push(insertTr.AJAR_statement)\n break\n }\n case 'selected': { // header <TD>, undetermined generated\n const paneDiv = UI.utils.ancestor(selectedTd, 'TABLE').lastChild\n const newTr = paneDiv.insertBefore(\n myDocument.createElement('tr'),\n paneDiv.lastChild\n )\n // var titleTerm=UI.utils.getAbout(kb,UI.utils.ancestor(newTr,'TD'));\n preStat = newTr.previousSibling.AJAR_statement\n if (typeof isObject === 'undefined') isObject = true\n if (isObject) {\n // object inserted\n this.formUndetStat(\n newTr,\n preStat.subject,\n this.generateRequest('(TBD)', newTr, true),\n term,\n preStat.why,\n false\n )\n // defaultpropview temporaily not dealt with\n newTr.appendChild(outline.outlineObjectTD(term))\n outline.walk('moveTo', newTr.firstChild)\n this.startFillInText(newTr.firstChild)\n } else {\n // predicate inserted\n // existing predicate not expected\n const reqTerm = this.generateRequest(\n '(To be determined. Re-type of drag an object onto this field)',\n newTr\n )\n this.formUndetStat(\n newTr,\n preStat.subject,\n term,\n reqTerm,\n preStat.why,\n false\n )\n\n newTr.insertBefore(\n outline.outlinePredicateTD(term, newTr, false, false),\n newTr.firstChild\n )\n outline.walk('moveTo', newTr.lastChild)\n this.startFillInText(newTr.lastChild)\n }\n break\n }\n }\n },\n\n Refill: function Refill (e, selectedTd) {\n UI.log.info('Refill' + selectedTd.textContent)\n const isPredicate = selectedTd.nextSibling\n let predicateQuery\n if (isPredicate) {\n // predicateTd\n let subject\n let subjectClass\n let sparqlText\n if (selectedTd.nextSibling.className === 'undetermined') {\n /* Make set of proprties to propose for a predicate.\n The naive approach is to take those which have a class\n of the subject as their domain. But in fact we must offer anything which\n is not explicitly excluded, by having a domain disjointWith a\n class of the subject. */\n\n /* SELECT ?pred\n WHERE{\n ?pred a rdf:Property.\n ?pred rdfs:domain subjectClass.\n }\n */\n /* SELECT ?pred ?class\n WHERE{\n ?pred a rdf:Property.\n subjectClass owl:subClassOf ?class.\n ?pred rdfs:domain ?class.\n }\n */\n /* SELECT ?pred\n WHERE{\n subject a ?subjectClass.\n ?pred rdfs:domain ?subjectClass.\n }\n */\n subject = UI.utils.getAbout(\n store,\n UI.utils.ancestor(selectedTd, 'TABLE').parentNode\n )\n subjectClass = store.any(subject, rdf('type'))\n sparqlText = []\n const endl = '.\\n'\n sparqlText[0] =\n 'SELECT ?pred WHERE{\\n?pred ' +\n rdf('type') +\n rdf('Property') +\n '.\\n' +\n '?pred ' +\n UI.ns.rdfs('domain') +\n subjectClass +\n '.}' // \\n is required? SPARQL parser bug?\n sparqlText[1] =\n 'SELECT ?pred ?class\\nWHERE{\\n' +\n '?pred ' +\n rdf('type') +\n rdf('Property') +\n '.\\n' +\n subjectClass +\n UI.ns.rdfs('subClassOf') +\n ' ?class.\\n' +\n '?pred ' +\n UI.ns.rdfs('domain') +\n ' ?class.\\n}'\n sparqlText[2] =\n 'SELECT ?pred WHERE{\\n' +\n subject +\n rdf('type') +\n store.variable('subjectClass') +\n endl +\n store.variable('pred') +\n UI.ns.rdfs('domain') +\n store.variable('subjectClass') +\n endl +\n '}'\n predicateQuery = sparqlText.map($rdf.SPARQLToQuery)\n } else {\n // ------selector\n /* SELECT ?pred\n WHERE{\n ?pred a rdf:Property.\n ?pred rdfs:domain subjectClass.\n ?pred rdfs:range objectClass.\n }\n */\n // Candidate\n /* SELECT ?pred\n WHERE{\n subject a ?subjectClass.\n object a ?objectClass.\n ?pred rdfs:domain ?subjectClass.\n ?pred rdfs:range ?objectClass.\n */\n subject = UI.utils.getAbout(\n store,\n UI.utils.ancestor(selectedTd, 'TABLE').parentNode\n )\n subjectClass = store.any(subject, rdf('type'))\n const object = selectedTd.parentNode.AJAR_statement.object\n // var objectClass = (object.termType === 'Literal') ? UI.ns.rdfs('Literal') : kb.any(object, rdf('type'))\n // var sparqlText=\"SELECT ?pred WHERE{\\n?pred \"+rdf('type')+rdf('Property')+\".\\n\"+\n // \"?pred \"+UI.ns.rdfs('domain')+subjectClass+\".\\n\"+\n // \"?pred \"+UI.ns.rdfs('range')+objectClass+\".\\n}\"; // \\n is required? SPARQL parser bug?\n sparqlText =\n 'SELECT ?pred WHERE{' +\n subject +\n rdf('type') +\n '?subjectClass' +\n '.\\n' +\n object +\n rdf('type') +\n '?objectClass' +\n '.\\n' +\n '?pred ' +\n UI.ns.rdfs('domain') +\n '?subjectClass' +\n '.\\n' +\n '?pred ' +\n UI.ns.rdfs('range') +\n '?objectClass' +\n '.\\n}' // \\n is required? SPARQL parser bug?\n predicateQuery = $rdf.SPARQLToQuery(sparqlText)\n }\n\n // -------presenter\n // ToDo: how to sort selected predicates?\n this.showMenu(e, 'GeneralPredicateChoice', predicateQuery, {\n isPredicate,\n selectedTd\n })\n } else {\n // objectTd\n const predicateTerm = selectedTd.parentNode.AJAR_statement.predicate\n if (\n store.whether(\n predicateTerm,\n rdf('type'),\n UI.ns.owl('DatatypeProperty')\n ) ||\n predicateTerm.termType === 'Collection' ||\n store.whether(predicateTerm, UI.ns.rdfs('range'), UI.ns.rdfs('Literal'))\n ) {\n selectedTd.className = ''\n UI.utils.emptyNode(selectedTd)\n this.lastModified = this.createInputBoxIn(\n selectedTd,\n ' (Please Input) '\n )\n this.lastModified.isNew = false\n\n this.lastModified.select()\n }\n\n // show menu for rdf:type\n if (\n selectedTd.parentNode.AJAR_statement.predicate.sameTerm(rdf('type'))\n ) {\n const sparqlText =\n 'SELECT ?class WHERE{?class ' +\n rdf('type') +\n UI.ns.rdfs('Class') +\n '.}'\n // I should just use kb.each\n const classQuery = $rdf.SPARQLToQuery(sparqlText)\n this.showMenu(e, 'TypeChoice', classQuery, {\n isPredicate,\n selectedTd\n })\n }\n }\n },\n\n // This is where pubsPane.js comes in, with: outline.UserInput.getAutoCompleteHandler(\"JournalTAC\")(e);\n getAutoCompleteHandler: function getAutoCompleteHandler (mode) {\n qp('\\n\\n***** In getAutoCompleteHandler ****** mode = ' + mode)\n if (mode === 'PredicateAutoComplete') {\n mode = 'predicate'\n } else if (mode !== 'JournalTAC') {\n // hq // why? -tim - not 'predicate' below\n mode = 'all'\n }\n\n let InputBox\n if (mode === 'JournalTAC') {\n // hq // Better to pass in InputBox as a param\n InputBox = myDocument.getElementById('inpid_journal_title')\n } else {\n InputBox = this.lastModified || outline.getSelection()[0].firstChild\n }\n qp('InputBox=' + InputBox) // hq\n qp('InputBox.value=' + InputBox.value) // hq\n\n return function (enterEvent) {\n qp('ENTER EVENT=' + enterEvent)\n // Firefox 2.0.0.6 makes this not working? 'this' becomes [object HTMLInputElement]\n // but not [wrapped ...]\n // var InputBox=(typeof enterEvent=='object')?this:this.lastModified;//'this' is the <input> element\n qp('1. outside (if eneterEvent)')\n const e = {}\n const tdNode = InputBox.parentNode\n if (!mode) mode = tdNode.nextSibling ? 'predicate' : 'all'\n e.pageX = UI.utils.findPos(tdNode)[0]\n e.pageY = UI.utils.findPos(tdNode)[1] + tdNode.clientHeight\n qp('epX=' + e.pageX + ', epY=' + e.pageY + ', mode=' + mode)\n let menu = myDocument.getElementById(outline.UserInput.menuID)\n function setHighlightItem (item) {\n if (!item) return // do not make changes\n if (menu.lastHighlight) menu.lastHighlight.className = ''\n menu.lastHighlight = item\n menu.lastHighlight.className = 'activeItem'\n outline.showURI(UI.utils.getAbout(store, menu.lastHighlight))\n }\n if (enterEvent) {\n // either the real event of the pseudo number passed by OutlineKeypressPanel\n qp('2. in (if enterEvent). with type = ' + typeof enterEvent)\n let newText = InputBox.value\n\n if (typeof enterEvent === 'object') {\n qp(\n '3. in typeof enterEvent is object, will switch to keys, arrows, etc. keycode = ' +\n enterEvent.keyCode\n )\n enterEvent.stopPropagation()\n if (menu && !menu.lastHighlight) {\n // this ensures the following operation valid\n setHighlightItem(menu.firstChild.firstChild)\n }\n switch (enterEvent.keyCode) {\n case 13: // enter\n case 9: // tab\n qp('handler: Enter or Tab')\n if (!menu) {\n outline.UserInput.clearInputAndSave()\n return\n }\n if (!menu.lastHighlight) {\n if (mode === 'JournalTAC') {\n outline.UserInput.clearMenu()\n qp('no lastH')\n return 'no lastH'\n }\n return\n } // warning?\n\n if (menu.lastHighlight.tagName === 'INPUT') {\n switch (menu.lastHighlight.value) {\n case 'New...':\n qp('subcase New')\n outline.UserInput.createNew()\n break\n case 'GiveURI':\n qp('subcase GiveURI')\n outline.UserInput.inputURI()\n break\n }\n } else {\n // pubsPane Stuff:\n if (mode === 'JournalTAC') {\n qp('movedArrow? ' + movedArrow)\n // Enter only works if arrows have been moved\n if (movedArrow && menu.lastHighlight) {\n // Get the title from the DOM\n // tr, th, div, innerHTML\n const jtitle =\n menu.lastHighlight.firstChild.firstChild.innerHTML\n // tr, th, td, innerHTML\n let juri =\n menu.lastHighlight.firstChild.nextSibling.innerHTML\n // clearing out the &lt; and &gt; from juri\n juri = juri.slice(4, -4)\n return ['gotdptitle', jtitle, juri]\n }\n // If doesn't qualify to be autocomplete, return this random string, since pubsPane checks for \"gotdptitle\"\n return 'asGivenTxt'\n }\n\n const inputTerm = UI.utils.getAbout(store, menu.lastHighlight)\n const fillInType = mode === 'predicate' ? 'predicate' : 'object'\n outline.UserInput.clearMenu()\n outline.UserInput.fillInRequest(\n fillInType,\n InputBox.parentNode,\n inputTerm\n )\n // if (outline.UserInput.fillInRequest(fillInType,InputBox.parentNode,inputTerm))\n // outline.UserInput.clearMenu();\n }\n qp('outside')\n return\n case 38: // up\n qp('handler: Arrow UP')\n movedArrow = true // hq\n if (\n newText === '' &&\n menu.lastHighlight.tagName === 'TR' &&\n !menu.lastHighlight.previousSibling\n ) {\n setHighlightItem(menu.firstChild.firstChild)\n } else {\n setHighlightItem(menu.lastHighlight.previousSibling)\n }\n return 'I\\'m a little Arrow Up'\n case 40: // down\n qp('handler: Arrow Down')\n movedArrow = true // hq\n if (menu.lastHighlight.tagName === 'INPUT') {\n setHighlightItem(menu.childNodes[1].firstChild)\n } else {\n setHighlightItem(menu.lastHighlight.nextSibling)\n }\n return 'I\\'m a little Down Arrow'\n case 37: // left\n case 39: // right\n qp('handler: Arrow left, right')\n if (menu.lastHighlight.tagName === 'INPUT') {\n if (enterEvent.keyCode === 37) {\n setHighlightItem(menu.lastHighlight.previousSibling)\n } else {\n setHighlightItem(menu.lastHighlight.nextSibling)\n }\n }\n return\n case 8: // backspace\n qp('handler: Backspace')\n newText = newText.slice(0, -1)\n break\n case 27: // esc to enter literal\n qp('handler: Esc')\n if (!menu) {\n outline.UserInput.backOut()\n return\n }\n outline.UserInput.clearMenu()\n // Not working? I don't know.\n // InputBox.removeEventListener('keypress',outline.UserInput.Autocomplete,false);\n return\n // break\n default:\n qp('handler: Default')\n movedArrow = false // hq\n // we need this because it is keypress, seeAlso performAutoCompleteEdit\n qp('oldtext=' + newText)\n newText += String.fromCharCode(enterEvent.charCode)\n qp('charcodent=' + enterEvent.charCode)\n qp('strcharcod=' + String.fromCharCode(enterEvent.charCode))\n console.log('DEFAULT txtstr=' + newText + '\\n') // hq\n }\n } // endif typeof(event) === object\n\n // UI.log.warn(InputBox.choices.length);\n // for(i=0;InputBox.choices[i].label<newText;i++); //O(n) ToDo: O(log n)\n if (mode === 'all') {\n qp('generalAC after switch, newText=' + newText + 'mode is all')\n outline.UserInput.clearMenu()\n // outline.UserInput.showMenu(e,'GeneralAutoComplete',undefined,{'isPredicate':false,'selectedTd':tdNode,'choices':InputBox.choices, 'index':i});\n outline.UserInput.showMenu(e, 'GeneralAutoComplete', undefined, {\n inputText: newText,\n selectedTd: tdNode\n })\n if (newText.length === 0) outline.UserInput.WildCardButtons()\n } else if (mode === 'predicate') {\n qp(\n 'predicateAC after switch, newText=' +\n newText +\n 'mode is predicate'\n )\n outline.UserInput.clearMenu()\n outline.UserInput.showMenu(e, 'PredicateAutoComplete', undefined, {\n inputText: newText,\n isPredicate: true,\n selectedTd: tdNode\n })\n } else if (mode === 'JournalTAC') {\n // hq\n qp('JouralTAC after switch, newText=' + newText)\n outline.UserInput.clearMenu()\n // Goto showMenu\n outline.UserInput.showMenu(\n e,\n 'JournalTitleAutoComplete',\n undefined,\n { inputText: newText },\n 'orderisuseless'\n )\n }\n menu = myDocument.getElementById(outline.UserInput.menuID)\n if (!menu) {\n qp('No menu element. Do not show menu.')\n return\n }\n qp('at end of handler\\n^^^^^^^^^^^^^^^^^\\n\\n')\n setHighlightItem(menu.firstChild.firstChild)\n outline.showURI(UI.utils.getAbout(store, menu.lastHighlight))\n return 'nothing to return'\n }\n } // end of return function\n },\n\n // Add the buttons which allow the suer to craete a new object\n // Or reference an exiting one with a URI.\n //\n WildCardButtons: function WildCardButtons () {\n const menuDiv = myDocument.getElementById(outline.UserInput.menuID)\n const div = menuDiv.insertBefore(\n myDocument.createElement('div'),\n menuDiv.firstChild\n )\n const input1 = div.appendChild(myDocument.createElement('input'))\n const input2 = div.appendChild(myDocument.createElement('input'))\n input1.type = 'button'\n input1.value = 'New...'\n input2.type = 'button'\n input2.value = 'Know its URI'\n\n function highlightInput (e) {\n // same as the one in newMenu()\n const menu = myDocument.getElementById(outline.UserInput.menuID)\n if (menu.lastHighlight) menu.lastHighlight.className = ''\n menu.lastHighlight = UI.utils.ancestor(UI.utils.getTarget(e), 'INPUT')\n if (!menu.lastHighlight) return // mouseover <TABLE>\n menu.lastHighlight.className = 'activeItem'\n }\n div.addEventListener('mouseover', highlightInput, false)\n input1.addEventListener('click', this.createNew, false)\n input2.addEventListener('click', this.inputURI, false)\n },\n // ToDo: shrink rows when \\n+backspace\n Keypress: function (e) {\n if (e.keyCode === 13) {\n if (outline.targetOf(e).tagName !== 'TEXTAREA') {\n this.clearInputAndSave()\n } else {\n // <TEXTAREA>\n const preRows = parseInt(this.lastModified.getAttribute('rows'))\n this.lastModified.setAttribute('rows', (preRows + 1).toString())\n e.stopPropagation()\n }\n }\n // Remark by Kenny: If the user wants to input more lines into an one-line-only blank.\n // Direct him/her to a new blank (how?)\n },\n\n Mousedown: function (e) {\n qp('MOUSING DOWN')\n // temporary key ctrl+s or q for swiching mode\n // This was in HCIOptions \"right click to switch mode\":\n window.addEventListener(\n 'keypress',\n function (e) {\n if (e.ctrlKey && (e.charCode === 115 || e.charCode === 113)) {\n UserInput.switchMode()\n }\n },\n false\n )\n window.addEventListener('mousedown', UserInput.Mousedown, false)\n document.getElementById('outline').oncontextmenu = function () {\n return false\n }\n\n if (e.button === 2) {\n // right click\n UserInput.switchMode()\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n },\n\n Mouseover: function Mouseover (e) {\n this.className = 'bottom-border-active'\n if (this._tabulatorMode === 1) {\n switch (UI.utils.getTarget(e).tagName) {\n case 'TD': {\n const preTd = UI.utils.getTarget(e)\n if (preTd.className === 'pred') preTd.style.cursor = 'copy'\n break\n }\n // Uh...I think I might have to give up this\n case 'DIV': {\n const border = UI.utils.getTarget(e)\n if (UI.utils.getTarget(e).className === 'bottom-border') {\n border.style.borderColor = 'rgb(100%,65%,0%)'\n border.style.cursor = 'copy'\n }\n break\n }\n default:\n }\n }\n },\n\n Mouseout: function (e) {\n this.className = 'bottom-border'\n if (this._tabulatorMode === 1) {\n const border = UI.utils.getTarget(e)\n if (UI.utils.getTarget(e).className === 'bottom-border') {\n border.style.borderColor = 'transparent'\n border.style.cursor = 'auto'\n }\n }\n },\n\n /**\n * Utilities\n */\n\n whatSortOfEditCell: function whatSortOfEditCell (selectedTd) {\n if (selectedTd.nextSibling) return 'predicate'\n const predicateTerm = this.getStatementAbout(selectedTd).predicate\n // var predicateTerm=selectedTd.parentNode.AJAR_statement.predicate;\n if (\n store.whether(\n predicateTerm,\n UI.ns.rdf('type'),\n UI.ns.owl('DatatypeProperty')\n ) ||\n store.whether(predicateTerm, UI.ns.rdfs('range'), UI.ns.rdfs('Literal')) ||\n predicateTerm.termType === 'Collection'\n ) {\n return 'DatatypeProperty-like'\n } else if (\n store.whether(predicateTerm, rdf('type'), UI.ns.owl('ObjectProperty'))\n ) {\n return 'ObjectProperty-like'\n } else {\n return 'no-idea'\n }\n },\n\n getStatementAbout: function getStatementAbout (something) {\n // var trNode=something.parentNode;\n const trNode = UI.utils.ancestor(something, 'TR')\n if (!trNode) {\n throw new Error('No ancestor TR for the TD we clicked on:' + something)\n }\n let statement\n try {\n statement = trNode.AJAR_statement\n } catch (e) {\n throw new Error(\n 'No AJAR_statement!' +\n something +\n something.textContent +\n ' has ancestor ' +\n trNode\n ) // was commented out @@\n // throw 'TR not a statement TR' // was commented out @@\n }\n // Set last modified here, I am not sure this will be ok.\n this.lastModifiedStat = trNode.AJAR_statement\n this.statIsInverse = trNode.AJAR_inverse\n\n return statement\n },\n\n createInputBoxIn: function createInputBoxIn (tdNode, defaultText) {\n function UpAndDown (e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n outline.OutlinerKeypressPanel(e)\n outline.UserInput.clearInputAndSave()\n }\n }\n UI.log.info(\n 'myDocument in createInputBoxIn is now ' + myDocument.location\n )\n UI.log.info('outline.document is now ' + outline.document.location)\n const inputBox = myDocument.createElement('input')\n inputBox.setAttribute('value', defaultText)\n inputBox.setAttribute('class', 'textinput')\n // inputBox.setAttribute('size','100');//should be the size of <TD>\n if (tdNode.className !== 'undetermined selected') {\n inputBox.setAttribute('size', '100') // should be the size of <TD>\n inputBox.addEventListener('keypress', UpAndDown, false)\n }\n tdNode.appendChild(inputBox)\n return inputBox\n },\n\n // called when 'New...' is clicked(eventlistener) or enter is pressed while 'New...' is highlighted\n createNew: function createNew (_e) {\n outline.UserInput.clearMenu()\n const selectedTd = outline.getSelection()[0]\n const targetdoc = selectedTd.parentNode.AJAR_statement.why\n const newTerm = store.nextSymbol(targetdoc)\n outline.UserInput.fillInRequest('object', selectedTd, newTerm)\n // selection is changed\n outline.outlineExpand(outline.getSelection()[0], newTerm)\n },\n\n inputURI: function inputURI (_e) {\n const This = outline.UserInput\n This.clearMenu()\n const selectedTd = outline.getSelection()[0]\n UI.utils.emptyNode(selectedTd)\n const tiptext = ' (Type a URI) '\n This.lastModified = This.createInputBoxIn(selectedTd, tiptext)\n This.lastModified.select()\n function typeURIhandler (e) {\n e.stopPropagation()\n switch (e.keyCode) {\n case 13: // enter\n case 9: // tab\n // this is input box\n if (this.value !== tiptext) {\n const newuri = this.value // @@ Removed URI \"fixup\" code\n This.fillInRequest('object', selectedTd, store.sym(newuri))\n }\n }\n }\n This.lastModified.addEventListener('keypress', typeURIhandler, false)\n /*\n if (false && UI.isExtension){\n var selectedTd = outline.getSelection()[0];\n emptyNode(selectedTd);\n var textbox = myDocument.createElementNS(kXULNS,'textbox');\n textbox.setAttribute('type','autocomplete');\n textbox.setAttribute('autocompletesearch','history');\n selectedTd.appendChild(textbox);\n\n urlbar = gURLBar.cloneNode(false);\n selectedTd.appendChild(urlbar);\n urlbar.mController = gURLBar.mController;\n\n }\n */\n },\n\n appendToPredicate: function appendToPredicate (predicateTd) {\n let isEnd = false\n let trIterator\n try {\n for (\n trIterator = predicateTd.parentNode.nextSibling;\n trIterator.childNodes.length === 1 && trIterator.AJAR_statement;\n // number of nodes as condition, also beware of toggle Trs that don't have AJAR_statement\n trIterator = trIterator.nextSibling\n ) {\n // ..\n }\n } catch (e) {\n isEnd = true\n }\n // if(!isEnd && HCIoptions[\"bottom insert highlights\"].enabled) trIterator=trIterator.previousSibling;\n\n const insertTr = myDocument.createElement('tr')\n // style stuff, I'll have to investigate appendPropertyTRs() somehow\n insertTr.style.colspan = '1'\n insertTr.style.display = 'block'\n\n insertTr.style.display = ''\n if (predicateTd.hasAttribute('rowspan')) {\n predicateTd.setAttribute(\n 'rowspan',\n parseInt(predicateTd.getAttribute('rowspan')) + 1\n )\n }\n\n if (!predicateTd.hasAttribute('rowspan')) {\n predicateTd.setAttribute('rowspan', '2')\n }\n\n if (!isEnd) {\n trIterator.parentNode.insertBefore(insertTr, trIterator)\n } else {\n const table = predicateTd.parentNode.parentNode\n if (table.className === 'defaultPane') {\n table.insertBefore(insertTr, table.lastChild)\n } else {\n table.appendChild(insertTr)\n }\n }\n\n return insertTr\n },\n\n bnode2symbol: function bnode2symbol (bnode, symbol) {\n store.copyTo(bnode, symbol, ['two-direction', 'delete'])\n },\n\n generateRequest: function generateRequest (\n tipText,\n trNew,\n isPredicate,\n notShow\n ) {\n let trNode\n if (!notShow) {\n if (trNew) {\n trNode = trNew\n } else {\n trNode = UI.utils.ancestor(this.lastModified, 'TR')\n }\n UI.utils.emptyNode(trNode)\n }\n\n // create the undetermined term\n // Choice 1:\n // var reqTerm=kb.literal(\"TBD\");\n // this is troblesome since RDFIndexedFormula does not allow me to add <x> <y> \"TBD\". twice\n // Choice 2: Use a variable.\n // Agreed. Kenny wonders whether there is RDF/XML representation of a variable.\n // labelPriority[UI.ns.link('message').uri] = 20;\n\n // We must get rid of this clutter in the store. \"OK, will be stroed in a seperate formula to avoid bugs\", Kenny says\n const tp = TempFormula\n const reqTerm = tp.bnode()\n tp.add(reqTerm, UI.ns.rdf('type'), UI.ns.link('Request'))\n if (tipText.length < 10) {\n tp.add(reqTerm, UI.ns.link('message'), tp.literal(tipText))\n } else {\n tp.add(reqTerm, UI.ns.link('message'), tp.literal(tipText))\n }\n tp.add(reqTerm, UI.ns.link('to'), tp.literal('The User'))\n tp.add(reqTerm, UI.ns.link('from'), tp.literal('The User'))\n\n // append the undetermined td\n if (!notShow) {\n let newNode\n if (isPredicate) {\n newNode = trNode.appendChild(\n outline.outlinePredicateTD(reqTerm, trNode, false, false)\n )\n } else {\n newNode = trNode.appendChild(outline.outlineObjectTD(reqTerm))\n }\n newNode.className = 'undetermined'\n newNode.textContent = tipText\n }\n\n return reqTerm\n },\n\n showMenu: function showMenu (\n e,\n menuType,\n inputQuery,\n extraInformation,\n _order\n ) {\n // ToDo:order, make a class?\n UI.log.info('myDocument is now ' + myDocument.location)\n UI.log.info('outline.doucment is now ' + outline.document.location)\n const This = this\n const menu = myDocument.createElement('div')\n qp('\\n**** In showMenu, menuType = ' + menuType + '\\n')\n if (extraInformation) {\n for (const x in extraInformation) {\n console.log('\\t extra ' + x + ': ' + extraInformation[x] + '\\n')\n }\n }\n console.log('CREATED MENU\\n') // hq\n menu.id = this.menuID\n menu.className = 'outlineMenu'\n // menu.addEventListener('click',false);\n menu.style.top = e.pageY + 'px'\n menu.style.left = e.pageX + 'px'\n\n /// /For pubsPane\n // This is for setting the location of the dropdown menu, because\n // JournalTitleAutoComplete is called with a keypress, and not mouse actions\n // Get Offset of an HTML element\n const getOffset = function getOffset (el) {\n let _lf = 0\n let _tp = 0\n let oldlf = 0\n let oldtp = 0\n let newlf = 0\n let newtp = 0\n\n // repeatedly get ancestor's positions\n // TODO: STILL a small offset/bug\n while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n newlf = el.offsetLeft\n newtp = el.offsetTop\n\n // only change if the new parent's offset is different\n if (newlf !== oldlf) {\n _lf += el.offsetLeft - el.scrollLeft\n }\n if (newtp !== oldtp) {\n _tp += el.offsetTop - el.scrollTop\n }\n\n oldlf = newlf\n oldtp = newtp\n\n el = el.parentNode\n }\n // there is a constant offset\n return { top: _tp + 54, left: _lf - 38 }\n }\n // Change the position of menu in pubsPane's journal Title AC\n if (menuType === 'JournalTitleAutoComplete') {\n // hql\n const loc = getOffset(myDocument.getElementById('inpid_journal_title'))\n loc.left -= myDocument.getElementById('inpid_journal_title').scrollTop\n menu.style.top = loc.top + 'px'\n menu.style.left = loc.left + 'px'\n }\n console.log(\n 'menu at top=' + menu.style.top + ' left=' + menu.style.left + '\\n'\n ) // hql\n // \\\\\\\\\\\\\\hql\n\n myDocument.body.appendChild(menu)\n const table = menu.appendChild(myDocument.createElement('table'))\n\n menu.lastHighlight = null\n function highlightTr (e) {\n if (menu.lastHighlight) menu.lastHighlight.className = ''\n menu.lastHighlight = UI.utils.ancestor(UI.utils.getTarget(e), 'TR')\n if (!menu.lastHighlight) return // mouseover <TABLE>\n menu.lastHighlight.className = 'activeItem'\n }\n\n table.addEventListener('mouseover', highlightTr, false)\n\n // setting for action after selecting item\n let selectItem\n switch (menuType) {\n case 'DidYouMeanDialog':\n selectItem = function selectItem (e) {\n qp('DID YOU MEAN SELECT ITEM!!!!!')\n const target = UI.utils.ancestor(UI.utils.getTarget(e), 'TR')\n if (target.childNodes.length === 2 && target.nextSibling) {\n // Yes\n store.add(bnodeTerm, IDpredicate, IDterm) // used to connect the two\n outline.UserInput.clearMenu()\n } else if (target.childNodes.length === 2) {\n outline.UserInput.clearMenu()\n }\n }\n break\n case 'LimitedPredicateChoice': {\n const clickedTd = extraInformation.clickedTd\n selectItem = function selectItem (e) {\n qp('LIMITED P SELECT ITEM!!!!')\n const selectedPredicate = UI.utils.getAbout(store, UI.utils.getTarget(e))\n const predicateChoices =\n clickedTd.parentNode.AJAR_statement.predicate.elements\n for (let i = 0; i < predicateChoices.length; i++) {\n if (predicateChoices[i].sameTerm(selectedPredicate)) {\n predicateChoices.unshift(predicateChoices.splice(i, 1)[0])\n }\n }\n outline.UserInput.clearMenu()\n\n // refresh the choice\n const tr = clickedTd.parentNode\n const newTd = outline.outlinePredicateTD(\n tr.AJAR_statement.predicate,\n tr\n )\n tr.insertBefore(newTd, clickedTd)\n tr.removeChild(clickedTd)\n This.lastModified.select()\n }\n break\n }\n case 'PredicateAutoComplete':\n case 'GeneralAutoComplete':\n case 'GeneralPredicateChoice':\n case 'JournalTitleAutoComplete': // hql\n case 'TypeChoice': {\n // Clickable menu\n const isPredicate = extraInformation.isPredicate\n const selectedTd = extraInformation.selectedTd\n selectItem = function selectItem (e) {\n qp('WOOHOO')\n const inputTerm = UI.utils.getAbout(store, UI.utils.getTarget(e))\n qp('GENERAL SELECT ITEM!!!!!!=' + inputTerm)\n qp('target=' + UI.utils.getTarget(e))\n if (isPredicate) {\n qp('1')\n if (\n outline.UserInput.fillInRequest(\n 'predicate',\n selectedTd,\n inputTerm\n )\n ) {\n qp('2')\n outline.UserInput.clearMenu()\n }\n } else {\n qp('3')\n // thisInput.fillInRequest('object',selectedTd,inputTerm); //why is this not working?\n if (\n outline.UserInput.fillInRequest('object', selectedTd, inputTerm)\n ) {\n qp('4')\n outline.UserInput.clearMenu()\n }\n }\n }\n break\n }\n default:\n throw new Error('userinput: unexpected mode')\n }\n // hq: this line makes the menu clickable\n table.addEventListener('click', selectItem, false)\n\n // Add Items to the list\n // build NameSpaces here from knowledge base\n const NameSpaces = {}\n // for each (ontology in ontologies)\n store.each(undefined, UI.ns.rdf('type'), UI.ns.owl('Ontology')).forEach(\n function (ontology) {\n const label = UI.utils.label(ontology)\n if (!label) return\n // this is like extracting metadata from URI. Maybe it's better not to take the abbrevs.\n const match = label.value.match(/\\((.+?)\\)/)\n if (match) {\n NameSpaces[match[1]] = ontology.uri\n } else {\n NameSpaces[label.value] = ontology.uri\n }\n }\n )\n function addMenuItem (predicate) {\n if (table.firstChild && table.firstChild.className === 'no-suggest') {\n table.removeChild(table.firstChild)\n }\n const Label = UI.utils.predicateLabelForXML(predicate, false)\n // Label = Label.slice(0,1).toUpperCase() + Label.slice(1);\n\n if (!predicate.uri) return // bnode\n let theNamespace = '??'\n for (const name in NameSpaces) {\n UI.log.debug(NameSpaces[name])\n if ($rdf.Util.string_startswith(predicate.uri, NameSpaces[name])) {\n theNamespace = name\n break\n }\n }\n\n const tr = table.appendChild(myDocument.createElement('tr'))\n tr.setAttribute('about', predicate)\n const th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(Label)\n )\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode(theNamespace.toUpperCase())\n )\n }\n function addPredicateChoice (selectedQuery) {\n return function (bindings) {\n const predicate = bindings[selectedQuery.vars[0]]\n addMenuItem(predicate)\n }\n }\n function clearMenu (e) {\n This.clearMenu()\n e.stopPropagation()\n }\n let inputText\n let bnodeTerm\n let IDpredicate\n let IDterm\n let tr\n let th\n switch (menuType) {\n case 'DidYouMeanDialog': {\n const dialogTerm = extraInformation.dialogTerm\n bnodeTerm = extraInformation.bnodeTerm\n // have to do style instruction passing\n menu.style.width = 'auto'\n\n const h1 = table.appendChild(myDocument.createElement('tr'))\n const h1th = h1.appendChild(myDocument.createElement('th'))\n h1th.appendChild(myDocument.createTextNode('Did you mean...'))\n const plist = store.statementsMatching(dialogTerm)\n let i\n for (i = 0; i < plist.length; i++) {\n if (\n store.whether(\n plist[i].predicate,\n rdf('type'),\n UI.ns.owl('InverseFunctionalProperty')\n )\n ) {\n break\n }\n }\n const IDpredicate = plist[i].predicate\n const IDterm = store.any(dialogTerm, plist[i].predicate)\n const text =\n UI.utils.label(dialogTerm) +\n ' who has ' +\n UI.utils.label(IDpredicate) +\n ' ' +\n IDterm +\n '?'\n const h2 = table.appendChild(myDocument.createElement('tr'))\n const h2th = h2.appendChild(myDocument.createElement('th'))\n h2th.appendChild(myDocument.createTextNode(text))\n h1th.setAttribute('colspan', '2')\n h2th.setAttribute('colspan', '2')\n const ans1 = table.appendChild(myDocument.createElement('tr'))\n ans1\n .appendChild(myDocument.createElement('th'))\n .appendChild(myDocument.createTextNode('Yes'))\n ans1\n .appendChild(myDocument.createElement('td'))\n .appendChild(myDocument.createTextNode('BOOLEAN'))\n const ans2 = table.appendChild(myDocument.createElement('tr'))\n ans2\n .appendChild(myDocument.createElement('th'))\n .appendChild(myDocument.createTextNode('No'))\n ans2\n .appendChild(myDocument.createElement('td'))\n .appendChild(myDocument.createTextNode('BOOLEAN'))\n break\n }\n case 'PredicateAutoComplete': // Prompt user for possible relationships for new data\n {\n inputText = extraInformation.inputText\n /* The labeller functionality code ahs been lost or dropped -- reinstate this? */\n // @@ TODO: Write away the need for exception on next line\n\n const predicates = outline.labeller.searchAdv(\n inputText,\n undefined,\n 'predicate'\n )\n // @@ TODO: Write away the need for exception on next line\n\n const results = [] // @@ fixme\n for (let i = 0; i < predicates.length; i++) {\n const tempQuery = {}\n tempQuery.vars = []\n tempQuery.vars.push('Kenny')\n const tempBinding = {}\n tempBinding.Kenny = store.fromNT(predicates[i].NT)\n try {\n addPredicateChoice(tempQuery)(tempBinding)\n } catch (e) {\n throw new Error('I\\'ll deal with bnodes later...[Kenny]' + e)\n } // I'll deal with bnodes later...\n }\n\n // @@ TODO: Write away the need for exception on next line\n\n const entries = results[0]\n if (entries.length === 0) {\n console.log('cm length 0\\n') // hq\n this.clearMenu()\n return\n }\n for (let i = 0; i < entries.length && i < 10; i++) {\n // do not show more than 30 items\n addMenuItem(entries[i][1])\n }\n break\n }\n case 'GeneralAutoComplete': {\n inputText = extraInformation.inputText\n let results\n try {\n results = outline.labeller.search(inputText)\n } catch (e) {\n console.log(\n 'GeneralAutoComplete: debug me ' +\n extraInformation.selectedTd.textContent +\n '\\n' +\n e +\n '\\n'\n )\n }\n const entries = results[0] // [label, subject,priority]\n const types = results[1]\n if (entries.length === 0) {\n console.log('cm length 0\\n') // hq\n this.clearMenu()\n return\n }\n for (let i = 0; i < entries.length && i < 10; i++) {\n // do not show more than 30 items\n // console.log(\"\\nGEN ENTRIES[\"+i+\"] = \"+entries[i]+\"\\n\");//hq\n const thisNT = entries[i][1].toNT()\n // console.log(\"thisNT=\"+thisNT+\"\\n\");\n tr = table.appendChild(myDocument.createElement('tr'))\n tr.setAttribute('about', thisNT)\n th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(entries[i][0])\n )\n // var theTerm = entries[i][1]\n // var type=theTerm?kb.any(kb.fromNT(thisNT),rdf('type')):undefined;\n const type = types[i]\n const typeLabel = type ? UI.utils.label(type) : ''\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode(typeLabel)\n )\n }\n /* var choices=extraInformation.choices;\n var index=extraInformation.index;\n for (var i=index-10;i<index+20;i++){ //show 30 items\n if (i<0) i=0;\n if (i==choices.length) break;\n var thisNT=choices[i].NT;\n var tr=table.appendChild(myDocument.createElement('tr'));\n tr.setAttribute('about',thisNT);\n var th=tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(myDocument.createTextNode(choices[i].label));\n var theTerm=kb.fromNT(thisNT);\n var type=theTerm?kb.any(kb.fromNT(thisNT),rdf('type')):undefined;\n var typeLabel=type?label(type):\"\";\n tr.appendChild(myDocument.createElement('td')).appendChild(myDocument.createTextNode(typeLabel));\n }\n */\n break\n }\n case 'JournalTitleAutoComplete': { // hql\n // HEART OF JOURNAL TITLE AUTOCOMPLETE\n\n // extraInformatin is from above getAutoCompleteHandler\n inputText = extraInformation.inputText\n console.log('testing searching text= ' + inputText + ' =====\\n')\n console.log('\\n===start JournalTitleAutoComplete\\n')\n\n // Gets all the URI's with type Journal in the knowledge base\n const juris = store.each(undefined, rdf('type'), bibo('Journal'))\n\n const matchedtitle = [] // debugging display before inserts into menu\n\n for (let i = 0; i < juris.length; i++) {\n const juri = juris[i]\n const jtitle = store.each(juri, dcelems('title'), undefined)\n\n const jtstr = jtitle + ''\n\n const matchstr = inputText.toLowerCase()\n const jTitleLowerCase = jtstr.toLowerCase()\n\n // If the inputText as a whole is contained in a journal title\n if (jTitleLowerCase.search(matchstr) !== -1) {\n qp('FOUND A Journal Title Match!!!!!!')\n matchedtitle.push(jtitle)\n\n // Add it as a row to the menu:\n // === Title, URI ==\n const tr = table.appendChild(myDocument.createElement('tr'))\n tr.setAttribute('about', 'journalTitle')\n const th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(jtitle)\n )\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode(juri)\n )\n }\n }\n\n console.log('matched: ' + matchedtitle + '\\n')\n\n console.log('\\\\\\\\done showMenu\\'s JTAutocomplete\\n')\n break\n }\n case 'LimitedPredicateChoice': {\n const choiceTerm = UI.utils.getAbout(store, extraInformation.clickedTd)\n // because getAbout relies on kb.fromNT, which does not deal with\n // the 'Collection' termType. This termType is ambiguous anyway.\n choiceTerm.termType = 'Collection'\n const choices = store.each(choiceTerm, UI.ns.link('element'))\n for (let i = 0; i < choices.length; i++) {\n addMenuItem(choices[i])\n }\n break\n }\n default: {\n tr = table.appendChild(myDocument.createElement('tr'))\n tr.className = 'no-suggest'\n th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(\n 'No suggested choices. Try to type instead.'\n )\n )\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode('OK')\n )\n // var This = this\n tr.addEventListener('click', clearMenu, 'false')\n\n const nullFetcher = function () {}\n switch (inputQuery.constructor.name) {\n case 'Array':\n for (let i = 0; i < inputQuery.length; i++) {\n store.query(\n inputQuery[i],\n addPredicateChoice(inputQuery[i]),\n nullFetcher\n )\n }\n break\n case 'undefined':\n throw new Error('addPredicateChoice: query is not defined')\n // break\n default:\n store.query(inputQuery, addPredicateChoice(inputQuery), nullFetcher)\n }\n }\n }\n }, // funciton showMenu\n\n /* When a blank is filled. This happens even for blue-cross editing. */\n fillInRequest: function fillInRequest (type, selectedTd, inputTerm) {\n const tr = selectedTd.parentNode\n const stat = tr.AJAR_statement\n const isInverse = tr.AJAR_inverse\n\n const reqTerm = type === 'object' ? stat.object : stat.predicate\n let newStat\n let doNext = false\n\n // RDF Event\n\n let eventhandler\n if (store.any(reqTerm, UI.ns.link('onfillin'))) {\n /* 2017 -- Not sure what is supposed to happen here -- timbl @@@@\n eventhandler = function(subject) {\n return kb.any(reqTerm, UI.ns.link('onfillin')).value)\n }\n */\n }\n\n if (type === 'predicate') {\n // ToDo: How to link two things with an inverse relationship\n const newTd = outline.outlinePredicateTD(inputTerm, tr, false, false)\n if (selectedTd.nextSibling.className !== 'undetermined') {\n const s = new $rdf.Statement(\n stat.subject,\n inputTerm,\n stat.object,\n stat.why\n )\n\n try {\n store.updater.update([], [s], function (\n uri,\n success,\n errorBody\n ) {\n if (success) {\n newStat = store.anyStatementMatching(\n stat.subject,\n inputTerm,\n stat.object,\n stat.why\n )\n tr.AJAR_statement = newStat\n newTd.className = newTd.className.replace(/ pendingedit/g, '')\n } else {\n // outline.UserInput.deleteTriple(newTd,true);\n // Warn the user that the write has failed.\n UI.log.warn(\n 'Failure occurs (#2) while inserting ' +\n tr.AJAR_statement +\n '\\n\\n' +\n errorBody\n )\n }\n })\n } catch (e) {\n UI.log.error(e)\n // Warn the user that the write has failed.\n UI.log.warn(\n 'Error when insert (#2) of statement ' + s + ':\\n\\t' + e\n )\n return\n }\n\n newTd.className += ' pendingedit'\n this.lastModified = null\n } else {\n this.formUndetStat(\n tr,\n stat.subject,\n inputTerm,\n stat.object,\n stat.why,\n false\n )\n outline.walk('right')\n doNext = true\n }\n outline.replaceTD(newTd, selectedTd)\n TempFormula.remove(stat)\n } else if (type === 'object') {\n // Object value has been edited\n const newTd = outline.outlineObjectTD(inputTerm)\n outline.replaceTD(newTd, selectedTd)\n if (\n !selectedTd.previousSibling ||\n selectedTd.previousSibling.className !== 'undetermined'\n ) {\n let s\n if (!isInverse) {\n s = new $rdf.Statement(\n stat.subject,\n stat.predicate,\n inputTerm,\n stat.why\n )\n } else {\n s = new $rdf.Statement(\n inputTerm,\n stat.predicate,\n stat.object,\n stat.why\n )\n }\n\n try {\n store.updater.update([], [s], function (\n uri,\n success,\n _errorBody\n ) {\n UI.log.info(\n '@@ usinput.js (object) callback ok=' +\n success +\n ' for statement:' +\n s +\n '\\n '\n )\n let newStats\n if (success) {\n newTd.className = newTd.className.replace(/ pendingedit/g, '') // User feedback\n if (!isInverse) {\n newStats = store.statementsMatching(\n stat.subject,\n stat.predicate,\n inputTerm,\n stat.why\n )\n } else {\n newStats = store.statementsMatching(\n inputTerm,\n stat.predicate,\n stat.object,\n stat.why\n )\n }\n if (!newStats.length) {\n UI.log.error('userinput.js 1711: Can\\'t find statememt!')\n }\n tr.AJAR_statement = newStats[0]\n } else {\n UI.log.warn(\n 'userinput.js (object): Fail trying to insert statement ' + s\n )\n // outline.UserInput.deleteTriple(newTd,true);\n }\n })\n } catch (e) {\n // outline.UserInput.deleteTriple(newTd,true);\n UI.log.error(\n 'userinput.js (object): exception trying to insert statement ' +\n s +\n ': ' +\n UI.utils.stackString(e)\n )\n UI.log.warn('Error trying to insert statement ' + s + ':\\n' + e)\n return\n }\n\n this.lastModified = null\n newTd.className += ' pendingedit'\n } else {\n // ?this.formUndetStat(tr...)\n outline.walk('left')\n doNext = true\n }\n // removal of the undetermined statement\n TempFormula.remove(stat)\n }\n // do not throw away user's work even update fails\n UserInputFormula.statements.push(newStat)\n if (eventhandler) eventhandler(stat.subject)\n if (doNext) {\n this.startFillInText(outline.getSelection()[0])\n } else {\n return true\n } // can clearMenu\n },\n\n formUndetStat: function formUndetStat (\n trNode,\n subject,\n predicate,\n object,\n why,\n inverse\n ) {\n trNode.AJAR_inverse = inverse\n trNode.AJAR_statement = TempFormula.add(subject, predicate, object, why)\n return trNode.AJAR_statement\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var UI = _interopRequireWildcard(require("solid-ui"));
8
+ 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); }
9
+ var _default = dom => function viewAsImage(obj) {
10
+ const img = UI.utils.AJARImage(obj.uri, UI.utils.label(obj), UI.utils.label(obj), dom);
11
+ img.setAttribute('class', 'outlineImage');
12
+ return img;
13
+ };
14
+ exports.default = _default;
15
+ //# sourceMappingURL=viewAsImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewAsImage.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","dom","viewAsImage","obj","img","utils","AJARImage","uri","label","setAttribute","exports"],"sources":["../../src/outline/viewAsImage.ts"],"sourcesContent":["import * as UI from 'solid-ui'\n\nexport default (dom) => function viewAsImage (obj) {\n const img = UI.utils.AJARImage(\n obj.uri,\n UI.utils.label(obj),\n UI.utils.label(obj),\n dom\n )\n img.setAttribute('class', 'outlineImage')\n return img\n}\n"],"mappings":";;;;;;AAAA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA8B,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,IAAAkB,QAAA,GAEdC,GAAG,IAAK,SAASC,WAAWA,CAAEC,GAAG,EAAE;EACjD,MAAMC,GAAG,GAAG1B,EAAE,CAAC2B,KAAK,CAACC,SAAS,CAC5BH,GAAG,CAACI,GAAG,EACP7B,EAAE,CAAC2B,KAAK,CAACG,KAAK,CAACL,GAAG,CAAC,EACnBzB,EAAE,CAAC2B,KAAK,CAACG,KAAK,CAACL,GAAG,CAAC,EACnBF,GACF,CAAC;EACDG,GAAG,CAACK,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;EACzC,OAAOL,GAAG;AACZ,CAAC;AAAAM,OAAA,CAAAnB,OAAA,GAAAS,QAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = dom => function viewAsMbox(obj) {
8
+ const anchor = dom.createElement('a');
9
+ // previous implementation assumed email address was Literal. fixed.
10
+
11
+ // FOAF mboxs must NOT be literals -- must be mailto: URIs.
12
+
13
+ let address = obj.termType === 'NamedNode' ? obj.uri : obj.value; // this way for now
14
+ // if (!address) return viewAsBoringDefault(obj)
15
+ const index = address.indexOf('mailto:');
16
+ address = index >= 0 ? address.slice(index + 7) : address;
17
+ anchor.setAttribute('href', 'mailto:' + address);
18
+ anchor.appendChild(dom.createTextNode(address));
19
+ return anchor;
20
+ };
21
+ exports.default = _default;
22
+ //# sourceMappingURL=viewAsMbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewAsMbox.js","names":["dom","viewAsMbox","obj","anchor","createElement","address","termType","uri","value","index","indexOf","slice","setAttribute","appendChild","createTextNode","exports","default","_default"],"sources":["../../src/outline/viewAsMbox.ts"],"sourcesContent":["export default (dom) => function viewAsMbox (obj) {\n const anchor = dom.createElement('a')\n // previous implementation assumed email address was Literal. fixed.\n\n // FOAF mboxs must NOT be literals -- must be mailto: URIs.\n\n let address = obj.termType === 'NamedNode' ? obj.uri : obj.value // this way for now\n // if (!address) return viewAsBoringDefault(obj)\n const index = address.indexOf('mailto:')\n address = index >= 0 ? address.slice(index + 7) : address\n anchor.setAttribute('href', 'mailto:' + address)\n anchor.appendChild(dom.createTextNode(address))\n return anchor\n}\n"],"mappings":";;;;;;eAAgBA,GAAG,IAAK,SAASC,UAAUA,CAAEC,GAAG,EAAE;EAChD,MAAMC,MAAM,GAAGH,GAAG,CAACI,aAAa,CAAC,GAAG,CAAC;EACrC;;EAEA;;EAEA,IAAIC,OAAO,GAAGH,GAAG,CAACI,QAAQ,KAAK,WAAW,GAAGJ,GAAG,CAACK,GAAG,GAAGL,GAAG,CAACM,KAAK,EAAC;EACjE;EACA,MAAMC,KAAK,GAAGJ,OAAO,CAACK,OAAO,CAAC,SAAS,CAAC;EACxCL,OAAO,GAAGI,KAAK,IAAI,CAAC,GAAGJ,OAAO,CAACM,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,GAAGJ,OAAO;EACzDF,MAAM,CAACS,YAAY,CAAC,MAAM,EAAE,SAAS,GAAGP,OAAO,CAAC;EAChDF,MAAM,CAACU,WAAW,CAACb,GAAG,CAACc,cAAc,CAACT,OAAO,CAAC,CAAC;EAC/C,OAAOF,MAAM;AACf,CAAC;AAAAY,OAAA,CAAAC,OAAA,GAAAC,QAAA","ignoreList":[]}