solid-panes 3.5.30 → 3.5.31-eef22dd6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/.babelrc +0 -0
  2. package/.eslintignore +0 -0
  3. package/.eslintrc +0 -0
  4. package/.github/workflows/ci.yml +21 -2
  5. package/.nvmrc +0 -0
  6. package/Documentation/VisualLanguage.html +0 -0
  7. package/Documentation/conventions.md +0 -0
  8. package/LICENSE.md +0 -0
  9. package/README.md +0 -0
  10. package/dev/index.html +0 -0
  11. package/dev/loader.ts +0 -0
  12. package/dev/pane/index.ts +0 -0
  13. package/doc/images/panes-for-classes.epgz +0 -0
  14. package/doc/images/panes-for-classes.svg +0 -0
  15. package/jest.config.js +0 -0
  16. package/jest.setup.ts +0 -0
  17. package/lib/RDFXMLPane.js +0 -0
  18. package/lib/RDFXMLPane.js.map +1 -1
  19. package/lib/argument/argumentPane.js +0 -0
  20. package/lib/argument/argumentPane.js.map +1 -1
  21. package/lib/attach/attachPane.js +0 -0
  22. package/lib/attach/attachPane.js.map +1 -1
  23. package/lib/audio/audioPane.js +0 -0
  24. package/lib/audio/audioPane.js.map +1 -1
  25. package/lib/classInstancePane.js +0 -0
  26. package/lib/classInstancePane.js.map +1 -1
  27. package/lib/dashboard/basicPreferences.d.ts +0 -0
  28. package/lib/dashboard/basicPreferences.d.ts.map +0 -0
  29. package/lib/dashboard/basicPreferences.js +0 -0
  30. package/lib/dashboard/basicPreferences.js.map +1 -1
  31. package/lib/dashboard/dashboardPane.d.ts +0 -0
  32. package/lib/dashboard/dashboardPane.d.ts.map +0 -0
  33. package/lib/dashboard/dashboardPane.js +0 -0
  34. package/lib/dashboard/dashboardPane.js.map +1 -1
  35. package/lib/dashboard/homepage.d.ts +0 -0
  36. package/lib/dashboard/homepage.d.ts.map +0 -0
  37. package/lib/dashboard/homepage.js +0 -0
  38. package/lib/dashboard/homepage.js.map +1 -1
  39. package/lib/dataContentPane.js +0 -0
  40. package/lib/dataContentPane.js.map +1 -1
  41. package/lib/defaultPane.js +0 -0
  42. package/lib/defaultPane.js.map +1 -1
  43. package/lib/dokieli/dokieliPane.js +0 -0
  44. package/lib/dokieli/dokieliPane.js.map +1 -1
  45. package/lib/dokieli/new.js +0 -0
  46. package/lib/dokieli/new.js.map +0 -0
  47. package/lib/form/pane.js +0 -0
  48. package/lib/form/pane.js.map +1 -1
  49. package/lib/global.d.js +0 -0
  50. package/lib/global.d.js.map +0 -0
  51. package/lib/home/homePane.d.ts +0 -0
  52. package/lib/home/homePane.d.ts.map +0 -0
  53. package/lib/home/homePane.js +0 -0
  54. package/lib/home/homePane.js.map +1 -1
  55. package/lib/humanReadablePane.js +0 -0
  56. package/lib/humanReadablePane.js.map +1 -1
  57. package/lib/imagePane.js +0 -0
  58. package/lib/imagePane.js.map +1 -1
  59. package/lib/index.d.ts +0 -0
  60. package/lib/index.d.ts.map +0 -0
  61. package/lib/index.js +0 -0
  62. package/lib/index.js.map +1 -1
  63. package/lib/internal/internalPane.d.ts +0 -0
  64. package/lib/internal/internalPane.d.ts.map +0 -0
  65. package/lib/internal/internalPane.js +0 -0
  66. package/lib/internal/internalPane.js.map +1 -1
  67. package/lib/mainPage/footer.d.ts +0 -0
  68. package/lib/mainPage/footer.d.ts.map +0 -0
  69. package/lib/mainPage/footer.js +0 -0
  70. package/lib/mainPage/footer.js.map +1 -1
  71. package/lib/mainPage/header.d.ts +0 -0
  72. package/lib/mainPage/header.d.ts.map +0 -0
  73. package/lib/mainPage/header.js +0 -0
  74. package/lib/mainPage/header.js.map +1 -1
  75. package/lib/mainPage/index.d.ts +0 -0
  76. package/lib/mainPage/index.d.ts.map +0 -0
  77. package/lib/mainPage/index.js +0 -0
  78. package/lib/mainPage/index.js.map +1 -1
  79. package/lib/microblogPane/microblogPane.js +0 -0
  80. package/lib/microblogPane/microblogPane.js.map +1 -1
  81. package/lib/n3Pane.js +0 -0
  82. package/lib/n3Pane.js.map +1 -1
  83. package/lib/outline/context.d.ts +0 -0
  84. package/lib/outline/context.d.ts.map +0 -0
  85. package/lib/outline/context.js +0 -0
  86. package/lib/outline/context.js.map +1 -1
  87. package/lib/outline/licenseOptions.js +0 -0
  88. package/lib/outline/licenseOptions.js.map +1 -1
  89. package/lib/outline/manager.js +0 -0
  90. package/lib/outline/manager.js.map +1 -1
  91. package/lib/outline/manager.test.js +0 -0
  92. package/lib/outline/manager.test.js.map +1 -1
  93. package/lib/outline/outlineIcons.js +0 -0
  94. package/lib/outline/outlineIcons.js.map +1 -1
  95. package/lib/outline/propertyViews.d.ts +0 -0
  96. package/lib/outline/propertyViews.d.ts.map +0 -0
  97. package/lib/outline/propertyViews.js +0 -0
  98. package/lib/outline/propertyViews.js.map +1 -1
  99. package/lib/outline/propertyViews.test.js +0 -0
  100. package/lib/outline/propertyViews.test.js.map +1 -1
  101. package/lib/outline/queryByExample.js +0 -0
  102. package/lib/outline/queryByExample.js.map +1 -1
  103. package/lib/outline/userInput.js +0 -0
  104. package/lib/outline/userInput.js.map +1 -1
  105. package/lib/outline/viewAsImage.d.ts +0 -0
  106. package/lib/outline/viewAsImage.d.ts.map +0 -0
  107. package/lib/outline/viewAsImage.js +0 -0
  108. package/lib/outline/viewAsImage.js.map +1 -1
  109. package/lib/outline/viewAsMbox.d.ts +0 -0
  110. package/lib/outline/viewAsMbox.d.ts.map +0 -0
  111. package/lib/outline/viewAsMbox.js +0 -0
  112. package/lib/outline/viewAsMbox.js.map +1 -1
  113. package/lib/pad/padPane.d.ts +0 -0
  114. package/lib/pad/padPane.d.ts.map +0 -0
  115. package/lib/pad/padPane.js +0 -0
  116. package/lib/pad/padPane.js.map +1 -1
  117. package/lib/playlist/playlistPane.js +0 -0
  118. package/lib/playlist/playlistPane.js.map +1 -1
  119. package/lib/profile/editProfile.view.d.ts +0 -0
  120. package/lib/profile/editProfile.view.d.ts.map +0 -0
  121. package/lib/profile/editProfile.view.js +0 -0
  122. package/lib/profile/editProfile.view.js.map +1 -1
  123. package/lib/profile/profile.dom.d.ts +0 -0
  124. package/lib/profile/profile.dom.d.ts.map +0 -0
  125. package/lib/profile/profile.dom.js +0 -0
  126. package/lib/profile/profile.dom.js.map +1 -1
  127. package/lib/registerPanes.js +0 -0
  128. package/lib/registerPanes.js.map +1 -1
  129. package/lib/schedule/formsForSchedule.js +0 -0
  130. package/lib/schedule/formsForSchedule.js.map +0 -0
  131. package/lib/schedule/schedulePane.js +0 -0
  132. package/lib/schedule/schedulePane.js.map +1 -1
  133. package/lib/sharing/sharingPane.d.ts +0 -0
  134. package/lib/sharing/sharingPane.d.ts.map +0 -0
  135. package/lib/sharing/sharingPane.js +0 -0
  136. package/lib/sharing/sharingPane.js.map +1 -1
  137. package/lib/slideshow/slideshowPane.js +0 -0
  138. package/lib/slideshow/slideshowPane.js.map +1 -1
  139. package/lib/socialPane.js +0 -0
  140. package/lib/socialPane.js.map +1 -1
  141. package/lib/tabbed/tabbedPane.d.ts +0 -0
  142. package/lib/tabbed/tabbedPane.d.ts.map +0 -0
  143. package/lib/tabbed/tabbedPane.js +0 -0
  144. package/lib/tabbed/tabbedPane.js.map +1 -1
  145. package/lib/tableViewPane.js +0 -0
  146. package/lib/tableViewPane.js.map +1 -1
  147. package/lib/test-import-export/common.js +0 -0
  148. package/lib/test-import-export/common.js.map +1 -1
  149. package/lib/test-import-export/edit-importer.js +0 -0
  150. package/lib/test-import-export/edit-importer.js.map +1 -1
  151. package/lib/test-import-export/testImportExport.js +0 -0
  152. package/lib/test-import-export/testImportExport.js.map +0 -0
  153. package/lib/transaction/pane.js +0 -0
  154. package/lib/transaction/pane.js.map +1 -1
  155. package/lib/transaction/period.js +0 -0
  156. package/lib/transaction/period.js.map +1 -1
  157. package/lib/trip/tripPane.js +0 -0
  158. package/lib/trip/tripPane.js.map +1 -1
  159. package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
  160. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
  161. package/lib/trustedApplications/trustedApplications.dom.js +0 -0
  162. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  163. package/lib/trustedApplications/trustedApplications.test.js +0 -0
  164. package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
  165. package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
  166. package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  167. package/lib/trustedApplications/trustedApplications.utils.js +0 -0
  168. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  169. package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
  170. package/lib/trustedApplications/trustedApplications.view.d.ts.map +0 -0
  171. package/lib/trustedApplications/trustedApplications.view.js +0 -0
  172. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  173. package/lib/types.d.ts +0 -0
  174. package/lib/types.d.ts.map +0 -0
  175. package/lib/types.js +0 -0
  176. package/lib/types.js.map +0 -0
  177. package/lib/ui/pane.js +0 -0
  178. package/lib/ui/pane.js.map +1 -1
  179. package/lib/versionInfo.d.ts +0 -0
  180. package/lib/versionInfo.d.ts.map +0 -0
  181. package/lib/versionInfo.js +14 -14
  182. package/lib/versionInfo.js.map +1 -1
  183. package/lib/video/videoPane.js +0 -0
  184. package/lib/video/videoPane.js.map +1 -1
  185. package/package.json +17 -17
  186. package/src/RDFXMLPane.js +0 -0
  187. package/src/argument/argumentPane.js +0 -0
  188. package/src/argument/argument_icon_v04.jpg +0 -0
  189. package/src/argument/icon_argument.png +0 -0
  190. package/src/argument/transparentyingyang.png +0 -0
  191. package/src/attach/attachPane.js +0 -0
  192. package/src/attach/tbl-paperclip-128.png +0 -0
  193. package/src/attach/tbl-paperclip-22.png +0 -0
  194. package/src/attach/tbl-paperclip-22a.png +0 -0
  195. package/src/audio/audioPane.js +0 -0
  196. package/src/chatPreferencesForm.ttl +0 -0
  197. package/src/classInstancePane.js +0 -0
  198. package/src/dashboard/basicPreferences.ts +0 -0
  199. package/src/dashboard/dashboardPane.ts +0 -0
  200. package/src/dashboard/homepage.ts +0 -0
  201. package/src/dashboard/languages/codes.html +0 -0
  202. package/src/dashboard/languages/codes.xml +0 -0
  203. package/src/dashboard/languages/codes2.txt +0 -0
  204. package/src/dashboard/languages/foo +0 -0
  205. package/src/dashboard/languages/foo.ttl +0 -0
  206. package/src/dashboard/languages/get-language-names.sh +0 -0
  207. package/src/dashboard/ontologyData.ttl +0 -0
  208. package/src/dashboard/preferencesFormText.ttl +0 -0
  209. package/src/dataContentPane.js +0 -0
  210. package/src/defaultPane.js +0 -0
  211. package/src/dokieli/Makefile +0 -0
  212. package/src/dokieli/dokieliPane.js +0 -0
  213. package/src/dokieli/new.html +0 -0
  214. package/src/dokieli/new.js +0 -0
  215. package/src/form/form-22.png +0 -0
  216. package/src/form/form-b-22.png +0 -0
  217. package/src/form/form.graffle +0 -0
  218. package/src/form/form.png +0 -0
  219. package/src/form/pane.js +0 -0
  220. package/src/form/psuedocode-notes.txt +0 -0
  221. package/src/global.d.ts +0 -0
  222. package/src/home/homePane.ts +0 -0
  223. package/src/humanReadablePane.js +0 -0
  224. package/src/imagePane.js +0 -0
  225. package/src/index.ts +0 -0
  226. package/src/internal/internalPane.ts +0 -0
  227. package/src/mainPage/footer.ts +0 -0
  228. package/src/mainPage/header.ts +0 -0
  229. package/src/mainPage/index.ts +0 -0
  230. package/src/meeting/Makefile +0 -0
  231. package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
  232. package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
  233. package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
  234. package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
  235. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
  236. package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
  237. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
  238. package/src/meeting/test/meeting1/Schedule/index.html +0 -0
  239. package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
  240. package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
  241. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
  242. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
  243. package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
  244. package/src/meeting/test/meeting1/details.ttl +0 -0
  245. package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
  246. package/src/microblogPane/mbStyle.css +0 -0
  247. package/src/microblogPane/microblogPane.js +0 -0
  248. package/src/n3Pane.js +0 -0
  249. package/src/outline/context.ts +0 -0
  250. package/src/outline/licenseOptions.js +0 -0
  251. package/src/outline/manager.js +0 -0
  252. package/src/outline/manager.test.ts +0 -0
  253. package/src/outline/outlineIcons.js +0 -0
  254. package/src/outline/propertyViews.test.ts +0 -0
  255. package/src/outline/propertyViews.ts +0 -0
  256. package/src/outline/queryByExample.js +0 -0
  257. package/src/outline/userInput.js +0 -0
  258. package/src/outline/viewAsImage.ts +0 -0
  259. package/src/outline/viewAsMbox.ts +0 -0
  260. package/src/pad/images/ColourOff.ai +0 -0
  261. package/src/pad/images/ColourOff.png +0 -0
  262. package/src/pad/images/ColourOn.ai +0 -0
  263. package/src/pad/images/ColourOn.png +0 -0
  264. package/src/pad/padPane.ts +0 -0
  265. package/src/playlist/playlistPane.js +0 -0
  266. package/src/profile/editProfile.view.ts +0 -0
  267. package/src/profile/profile.dom.ts +0 -0
  268. package/src/profile/profileFormText.ttl +0 -0
  269. package/src/registerPanes.js +0 -0
  270. package/src/schedule/Makefile +0 -0
  271. package/src/schedule/formsForSchedule.js +0 -0
  272. package/src/schedule/formsForSchedule.ttl +0 -0
  273. package/src/schedule/schedulePane.js +0 -0
  274. package/src/sharing/sharingPane.ts +0 -0
  275. package/src/slideshow/slideshowPane.js +0 -0
  276. package/src/socialPane.js +0 -0
  277. package/src/style/tabbedtab.css +0 -0
  278. package/src/tabbed/tabbedPane.ts +0 -0
  279. package/src/tableViewPane.js +0 -0
  280. package/src/test-import-export/common.js +0 -0
  281. package/src/test-import-export/edit-importer.js +0 -0
  282. package/src/test-import-export/testImportExport.js +0 -0
  283. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  284. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  285. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  286. package/src/transaction/pane.js +0 -0
  287. package/src/transaction/period.js +0 -0
  288. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  289. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  290. package/src/trip/tripPane.js +0 -0
  291. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
  292. package/src/trustedApplications/trustedApplications.dom.ts +0 -0
  293. package/src/trustedApplications/trustedApplications.test.ts +0 -0
  294. package/src/trustedApplications/trustedApplications.utils.ts +0 -0
  295. package/src/trustedApplications/trustedApplications.view.ts +0 -0
  296. package/src/types.ts +0 -0
  297. package/src/ui/22-builder.png +0 -0
  298. package/src/ui/builder.graffle +0 -0
  299. package/src/ui/builder.png +0 -0
  300. package/src/ui/builder2.png +0 -0
  301. package/src/ui/pane.js +0 -0
  302. package/src/versionInfo.ts +14 -14
  303. package/src/video/videoPane.js +0 -0
  304. package/timestamp.sh +0 -0
  305. package/travis/bumpversion.js +0 -0
  306. package/tsconfig.json +0 -0
  307. package/typings/raw-loader.d.ts +0 -0
  308. package/typings/solid-namespace/index.d.ts +0 -0
  309. package/webpack.config.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"socialPane.js","names":["socialPane","icon","UI","icons","originalIconBase","name","label","subject","context","kb","session","store","types","findTypeURIs","ns","foaf","uri","vcard","render","s","dom","common","x","y","both","i","length","j","sameTerm","push","people","n","res","say","str","console","log","p","createElement","textContent","tips","appendChild","link","contents","a","setAttribute","text","createTextNode","buildCheckboxForm","lab","statement","state","f","input","tx","className","boxHandler","_e","checked","outliner","UserInput","sparqler","insert_statement","success","errorBody","alert","add","predicate","object","why","e","error","delete_statement","removeMany","addEventListener","oneFriend","friend","_confirmed","widgets","personTR","getOutliner","div","navBlockStyle","mainBlockStyle","foafPicStyle","structure","tr","left","middle","right","tools","style","cssText","mainTable","src","any","img","anyValue","h3","me","authn","currentUser","meUri","loginOutButton","login","loginStatusBox","webIdUri","sym","refreshTree","thisIsYou","sameThings","knows","familiar","friends","each","profile","editable","incoming","outgoing","works","undefined","message","whether","rdf","utils","escapeForXML","cme","canon","outgoingSt","statementsMatching","youAndThem","Statement","myFriends","mutualFriends","attachmentList","doc","modify","noun","_triageFriends","confirmed","unconfirmed","requests","found","cases","thisCase","htr","items","j9","sort","last","fr","j7","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r","r2","lastIndexOf","slice","t","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"sources":["../src/socialPane.js"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\n\nexport const socialPane = {\n icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[UI.ns.foaf('Person').uri] ||\n types[UI.ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x, y) {\n // Find common members of two lists\n const both = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const people = function (n) {\n let res = ' '\n res += n || 'no'\n if (n === 1) return res + ' person'\n return res + ' people'\n }\n const say = function (str) {\n console.log(str)\n const p = dom.createElement('p')\n p.textContent = str\n tips.appendChild(p)\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str) {\n return dom.createTextNode(str)\n }\n\n const buildCheckboxForm = function (lab, statement, state) {\n const f = dom.createElement('form')\n const input = dom.createElement('input')\n f.appendChild(input)\n const tx = dom.createTextNode(lab)\n tx.className = 'question'\n f.appendChild(tx)\n input.setAttribute('type', 'checkbox')\n const boxHandler = function (_e) {\n tx.className = 'pendingedit'\n // alert('Should be greyed out')\n if (this.checked) {\n // Add link\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n null,\n 'Message',\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n })\n } catch (e) {\n UI.log.error('Data write fails:' + e)\n UI.log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n // Remove link\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n this.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n }\n })\n } catch (e) {\n UI.log.alert('Delete fails:' + e)\n this.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n const oneFriend = function (friend, _confirmed) {\n return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {})\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const div = dom.createElement('div')\n div.setAttribute('class', 'socialPane')\n const foaf = UI.ns.foaf\n const vcard = UI.ns.vcard\n\n // extracted from tabbedtab.css 2017-03-21\n const navBlockStyle =\n 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;'\n const mainBlockStyle =\n 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;'\n const foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;'\n\n const structure = div.appendChild(dom.createElement('table'))\n const tr = structure.appendChild(dom.createElement('tr'))\n const left = tr.appendChild(dom.createElement('td'))\n const middle = tr.appendChild(dom.createElement('td'))\n const right = tr.appendChild(dom.createElement('td'))\n\n const tools = left\n tools.style.cssText = navBlockStyle\n const mainTable = middle.appendChild(dom.createElement('table'))\n mainTable.style.cssText = mainBlockStyle\n const tips = right\n tips.style.cssText = navBlockStyle\n\n // Image top left\n const src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'))\n if (src) {\n const img = dom.createElement('IMG')\n img.setAttribute('src', src.uri) // w640 h480\n // img.className = 'foafPic'\n img.style.cssText = foafPicStyle\n tools.appendChild(img)\n }\n const name = kb.anyValue(s, foaf('name')) || '???'\n let h3 = dom.createElement('H3')\n h3.appendChild(dom.createTextNode(name))\n\n let me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n // @@ Add: event handler to redraw the stuff below when me changes.\n const loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n me = kb.sym(webIdUri)\n // @@ To be written: redraw as a function the new me\n // @@ refresh the sidebars\n UI.widgets.refreshTree(div) // this refreshes the middle at least\n })\n\n tips.appendChild(loginOutButton)\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n\n // Do I have a public profile document?\n let profile = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming\n let outgoing\n if (me) {\n // The definition of FAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n UI.ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n editable = outliner.UserInput.sparqler.editable(works[i].uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n UI.utils.escapeForXML(works[i].uri) +\n '> is not remotely editable.'\n } else {\n profile = works[i]\n break\n }\n }\n }\n\n if (!profile) {\n say(\n message + \"\\nI couldn't find your editable personal profile document.\"\n )\n } else {\n say('Editing your profile ' + profile + '.')\n // Do I have an EDITABLE profile?\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('You and ' + familiar))\n tools.appendChild(h3)\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n\n const youAndThem = function () {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' and '))\n tr.appendChild(link(text(familiar), s.uri))\n }\n\n if (!incoming) {\n if (!outgoing) {\n youAndThem()\n tr.appendChild(text(' have not said you know each other.'))\n } else {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' (unconfirmed)'))\n }\n } else {\n if (!outgoing) {\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' knows '))\n tr.appendChild(link(text('you'), meUri))\n tr.appendChild(text(' (unconfirmed).')) // @@\n tr.appendChild(text(' confirm you know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text('.'))\n } else {\n youAndThem()\n tr.appendChild(text(' say you know each other.'))\n }\n }\n\n if (editable) {\n const f = buildCheckboxForm(\n 'You know ' + familiar,\n new UI.rdf.Statement(me, knows, s, profile),\n outgoing\n )\n tools.appendChild(f)\n } // editable\n\n // //////////////// Mutual friends\n if (friends) {\n const myFriends = kb.each(me, foaf('knows'))\n if (myFriends.length) {\n const mutualFriends = common(friends, myFriends)\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n tr.appendChild(\n dom.createTextNode(\n 'You' +\n (familiar ? ' and ' + familiar : '') +\n ' know' +\n people(mutualFriends.length) +\n ' found in common'\n )\n )\n if (mutualFriends) {\n for (let i = 0; i < mutualFriends.length; i++) {\n tr.appendChild(\n dom.createTextNode(', ' + UI.utils.label(mutualFriends[i]))\n )\n }\n }\n }\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n } // friends\n } // About someone else\n } // me is defined\n // End of you and s\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n // List all x such that s knows x.\n UI.widgets.attachmentList(dom, s, mainTable, {\n doc: profile,\n modify: !!editable,\n predicate: foaf('knows'),\n noun: 'friend'\n })\n\n // Figure out which are reciprocated:\n // @@ Does not look up profiles\n // Does distinguish reciprocated from unreciprocated friendships\n //\n function _triageFriends (s) {\n outgoing = kb.each(s, foaf('knows'))\n incoming = kb.each(undefined, foaf('knows'), s) // @@ have to load the friends\n const confirmed = []\n const unconfirmed = []\n const requests = []\n\n for (let i = 0; i < outgoing.length; i++) {\n const friend = outgoing[i]\n let found = false\n for (let j = 0; j < incoming.length; j++) {\n if (incoming[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (found) confirmed.push(friend)\n else unconfirmed.push(friend)\n } // outgoing\n\n for (let i = 0; i < incoming.length; i++) {\n const friend = incoming[i]\n // var lab = UI.utils.label(friend)\n let found = false\n for (let j = 0; j < outgoing.length; j++) {\n if (outgoing[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (!found) requests.push(friend)\n } // incoming\n\n const cases = [\n ['Acquaintances', outgoing],\n ['Mentioned as acquaintances by: ', requests]\n ]\n for (let i = 0; i < cases.length; i++) {\n const thisCase = cases[i]\n const friends = thisCase[1]\n if (friends.length === 0) continue // Skip empty sections (sure?)\n\n const h3 = dom.createElement('h3')\n h3.textContent = thisCase[0]\n const htr = dom.createElement('tr')\n htr.appendChild(h3)\n mainTable.appendChild(htr)\n\n const items = []\n for (let j9 = 0; j9 < friends.length; j9++) {\n items.push([UI.utils.label(friends[j9]), friends[j9]])\n }\n items.sort()\n let last = null\n let fr\n for (let j7 = 0; j7 < items.length; j7++) {\n fr = items[j7][1]\n if (fr.sameTerm(last)) continue // unique\n last = fr\n if (UI.utils.label(fr) !== '...') {\n // This check is to avoid bnodes with no labels attached\n // appearing in the friends list with \"...\" - Oshani\n mainTable.appendChild(oneFriend(fr))\n }\n }\n }\n }\n /* if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n triageFriends(s)\n } */\n // //////////////////////////////////// Basic info on left\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('Basic Information'))\n tools.appendChild(h3)\n\n // For each home page like thing make a label which will\n // make sense and add the domain (like \"w3.org blog\") if there are more than one of the same type\n //\n const preds = [\n UI.ns.foaf('homepage'),\n UI.ns.foaf('weblog'),\n UI.ns.foaf('workplaceHomepage'),\n UI.ns.foaf('schoolHomepage')\n ]\n for (let i6 = 0; i6 < preds.length; i6++) {\n const pred = preds[i6]\n const sts = kb.statementsMatching(s, pred)\n if (sts.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n const uris = []\n for (let j5 = 0; j5 < sts.length; j5++) {\n const st = sts[j5]\n if (st.object.uri) uris.push(st.object.uri) // Ignore if not symbol\n }\n uris.sort()\n let last2 = ''\n let lab2\n for (let k = 0; k < uris.length; k++) {\n const uri = uris[k]\n if (uri === last2) continue // uniques only\n last2 = uri\n let hostlabel = ''\n lab2 = UI.utils.label(pred)\n if (uris.length > 1) {\n const l = uri.indexOf('//')\n if (l > 0) {\n let r = uri.indexOf('/', l + 2)\n const r2 = uri.lastIndexOf('.', r)\n if (r2 > 0) r = r2\n hostlabel = uri.slice(l + 2, r)\n }\n }\n if (hostlabel) lab2 = hostlabel + ' ' + lab2 // disambiguate\n const t = dom.createTextNode(lab2)\n const a = dom.createElement('a')\n a.appendChild(t)\n a.setAttribute('href', uri)\n const d = dom.createElement('div')\n // d.className = 'social_linkButton'\n d.style.cssText =\n 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;'\n d.appendChild(a)\n tools.appendChild(d)\n }\n }\n }\n\n const preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')]\n for (let i2 = 0; i2 < preds2.length; i2++) {\n const pred = preds2[i2]\n const sts2 = kb.statementsMatching(s, pred)\n if (sts2.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n outliner.appendPropertyTRs(tools, sts2, false, function (_pred) {\n return true\n })\n }\n }\n\n return div\n } // render()\n} //\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"socialPane.js","names":["UI","_interopRequireWildcard","require","_solidLogic","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","socialPane","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","types","findTypeURIs","ns","foaf","uri","vcard","render","s","dom","common","x","y","both","i","length","j","sameTerm","push","people","n","res","say","str","console","log","p","createElement","textContent","tips","appendChild","link","contents","a","setAttribute","text","createTextNode","buildCheckboxForm","lab","statement","state","f","input","tx","className","boxHandler","_e","checked","outliner","UserInput","sparqler","insert_statement","success","errorBody","alert","add","predicate","object","why","e","error","delete_statement","removeMany","addEventListener","oneFriend","friend","_confirmed","widgets","personTR","getOutliner","div","navBlockStyle","mainBlockStyle","foafPicStyle","structure","tr","left","middle","right","tools","style","cssText","mainTable","src","any","img","anyValue","h3","me","authn","currentUser","meUri","loginOutButton","login","loginStatusBox","webIdUri","sym","refreshTree","thisIsYou","sameThings","knows","familiar","friends","each","profile","editable","incoming","outgoing","works","undefined","message","whether","rdf","utils","escapeForXML","cme","canon","outgoingSt","statementsMatching","youAndThem","Statement","myFriends","mutualFriends","attachmentList","doc","modify","noun","_triageFriends","confirmed","unconfirmed","requests","found","cases","thisCase","htr","items","j9","sort","last","fr","j7","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r","r2","lastIndexOf","slice","t","d","preds2","i2","sts2","appendPropertyTRs","_pred","exports"],"sources":["../src/socialPane.js"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\n\nexport const socialPane = {\n icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[UI.ns.foaf('Person').uri] ||\n types[UI.ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x, y) {\n // Find common members of two lists\n const both = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const people = function (n) {\n let res = ' '\n res += n || 'no'\n if (n === 1) return res + ' person'\n return res + ' people'\n }\n const say = function (str) {\n console.log(str)\n const p = dom.createElement('p')\n p.textContent = str\n tips.appendChild(p)\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str) {\n return dom.createTextNode(str)\n }\n\n const buildCheckboxForm = function (lab, statement, state) {\n const f = dom.createElement('form')\n const input = dom.createElement('input')\n f.appendChild(input)\n const tx = dom.createTextNode(lab)\n tx.className = 'question'\n f.appendChild(tx)\n input.setAttribute('type', 'checkbox')\n const boxHandler = function (_e) {\n tx.className = 'pendingedit'\n // alert('Should be greyed out')\n if (this.checked) {\n // Add link\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n null,\n 'Message',\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n })\n } catch (e) {\n UI.log.error('Data write fails:' + e)\n UI.log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n // Remove link\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n this.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n }\n })\n } catch (e) {\n UI.log.alert('Delete fails:' + e)\n this.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n const oneFriend = function (friend, _confirmed) {\n return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {})\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const div = dom.createElement('div')\n div.setAttribute('class', 'socialPane')\n const foaf = UI.ns.foaf\n const vcard = UI.ns.vcard\n\n // extracted from tabbedtab.css 2017-03-21\n const navBlockStyle =\n 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;'\n const mainBlockStyle =\n 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;'\n const foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;'\n\n const structure = div.appendChild(dom.createElement('table'))\n const tr = structure.appendChild(dom.createElement('tr'))\n const left = tr.appendChild(dom.createElement('td'))\n const middle = tr.appendChild(dom.createElement('td'))\n const right = tr.appendChild(dom.createElement('td'))\n\n const tools = left\n tools.style.cssText = navBlockStyle\n const mainTable = middle.appendChild(dom.createElement('table'))\n mainTable.style.cssText = mainBlockStyle\n const tips = right\n tips.style.cssText = navBlockStyle\n\n // Image top left\n const src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'))\n if (src) {\n const img = dom.createElement('IMG')\n img.setAttribute('src', src.uri) // w640 h480\n // img.className = 'foafPic'\n img.style.cssText = foafPicStyle\n tools.appendChild(img)\n }\n const name = kb.anyValue(s, foaf('name')) || '???'\n let h3 = dom.createElement('H3')\n h3.appendChild(dom.createTextNode(name))\n\n let me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n // @@ Add: event handler to redraw the stuff below when me changes.\n const loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n me = kb.sym(webIdUri)\n // @@ To be written: redraw as a function the new me\n // @@ refresh the sidebars\n UI.widgets.refreshTree(div) // this refreshes the middle at least\n })\n\n tips.appendChild(loginOutButton)\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n\n // Do I have a public profile document?\n let profile = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming\n let outgoing\n if (me) {\n // The definition of FAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n UI.ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n editable = outliner.UserInput.sparqler.editable(works[i].uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n UI.utils.escapeForXML(works[i].uri) +\n '> is not remotely editable.'\n } else {\n profile = works[i]\n break\n }\n }\n }\n\n if (!profile) {\n say(\n message + \"\\nI couldn't find your editable personal profile document.\"\n )\n } else {\n say('Editing your profile ' + profile + '.')\n // Do I have an EDITABLE profile?\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('You and ' + familiar))\n tools.appendChild(h3)\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n\n const youAndThem = function () {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' and '))\n tr.appendChild(link(text(familiar), s.uri))\n }\n\n if (!incoming) {\n if (!outgoing) {\n youAndThem()\n tr.appendChild(text(' have not said you know each other.'))\n } else {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' (unconfirmed)'))\n }\n } else {\n if (!outgoing) {\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' knows '))\n tr.appendChild(link(text('you'), meUri))\n tr.appendChild(text(' (unconfirmed).')) // @@\n tr.appendChild(text(' confirm you know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text('.'))\n } else {\n youAndThem()\n tr.appendChild(text(' say you know each other.'))\n }\n }\n\n if (editable) {\n const f = buildCheckboxForm(\n 'You know ' + familiar,\n new UI.rdf.Statement(me, knows, s, profile),\n outgoing\n )\n tools.appendChild(f)\n } // editable\n\n // //////////////// Mutual friends\n if (friends) {\n const myFriends = kb.each(me, foaf('knows'))\n if (myFriends.length) {\n const mutualFriends = common(friends, myFriends)\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n tr.appendChild(\n dom.createTextNode(\n 'You' +\n (familiar ? ' and ' + familiar : '') +\n ' know' +\n people(mutualFriends.length) +\n ' found in common'\n )\n )\n if (mutualFriends) {\n for (let i = 0; i < mutualFriends.length; i++) {\n tr.appendChild(\n dom.createTextNode(', ' + UI.utils.label(mutualFriends[i]))\n )\n }\n }\n }\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n } // friends\n } // About someone else\n } // me is defined\n // End of you and s\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n // List all x such that s knows x.\n UI.widgets.attachmentList(dom, s, mainTable, {\n doc: profile,\n modify: !!editable,\n predicate: foaf('knows'),\n noun: 'friend'\n })\n\n // Figure out which are reciprocated:\n // @@ Does not look up profiles\n // Does distinguish reciprocated from unreciprocated friendships\n //\n function _triageFriends (s) {\n outgoing = kb.each(s, foaf('knows'))\n incoming = kb.each(undefined, foaf('knows'), s) // @@ have to load the friends\n const confirmed = []\n const unconfirmed = []\n const requests = []\n\n for (let i = 0; i < outgoing.length; i++) {\n const friend = outgoing[i]\n let found = false\n for (let j = 0; j < incoming.length; j++) {\n if (incoming[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (found) confirmed.push(friend)\n else unconfirmed.push(friend)\n } // outgoing\n\n for (let i = 0; i < incoming.length; i++) {\n const friend = incoming[i]\n // var lab = UI.utils.label(friend)\n let found = false\n for (let j = 0; j < outgoing.length; j++) {\n if (outgoing[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (!found) requests.push(friend)\n } // incoming\n\n const cases = [\n ['Acquaintances', outgoing],\n ['Mentioned as acquaintances by: ', requests]\n ]\n for (let i = 0; i < cases.length; i++) {\n const thisCase = cases[i]\n const friends = thisCase[1]\n if (friends.length === 0) continue // Skip empty sections (sure?)\n\n const h3 = dom.createElement('h3')\n h3.textContent = thisCase[0]\n const htr = dom.createElement('tr')\n htr.appendChild(h3)\n mainTable.appendChild(htr)\n\n const items = []\n for (let j9 = 0; j9 < friends.length; j9++) {\n items.push([UI.utils.label(friends[j9]), friends[j9]])\n }\n items.sort()\n let last = null\n let fr\n for (let j7 = 0; j7 < items.length; j7++) {\n fr = items[j7][1]\n if (fr.sameTerm(last)) continue // unique\n last = fr\n if (UI.utils.label(fr) !== '...') {\n // This check is to avoid bnodes with no labels attached\n // appearing in the friends list with \"...\" - Oshani\n mainTable.appendChild(oneFriend(fr))\n }\n }\n }\n }\n /* if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n triageFriends(s)\n } */\n // //////////////////////////////////// Basic info on left\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('Basic Information'))\n tools.appendChild(h3)\n\n // For each home page like thing make a label which will\n // make sense and add the domain (like \"w3.org blog\") if there are more than one of the same type\n //\n const preds = [\n UI.ns.foaf('homepage'),\n UI.ns.foaf('weblog'),\n UI.ns.foaf('workplaceHomepage'),\n UI.ns.foaf('schoolHomepage')\n ]\n for (let i6 = 0; i6 < preds.length; i6++) {\n const pred = preds[i6]\n const sts = kb.statementsMatching(s, pred)\n if (sts.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n const uris = []\n for (let j5 = 0; j5 < sts.length; j5++) {\n const st = sts[j5]\n if (st.object.uri) uris.push(st.object.uri) // Ignore if not symbol\n }\n uris.sort()\n let last2 = ''\n let lab2\n for (let k = 0; k < uris.length; k++) {\n const uri = uris[k]\n if (uri === last2) continue // uniques only\n last2 = uri\n let hostlabel = ''\n lab2 = UI.utils.label(pred)\n if (uris.length > 1) {\n const l = uri.indexOf('//')\n if (l > 0) {\n let r = uri.indexOf('/', l + 2)\n const r2 = uri.lastIndexOf('.', r)\n if (r2 > 0) r = r2\n hostlabel = uri.slice(l + 2, r)\n }\n }\n if (hostlabel) lab2 = hostlabel + ' ' + lab2 // disambiguate\n const t = dom.createTextNode(lab2)\n const a = dom.createElement('a')\n a.appendChild(t)\n a.setAttribute('href', uri)\n const d = dom.createElement('div')\n // d.className = 'social_linkButton'\n d.style.cssText =\n 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;'\n d.appendChild(a)\n tools.appendChild(d)\n }\n }\n }\n\n const preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')]\n for (let i2 = 0; i2 < preds2.length; i2++) {\n const pred = preds2[i2]\n const sts2 = kb.statementsMatching(s, pred)\n if (sts2.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n outliner.appendPropertyTRs(tools, sts2, false, function (_pred) {\n return true\n })\n }\n }\n\n return div\n } // render()\n} //\n// ends\n"],"mappings":"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"}
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"tabbedPane.js","names":["TabbedPane","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","kb","session","store","typeURIs","findTypeURIs","meeting","uri","render","dom","div","createElement","fetcher","Error","load","appendChild","tabs","tabWidget","predicate","any","ordered","orientation","anyValue","renderMain","containerDiv","item","innerHTML","table","getOutliner","GotoSubject","undefined","renderTab","the","widgets","personTR","backgroundColor","ui"],"sources":["../../src/tabbed/tabbedPane.ts"],"sourcesContent":["/* Tabbed view of anything\n **\n ** data-driven\n **\n */\nimport { Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\nimport { icons, ns, tabs, widgets } from 'solid-ui'\n\nconst TabbedPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_688606.svg',\n\n name: 'tabbed',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: (subject, context) => {\n const kb = context.session.store as Store\n const typeURIs = kb.findTypeURIs(subject)\n if (ns.meeting('Cluster').uri in typeURIs) {\n return 'Tabbed'\n }\n return null\n },\n\n render: (subject, context) => {\n const dom = context.dom\n const store = context.session.store as Store\n const div = dom.createElement('div')\n\n ;(async () => {\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n await store.fetcher.load(subject)\n\n div.appendChild(tabs.tabWidget({\n dom,\n subject,\n predicate: store.any(subject, ns.meeting('predicate')) || ns.meeting('toolList'),\n ordered: true,\n orientation: ((store as Store).anyValue(subject, ns.meeting('orientation')) || '0') as ('0' | '1' | '2' | '3'),\n renderMain: (containerDiv, item) => {\n containerDiv.innerHTML = ''\n const table = containerDiv.appendChild(context.dom.createElement('table'))\n ;(context.getOutliner(context.dom) as any).GotoSubject(item, true, null, false, undefined, table)\n },\n renderTab: (containerDiv, item) => {\n const predicate = store.the(subject, ns.meeting('predicate'))\n containerDiv.appendChild(widgets.personTR(context.dom, predicate, item, {}))\n },\n backgroundColor: store.anyValue(subject, ns.ui('backgroundColor')) || '#ddddcc'\n }))\n })()\n return div\n }\n}\n\nexport default TabbedPane\n"],"mappings":";;;;;;;AAOA;AAAmD,+CANnD;AAAA;AAAA;AAQA,IAAMA,UAA0B,GAAG;EACjCC,IAAI,EAAEC,cAAK,CAACC,QAAQ,GAAG,iBAAiB;EAExCC,IAAI,EAAE,QAAQ;EAEdC,QAAQ,EAAE,CAACC,WAAE,CAACC,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjC;EACAC,KAAK,EAAE,eAACC,OAAO,EAAEC,OAAO,EAAK;IAC3B,IAAMC,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACC,KAAc;IACzC,IAAMC,QAAQ,GAAGH,EAAE,CAACI,YAAY,CAACN,OAAO,CAAC;IACzC,IAAIH,WAAE,CAACU,OAAO,CAAC,SAAS,CAAC,CAACC,GAAG,IAAIH,QAAQ,EAAE;MACzC,OAAO,QAAQ;IACjB;IACA,OAAO,IAAI;EACb,CAAC;EAEDI,MAAM,EAAE,gBAACT,OAAO,EAAEC,OAAO,EAAK;IAC5B,IAAMS,GAAG,GAAGT,OAAO,CAACS,GAAG;IACvB,IAAMN,KAAK,GAAGH,OAAO,CAACE,OAAO,CAACC,KAAc;IAC5C,IAAMO,GAAG,GAAGD,GAAG,CAACE,aAAa,CAAC,KAAK,CAAC;IAEnC,2DAAC;MAAA;QAAA;UAAA;YAAA,IACKR,KAAK,CAACS,OAAO;cAAA;cAAA;YAAA;YAAA,MACV,IAAIC,KAAK,CAAC,sBAAsB,CAAC;UAAA;YAAA;YAAA,OAEnCV,KAAK,CAACS,OAAO,CAACE,IAAI,CAACf,OAAO,CAAC;UAAA;YAEjCW,GAAG,CAACK,WAAW,CAACC,aAAI,CAACC,SAAS,CAAC;cAC7BR,GAAG,EAAHA,GAAG;cACHV,OAAO,EAAPA,OAAO;cACPmB,SAAS,EAAEf,KAAK,CAACgB,GAAG,CAACpB,OAAO,EAAEH,WAAE,CAACU,OAAO,CAAC,WAAW,CAAC,CAAC,IAAIV,WAAE,CAACU,OAAO,CAAC,UAAU,CAAC;cAChFc,OAAO,EAAE,IAAI;cACbC,WAAW,EAAIlB,KAAK,CAAWmB,QAAQ,CAACvB,OAAO,EAAEH,WAAE,CAACU,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,GAA+B;cAC9GiB,UAAU,EAAE,oBAACC,YAAY,EAAEC,IAAI,EAAK;gBAClCD,YAAY,CAACE,SAAS,GAAG,EAAE;gBAC3B,IAAMC,KAAK,GAAGH,YAAY,CAACT,WAAW,CAACf,OAAO,CAACS,GAAG,CAACE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxEX,OAAO,CAAC4B,WAAW,CAAC5B,OAAO,CAACS,GAAG,CAAC,CAASoB,WAAW,CAACJ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAEK,SAAS,EAAEH,KAAK,CAAC;cACnG,CAAC;cACDI,SAAS,EAAE,mBAACP,YAAY,EAAEC,IAAI,EAAK;gBACjC,IAAMP,SAAS,GAAGf,KAAK,CAAC6B,GAAG,CAACjC,OAAO,EAAEH,WAAE,CAACU,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC7DkB,YAAY,CAACT,WAAW,CAACkB,gBAAO,CAACC,QAAQ,CAAClC,OAAO,CAACS,GAAG,EAAES,SAAS,EAAEO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;cAC9E,CAAC;cACDU,eAAe,EAAEhC,KAAK,CAACmB,QAAQ,CAACvB,OAAO,EAAEH,WAAE,CAACwC,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI;YACxE,CAAC,CAAC,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACJ,IAAG;IACJ,OAAO1B,GAAG;EACZ;AACF,CAAC;AAAA,eAEcpB,UAAU;AAAA"}
1
+ {"version":3,"file":"tabbedPane.js","names":["_solidUi","require","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","TabbedPane","icon","icons","iconBase","audience","ns","solid","label","subject","kb","session","store","typeURIs","findTypeURIs","meeting","uri","render","dom","div","createElement","_callee","_callee$","_context","fetcher","load","appendChild","tabs","tabWidget","predicate","any","ordered","orientation","anyValue","renderMain","containerDiv","item","innerHTML","table","getOutliner","GotoSubject","renderTab","the","widgets","personTR","backgroundColor","ui","_default"],"sources":["../../src/tabbed/tabbedPane.ts"],"sourcesContent":["/* Tabbed view of anything\n **\n ** data-driven\n **\n */\nimport { Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\nimport { icons, ns, tabs, widgets } from 'solid-ui'\n\nconst TabbedPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_688606.svg',\n\n name: 'tabbed',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: (subject, context) => {\n const kb = context.session.store as Store\n const typeURIs = kb.findTypeURIs(subject)\n if (ns.meeting('Cluster').uri in typeURIs) {\n return 'Tabbed'\n }\n return null\n },\n\n render: (subject, context) => {\n const dom = context.dom\n const store = context.session.store as Store\n const div = dom.createElement('div')\n\n ;(async () => {\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n await store.fetcher.load(subject)\n\n div.appendChild(tabs.tabWidget({\n dom,\n subject,\n predicate: store.any(subject, ns.meeting('predicate')) || ns.meeting('toolList'),\n ordered: true,\n orientation: ((store as Store).anyValue(subject, ns.meeting('orientation')) || '0') as ('0' | '1' | '2' | '3'),\n renderMain: (containerDiv, item) => {\n containerDiv.innerHTML = ''\n const table = containerDiv.appendChild(context.dom.createElement('table'))\n ;(context.getOutliner(context.dom) as any).GotoSubject(item, true, null, false, undefined, table)\n },\n renderTab: (containerDiv, item) => {\n const predicate = store.the(subject, ns.meeting('predicate'))\n containerDiv.appendChild(widgets.personTR(context.dom, predicate, item, {}))\n },\n backgroundColor: store.anyValue(subject, ns.ui('backgroundColor')) || '#ddddcc'\n }))\n })()\n return div\n }\n}\n\nexport default TabbedPane\n"],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"tableViewPane.js","names":["tableViewPane","icon","UI","icons","originalIconBase","name","label","subject","context","store","session","any","undefined","ns","rdf","n","statementsMatching","length","utils","render","myDocument","dom","div","createElement","setAttribute","appendChild","table","tableClass"],"sources":["../src/tableViewPane.js"],"sourcesContent":["// Format an array of RDF statements as an HTML table.\n//\n// This can operate in one of three modes: when the class of object is given\n// or when the source document from which data is taken is given,\n// or if a prepared query object is given.\n// (In principle it could operate with neither class nor document\n// given but typically\n// there would be too much data.)\n// When the tableClass is not given, it looks for common classes in the data,\n// and gives the user the option.\n//\n// 2008 Written, Ilaria Liccardi\n// 2014 core functionality now in common/table.js -timbl\n\n// ///////////////////////////////////////////////////////////////////\n\n// Table view pane -- view of a class as a table of properties of class members\nimport * as UI from 'solid-ui'\n\nexport const tableViewPane = {\n icon: UI.icons.originalIconBase + 'table.png',\n\n name: 'tableOfClass',\n\n label: function (subject, context) {\n const store = context.session.store\n // if (!store.holds(subject, UI.ns.rdf('type'),UI.ns.rdfs('Class'))) return null\n if (!store.any(undefined, UI.ns.rdf('type'), subject)) {\n return null\n }\n const n = store.statementsMatching(undefined, UI.ns.rdf('type'), subject)\n .length\n if (n === 0) {\n // None, suppress pane\n return null\n }\n if (n > 15) {\n // @@ At the moment this pane can be slow with too many @@ fixme by using limits\n return null\n }\n return UI.utils.label(subject) + ' table'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'tablePane')\n div.appendChild(UI.table(myDocument, { tableClass: subject }))\n return div\n }\n}\n"],"mappings":";;;;;;;AAiBA;AAA8B;AAAA;AAjB9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAGO,IAAMA,aAAa,GAAI;EAC5BC,IAAI,EAAEC,EAAE,CAACC,KAAK,CAACC,gBAAgB,GAAG,WAAW;EAE7CC,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAE,eAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,IAAMC,KAAK,GAAGD,OAAO,CAACE,OAAO,CAACD,KAAK;IACnC;IACA,IAAI,CAACA,KAAK,CAACE,GAAG,CAACC,SAAS,EAAEV,EAAE,CAACW,EAAE,CAACC,GAAG,CAAC,MAAM,CAAC,EAAEP,OAAO,CAAC,EAAE;MACrD,OAAO,IAAI;IACb;IACA,IAAMQ,CAAC,GAAGN,KAAK,CAACO,kBAAkB,CAACJ,SAAS,EAAEV,EAAE,CAACW,EAAE,CAACC,GAAG,CAAC,MAAM,CAAC,EAAEP,OAAO,CAAC,CACtEU,MAAM;IACT,IAAIF,CAAC,KAAK,CAAC,EAAE;MACX;MACA,OAAO,IAAI;IACb;IACA,IAAIA,CAAC,GAAG,EAAE,EAAE;MACV;MACA,OAAO,IAAI;IACb;IACA,OAAOb,EAAE,CAACgB,KAAK,CAACZ,KAAK,CAACC,OAAO,CAAC,GAAG,QAAQ;EAC3C,CAAC;EAEDY,MAAM,EAAE,gBAAUZ,OAAO,EAAEC,OAAO,EAAE;IAClC,IAAMY,UAAU,GAAGZ,OAAO,CAACa,GAAG;IAC9B,IAAMC,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;IAC3CD,GAAG,CAACE,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;IACtCF,GAAG,CAACG,WAAW,CAACvB,EAAE,CAACwB,KAAK,CAACN,UAAU,EAAE;MAAEO,UAAU,EAAEpB;IAAQ,CAAC,CAAC,CAAC;IAC9D,OAAOe,GAAG;EACZ;AACF,CAAC;AAAA"}
1
+ {"version":3,"file":"tableViewPane.js","names":["UI","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","tableViewPane","icon","icons","originalIconBase","name","label","subject","context","store","session","any","undefined","ns","rdf","n","statementsMatching","length","utils","render","myDocument","dom","div","createElement","setAttribute","appendChild","table","tableClass","exports"],"sources":["../src/tableViewPane.js"],"sourcesContent":["// Format an array of RDF statements as an HTML table.\n//\n// This can operate in one of three modes: when the class of object is given\n// or when the source document from which data is taken is given,\n// or if a prepared query object is given.\n// (In principle it could operate with neither class nor document\n// given but typically\n// there would be too much data.)\n// When the tableClass is not given, it looks for common classes in the data,\n// and gives the user the option.\n//\n// 2008 Written, Ilaria Liccardi\n// 2014 core functionality now in common/table.js -timbl\n\n// ///////////////////////////////////////////////////////////////////\n\n// Table view pane -- view of a class as a table of properties of class members\nimport * as UI from 'solid-ui'\n\nexport const tableViewPane = {\n icon: UI.icons.originalIconBase + 'table.png',\n\n name: 'tableOfClass',\n\n label: function (subject, context) {\n const store = context.session.store\n // if (!store.holds(subject, UI.ns.rdf('type'),UI.ns.rdfs('Class'))) return null\n if (!store.any(undefined, UI.ns.rdf('type'), subject)) {\n return null\n }\n const n = store.statementsMatching(undefined, UI.ns.rdf('type'), subject)\n .length\n if (n === 0) {\n // None, suppress pane\n return null\n }\n if (n > 15) {\n // @@ At the moment this pane can be slow with too many @@ fixme by using limits\n return null\n }\n return UI.utils.label(subject) + ' table'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'tablePane')\n div.appendChild(UI.table(myDocument, { tableClass: subject }))\n return div\n }\n}\n"],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":["console","log","foo"],"sources":["../../src/test-import-export/common.js"],"sourcesContent":["console.log('This is common.js')\n// https://2ality.com/2019/04/nodejs-esm-impl.html#importing-commonjs-from-esm\n\nexport default {\n foo: 123\n}\n"],"mappings":";;;;;;AAAAA,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAChC;AAAA,eAEe;EACbC,GAAG,EAAE;AACP,CAAC;AAAA"}
1
+ {"version":3,"file":"common.js","names":["console","log","_default","foo","exports"],"sources":["../../src/test-import-export/common.js"],"sourcesContent":["console.log('This is common.js')\n// https://2ality.com/2019/04/nodejs-esm-impl.html#importing-commonjs-from-esm\n\nexport default {\n foo: 123\n}\n"],"mappings":";;;;;;AAAAA,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAChC;AAAA,IAAAC,QAAA,GAEe;EACbC,GAAG,EAAE;AACP,CAAC;AAAAC,OAAA,cAAAF,QAAA"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"edit-importer.js","names":["thisPane","foo"],"sources":["../../src/test-import-export/edit-importer.js"],"sourcesContent":["'use strict'\n// Suspect this is unsed test code\n\n/* Profile Editing Appp Pane\n **\n ** Unlike view panes, this is available any place whatever the real subject,\n ** and allows the user to edit their own profile.\n **\n ** Usage: paneRegistry.register('profile/profilePane')\n ** or standalone script adding onto existing mashlib.\n */\n\n// import UI from 'solid-ui'\n// import solidUi, { SolidUi } from 'solid-ui'\n// @@ TODO: Write away the need for exception on next line\n// eslint-disable-next-line camelcase\n\nconst thisPane = { foo: 'bar' }\nexport default thisPane\n// ENDS\n"],"mappings":"AAAA,YAAY;;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;EAAA;AAAA;AAAA;AAEA,IAAMA,QAAQ,GAAG;EAAEC,GAAG,EAAE;AAAM,CAAC;AAAA,eAChBD,QAAQ,EACvB;AAAA"}
1
+ {"version":3,"file":"edit-importer.js","names":["Object","defineProperty","exports","value","thisPane","foo","_default"],"sources":["../../src/test-import-export/edit-importer.js"],"sourcesContent":["'use strict'\n// Suspect this is unsed test code\n\n/* Profile Editing Appp Pane\n **\n ** Unlike view panes, this is available any place whatever the real subject,\n ** and allows the user to edit their own profile.\n **\n ** Usage: paneRegistry.register('profile/profilePane')\n ** or standalone script adding onto existing mashlib.\n */\n\n// import UI from 'solid-ui'\n// import solidUi, { SolidUi } from 'solid-ui'\n// @@ TODO: Write away the need for exception on next line\n// eslint-disable-next-line camelcase\n\nconst thisPane = { foo: 'bar' }\nexport default thisPane\n// ENDS\n"],"mappings":"AAAA,YAAY;;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAAA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA;AAEA,IAAME,QAAQ,GAAG;EAAEC,GAAG,EAAE;AAAM,CAAC;AAAA,IAAAC,QAAA,GAChBF,QAAQ,EACvB;AAAAF,OAAA,cAAAI,QAAA"}
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"pane.js","names":["ns","UI","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","any","qu","render","dom","fetcher","Q","$rdf","Namespace","TRIP","div","createElement","setAttribute","mention","message","style","undefined","pre","appendChild","createTextNode","complain","plist","statementsMatching","qlist","predicateURIsDone","donePredicate","pred","uri","setPaneStyle","account","mystyle","backgroundColor","ui","value","d2","n","s","indexOf","split","slice","numericCell","amount","suppressZero","td","textContent","headerCell","str","oderByDate","x","y","dx","dy","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","filter","table","transactionRow","setTRStyle","c0","date","c1","payee","a1","c3","addEventListener","e","shiftKey","list2","sort","i","rdf","statement","nav","navLink","obj","a","utils","preds","map","inner","labelForXML","join","innerHTML","complainIfBad","ok","body","nowOrWhenFetched","calendarYear","renderCatgorySelectors","widgets","makeSelectForNestedCategory","rdfs","Classified","load","then","_xhrs","each","console","log","makeDescription","trips","st","object","trips2","concat","sortedBy","reverse","l2","key","pair","cal","makeSelectForOptions","multiple","nullLabel","mint","mintClass","mintStatementsFun","trip","is","push","doc","outliner","getOutliner","attachmentList","wf","appendPropertyTRs","_inverse","calculations","total","yearTotal","yearCategoryTotal","trans","bankStatements","forEach","the","year","ty","tyuri","lit","parseFloat","types","grandTotal","years","hasOwnProperty","ny","cell","header","z","cat","sym","tab"],"sources":["../../src/transaction/pane.js"],"sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n \"'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;\"\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n \">,\\nso I can't tell how to annotate it.)\"\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log(\"Can't get categories, because no calendarYear\")\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (yearCategoryTotal.hasOwnProperty(y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (total.hasOwnProperty(uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"pane.js","names":["UI","_interopRequireWildcard","require","$rdf","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ns","_default","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","any","qu","render","dom","fetcher","Q","Namespace","TRIP","div","createElement","setAttribute","mention","message","style","undefined","pre","appendChild","createTextNode","complain","plist","statementsMatching","qlist","predicateURIsDone","donePredicate","pred","uri","setPaneStyle","account","mystyle","backgroundColor","ui","value","d2","n","s","indexOf","split","slice","numericCell","amount","suppressZero","td","textContent","headerCell","str","oderByDate","x","y","dx","dy","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","filter","table","transactionRow","setTRStyle","c0","date","c1","payee","a1","c3","addEventListener","e","shiftKey","list2","sort","i","rdf","statement","nav","navLink","a","utils","preds","map","inner","labelForXML","join","innerHTML","complainIfBad","ok","body","nowOrWhenFetched","calendarYear","renderCatgorySelectors","widgets","makeSelectForNestedCategory","rdfs","Classified","load","then","_xhrs","each","console","log","makeDescription","trips","st","object","trips2","concat","sortedBy","reverse","l2","pair","cal","makeSelectForOptions","multiple","nullLabel","mint","mintClass","mintStatementsFun","trip","is","push","doc","outliner","getOutliner","attachmentList","wf","appendPropertyTRs","_inverse","calculations","total","yearTotal","yearCategoryTotal","trans","bankStatements","forEach","the","year","ty","tyuri","lit","parseFloat","types","grandTotal","years","ny","cell","header","z","cat","sym","tab","exports"],"sources":["../../src/transaction/pane.js"],"sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n \"'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;\"\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n \">,\\nso I can't tell how to annotate it.)\"\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log(\"Can't get categories, because no calendarYear\")\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (yearCategoryTotal.hasOwnProperty(y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (total.hasOwnProperty(uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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"}
File without changes