solid-panes 3.5.19-b875ca77 → 3.5.20

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 (312) hide show
  1. package/.babelrc +0 -0
  2. package/.eslintignore +0 -0
  3. package/.eslintrc +0 -0
  4. package/.github/workflows/ci.yml +0 -0
  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 +11 -11
  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 +0 -0
  19. package/lib/argument/argumentPane.js +15 -7
  20. package/lib/argument/argumentPane.js.map +1 -1
  21. package/lib/attach/attachPane.js +0 -0
  22. package/lib/attach/attachPane.js.map +0 -0
  23. package/lib/audio/audioPane.js +0 -0
  24. package/lib/audio/audioPane.js.map +0 -0
  25. package/lib/classInstancePane.js +0 -0
  26. package/lib/classInstancePane.js.map +0 -0
  27. package/lib/dashboard/basicPreferences.d.ts +0 -0
  28. package/lib/dashboard/basicPreferences.d.ts.map +1 -1
  29. package/lib/dashboard/basicPreferences.js +6 -6
  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 +1 -1
  33. package/lib/dashboard/dashboardPane.js +6 -4
  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 +0 -0
  39. package/lib/dataContentPane.js +1 -1
  40. package/lib/dataContentPane.js.map +1 -1
  41. package/lib/defaultPane.js +0 -0
  42. package/lib/defaultPane.js.map +0 -0
  43. package/lib/dokieli/dokieliPane.js +0 -0
  44. package/lib/dokieli/dokieliPane.js.map +0 -0
  45. package/lib/dokieli/new.js +0 -0
  46. package/lib/dokieli/new.js.map +0 -0
  47. package/lib/form/pane.js +15 -6
  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 +1 -1
  53. package/lib/home/homePane.js +7 -5
  54. package/lib/home/homePane.js.map +1 -1
  55. package/lib/humanReadablePane.js +0 -0
  56. package/lib/humanReadablePane.js.map +0 -0
  57. package/lib/imagePane.js +0 -0
  58. package/lib/imagePane.js.map +0 -0
  59. package/lib/index.d.ts +7 -3
  60. package/lib/index.d.ts.map +1 -1
  61. package/lib/index.js +15 -4
  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 +0 -0
  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 +0 -0
  71. package/lib/mainPage/header.d.ts +0 -0
  72. package/lib/mainPage/header.d.ts.map +1 -1
  73. package/lib/mainPage/header.js +4 -2
  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 +0 -0
  79. package/lib/microblogPane/microblogPane.js +16 -14
  80. package/lib/microblogPane/microblogPane.js.map +1 -1
  81. package/lib/n3Pane.js +0 -0
  82. package/lib/n3Pane.js.map +0 -0
  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 +0 -0
  87. package/lib/outline/dragDrop.js +16 -6
  88. package/lib/outline/dragDrop.js.map +1 -1
  89. package/lib/outline/licenseOptions.js +12 -5
  90. package/lib/outline/licenseOptions.js.map +1 -1
  91. package/lib/outline/manager.js +29 -21
  92. package/lib/outline/manager.js.map +1 -1
  93. package/lib/outline/manager.test.js +0 -0
  94. package/lib/outline/manager.test.js.map +0 -0
  95. package/lib/outline/outlineIcons.js +0 -0
  96. package/lib/outline/outlineIcons.js.map +0 -0
  97. package/lib/outline/propertyViews.d.ts +0 -0
  98. package/lib/outline/propertyViews.d.ts.map +0 -0
  99. package/lib/outline/propertyViews.js +0 -0
  100. package/lib/outline/propertyViews.js.map +0 -0
  101. package/lib/outline/propertyViews.test.js +0 -0
  102. package/lib/outline/propertyViews.test.js.map +0 -0
  103. package/lib/outline/queryByExample.js +14 -6
  104. package/lib/outline/queryByExample.js.map +1 -1
  105. package/lib/outline/userInput.js +90 -80
  106. package/lib/outline/userInput.js.map +1 -1
  107. package/lib/outline/viewAsImage.d.ts +0 -0
  108. package/lib/outline/viewAsImage.d.ts.map +0 -0
  109. package/lib/outline/viewAsImage.js +0 -0
  110. package/lib/outline/viewAsImage.js.map +0 -0
  111. package/lib/outline/viewAsMbox.d.ts +0 -0
  112. package/lib/outline/viewAsMbox.d.ts.map +0 -0
  113. package/lib/outline/viewAsMbox.js +0 -0
  114. package/lib/outline/viewAsMbox.js.map +0 -0
  115. package/lib/pad/padPane.d.ts +0 -0
  116. package/lib/pad/padPane.d.ts.map +1 -1
  117. package/lib/pad/padPane.js +6 -4
  118. package/lib/pad/padPane.js.map +1 -1
  119. package/lib/playlist/playlistPane.js +0 -0
  120. package/lib/playlist/playlistPane.js.map +0 -0
  121. package/lib/profile/editProfile.view.d.ts +0 -0
  122. package/lib/profile/editProfile.view.d.ts.map +1 -1
  123. package/lib/profile/editProfile.view.js +3 -3
  124. package/lib/profile/editProfile.view.js.map +1 -1
  125. package/lib/profile/profile.dom.d.ts +0 -0
  126. package/lib/profile/profile.dom.d.ts.map +0 -0
  127. package/lib/profile/profile.dom.js +0 -0
  128. package/lib/profile/profile.dom.js.map +0 -0
  129. package/lib/registerPanes.js +0 -0
  130. package/lib/registerPanes.js.map +0 -0
  131. package/lib/schedule/formsForSchedule.js +0 -0
  132. package/lib/schedule/formsForSchedule.js.map +0 -0
  133. package/lib/schedule/schedulePane.js +26 -14
  134. package/lib/schedule/schedulePane.js.map +1 -1
  135. package/lib/sharing/sharingPane.d.ts +0 -0
  136. package/lib/sharing/sharingPane.d.ts.map +0 -0
  137. package/lib/sharing/sharingPane.js +0 -0
  138. package/lib/sharing/sharingPane.js.map +0 -0
  139. package/lib/slideshow/slideshowPane.js +0 -0
  140. package/lib/slideshow/slideshowPane.js.map +0 -0
  141. package/lib/socialPane.js +16 -6
  142. package/lib/socialPane.js.map +1 -1
  143. package/lib/tabbed/tabbedPane.d.ts +0 -0
  144. package/lib/tabbed/tabbedPane.d.ts.map +0 -0
  145. package/lib/tabbed/tabbedPane.js +0 -0
  146. package/lib/tabbed/tabbedPane.js.map +0 -0
  147. package/lib/tableViewPane.js +0 -0
  148. package/lib/tableViewPane.js.map +0 -0
  149. package/lib/test-import-export/common.js +0 -0
  150. package/lib/test-import-export/common.js.map +0 -0
  151. package/lib/test-import-export/edit-importer.js +0 -0
  152. package/lib/test-import-export/edit-importer.js.map +0 -0
  153. package/lib/test-import-export/testImportExport.js +0 -0
  154. package/lib/test-import-export/testImportExport.js.map +0 -0
  155. package/lib/transaction/pane.js +1 -1
  156. package/lib/transaction/pane.js.map +1 -1
  157. package/lib/transaction/period.js +1 -1
  158. package/lib/transaction/period.js.map +1 -1
  159. package/lib/trip/tripPane.js +1 -1
  160. package/lib/trip/tripPane.js.map +1 -1
  161. package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
  162. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +1 -1
  163. package/lib/trustedApplications/trustedApplications.dom.js +11 -9
  164. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  165. package/lib/trustedApplications/trustedApplications.test.js +0 -0
  166. package/lib/trustedApplications/trustedApplications.test.js.map +0 -0
  167. package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
  168. package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  169. package/lib/trustedApplications/trustedApplications.utils.js +0 -0
  170. package/lib/trustedApplications/trustedApplications.utils.js.map +0 -0
  171. package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
  172. package/lib/trustedApplications/trustedApplications.view.d.ts.map +1 -1
  173. package/lib/trustedApplications/trustedApplications.view.js +5 -3
  174. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  175. package/lib/types.d.ts +0 -0
  176. package/lib/types.d.ts.map +0 -0
  177. package/lib/types.js +0 -0
  178. package/lib/types.js.map +0 -0
  179. package/lib/ui/pane.js +0 -0
  180. package/lib/ui/pane.js.map +0 -0
  181. package/lib/versionInfo.d.ts +0 -0
  182. package/lib/versionInfo.d.ts.map +0 -0
  183. package/lib/versionInfo.js +13 -13
  184. package/lib/versionInfo.js.map +1 -1
  185. package/lib/video/videoPane.js +0 -0
  186. package/lib/video/videoPane.js.map +0 -0
  187. package/package.json +15 -15
  188. package/src/RDFXMLPane.js +0 -0
  189. package/src/argument/argumentPane.js +5 -5
  190. package/src/argument/argument_icon_v04.jpg +0 -0
  191. package/src/argument/icon_argument.png +0 -0
  192. package/src/argument/transparentyingyang.png +0 -0
  193. package/src/attach/attachPane.js +0 -0
  194. package/src/attach/tbl-paperclip-128.png +0 -0
  195. package/src/attach/tbl-paperclip-22.png +0 -0
  196. package/src/attach/tbl-paperclip-22a.png +0 -0
  197. package/src/audio/audioPane.js +0 -0
  198. package/src/chatPreferencesForm.ttl +0 -0
  199. package/src/classInstancePane.js +0 -0
  200. package/src/dashboard/basicPreferences.ts +4 -5
  201. package/src/dashboard/dashboardPane.ts +4 -3
  202. package/src/dashboard/homepage.ts +0 -0
  203. package/src/dashboard/languages/codes.html +0 -0
  204. package/src/dashboard/languages/codes.xml +0 -0
  205. package/src/dashboard/languages/codes2.txt +0 -0
  206. package/src/dashboard/languages/foo +0 -0
  207. package/src/dashboard/languages/foo.ttl +0 -0
  208. package/src/dashboard/languages/get-language-names.sh +0 -0
  209. package/src/dashboard/ontologyData.ttl +0 -0
  210. package/src/dashboard/preferencesFormText.ttl +0 -0
  211. package/src/dataContentPane.js +1 -1
  212. package/src/defaultPane.js +0 -0
  213. package/src/dokieli/Makefile +0 -0
  214. package/src/dokieli/dokieliPane.js +0 -0
  215. package/src/dokieli/new.html +0 -0
  216. package/src/dokieli/new.js +0 -0
  217. package/src/form/form-22.png +0 -0
  218. package/src/form/form-b-22.png +0 -0
  219. package/src/form/form.graffle +0 -0
  220. package/src/form/form.png +0 -0
  221. package/src/form/pane.js +5 -4
  222. package/src/form/psuedocode-notes.txt +0 -0
  223. package/src/global.d.ts +0 -0
  224. package/src/home/homePane.ts +7 -6
  225. package/src/humanReadablePane.js +0 -0
  226. package/src/imagePane.js +0 -0
  227. package/src/index.ts +24 -18
  228. package/src/internal/internalPane.ts +0 -0
  229. package/src/mainPage/footer.ts +0 -0
  230. package/src/mainPage/header.ts +3 -2
  231. package/src/mainPage/index.ts +0 -0
  232. package/src/meeting/Makefile +0 -0
  233. package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
  234. package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
  235. package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
  236. package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
  237. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
  238. package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
  239. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
  240. package/src/meeting/test/meeting1/Schedule/index.html +0 -0
  241. package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
  242. package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
  243. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
  244. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
  245. package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
  246. package/src/meeting/test/meeting1/details.ttl +0 -0
  247. package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
  248. package/src/microblogPane/mbStyle.css +0 -0
  249. package/src/microblogPane/microblogPane.js +9 -8
  250. package/src/n3Pane.js +0 -0
  251. package/src/outline/context.ts +0 -0
  252. package/src/outline/dragDrop.js +5 -4
  253. package/src/outline/licenseOptions.js +4 -5
  254. package/src/outline/manager.js +22 -21
  255. package/src/outline/manager.test.ts +0 -0
  256. package/src/outline/outlineIcons.js +0 -0
  257. package/src/outline/propertyViews.test.ts +0 -0
  258. package/src/outline/propertyViews.ts +0 -0
  259. package/src/outline/queryByExample.js +4 -4
  260. package/src/outline/userInput.js +72 -72
  261. package/src/outline/viewAsImage.ts +0 -0
  262. package/src/outline/viewAsMbox.ts +0 -0
  263. package/src/pad/images/ColourOff.ai +0 -0
  264. package/src/pad/images/ColourOff.png +0 -0
  265. package/src/pad/images/ColourOn.ai +0 -0
  266. package/src/pad/images/ColourOn.png +0 -0
  267. package/src/pad/padPane.ts +3 -3
  268. package/src/playlist/playlistPane.js +0 -0
  269. package/src/profile/editProfile.view.ts +5 -8
  270. package/src/profile/profile.dom.ts +0 -0
  271. package/src/profile/profileFormText.ttl +0 -0
  272. package/src/registerPanes.js +0 -0
  273. package/src/schedule/Makefile +0 -0
  274. package/src/schedule/formsForSchedule.js +0 -0
  275. package/src/schedule/formsForSchedule.ttl +0 -0
  276. package/src/schedule/schedulePane.js +14 -13
  277. package/src/sharing/sharingPane.ts +0 -0
  278. package/src/slideshow/slideshowPane.js +0 -0
  279. package/src/socialPane.js +5 -4
  280. package/src/style/tabbedtab.css +0 -0
  281. package/src/tabbed/tabbedPane.ts +0 -0
  282. package/src/tableViewPane.js +0 -0
  283. package/src/test-import-export/common.js +0 -0
  284. package/src/test-import-export/edit-importer.js +0 -0
  285. package/src/test-import-export/testImportExport.js +0 -0
  286. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  287. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  288. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  289. package/src/transaction/pane.js +1 -1
  290. package/src/transaction/period.js +1 -1
  291. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  292. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  293. package/src/trip/tripPane.js +1 -1
  294. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
  295. package/src/trustedApplications/trustedApplications.dom.ts +2 -1
  296. package/src/trustedApplications/trustedApplications.test.ts +0 -0
  297. package/src/trustedApplications/trustedApplications.utils.ts +0 -0
  298. package/src/trustedApplications/trustedApplications.view.ts +4 -4
  299. package/src/types.ts +0 -0
  300. package/src/ui/22-builder.png +0 -0
  301. package/src/ui/builder.graffle +0 -0
  302. package/src/ui/builder.png +0 -0
  303. package/src/ui/builder2.png +0 -0
  304. package/src/ui/pane.js +0 -0
  305. package/src/versionInfo.ts +13 -13
  306. package/src/video/videoPane.js +0 -0
  307. package/timestamp.sh +0 -0
  308. package/travis/bumpversion.js +0 -0
  309. package/tsconfig.json +0 -0
  310. package/typings/raw-loader.d.ts +0 -0
  311. package/typings/solid-namespace/index.d.ts +0 -0
  312. package/webpack.config.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/socialPane.js"],"names":["UI","require","$rdf","module","exports","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","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","keepThisCodeForLaterButDisableFerossConstantConditionPolice","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r","r2","lastIndexOf","slice","t","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"mappings":"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","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\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\n\nmodule.exports = {\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 = UI.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.authn.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"],"file":"socialPane.js"}
1
+ {"version":3,"sources":["../src/socialPane.js"],"names":["module","exports","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","$rdf","keepThisCodeForLaterButDisableFerossConstantConditionPolice","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r","r2","lastIndexOf","slice","t","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"mappings":"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","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'\nimport * as $rdf from 'rdflib'\n\nmodule.exports = {\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"],"file":"socialPane.js"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -60,7 +60,7 @@ module.exports = {
60
60
 
61
61
  var plist = kb.statementsMatching(subject);
62
62
  var qlist = kb.statementsMatching(undefined, undefined, subject);
63
- var t = kb.findTypeURIs(subject); // var me = UI.authn.currentUser()
63
+ var t = kb.findTypeURIs(subject); // var me = authn.currentUser()
64
64
 
65
65
  var predicateURIsDone = {};
66
66
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transaction/pane.js"],"names":["UI","require","$rdf","ns","module","exports","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","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"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,EAAE,GAAGC,OAAO,CAAC,UAAD,CAAlB;;AACA,IAAMC,IAAI,GAAGD,OAAO,CAAC,QAAD,CAApB;;AACA,IAAME,EAAE,GAAGH,EAAE,CAACG,EAAd;AAEAC,MAAM,CAACC,OAAP,GAAiB;AACf;AACAC,EAAAA,IAAI,EAAEN,EAAE,CAACO,KAAH,CAASC,QAAT,GAAoB,iBAFX;AAIfC,EAAAA,IAAI,EAAE,aAJS;AAMfC,EAAAA,QAAQ,EAAE,CAACP,EAAE,CAACQ,KAAH,CAAS,WAAT,CAAD,CANK;AAQf;AACAC,EAAAA,KAAK,EAAE,eAAUC,OAAV,EAAmBC,OAAnB,EAA4B;AACjC,QAAMC,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AACA,QAAMC,CAAC,GAAGH,EAAE,CAACI,YAAH,CAAgBN,OAAhB,CAAV;AACA,QAAIK,CAAC,CAAC,oDAAD,CAAL,EAA6D,OAAO,IAAP;AAC7D,QAAIH,EAAE,CAACK,GAAH,CAAOP,OAAP,EAAgBb,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,QAAT,CAAhB,CAAJ,EAAyC,OAAO,KAAP,CAJR,CAIqB;AAEtD;;AAEA,QAAIH,CAAC,CAAC,oCAAD,CAAL,EAA6C,OAAO,QAAP;AAE7C,WAAO,IAAP,CAViC,CAUrB;AACb,GApBc;AAsBfI,EAAAA,MAAM,EAAE,gBAAUT,OAAV,EAAmBC,OAAnB,EAA4B;AAClC,QAAMS,GAAG,GAAGT,OAAO,CAACS,GAApB;AACA,QAAMR,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AACA,QAAMO,OAAO,GAAGT,EAAE,CAACS,OAAnB;AACA,QAAMC,CAAC,GAAGvB,IAAI,CAACwB,SAAL,CAAe,yCAAf,CAAV;AACA,QAAMC,IAAI,GAAGzB,IAAI,CAACwB,SAAL,CAAe,gCAAf,CAAb;AAEA,QAAME,GAAG,GAAGL,GAAG,CAACM,aAAJ,CAAkB,KAAlB,CAAZ;AACAD,IAAAA,GAAG,CAACE,YAAJ,CAAiB,OAAjB,EAA0B,iBAA1B;;AAEA,QAAMC,OAAO,GAAG,SAASA,OAAT,CAAkBC,OAAlB,EAA2BC,KAA3B,EAAkC;AAChD,UAAIA,KAAK,KAAKC,SAAd,EAAyBD,KAAK,GAAG,aAAR;AACzB,UAAME,GAAG,GAAGZ,GAAG,CAACM,aAAJ,CAAkB,KAAlB,CAAZ;AACAM,MAAAA,GAAG,CAACL,YAAJ,CAAiB,OAAjB,EAA0BG,KAA1B;AACAL,MAAAA,GAAG,CAACQ,WAAJ,CAAgBD,GAAhB;AACAA,MAAAA,GAAG,CAACC,WAAJ,CAAgBb,GAAG,CAACc,cAAJ,CAAmBL,OAAnB,CAAhB;AACD,KAND;;AAOA,QAAMM,QAAQ,GAAG,SAASA,QAAT,CAAmBN,OAAnB,EAA4B;AAC3C,aAAOD,OAAO,CAACC,OAAD,EAAU,qCAAV,CAAd;AACD,KAFD;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI;;;AAEA,QAAMO,KAAK,GAAGxB,EAAE,CAACyB,kBAAH,CAAsB3B,OAAtB,CAAd;AACA,QAAM4B,KAAK,GAAG1B,EAAE,CAACyB,kBAAH,CAAsBN,SAAtB,EAAiCA,SAAjC,EAA4CrB,OAA5C,CAAd;AAEA,QAAMK,CAAC,GAAGH,EAAE,CAACI,YAAH,CAAgBN,OAAhB,CAAV,CAlCkC,CAoClC;;AACA,QAAM6B,iBAAiB,GAAG,EAA1B;;AACA,QAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,IAAV,EAAgB;AACpCF,MAAAA,iBAAiB,CAACE,IAAI,CAACC,GAAN,CAAjB,GAA8B,IAA9B;AACD,KAFD;;AAIA,QAAMC,YAAY,GAAG,SAAfA,YAAe,CAAUC,OAAV,EAAmB;AACtC,UAAIC,OAAO,GAAG,kCAAd;;AACA,UAAID,OAAJ,EAAa;AACX,YAAME,eAAe,GAAGlC,EAAE,CAACK,GAAH,CAAO2B,OAAP,EAAgB/C,EAAE,CAACG,EAAH,CAAM+C,EAAN,CAAS,iBAAT,CAAhB,CAAxB;;AACA,YAAID,eAAJ,EAAqB;AACnBD,UAAAA,OAAO,IAAI,uBAAuBC,eAAe,CAACE,KAAvC,GAA+C,IAA1D;AACD;AACF;;AACDvB,MAAAA,GAAG,CAACE,YAAJ,CAAiB,OAAjB,EAA0BkB,OAA1B;AACD,KATD,CA1CkC,CAoDlC;AAEA;AACA;AACA;;;AAEA,QAAMI,EAAE,GAAG,SAALA,EAAK,CAAUC,CAAV,EAAa;AACtB,UAAIA,CAAC,KAAKnB,SAAV,EAAqB,OAAO,EAAP;AACrB,UAAMoB,CAAC,GAAG,KAAKD,CAAf;;AACA,UAAIC,CAAC,CAACC,OAAF,CAAU,GAAV,KAAkB,CAAtB,EAAyB;AACvB,eAAOD,CAAC,CAACE,KAAF,CAAQ,GAAR,EAAa,CAAb,IAAkB,GAAlB,GAAwB,CAACF,CAAC,CAACE,KAAF,CAAQ,GAAR,EAAa,CAAb,IAAkB,IAAnB,EAAyBC,KAAzB,CAA+B,CAA/B,EAAkC,CAAlC,CAA/B;AACD;;AACD,aAAOH,CAAC,GAAG,KAAX;AACD,KAPD;;AASA,QAAMI,WAAW,GAAG,SAASA,WAAT,CAAsBC,MAAtB,EAA8BC,YAA9B,EAA4C;AAC9D,UAAMC,EAAE,GAAGtC,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAX;;AACA,UAAI,EAAE,MAAM8B,MAAN,KAAiB,GAAjB,IAAwBC,YAA1B,CAAJ,EAA6C;AAC3CC,QAAAA,EAAE,CAACC,WAAH,GAAiBV,EAAE,CAACO,MAAD,CAAnB;AACD;;AACDE,MAAAA,EAAE,CAAC/B,YAAH,CAAgB,OAAhB,EAAyB,iCAAzB;AACA,aAAO+B,EAAP;AACD,KAPD;;AASA,QAAME,UAAU,GAAG,SAASA,UAAT,CAAqBC,GAArB,EAA0B;AAC3C,UAAMH,EAAE,GAAGtC,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAX;AACAgC,MAAAA,EAAE,CAACC,WAAH,GAAiBE,GAAjB;AACAH,MAAAA,EAAE,CAAC/B,YAAH,CAAgB,OAAhB,EAAyB,qBAAzB;AACA,aAAO+B,EAAP;AACD,KALD;;AAOA,QAAMI,UAAU,GAAG,SAAbA,UAAa,CAAUC,CAAV,EAAaC,CAAb,EAAgB;AACjC,UAAMC,EAAE,GAAGrD,EAAE,CAACK,GAAH,CAAO8C,CAAP,EAAU/D,EAAE,CAACkB,EAAH,CAAM,MAAN,CAAV,CAAX;AACA,UAAMgD,EAAE,GAAGtD,EAAE,CAACK,GAAH,CAAO+C,CAAP,EAAUhE,EAAE,CAACkB,EAAH,CAAM,MAAN,CAAV,CAAX;;AACA,UAAI+C,EAAE,KAAKlC,SAAP,IAAoBmC,EAAE,KAAKnC,SAA/B,EAA0C;AACxC,YAAIkC,EAAE,CAACjB,KAAH,GAAWkB,EAAE,CAAClB,KAAlB,EAAyB,OAAO,CAAC,CAAR;AACzB,YAAIiB,EAAE,CAACjB,KAAH,GAAWkB,EAAE,CAAClB,KAAlB,EAAyB,OAAO,CAAP;AAC1B;;AACD,UAAIe,CAAC,CAACrB,GAAF,GAAQsB,CAAC,CAACtB,GAAd,EAAmB,OAAO,CAAC,CAAR,CAPc,CAOJ;;AAC7B,UAAIqB,CAAC,CAACrB,GAAF,GAAQsB,CAAC,CAACtB,GAAd,EAAmB,OAAO,CAAP;AACnB,aAAO,CAAP;AACD,KAVD;;AAYA,QAAMyB,YAAY,GAAG,SAAfA,YAAe,CAAUxD,OAAV,EAAmBD,OAAnB,EAA4B0D,QAA5B,EAAsC;AACzD,UAAMC,CAAC,GAAG1D,OAAO,CAACE,OAAR,CAAgByD,YAAhB,CAA6BC,MAA7B,CAAoCH,QAApC,CAAV;AACA,UAAMI,CAAC,GAAGH,CAAC,CAAClD,MAAF,CAAST,OAAT,EAAkBC,OAAlB,CAAV;AACA6D,MAAAA,CAAC,CAAC7C,YAAF,CAAe,OAAf,EAAwB,4BAAxB;AACA,aAAO6C,CAAP;AACD,KALD;;AAOA,QAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAUrD,GAAV,EAAesD,GAAf,EAAoBhE,OAApB,EAA6B0D,QAA7B,EAAuCO,IAAvC,EAA6C;AAClE,UAAMC,QAAQ,GAAGF,GAAG,CAACG,UAAJ,CAAeC,QAAhC;;AACA,UAAIH,IAAJ,EAAU;AACR,aAAK,IAAII,CAAC,GAAGH,QAAQ,CAACI,MAAT,GAAkB,CAA/B,EAAkCD,CAAC,IAAI,CAAvC,EAA0CA,CAAC,EAA3C,EAA+C;AAC7C,cAAIH,QAAQ,CAACG,CAAD,CAAR,CAAYE,QAAhB,EAA0B;AACxBL,YAAAA,QAAQ,CAACG,CAAD,CAAR,CAAYF,UAAZ,CAAuBK,WAAvB,CAAmCN,QAAQ,CAACG,CAAD,CAAR,CAAYE,QAA/C;AACAL,YAAAA,QAAQ,CAACG,CAAD,CAAR,CAAYE,QAAZ,GAAuB,KAAvB;AACD;AACF;AACF;;AACD,UAAME,EAAE,GAAG/D,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAX;AACA,UAAMgC,EAAE,GAAGyB,EAAE,CAAClD,WAAH,CAAeb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAf,CAAX;AACAgC,MAAAA,EAAE,CAAC/B,YAAH,CACE,OADF,EAEE,qDAFF;AAIA,UAAMyD,IAAI,GAAGV,GAAG,CAACI,QAAJ,CAAaE,MAA1B;;AACA,UAAIN,GAAG,CAACW,WAAR,EAAqB;AACnBX,QAAAA,GAAG,CAACG,UAAJ,CAAeS,YAAf,CAA4BH,EAA5B,EAAgCT,GAAG,CAACW,WAApC;AACD,OAFD,MAEO;AACLX,QAAAA,GAAG,CAACG,UAAJ,CAAe5C,WAAf,CAA2BkD,EAA3B;AACD;;AACDT,MAAAA,GAAG,CAACO,QAAJ,GAAeE,EAAf;AACAzB,MAAAA,EAAE,CAAC/B,YAAH,CAAgB,SAAhB,EAA2B,KAAKyD,IAAhC;AACA1B,MAAAA,EAAE,CAACzB,WAAH,CAAekC,YAAY,CAACxD,OAAD,EAAUD,OAAV,EAAmB0D,QAAnB,CAA3B;AACD,KAzBD;;AA2BA,QAAMmB,wBAAwB,GAAG,SAA3BA,wBAA2B,CAC/BnE,GAD+B,EAE/BsD,GAF+B,EAG/BhE,OAH+B,EAI/B0D,QAJ+B,EAK/BO,IAL+B,EAM/B;AACA,UAAID,GAAG,CAACO,QAAR,EAAkB;AAChBP,QAAAA,GAAG,CAACG,UAAJ,CAAeK,WAAf,CAA2BR,GAAG,CAACO,QAA/B;AACAP,QAAAA,GAAG,CAACO,QAAJ,GAAe,KAAf;AACD,OAHD,MAGO;AACLR,QAAAA,cAAc,CAACrD,GAAD,EAAMsD,GAAN,EAAWhE,OAAX,EAAoB0D,QAApB,EAA8BO,IAA9B,CAAd;AACD;AACF,KAbD;;AAeA,QAAMa,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAUpE,GAAV,EAAeqE,IAAf,EAAqBC,MAArB,EAA6B;AACpD,UAAMC,KAAK,GAAGvE,GAAG,CAACM,aAAJ,CAAkB,OAAlB,CAAd;AACAiE,MAAAA,KAAK,CAAChE,YAAN,CACE,OADF,EAEE,wEAFF;;AAIA,UAAMiE,cAAc,GAAG,SAAjBA,cAAiB,CAAUxE,GAAV,EAAe2C,CAAf,EAAkB;AACvC,YAAMoB,EAAE,GAAG/D,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAX;;AAEA,YAAMmE,UAAU,GAAG,SAAbA,UAAa,CAAUV,EAAV,EAAcvC,OAAd,EAAuB;AACxC;AACA,cAAIC,OAAO,GACT,iEADF;;AAEA,cAAID,OAAJ,EAAa;AACX,gBAAME,eAAe,GAAGlC,EAAE,CAACK,GAAH,CAAO2B,OAAP,EAAgB/C,EAAE,CAACG,EAAH,CAAM+C,EAAN,CAAS,iBAAT,CAAhB,CAAxB;;AACA,gBAAID,eAAJ,EAAqB;AACnBD,cAAAA,OAAO,IAAI,uBAAuBC,eAAe,CAACE,KAAvC,GAA+C,IAA1D;AACD;AACF;;AACDmC,UAAAA,EAAE,CAACxD,YAAH,CAAgB,OAAhB,EAAyBkB,OAAzB;AACD,SAXD;;AAaA,YAAMD,OAAO,GAAGhC,EAAE,CAACK,GAAH,CAAO8C,CAAP,EAAU/D,EAAE,CAACkB,EAAH,CAAM,WAAN,CAAV,CAAhB;AACA2E,QAAAA,UAAU,CAACV,EAAD,EAAKvC,OAAL,CAAV;AAEA,YAAMkD,EAAE,GAAGX,EAAE,CAAClD,WAAH,CAAeb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAf,CAAX;AACA,YAAMqE,IAAI,GAAGnF,EAAE,CAACK,GAAH,CAAO8C,CAAP,EAAU/D,EAAE,CAACkB,EAAH,CAAM,MAAN,CAAV,CAAb;AACA4E,QAAAA,EAAE,CAACnC,WAAH,GAAiBoC,IAAI,GAAGA,IAAI,CAAC/C,KAAL,CAAWM,KAAX,CAAiB,CAAjB,EAAoB,EAApB,CAAH,GAA6B,KAAlD;AACAwC,QAAAA,EAAE,CAACnE,YAAH,CAAgB,OAAhB,EAAyB,aAAzB;AAEA,YAAMqE,EAAE,GAAGb,EAAE,CAAClD,WAAH,CAAeb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAf,CAAX;AACAsE,QAAAA,EAAE,CAACrE,YAAH,CAAgB,OAAhB,EAAyB,cAAzB;AACA,YAAMsE,KAAK,GAAGrF,EAAE,CAACK,GAAH,CAAO8C,CAAP,EAAU/D,EAAE,CAACkB,EAAH,CAAM,OAAN,CAAV,CAAd;AACA8E,QAAAA,EAAE,CAACrC,WAAH,GAAiBsC,KAAK,GAAGA,KAAK,CAACjD,KAAT,GAAiB,KAAvC;AACA,YAAMkD,EAAE,GAAGF,EAAE,CAAC/D,WAAH,CAAeb,GAAG,CAACM,aAAJ,CAAkB,GAAlB,CAAf,CAAX;AACAwE,QAAAA,EAAE,CAACvC,WAAH,GAAiB,IAAjB;AACAuC,QAAAA,EAAE,CAACvE,YAAH,CAAgB,MAAhB,EAAwBoC,CAAC,CAACrB,GAA1B;AAEA,YAAMyD,EAAE,GAAGhB,EAAE,CAAClD,WAAH,CAAeb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAf,CAAX;AACA,YAAM8B,MAAM,GAAG5C,EAAE,CAACK,GAAH,CAAO8C,CAAP,EAAU/D,EAAE,CAACkB,EAAH,CAAM,QAAN,CAAV,CAAf;AACAiF,QAAAA,EAAE,CAACxC,WAAH,GAAiBH,MAAM,GAAGP,EAAE,CAACO,MAAM,CAACR,KAAR,CAAL,GAAsB,KAA7C;AACAmD,QAAAA,EAAE,CAACxE,YAAH,CAAgB,OAAhB,EAAyB,iCAAzB,EAnCuC,CAmCqB;;AAC5DwD,QAAAA,EAAE,CAACiB,gBAAH,CACE,OADF,EAEE,UAAUC,CAAV,EAAa;AACX;AACAd,UAAAA,wBAAwB,CAACnE,GAAD,EAAM+D,EAAN,EAAUpB,CAAV,EAAa,aAAb,EAA4B,CAACsC,CAAC,CAACC,QAA/B,CAAxB;AACD,SALH,EAME,KANF;AASA,eAAOnB,EAAP;AACD,OA9CD;;AAgDA,UAAMoB,KAAK,GAAGb,MAAM,GAAGD,IAAI,CAACC,MAAL,CAAYA,MAAZ,CAAH,GAAyBD,IAAI,CAACnC,KAAL,EAA7C,CAtDoD,CAsDM;;AAC1DiD,MAAAA,KAAK,CAACC,IAAN,CAAW1C,UAAX;;AAEA,WAAK,IAAI2C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACvB,MAA1B,EAAkCyB,CAAC,EAAnC,EAAuC;AACrCd,QAAAA,KAAK,CAAC1D,WAAN,CAAkB2D,cAAc,CAACxE,GAAD,EAAMmF,KAAK,CAACE,CAAD,CAAX,CAAhC;AACD;;AACD,aAAOd,KAAP;AACD,KA7DD,CAhJkC,CA+MlC;AAEA;AACA;;;AACA,QACE5E,CAAC,CAAC,oDAAD,CAAD,IACAH,EAAE,CAACK,GAAH,CAAOP,OAAP,EAAgBV,EAAE,CAACkB,EAAH,CAAM,WAAN,CAAhB,CAFF,EAGE;AACA;AACAsB,MAAAA,aAAa,CAACxC,EAAE,CAAC0G,GAAH,CAAO,MAAP,CAAD,CAAb;AAEA,UAAM9D,OAAO,GAAGhC,EAAE,CAACK,GAAH,CAAOP,OAAP,EAAgBb,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,WAAT,CAAhB,CAAhB;AACAyB,MAAAA,YAAY,CAACC,OAAD,CAAZ;;AACA,UAAI,CAACA,OAAL,EAAc;AACZT,QAAAA,QAAQ,CACN,kEACEzB,OAAO,CAACgC,GADV,GAEE,uCAHI,CAAR;AAKD;;AAED,UAAI5B,KAAK,GAAG,IAAZ;AACA,UAAM6F,SAAS,GAAG/F,EAAE,CAACK,GAAH,CAAOP,OAAP,EAAgBb,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,aAAT,CAAhB,CAAlB;;AACA,UAAIyF,SAAS,KAAK5E,SAAlB,EAA6B;AAC3BI,QAAAA,QAAQ,CACN,sFACEzB,OAAO,CAACgC,GADV,GAEE,0CAHI,CAAR;AAKD,OAND,MAMO;AACL5B,QAAAA,KAAK,GACH6F,SAAS,KAAK5E,SAAd,GACInB,EAAE,CAACK,GAAH,CAAO0F,SAAP,EAAkB9G,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,iBAAT,CAAlB,CADJ,GAEI,IAHN;;AAIA,YAAIJ,KAAK,KAAKiB,SAAd,EAAyB;AACvBI,UAAAA,QAAQ,CACN,2DACEwE,SAAS,CAACjE,GADZ,GAEE,+CAHI,CAAR;AAKD;AACF;;AAED,UAAMkE,GAAG,GAAGxF,GAAG,CAACM,aAAJ,CAAkB,KAAlB,CAAZ;AACAkF,MAAAA,GAAG,CAACjF,YAAJ,CAAiB,OAAjB,EAA0B,aAA1B;AACAF,MAAAA,GAAG,CAACQ,WAAJ,CAAgB2E,GAAhB;;AAEA,UAAMC,OAAO,GAAG,SAAVA,OAAU,CAAUpE,IAAV,EAAgBhC,KAAhB,EAAuB;AACrC+B,QAAAA,aAAa,CAACC,IAAD,CAAb;AACA,YAAMqE,GAAG,GAAGlG,EAAE,CAACK,GAAH,CAAOP,OAAP,EAAgB+B,IAAhB,CAAZ;AACA,YAAI,CAACqE,GAAL,EAAU;AACV,YAAMC,CAAC,GAAG3F,GAAG,CAACM,aAAJ,CAAkB,GAAlB,CAAV;AACAqF,QAAAA,CAAC,CAACpF,YAAF,CAAe,MAAf,EAAuBmF,GAAG,CAACpE,GAA3B;AACAqE,QAAAA,CAAC,CAACpF,YAAF,CAAe,OAAf,EAAwB,aAAxB;AACAiF,QAAAA,GAAG,CAAC3E,WAAJ,CAAgB8E,CAAhB,EAAmBpD,WAAnB,GAAiClD,KAAK,IAAIZ,EAAE,CAACmH,KAAH,CAASvG,KAAT,CAAeqG,GAAf,CAA1C;AACAF,QAAAA,GAAG,CAAC3E,WAAJ,CAAgBb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB;AACD,OATD;;AAWAmF,MAAAA,OAAO,CAAChH,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,WAAT,CAAD,CAAP;AACA2F,MAAAA,OAAO,CAAChH,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,aAAT,CAAD,EAA0B,WAA1B,CAAP;AACA2F,MAAAA,OAAO,CAACrF,IAAI,CAAC,MAAD,CAAL,CAAP,CArDA,CAuDA;;AACA,UAAMmE,KAAK,GAAGvE,GAAG,CAACM,aAAJ,CAAkB,OAAlB,CAAd;AACAD,MAAAA,GAAG,CAACQ,WAAJ,CAAgB0D,KAAhB;AACA,UAAMsB,KAAK,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,QAAlB,EAA4B,QAA5B,EAAsC,UAAtC,EAAkDC,GAAlD,CAAsD5F,CAAtD,CAAd;AACA,UAAM6F,KAAK,GAAGF,KAAK,CAChBC,GADW,CACP,UAAU7C,CAAV,EAAa;AAChB7B,QAAAA,aAAa,CAAC6B,CAAD,CAAb;AACA,YAAMrB,KAAK,GAAGpC,EAAE,CAACK,GAAH,CAAOP,OAAP,EAAgB2D,CAAhB,CAAd;AACA,YAAMlB,CAAC,GAAGH,KAAK,GAAGnD,EAAE,CAACmH,KAAH,CAASI,WAAT,CAAqBpE,KAArB,CAAH,GAAiC,EAAhD;AACA,eACE,6DACAnD,EAAE,CAACmH,KAAH,CAASI,WAAT,CAAqB/C,CAArB,CADA,GAEA,sCAFA,GAGAlB,CAHA,GAIA,YALF;AAOD,OAZW,EAaXkE,IAbW,CAaN,IAbM,CAAd;AAcA1B,MAAAA,KAAK,CAAC2B,SAAN,GAAkBH,KAAlB;;AAEA,UAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,EAAV,EAAcC,IAAd,EAAoB;AACxC,YAAID,EAAJ,EAAQ,CACN;AACA;AACD,SAHD,MAGOrF,QAAQ,CAAC,yCAAyCsF,IAA1C,CAAR;AACR,OALD,CA3EA,CAkFA;AAEA;;;AACA,UAAI3G,KAAJ,EAAW;AACTF,QAAAA,EAAE,CAACS,OAAH,CAAWqG,gBAAX,CAA4B5G,KAAK,CAAC4B,GAAlC,EAAuChC,OAAvC,EAAgD,UAAU8G,EAAV,EAAcC,IAAd,EAAoB;AAClE,cAAI,CAACD,EAAL,EAASrF,QAAQ,CAAC,uBAAuBrB,KAAvB,GAA+B,GAA/B,GAAqC2G,IAAtC,CAAR;AAET,cAAME,YAAY,GAAG/G,EAAE,CAACK,GAAH,CAAOH,KAAP,EAAcd,EAAE,CAACkB,EAAH,CAAM,cAAN,CAAd,CAArB;;AAEA,cAAM0G,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAY;AACzCnG,YAAAA,GAAG,CAAC6D,YAAJ,CACEzF,EAAE,CAACgI,OAAH,CAAWC,2BAAX,CACE1G,GADF,EAEER,EAFF,EAGEF,OAHF,EAIEb,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,YAAT,CAJF,EAKEJ,KALF,EAMEyG,aANF,CADF,EASE5B,KAAK,CAACN,WATR;AAWD,WAZD;;AAcA,cAAIzE,EAAE,CAACK,GAAH,CAAOc,SAAP,EAAkB/B,EAAE,CAAC+H,IAAH,CAAQ,YAAR,CAAlB,EAAyC/H,EAAE,CAACkB,EAAH,CAAM8G,UAA/C,CAAJ,EAAgE;AAC9DJ,YAAAA,sBAAsB;AACvB,WAFD,MAEO,IAAID,YAAJ,EAAkB;AACvBtG,YAAAA,OAAO,CACJ4G,IADH,CACQN,YADR,EAEGO,IAFH,CAEQ,UAAUC,KAAV,EAAiB;AACrB9G,cAAAA,OAAO,CACJ4G,IADH,CACQrH,EAAE,CAACwH,IAAH,CAAQT,YAAR,EAAsB3H,EAAE,CAAC+H,IAAH,CAAQ,SAAR,CAAtB,CADR,EAEGG,IAFH,CAEQ,YAAY;AAChBN,gBAAAA,sBAAsB;AACvB,eAJH,WAKS,UAAUvB,CAAV,EAAa;AAClBgC,gBAAAA,OAAO,CAACC,GAAR,CAAY,oCAAoCjC,CAAhD;AACD,eAPH;AAQD,aAXH,WAYS,UAAUA,CAAV,EAAa;AAClBgC,cAAAA,OAAO,CAACC,GAAR,CAAY,iCAAiCjC,CAA7C;AACD,aAdH;AAeD,WAhBM,MAgBA;AACLgC,YAAAA,OAAO,CAACC,GAAR,CAAY,+CAAZ;AACD;;AACD7G,UAAAA,GAAG,CAACQ,WAAJ,CACEpC,EAAE,CAACgI,OAAH,CAAWU,eAAX,CACEnH,GADF,EAEER,EAFF,EAGEF,OAHF,EAIEb,EAAE,CAACG,EAAH,CAAM+H,IAAN,CAAW,SAAX,CAJF,EAKEjH,KALF,EAMEyG,aANF,CADF;AAWA,cAAIiB,KAAK,GAAG5H,EAAE,CACXyB,kBADS,CACUN,SADV,EACqBP,IAAI,CAAC,MAAD,CADzB,EACmCO,SADnC,EAC8CjB,KAD9C,EAEToG,GAFS,CAEL,UAAUuB,EAAV,EAAc;AACjB,mBAAOA,EAAE,CAACC,MAAV;AACD,WAJS,CAAZ,CAnDkE,CAuD7D;;AACL,cAAMC,MAAM,GAAG/H,EAAE,CAACwH,IAAH,CAAQrG,SAAR,EAAmBlC,EAAE,CAACG,EAAH,CAAM0G,GAAN,CAAU,MAAV,CAAnB,EAAsClF,IAAI,CAAC,MAAD,CAA1C,CAAf;AACAgH,UAAAA,KAAK,GAAGA,KAAK,CAACI,MAAN,CAAaD,MAAb,EAAqBnC,IAArB,EAAR,CAzDkE,CAyD9B;;AAEpC,cAAMqC,QAAQ,GAAG,SAAXA,QAAW,CAAUjI,EAAV,EAAc6E,IAAd,EAAoBhD,IAApB,EAA0BqG,OAA1B,EAAmC;AAClD,gBAAMC,EAAE,GAAGtD,IAAI,CAACyB,GAAL,CAAS,UAAUnD,CAAV,EAAa;AAC/B,kBAAIiF,GAAG,GAAGpI,EAAE,CAACK,GAAH,CAAO8C,CAAP,EAAUtB,IAAV,CAAV;AACAuG,cAAAA,GAAG,GAAGA,GAAG,GAAGA,GAAG,CAAChG,KAAP,GAAe,YAAxB;AACA,qBAAO,CAACgG,GAAD,EAAMjF,CAAN,CAAP;AACD,aAJU,CAAX;AAKAgF,YAAAA,EAAE,CAACvC,IAAH;AACA,gBAAIsC,OAAJ,EAAaC,EAAE,CAACD,OAAH;AACb,mBAAOC,EAAE,CAAC7B,GAAH,CAAO,UAAU+B,IAAV,EAAgB;AAC5B,qBAAOA,IAAI,CAAC,CAAD,CAAX;AACD,aAFM,CAAP;AAGD,WAXD;;AAaAT,UAAAA,KAAK,GAAGK,QAAQ,CAACjI,EAAD,EAAK4H,KAAL,EAAY3I,EAAE,CAACG,EAAH,CAAMkJ,GAAN,CAAU,SAAV,CAAZ,EAAkC,IAAlC,CAAhB,CAxEkE,CAwEV;;AAExD,cAAIV,KAAK,CAACxD,MAAN,GAAe,CAAnB,EAAsB;AACpBvD,YAAAA,GAAG,CAACQ,WAAJ,CACEpC,EAAE,CAACgI,OAAH,CAAWsB,oBAAX,CACE/H,GADF,EAEER,EAFF,EAGEF,OAHF,EAIEc,IAAI,CAAC,MAAD,CAJN,EAKEgH,KALF,EAME;AACEY,cAAAA,QAAQ,EAAE,KADZ;AAEEC,cAAAA,SAAS,EAAE,kBAFb;AAGEC,cAAAA,IAAI,EAAE,YAHR;AAIEC,cAAAA,SAAS,EAAE/H,IAAI,CAAC,MAAD,CAJjB;AAKEgI,cAAAA,iBAAiB,EAAE,2BAAUC,IAAV,EAAgB;AACjC,oBAAMC,EAAE,GAAG,EAAX;AACAA,gBAAAA,EAAE,CAACC,IAAH,CACE5J,IAAI,CAAC0I,EAAL,CAAQgB,IAAR,EAAc5J,EAAE,CAACG,EAAH,CAAM0G,GAAN,CAAU,MAAV,CAAd,EAAiClF,IAAI,CAAC,MAAD,CAArC,EAA+CiI,IAAI,CAACG,GAAL,EAA/C,CADF;AAGA,uBAAOF,EAAP;AACD;AAXH,aANF,EAmBE5I,KAnBF,EAoBEyG,aApBF,CADF;AAwBD;;AAED9F,UAAAA,GAAG,CAACQ,WAAJ,CAAgBb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB,EArGkE,CAuGlE;;AAEA,cAAMmI,QAAQ,GAAGlJ,OAAO,CAACmJ,WAAR,CAAoB1I,GAApB,CAAjB;AAEAoB,UAAAA,aAAa,CAACxC,EAAE,CAAC+H,IAAH,CAAQ,SAAR,CAAD,CAAb,CA3GkE,CA2GhC;;AAElClI,UAAAA,EAAE,CAACgI,OAAH,CAAWkC,cAAX,CAA0B3I,GAA1B,EAA+BV,OAA/B,EAAwCe,GAAxC;AACAe,UAAAA,aAAa,CAACxC,EAAE,CAACgK,EAAH,CAAM,YAAN,CAAD,CAAb;AAEAvI,UAAAA,GAAG,CACAQ,WADH,CACeb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CADf,EAEGC,YAFH,CAEgB,OAFhB,EAEyB,aAFzB,EAhHkE,CAkH1B;AAExC;;AACAkI,UAAAA,QAAQ,CAACI,iBAAT,CAA2BxI,GAA3B,EAAgCW,KAAhC,EAAuC,KAAvC,EAA8C,UAC5CK,IAD4C,EAE5CyH,QAF4C,EAG5C;AACA,mBAAO,EAAEzH,IAAI,CAACC,GAAL,IAAYH,iBAAd,CAAP;AACD,WALD;AAMAsH,UAAAA,QAAQ,CAACI,iBAAT,CAA2BxI,GAA3B,EAAgCa,KAAhC,EAAuC,IAAvC,EAA6C,UAC3CG,IAD2C,EAE3CyH,QAF2C,EAG3C;AACA,mBAAO,EAAEzH,IAAI,CAACC,GAAL,IAAYH,iBAAd,CAAP;AACD,WALD;AAMD,SAjID,EADS,CAkIN;AACJ,OAxND,CAyNA;AAEA;AACA;AACA;AACA;;AACD,KAlOD,MAkOO,IAAIxB,CAAC,CAAC,oCAAD,CAAL,EAA6C;AAClD;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQM,UAAMoJ,YAAY,GAAG,SAAfA,YAAe,GAAY;AAC/B,YAAMC,KAAK,GAAG,EAAd;AACA,YAAMC,SAAS,GAAG,EAAlB;AACA,YAAMC,iBAAiB,GAAG,EAA1B;AACA,YAAMC,KAAK,GAAG3J,EAAE,CAACwH,IAAH,CAAQrG,SAAR,EAAmBP,IAAI,CAAC,MAAD,CAAvB,EAAiCd,OAAjC,CAAd;AACA,YAAM8J,cAAc,GAAGD,KAAK,CAACrD,GAAN,CAAU,UAAUnG,CAAV,EAAa;AAC5C,iBAAOA,CAAC,CAAC6I,GAAF,EAAP;AACD,SAFsB,CAAvB;AAGAhJ,QAAAA,EAAE,CAACS,OAAH,CACG4G,IADH,CACQuC,cADR,EAEGtC,IAFH,CAEQ,YAAY;AAChBqC,UAAAA,KAAK,CAACE,OAAN,CAAc,UAAU1J,CAAV,EAAa;AACzB,gBAAMgF,IAAI,GAAGnF,EAAE,CAAC8J,GAAH,CAAO3J,CAAP,EAAUf,EAAE,CAACkB,EAAH,CAAM,MAAN,CAAV,CAAb;AACA,gBAAMyJ,IAAI,GAAG5E,IAAI,GAAG,CAAC,KAAKA,IAAI,CAAC/C,KAAX,EAAkBM,KAAlB,CAAwB,CAAxB,EAA2B,CAA3B,CAAH,GAAmC,MAApD;AACA,gBAAIsH,EAAE,GAAGhK,EAAE,CAAC8J,GAAH,CAAO3J,CAAP,EAAUf,EAAE,CAAC0G,GAAH,CAAO,MAAP,CAAV,CAAT,CAHyB,CAGU;AACnC;;AACA,gBAAI,CAACkE,EAAL,EAASA,EAAE,GAAG/K,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,aAAT,CAAL;;AACT,gBAAI0J,EAAE,IAAIA,EAAE,CAAClI,GAAb,EAAkB;AAChB,kBAAMmI,KAAK,GAAGD,EAAE,CAAClI,GAAjB;AACA,kBAAI,CAAC2H,SAAS,CAACM,IAAD,CAAd,EAAsBN,SAAS,CAACM,IAAD,CAAT,GAAkB,GAAlB;AACtB,kBAAI,CAACL,iBAAiB,CAACK,IAAD,CAAtB,EAA8BL,iBAAiB,CAACK,IAAD,CAAjB,GAA0B,EAA1B;AAC9B,kBAAI,CAACP,KAAK,CAACS,KAAD,CAAV,EAAmBT,KAAK,CAACS,KAAD,CAAL,GAAe,GAAf;;AACnB,kBAAI,CAACP,iBAAiB,CAACK,IAAD,CAAjB,CAAwBE,KAAxB,CAAL,EAAqC;AACnCP,gBAAAA,iBAAiB,CAACK,IAAD,CAAjB,CAAwBE,KAAxB,IAAiC,GAAjC;AACD;;AAED,kBAAMC,GAAG,GAAGlK,EAAE,CAACK,GAAH,CAAOF,CAAP,EAAUlB,EAAE,CAACG,EAAH,CAAMkB,EAAN,CAAS,QAAT,CAAV,CAAZ;;AACA,kBAAI,CAAC4J,GAAL,EAAU;AACR3I,gBAAAA,QAAQ,CAAC,0BAA0B2I,GAA1B,GAAgC,OAAhC,GAA0C/J,CAA3C,CAAR;AACD;;AACD,kBAAI+J,GAAJ,EAAS;AACP,oBAAMtH,MAAM,GAAGuH,UAAU,CAACD,GAAG,CAAC9H,KAAL,CAAzB;AACAoH,gBAAAA,KAAK,CAACS,KAAD,CAAL,IAAgBrH,MAAhB;AACA8G,gBAAAA,iBAAiB,CAACK,IAAD,CAAjB,CAAwBE,KAAxB,KAAkCrH,MAAlC;AACA6G,gBAAAA,SAAS,CAACM,IAAD,CAAT,IAAmBnH,MAAnB;AACD;AACF;AACF,WA1BD;AA4BA,cAAMwH,KAAK,GAAG,EAAd;AACA,cAAIC,UAAU,GAAG,GAAjB;AACA,cAAMC,KAAK,GAAG,EAAd;AACA,cAAIzE,CAAJ;;AAEA,eAAK,IAAMzC,CAAX,IAAgBsG,iBAAhB,EAAmC;AACjC;AACA;AACA,gBAAIA,iBAAiB,CAACa,cAAlB,CAAiCnH,CAAjC,CAAJ,EAAyC;AACvCkH,cAAAA,KAAK,CAACvB,IAAN,CAAW3F,CAAX;AACD;AACF;;AACDkH,UAAAA,KAAK,CAAC1E,IAAN;AACA,cAAM4E,EAAE,GAAGF,KAAK,CAAClG,MAAjB;AACA,cAAIqG,IAAJ;AAEA,cAAM1F,KAAK,GAAGlE,GAAG,CAACQ,WAAJ,CAAgBb,GAAG,CAACM,aAAJ,CAAkB,OAAlB,CAAhB,CAAd;AACAiE,UAAAA,KAAK,CAAChE,YAAN,CACE,OADF,EAEE,gHAFF;;AAKA,cAAIyJ,EAAE,GAAG,CAAT,EAAY;AACV,gBAAME,MAAM,GAAG3F,KAAK,CAAC1D,WAAN,CAAkBb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAlB,CAAf;AACA4J,YAAAA,MAAM,CAACrJ,WAAP,CAAmB2B,UAAU,CAAC,EAAD,CAA7B;;AACA,iBAAK6C,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG2E,EAAhB,EAAoB3E,CAAC,EAArB,EAAyB;AACvB6E,cAAAA,MAAM,CAACrJ,WAAP,CAAmB2B,UAAU,CAACsH,KAAK,CAACzE,CAAD,CAAN,CAA7B;AACD;;AACD6E,YAAAA,MAAM,CAACrJ,WAAP,CAAmB2B,UAAU,CAAC,OAAD,CAA7B;AACD;;AAED,eAAK,IAAMlB,GAAX,IAAkB0H,KAAlB,EAAyB;AACvB;AACA;AACA,gBAAIA,KAAK,CAACe,cAAN,CAAqBzI,GAArB,CAAJ,EAA+B;AAC7BsI,cAAAA,KAAK,CAACrB,IAAN,CAAWjH,GAAX;AACAuI,cAAAA,UAAU,IAAIb,KAAK,CAAC1H,GAAD,CAAnB;AACD;AACF;;AACDsI,UAAAA,KAAK,CAACxE,IAAN;AACA,cAAI9B,GAAJ,EAASjE,KAAT,EAAgB8K,CAAhB;;AACA,eAAK,IAAIxG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiG,KAAK,CAAChG,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,gBAAMyG,GAAG,GAAG5K,EAAE,CAAC6K,GAAH,CAAOT,KAAK,CAACjG,CAAD,CAAZ,CAAZ;AACAL,YAAAA,GAAG,GAAGiB,KAAK,CAAC1D,WAAN,CAAkBb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAlB,CAAN;AACAjB,YAAAA,KAAK,GAAGiE,GAAG,CAACzC,WAAJ,CAAgBb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB,CAAR;AACAjB,YAAAA,KAAK,CAACkD,WAAN,GAAoB9D,EAAE,CAACmH,KAAH,CAASvG,KAAT,CAAe+K,GAAf,CAApB;;AACA,gBAAIJ,EAAE,GAAG,CAAT,EAAY;AACV,mBAAK3E,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG2E,EAAhB,EAAoB3E,CAAC,EAArB,EAAyB;AACvB8E,gBAAAA,CAAC,GAAGjB,iBAAiB,CAACY,KAAK,CAACzE,CAAD,CAAN,CAAjB,CAA4BuE,KAAK,CAACjG,CAAD,CAAjC,CAAJ;AACAsG,gBAAAA,IAAI,GAAG3G,GAAG,CAACzC,WAAJ,CAAgBsB,WAAW,CAACgI,CAAD,EAAI,IAAJ,CAA3B,CAAP;AACD;AACF;;AACD7G,YAAAA,GAAG,CAACzC,WAAJ,CAAgBsB,WAAW,CAAC6G,KAAK,CAACY,KAAK,CAACjG,CAAD,CAAN,CAAN,EAAkB,IAAlB,CAA3B;AACD,WAlFe,CAoFhB;;;AACA,cAAIiG,KAAK,CAAChG,MAAN,GAAe,CAAnB,EAAsB;AACpBN,YAAAA,GAAG,GAAGiB,KAAK,CAAC1D,WAAN,CAAkBb,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAlB,CAAN;AACAgD,YAAAA,GAAG,CAACzC,WAAJ,CAAgB2B,UAAU,CAAC,OAAD,CAA1B;;AACA,gBAAIwH,EAAE,GAAG,CAAT,EAAY;AACV,mBAAK3E,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG2E,EAAhB,EAAoB3E,CAAC,EAArB,EAAyB;AACvB8E,gBAAAA,CAAC,GAAGlB,SAAS,CAACa,KAAK,CAACzE,CAAD,CAAN,CAAb;AACA4E,gBAAAA,IAAI,GAAG3G,GAAG,CAACzC,WAAJ,CAAgBsB,WAAW,CAACgI,CAAC,GAAGtI,EAAE,CAACsI,CAAD,CAAL,GAAW,EAAb,CAA3B,CAAP;AACD;AACF;;AACDF,YAAAA,IAAI,GAAG3G,GAAG,CAACzC,WAAJ,CAAgBsB,WAAW,CAAC0H,UAAD,CAA3B,CAAP;AACAI,YAAAA,IAAI,CAAC1J,YAAL,CACE,OADF,EAEE,uCAFF;AAID;;AAED,cAAM+J,GAAG,GAAGlG,gBAAgB,CAACpE,GAAD,EAAMmJ,KAAN,CAA5B;AACAmB,UAAAA,GAAG,CAAC/J,YAAJ,CACE,OADF,EAEE,4EAFF;AAIAF,UAAAA,GAAG,CAACQ,WAAJ,CAAgByJ,GAAhB;AAEA7L,UAAAA,EAAE,CAACgI,OAAH,CAAWkC,cAAX,CAA0B3I,GAA1B,EAA+BV,OAA/B,EAAwCe,GAAxC;AACD,SA/GH,WAgHS,UAAU4E,CAAV,EAAa;AAClBlE,UAAAA,QAAQ,CAAC,iCAAiCkE,CAAlC,CAAR;AACD,SAlHH;AAmHD,OA3HD;;AA4HA8D,MAAAA,YAAY;AACb,KA7kBiC,CA6kBhC;;;AAEF,WAAO1I,GAAP;AACD;AAtmBc,CAAjB,C,CAymBA","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\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\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 = UI.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"],"file":"pane.js"}
1
+ {"version":3,"sources":["../../src/transaction/pane.js"],"names":["UI","require","$rdf","ns","module","exports","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","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"],"mappings":"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","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\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\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"],"file":"pane.js"}
@@ -349,7 +349,7 @@ module.exports = {
349
349
 
350
350
  }; // renderPeriod
351
351
  // //////////////////////////////////////////////////////////////////////////////
352
- // var me = UI.authn.currentUser()
352
+ // var me = authn.currentUser()
353
353
  // Render a single Period
354
354
  // This works only if enough metadata about the properties can drive the RDFS
355
355
  // (or actual type statements whichtypically are NOT there on)