solid-panes 3.5.30 → 3.5.31-eef22dd6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/.babelrc +0 -0
  2. package/.eslintignore +0 -0
  3. package/.eslintrc +0 -0
  4. package/.github/workflows/ci.yml +21 -2
  5. package/.nvmrc +0 -0
  6. package/Documentation/VisualLanguage.html +0 -0
  7. package/Documentation/conventions.md +0 -0
  8. package/LICENSE.md +0 -0
  9. package/README.md +0 -0
  10. package/dev/index.html +0 -0
  11. package/dev/loader.ts +0 -0
  12. package/dev/pane/index.ts +0 -0
  13. package/doc/images/panes-for-classes.epgz +0 -0
  14. package/doc/images/panes-for-classes.svg +0 -0
  15. package/jest.config.js +0 -0
  16. package/jest.setup.ts +0 -0
  17. package/lib/RDFXMLPane.js +0 -0
  18. package/lib/RDFXMLPane.js.map +1 -1
  19. package/lib/argument/argumentPane.js +0 -0
  20. package/lib/argument/argumentPane.js.map +1 -1
  21. package/lib/attach/attachPane.js +0 -0
  22. package/lib/attach/attachPane.js.map +1 -1
  23. package/lib/audio/audioPane.js +0 -0
  24. package/lib/audio/audioPane.js.map +1 -1
  25. package/lib/classInstancePane.js +0 -0
  26. package/lib/classInstancePane.js.map +1 -1
  27. package/lib/dashboard/basicPreferences.d.ts +0 -0
  28. package/lib/dashboard/basicPreferences.d.ts.map +0 -0
  29. package/lib/dashboard/basicPreferences.js +0 -0
  30. package/lib/dashboard/basicPreferences.js.map +1 -1
  31. package/lib/dashboard/dashboardPane.d.ts +0 -0
  32. package/lib/dashboard/dashboardPane.d.ts.map +0 -0
  33. package/lib/dashboard/dashboardPane.js +0 -0
  34. package/lib/dashboard/dashboardPane.js.map +1 -1
  35. package/lib/dashboard/homepage.d.ts +0 -0
  36. package/lib/dashboard/homepage.d.ts.map +0 -0
  37. package/lib/dashboard/homepage.js +0 -0
  38. package/lib/dashboard/homepage.js.map +1 -1
  39. package/lib/dataContentPane.js +0 -0
  40. package/lib/dataContentPane.js.map +1 -1
  41. package/lib/defaultPane.js +0 -0
  42. package/lib/defaultPane.js.map +1 -1
  43. package/lib/dokieli/dokieliPane.js +0 -0
  44. package/lib/dokieli/dokieliPane.js.map +1 -1
  45. package/lib/dokieli/new.js +0 -0
  46. package/lib/dokieli/new.js.map +0 -0
  47. package/lib/form/pane.js +0 -0
  48. package/lib/form/pane.js.map +1 -1
  49. package/lib/global.d.js +0 -0
  50. package/lib/global.d.js.map +0 -0
  51. package/lib/home/homePane.d.ts +0 -0
  52. package/lib/home/homePane.d.ts.map +0 -0
  53. package/lib/home/homePane.js +0 -0
  54. package/lib/home/homePane.js.map +1 -1
  55. package/lib/humanReadablePane.js +0 -0
  56. package/lib/humanReadablePane.js.map +1 -1
  57. package/lib/imagePane.js +0 -0
  58. package/lib/imagePane.js.map +1 -1
  59. package/lib/index.d.ts +0 -0
  60. package/lib/index.d.ts.map +0 -0
  61. package/lib/index.js +0 -0
  62. package/lib/index.js.map +1 -1
  63. package/lib/internal/internalPane.d.ts +0 -0
  64. package/lib/internal/internalPane.d.ts.map +0 -0
  65. package/lib/internal/internalPane.js +0 -0
  66. package/lib/internal/internalPane.js.map +1 -1
  67. package/lib/mainPage/footer.d.ts +0 -0
  68. package/lib/mainPage/footer.d.ts.map +0 -0
  69. package/lib/mainPage/footer.js +0 -0
  70. package/lib/mainPage/footer.js.map +1 -1
  71. package/lib/mainPage/header.d.ts +0 -0
  72. package/lib/mainPage/header.d.ts.map +0 -0
  73. package/lib/mainPage/header.js +0 -0
  74. package/lib/mainPage/header.js.map +1 -1
  75. package/lib/mainPage/index.d.ts +0 -0
  76. package/lib/mainPage/index.d.ts.map +0 -0
  77. package/lib/mainPage/index.js +0 -0
  78. package/lib/mainPage/index.js.map +1 -1
  79. package/lib/microblogPane/microblogPane.js +0 -0
  80. package/lib/microblogPane/microblogPane.js.map +1 -1
  81. package/lib/n3Pane.js +0 -0
  82. package/lib/n3Pane.js.map +1 -1
  83. package/lib/outline/context.d.ts +0 -0
  84. package/lib/outline/context.d.ts.map +0 -0
  85. package/lib/outline/context.js +0 -0
  86. package/lib/outline/context.js.map +1 -1
  87. package/lib/outline/licenseOptions.js +0 -0
  88. package/lib/outline/licenseOptions.js.map +1 -1
  89. package/lib/outline/manager.js +0 -0
  90. package/lib/outline/manager.js.map +1 -1
  91. package/lib/outline/manager.test.js +0 -0
  92. package/lib/outline/manager.test.js.map +1 -1
  93. package/lib/outline/outlineIcons.js +0 -0
  94. package/lib/outline/outlineIcons.js.map +1 -1
  95. package/lib/outline/propertyViews.d.ts +0 -0
  96. package/lib/outline/propertyViews.d.ts.map +0 -0
  97. package/lib/outline/propertyViews.js +0 -0
  98. package/lib/outline/propertyViews.js.map +1 -1
  99. package/lib/outline/propertyViews.test.js +0 -0
  100. package/lib/outline/propertyViews.test.js.map +1 -1
  101. package/lib/outline/queryByExample.js +0 -0
  102. package/lib/outline/queryByExample.js.map +1 -1
  103. package/lib/outline/userInput.js +0 -0
  104. package/lib/outline/userInput.js.map +1 -1
  105. package/lib/outline/viewAsImage.d.ts +0 -0
  106. package/lib/outline/viewAsImage.d.ts.map +0 -0
  107. package/lib/outline/viewAsImage.js +0 -0
  108. package/lib/outline/viewAsImage.js.map +1 -1
  109. package/lib/outline/viewAsMbox.d.ts +0 -0
  110. package/lib/outline/viewAsMbox.d.ts.map +0 -0
  111. package/lib/outline/viewAsMbox.js +0 -0
  112. package/lib/outline/viewAsMbox.js.map +1 -1
  113. package/lib/pad/padPane.d.ts +0 -0
  114. package/lib/pad/padPane.d.ts.map +0 -0
  115. package/lib/pad/padPane.js +0 -0
  116. package/lib/pad/padPane.js.map +1 -1
  117. package/lib/playlist/playlistPane.js +0 -0
  118. package/lib/playlist/playlistPane.js.map +1 -1
  119. package/lib/profile/editProfile.view.d.ts +0 -0
  120. package/lib/profile/editProfile.view.d.ts.map +0 -0
  121. package/lib/profile/editProfile.view.js +0 -0
  122. package/lib/profile/editProfile.view.js.map +1 -1
  123. package/lib/profile/profile.dom.d.ts +0 -0
  124. package/lib/profile/profile.dom.d.ts.map +0 -0
  125. package/lib/profile/profile.dom.js +0 -0
  126. package/lib/profile/profile.dom.js.map +1 -1
  127. package/lib/registerPanes.js +0 -0
  128. package/lib/registerPanes.js.map +1 -1
  129. package/lib/schedule/formsForSchedule.js +0 -0
  130. package/lib/schedule/formsForSchedule.js.map +0 -0
  131. package/lib/schedule/schedulePane.js +0 -0
  132. package/lib/schedule/schedulePane.js.map +1 -1
  133. package/lib/sharing/sharingPane.d.ts +0 -0
  134. package/lib/sharing/sharingPane.d.ts.map +0 -0
  135. package/lib/sharing/sharingPane.js +0 -0
  136. package/lib/sharing/sharingPane.js.map +1 -1
  137. package/lib/slideshow/slideshowPane.js +0 -0
  138. package/lib/slideshow/slideshowPane.js.map +1 -1
  139. package/lib/socialPane.js +0 -0
  140. package/lib/socialPane.js.map +1 -1
  141. package/lib/tabbed/tabbedPane.d.ts +0 -0
  142. package/lib/tabbed/tabbedPane.d.ts.map +0 -0
  143. package/lib/tabbed/tabbedPane.js +0 -0
  144. package/lib/tabbed/tabbedPane.js.map +1 -1
  145. package/lib/tableViewPane.js +0 -0
  146. package/lib/tableViewPane.js.map +1 -1
  147. package/lib/test-import-export/common.js +0 -0
  148. package/lib/test-import-export/common.js.map +1 -1
  149. package/lib/test-import-export/edit-importer.js +0 -0
  150. package/lib/test-import-export/edit-importer.js.map +1 -1
  151. package/lib/test-import-export/testImportExport.js +0 -0
  152. package/lib/test-import-export/testImportExport.js.map +0 -0
  153. package/lib/transaction/pane.js +0 -0
  154. package/lib/transaction/pane.js.map +1 -1
  155. package/lib/transaction/period.js +0 -0
  156. package/lib/transaction/period.js.map +1 -1
  157. package/lib/trip/tripPane.js +0 -0
  158. package/lib/trip/tripPane.js.map +1 -1
  159. package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
  160. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
  161. package/lib/trustedApplications/trustedApplications.dom.js +0 -0
  162. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  163. package/lib/trustedApplications/trustedApplications.test.js +0 -0
  164. package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
  165. package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
  166. package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
  167. package/lib/trustedApplications/trustedApplications.utils.js +0 -0
  168. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  169. package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
  170. package/lib/trustedApplications/trustedApplications.view.d.ts.map +0 -0
  171. package/lib/trustedApplications/trustedApplications.view.js +0 -0
  172. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  173. package/lib/types.d.ts +0 -0
  174. package/lib/types.d.ts.map +0 -0
  175. package/lib/types.js +0 -0
  176. package/lib/types.js.map +0 -0
  177. package/lib/ui/pane.js +0 -0
  178. package/lib/ui/pane.js.map +1 -1
  179. package/lib/versionInfo.d.ts +0 -0
  180. package/lib/versionInfo.d.ts.map +0 -0
  181. package/lib/versionInfo.js +14 -14
  182. package/lib/versionInfo.js.map +1 -1
  183. package/lib/video/videoPane.js +0 -0
  184. package/lib/video/videoPane.js.map +1 -1
  185. package/package.json +17 -17
  186. package/src/RDFXMLPane.js +0 -0
  187. package/src/argument/argumentPane.js +0 -0
  188. package/src/argument/argument_icon_v04.jpg +0 -0
  189. package/src/argument/icon_argument.png +0 -0
  190. package/src/argument/transparentyingyang.png +0 -0
  191. package/src/attach/attachPane.js +0 -0
  192. package/src/attach/tbl-paperclip-128.png +0 -0
  193. package/src/attach/tbl-paperclip-22.png +0 -0
  194. package/src/attach/tbl-paperclip-22a.png +0 -0
  195. package/src/audio/audioPane.js +0 -0
  196. package/src/chatPreferencesForm.ttl +0 -0
  197. package/src/classInstancePane.js +0 -0
  198. package/src/dashboard/basicPreferences.ts +0 -0
  199. package/src/dashboard/dashboardPane.ts +0 -0
  200. package/src/dashboard/homepage.ts +0 -0
  201. package/src/dashboard/languages/codes.html +0 -0
  202. package/src/dashboard/languages/codes.xml +0 -0
  203. package/src/dashboard/languages/codes2.txt +0 -0
  204. package/src/dashboard/languages/foo +0 -0
  205. package/src/dashboard/languages/foo.ttl +0 -0
  206. package/src/dashboard/languages/get-language-names.sh +0 -0
  207. package/src/dashboard/ontologyData.ttl +0 -0
  208. package/src/dashboard/preferencesFormText.ttl +0 -0
  209. package/src/dataContentPane.js +0 -0
  210. package/src/defaultPane.js +0 -0
  211. package/src/dokieli/Makefile +0 -0
  212. package/src/dokieli/dokieliPane.js +0 -0
  213. package/src/dokieli/new.html +0 -0
  214. package/src/dokieli/new.js +0 -0
  215. package/src/form/form-22.png +0 -0
  216. package/src/form/form-b-22.png +0 -0
  217. package/src/form/form.graffle +0 -0
  218. package/src/form/form.png +0 -0
  219. package/src/form/pane.js +0 -0
  220. package/src/form/psuedocode-notes.txt +0 -0
  221. package/src/global.d.ts +0 -0
  222. package/src/home/homePane.ts +0 -0
  223. package/src/humanReadablePane.js +0 -0
  224. package/src/imagePane.js +0 -0
  225. package/src/index.ts +0 -0
  226. package/src/internal/internalPane.ts +0 -0
  227. package/src/mainPage/footer.ts +0 -0
  228. package/src/mainPage/header.ts +0 -0
  229. package/src/mainPage/index.ts +0 -0
  230. package/src/meeting/Makefile +0 -0
  231. package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
  232. package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
  233. package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
  234. package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
  235. package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
  236. package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
  237. package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
  238. package/src/meeting/test/meeting1/Schedule/index.html +0 -0
  239. package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
  240. package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
  241. package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
  242. package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
  243. package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
  244. package/src/meeting/test/meeting1/details.ttl +0 -0
  245. package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
  246. package/src/microblogPane/mbStyle.css +0 -0
  247. package/src/microblogPane/microblogPane.js +0 -0
  248. package/src/n3Pane.js +0 -0
  249. package/src/outline/context.ts +0 -0
  250. package/src/outline/licenseOptions.js +0 -0
  251. package/src/outline/manager.js +0 -0
  252. package/src/outline/manager.test.ts +0 -0
  253. package/src/outline/outlineIcons.js +0 -0
  254. package/src/outline/propertyViews.test.ts +0 -0
  255. package/src/outline/propertyViews.ts +0 -0
  256. package/src/outline/queryByExample.js +0 -0
  257. package/src/outline/userInput.js +0 -0
  258. package/src/outline/viewAsImage.ts +0 -0
  259. package/src/outline/viewAsMbox.ts +0 -0
  260. package/src/pad/images/ColourOff.ai +0 -0
  261. package/src/pad/images/ColourOff.png +0 -0
  262. package/src/pad/images/ColourOn.ai +0 -0
  263. package/src/pad/images/ColourOn.png +0 -0
  264. package/src/pad/padPane.ts +0 -0
  265. package/src/playlist/playlistPane.js +0 -0
  266. package/src/profile/editProfile.view.ts +0 -0
  267. package/src/profile/profile.dom.ts +0 -0
  268. package/src/profile/profileFormText.ttl +0 -0
  269. package/src/registerPanes.js +0 -0
  270. package/src/schedule/Makefile +0 -0
  271. package/src/schedule/formsForSchedule.js +0 -0
  272. package/src/schedule/formsForSchedule.ttl +0 -0
  273. package/src/schedule/schedulePane.js +0 -0
  274. package/src/sharing/sharingPane.ts +0 -0
  275. package/src/slideshow/slideshowPane.js +0 -0
  276. package/src/socialPane.js +0 -0
  277. package/src/style/tabbedtab.css +0 -0
  278. package/src/tabbed/tabbedPane.ts +0 -0
  279. package/src/tableViewPane.js +0 -0
  280. package/src/test-import-export/common.js +0 -0
  281. package/src/test-import-export/edit-importer.js +0 -0
  282. package/src/test-import-export/testImportExport.js +0 -0
  283. package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  284. package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
  285. package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
  286. package/src/transaction/pane.js +0 -0
  287. package/src/transaction/period.js +0 -0
  288. package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
  289. package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
  290. package/src/trip/tripPane.js +0 -0
  291. package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
  292. package/src/trustedApplications/trustedApplications.dom.ts +0 -0
  293. package/src/trustedApplications/trustedApplications.test.ts +0 -0
  294. package/src/trustedApplications/trustedApplications.utils.ts +0 -0
  295. package/src/trustedApplications/trustedApplications.view.ts +0 -0
  296. package/src/types.ts +0 -0
  297. package/src/ui/22-builder.png +0 -0
  298. package/src/ui/builder.graffle +0 -0
  299. package/src/ui/builder.png +0 -0
  300. package/src/ui/builder2.png +0 -0
  301. package/src/ui/pane.js +0 -0
  302. package/src/versionInfo.ts +14 -14
  303. package/src/video/videoPane.js +0 -0
  304. package/timestamp.sh +0 -0
  305. package/travis/bumpversion.js +0 -0
  306. package/tsconfig.json +0 -0
  307. package/typings/raw-loader.d.ts +0 -0
  308. package/typings/solid-namespace/index.d.ts +0 -0
  309. package/webpack.config.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"period.js","names":["ns","UI","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","render","dom","div","createElement","setAttribute","mention","message","style","pre","appendChild","createTextNode","happy","complain","renderPeriod","dtstart","any","cal","undefined","uri","dtend","predicateURIsDone","donePredicate","pred","rdf","inPeriod","date","d2","n","s","indexOf","split","slice","transactionInPeriod","x","qu","oderByDate","y","dx","dy","value","h2","textContent","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","td","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","table","transactionRow","setTRStyle","account","mystyle","backgroundColor","ui","c0","c1","payee","a1","c3","amount","addEventListener","e","shiftKey","list2","filter","sort","i","dummies","xURIs","findMemberURIs","unclassifiedIn","unclassifiedOut","usd","z","hasOwnProperty","sym","tt","each","classified","push","tab","count","catSymbol","catTail","cats","findSubClassesNT","cat","checkCatHasField","guilty","utils","trip","needed","rdfs","console","log","fetcher","load","then"],"sources":["../../src/transaction/period.js"],"sourcesContent":["/* Financial Period Pane\n **\n ** This outline pane allows a user to interact with a period\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_142708.svg',\n\n name: 'period',\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#Period']) return 'period'\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 ns = UI.ns\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'periodPane')\n\n const mention = function mention (message, style) {\n if (!style) 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 happy = function happy (message) {\n return mention('✓ ' + message, 'color: #010; background-color: #efe')\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n /*\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 const renderPeriod = function () {\n const dtstart = kb.any(subject, ns.cal('dtstart'))\n if (dtstart === undefined) {\n complain(\n '(Error: There is no start date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n const dtend = kb.any(subject, ns.cal('dtend'))\n if (dtend === undefined) {\n complain(\n '(Error: There is no end date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n // var store = kb.any(subject, UI.ns.qu('annotationStore')) || null\n\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n donePredicate(ns.rdf('type'))\n\n const inPeriod = function (date) {\n return !!(date && date >= dtstart && date < dtend)\n }\n\n const d2 = function (n) {\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 transactionInPeriod = function (x) {\n return inPeriod(kb.any(x, ns.qu('date')))\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 var setPaneStyle = function (account) {\n var mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n var 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 const h2 = div.appendChild(dom.createElement('h2'))\n h2.textContent =\n 'Period ' +\n dtstart.value.slice(0, 10) +\n ' - ' +\n dtend.value.slice(0, 10)\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) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'margin-left: 100; 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 = 'margin-left: 8em; padding-left: 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 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 = list.filter(transactionInPeriod)\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 // List unclassified transactions\n\n const dummies = {\n 'http://www.w3.org/2000/10/swap/pim/qif#Transaction': true, // (we knew)\n 'http://www.w3.org/2000/10/swap/pim/qif#Unclassified': true, // pseudo classifications we may phase out\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing': true,\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome': true\n }\n const xURIs = kb.findMemberURIs(ns.qu('Transaction'))\n const unclassifiedIn = []\n const unclassifiedOut = []\n let usd, z\n for (const y in xURIs) {\n // For each thing which can be inferred to be a transaction\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (xURIs.hasOwnProperty(y)) {\n z = kb.sym(y)\n const tt = kb.each(z, ns.rdf('type')) // What EXPLICIT definitions\n let classified = false\n for (let j = 0; j < tt.length; j++) {\n const t = tt[j]\n if (dummies[t.uri] === undefined) {\n classified = true\n }\n }\n if (!classified) {\n usd = kb.any(z, ns.qu('in_USD'))\n if (usd === undefined) {\n usd = kb.any(z, ns.qu('amount'))\n }\n if (usd && ('' + usd.value).indexOf('-') >= 0) {\n unclassifiedOut.push(kb.sym(y))\n } else {\n unclassifiedIn.push(kb.sym(y))\n }\n }\n }\n }\n let tab, count\n if (unclassifiedIn.length) {\n tab = transactionTable(dom, unclassifiedIn)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Income' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified income')\n }\n if (unclassifiedOut.length) {\n tab = transactionTable(dom, unclassifiedOut)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Outgoings' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified outgoings ')\n }\n\n // /////////////// Check some categories of transaction for having given fields\n\n const catSymbol = function (catTail) {\n const cats = kb.findSubClassesNT(ns.qu('Transaction'))\n for (const cat in cats) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (cats.hasOwnProperty(cat)) {\n if (cat.slice(1, -1).split('#')[1] === catTail) {\n return kb.sym(cat.slice(1, -1))\n }\n }\n }\n return null\n }\n\n const checkCatHasField = function (catTail, pred) {\n const cat = catSymbol(catTail)\n let tab\n const guilty = []\n let count = 0\n if (!cat) {\n complain('Error: No category correspnding to ' + catTail)\n return null\n }\n const list = kb.each(undefined, ns.rdf('type'), cat)\n for (let i = 0; i < list.length; i++) {\n if (!kb.any(list[i], pred)) {\n guilty.push(list[i])\n }\n }\n if (guilty.length) {\n tab = transactionTable(dom, guilty)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n UI.utils.label(cat) +\n ' with no ' +\n UI.utils.label(pred) +\n (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n }\n return count\n }\n\n // Load dynamically as properties of period\n if (checkCatHasField('Reimbursables', ns.trip('trip')) === 0) {\n happy('Reimbursables all have trips')\n }\n if (checkCatHasField('Other_Inc_Speaking', ns.trip('trip')) === 0) {\n happy('Speaking income all has trips')\n }\n // end of render period instance\n } // renderPeriod\n\n // //////////////////////////////////////////////////////////////////////////////\n\n // var me = authn.currentUser()\n\n // Render a single Period\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 const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) {\n const needed = kb.each(subject, ns.rdfs('seeAlso'))\n console.log('Loading before render: ' + needed.length)\n kb.fetcher.load(needed).then(function () {\n renderPeriod()\n })\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"period.js","names":["UI","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ns","_default","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","render","dom","div","createElement","setAttribute","mention","message","style","pre","appendChild","createTextNode","happy","complain","renderPeriod","dtstart","any","cal","undefined","uri","dtend","predicateURIsDone","donePredicate","pred","rdf","inPeriod","date","d2","n","s","indexOf","split","slice","transactionInPeriod","x","qu","oderByDate","y","dx","dy","value","h2","textContent","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","td","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","table","transactionRow","setTRStyle","account","mystyle","backgroundColor","ui","c0","c1","payee","a1","c3","amount","addEventListener","e","shiftKey","list2","filter","sort","i","dummies","xURIs","findMemberURIs","unclassifiedIn","unclassifiedOut","usd","z","sym","tt","each","classified","push","tab","count","catSymbol","catTail","cats","findSubClassesNT","cat","checkCatHasField","guilty","utils","trip","needed","rdfs","console","log","fetcher","load","then","exports"],"sources":["../../src/transaction/period.js"],"sourcesContent":["/* Financial Period Pane\n **\n ** This outline pane allows a user to interact with a period\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_142708.svg',\n\n name: 'period',\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#Period']) return 'period'\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 ns = UI.ns\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'periodPane')\n\n const mention = function mention (message, style) {\n if (!style) 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 happy = function happy (message) {\n return mention('✓ ' + message, 'color: #010; background-color: #efe')\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n /*\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 const renderPeriod = function () {\n const dtstart = kb.any(subject, ns.cal('dtstart'))\n if (dtstart === undefined) {\n complain(\n '(Error: There is no start date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n const dtend = kb.any(subject, ns.cal('dtend'))\n if (dtend === undefined) {\n complain(\n '(Error: There is no end date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n // var store = kb.any(subject, UI.ns.qu('annotationStore')) || null\n\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n donePredicate(ns.rdf('type'))\n\n const inPeriod = function (date) {\n return !!(date && date >= dtstart && date < dtend)\n }\n\n const d2 = function (n) {\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 transactionInPeriod = function (x) {\n return inPeriod(kb.any(x, ns.qu('date')))\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 var setPaneStyle = function (account) {\n var mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n var 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 const h2 = div.appendChild(dom.createElement('h2'))\n h2.textContent =\n 'Period ' +\n dtstart.value.slice(0, 10) +\n ' - ' +\n dtend.value.slice(0, 10)\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) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'margin-left: 100; 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 = 'margin-left: 8em; padding-left: 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 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 = list.filter(transactionInPeriod)\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 // List unclassified transactions\n\n const dummies = {\n 'http://www.w3.org/2000/10/swap/pim/qif#Transaction': true, // (we knew)\n 'http://www.w3.org/2000/10/swap/pim/qif#Unclassified': true, // pseudo classifications we may phase out\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing': true,\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome': true\n }\n const xURIs = kb.findMemberURIs(ns.qu('Transaction'))\n const unclassifiedIn = []\n const unclassifiedOut = []\n let usd, z\n for (const y in xURIs) {\n // For each thing which can be inferred to be a transaction\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (xURIs.hasOwnProperty(y)) {\n z = kb.sym(y)\n const tt = kb.each(z, ns.rdf('type')) // What EXPLICIT definitions\n let classified = false\n for (let j = 0; j < tt.length; j++) {\n const t = tt[j]\n if (dummies[t.uri] === undefined) {\n classified = true\n }\n }\n if (!classified) {\n usd = kb.any(z, ns.qu('in_USD'))\n if (usd === undefined) {\n usd = kb.any(z, ns.qu('amount'))\n }\n if (usd && ('' + usd.value).indexOf('-') >= 0) {\n unclassifiedOut.push(kb.sym(y))\n } else {\n unclassifiedIn.push(kb.sym(y))\n }\n }\n }\n }\n let tab, count\n if (unclassifiedIn.length) {\n tab = transactionTable(dom, unclassifiedIn)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Income' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified income')\n }\n if (unclassifiedOut.length) {\n tab = transactionTable(dom, unclassifiedOut)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Outgoings' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified outgoings ')\n }\n\n // /////////////// Check some categories of transaction for having given fields\n\n const catSymbol = function (catTail) {\n const cats = kb.findSubClassesNT(ns.qu('Transaction'))\n for (const cat in cats) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (cats.hasOwnProperty(cat)) {\n if (cat.slice(1, -1).split('#')[1] === catTail) {\n return kb.sym(cat.slice(1, -1))\n }\n }\n }\n return null\n }\n\n const checkCatHasField = function (catTail, pred) {\n const cat = catSymbol(catTail)\n let tab\n const guilty = []\n let count = 0\n if (!cat) {\n complain('Error: No category correspnding to ' + catTail)\n return null\n }\n const list = kb.each(undefined, ns.rdf('type'), cat)\n for (let i = 0; i < list.length; i++) {\n if (!kb.any(list[i], pred)) {\n guilty.push(list[i])\n }\n }\n if (guilty.length) {\n tab = transactionTable(dom, guilty)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n UI.utils.label(cat) +\n ' with no ' +\n UI.utils.label(pred) +\n (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n }\n return count\n }\n\n // Load dynamically as properties of period\n if (checkCatHasField('Reimbursables', ns.trip('trip')) === 0) {\n happy('Reimbursables all have trips')\n }\n if (checkCatHasField('Other_Inc_Speaking', ns.trip('trip')) === 0) {\n happy('Speaking income all has trips')\n }\n // end of render period instance\n } // renderPeriod\n\n // //////////////////////////////////////////////////////////////////////////////\n\n // var me = authn.currentUser()\n\n // Render a single Period\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 const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) {\n const needed = kb.each(subject, ns.rdfs('seeAlso'))\n console.log('Loading before render: ' + needed.length)\n kb.fetcher.load(needed).then(function () {\n renderPeriod()\n })\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"tripPane.js","names":["ns","UI","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","qu","findSuperClassesNT","render","myDocument","dom","CAL","$rdf","Namespace","TRIP","div","createElement","setAttribute","innerHTML","complain","message","style","undefined","pre","appendChild","createTextNode","renderTrip","thisDiv","query","Query","utils","vars","v","forEach","x","push","variable","pat","add","transaction","opt","formula","rdf","type","optional","date","rdfs","comment","in_USD","calculations","total","trans","each","ty","the","uri","tyuri","lit","any","parseFloat","value","str","types","grandTotal","sym","length","tableDiv","table","onDone","ts","triples","index","i","trip","transactions","usd","toNT","list","h1","t1","fromNT","sort","j","t2"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\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\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 (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\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 myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const 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 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 // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('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 (!total[tyuri]) total[tyuri] = 0.0\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 total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query: query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"tripPane.js","names":["UI","_interopRequireWildcard","require","$rdf","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ns","_default","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","qu","findSuperClassesNT","render","myDocument","dom","CAL","Namespace","TRIP","div","createElement","setAttribute","innerHTML","complain","message","style","undefined","pre","appendChild","createTextNode","renderTrip","thisDiv","query","Query","utils","vars","v","forEach","x","push","variable","pat","add","transaction","opt","formula","rdf","type","optional","date","rdfs","comment","in_USD","calculations","total","trans","each","ty","the","uri","tyuri","lit","any","parseFloat","value","str","types","grandTotal","sym","length","tableDiv","table","onDone","ts","triples","index","i","trip","transactions","usd","toNT","list","h1","t1","fromNT","sort","j","t2","exports"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\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\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 (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\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 myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const 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 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 // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('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 (!total[tyuri]) total[tyuri] = 0.0\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 total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query: query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trustedApplications.dom.js","names":["createApplicationTable","subject","applicationsTable","createElement","header","createContainer","createText","appendChild","store","each","ns","acl","undefined","flatMap","app","map","origin","appModes","sort","a","b","value","forEach","createApplicationEntry","updateTable","parentElement","replaceChild","trustedApplicationState","formElements","modes","placeholder","element","submit","addOrEditApplication","createModesInput","style","click","removeApplication","event","preventDefault","sym","err","alert","filter","checkbox","checked","deletions","getStatementsToDelete","additions","getStatementsToAdd","generateRandomString","updater","Error","update","handleUpdateResponse","uri","success","errorBody","console","error","elementName","attributes","eventListeners","onCreated","document","Object","keys","attName","setAttribute","eventName","addEventListener","children","child","textContent","mode","isChecked","some","appMode","type","push"],"sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"sourcesContent":["import { NamedNode, Statement, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils'\n\ninterface FormElements {\n modes: HTMLInputElement[]\n // This appears to be used to store either a node from the store,\n // or a reference to the input (checkbox) element for a particular mode.\n // These typings were created post-hoc, so I'm not sure if that was intentional.\n // Thus, this union type should be considered as descriptive rather than prescriptive.\n origin: undefined | NamedNode | HTMLInputElement\n}\n\nexport function createApplicationTable (subject: NamedNode) {\n const applicationsTable = createElement('table', {\n class: 'results'\n })\n\n // creating headers\n const header = createContainer('tr', [\n createText('th', 'Application URL'),\n createText('th', 'Access modes'),\n createText('th', 'Actions')\n ])\n applicationsTable.appendChild(header);\n\n // creating rows\n (store.each(subject, ns.acl('trustedApp'), undefined, undefined) as unknown as Statement[])\n .flatMap(app => store\n .each(app as any, ns.acl('origin'), undefined, undefined)\n .map(origin => ({\n appModes: store.each(app as any, ns.acl('mode'), undefined, undefined) as NamedNode[],\n origin: origin as NamedNode\n })))\n .sort((a: any, b: any) => (a.origin.value < b.origin.value ? -1 : 1))\n .forEach(\n ({ appModes, origin }: { appModes: NamedNode[]; origin: NamedNode }) =>\n applicationsTable.appendChild(\n createApplicationEntry(subject, origin, appModes, updateTable)\n )\n )\n\n // adding a row for new applications\n applicationsTable.appendChild(\n createApplicationEntry(subject, null, [ns.acl('Read')], updateTable)\n )\n\n return applicationsTable\n\n function updateTable () {\n applicationsTable.parentElement!.replaceChild(\n createApplicationTable(subject),\n applicationsTable\n )\n }\n}\n\nfunction createApplicationEntry (\n subject: NamedNode,\n origin: NamedNode | null,\n appModes: NamedNode[],\n updateTable: () => void\n): HTMLTableRowElement {\n const trustedApplicationState = {\n origin,\n appModes,\n formElements: {\n modes: [],\n origin: undefined\n } as FormElements\n }\n return createContainer('tr', [\n createContainer('td', [\n createContainer(\n 'form',\n [\n createElement(\n 'input',\n {\n class: 'textinput',\n placeholder: 'Write new URL here',\n value: origin ? origin.value : ''\n },\n {},\n element => {\n trustedApplicationState.formElements.origin = element\n }\n )\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n createModesInput(trustedApplicationState),\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n origin\n ? [\n createText('button', 'Update', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n }),\n createText(\n 'button',\n 'Delete',\n {\n class: 'controlButton',\n style: 'background: LightCoral;'\n },\n {\n click: removeApplication\n }\n )\n ]\n : [\n createText('button', 'Add', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n })\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ])\n ])\n\n function addOrEditApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert('Please provide an application URL you want to trust')\n }\n\n const modes = trustedApplicationState.formElements.modes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n\n const deletions = getStatementsToDelete(\n trustedApplicationState.origin || origin,\n subject,\n store,\n ns\n )\n const additions = getStatementsToAdd(\n origin,\n generateRandomString(),\n modes,\n subject,\n ns\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, additions, handleUpdateResponse)\n }\n\n function removeApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert(\n 'Please provide an application URL you want to remove trust from'\n )\n }\n\n const deletions = getStatementsToDelete(origin, subject, store, ns)\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, [], handleUpdateResponse)\n }\n\n function handleUpdateResponse (uri: any, success: boolean, errorBody: any) {\n if (success) {\n return updateTable()\n }\n console.error(uri, errorBody)\n }\n}\n\nfunction createElement<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n attributes: { [name: string]: string } = {},\n eventListeners: { [eventName: string]: globalThis.EventListener } = {},\n // eslint-disable-next-line no-unused-vars\n onCreated: null | ((createdElement: globalThis.HTMLElementTagNameMap[K]) => void) = null\n) {\n const element = document.createElement(elementName)\n if (onCreated) {\n onCreated(element)\n }\n Object.keys(attributes).forEach(attName => {\n element.setAttribute(attName, attributes[attName])\n })\n Object.keys(eventListeners).forEach(eventName => {\n element.addEventListener(eventName, eventListeners[eventName])\n })\n return element\n}\n\nexport function createContainer<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n children: HTMLElement[],\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n children.forEach(child => element.appendChild(child))\n return element\n}\n\nexport function createText<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n textContent: string | null,\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n element.textContent = textContent\n return element\n}\n\nfunction createModesInput ({ appModes, formElements }: {\n appModes: NamedNode[]\n formElements: FormElements\n}) {\n return ['Read', 'Write', 'Append', 'Control'].map(mode => {\n const isChecked = appModes.some(\n appMode => appMode.value === ns.acl(mode).value\n )\n return createContainer('label', [\n createElement(\n 'input',\n {\n type: 'checkbox',\n ...(isChecked ? { checked: '' } : {}),\n value: ns.acl(mode).uri\n },\n {},\n element => formElements.modes.push(element)\n ),\n createText('span', mode)\n ])\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"trustedApplications.dom.js","names":["_rdflib","require","_solidUi","_solidLogic","_trustedApplications","_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","createApplicationTable","subject","applicationsTable","createElement","header","createContainer","createText","appendChild","store","each","ns","acl","flatMap","app","map","origin","appModes","sort","a","b","_ref","createApplicationEntry","updateTable","parentElement","replaceChild","trustedApplicationState","formElements","modes","placeholder","element","submit","addOrEditApplication","createModesInput","style","click","removeApplication","event","preventDefault","err","alert","checkbox","checked","deletions","getStatementsToDelete","additions","getStatementsToAdd","generateRandomString","updater","Error","update","handleUpdateResponse","uri","success","errorBody","console","error","elementName","attributes","eventListeners","onCreated","document","attName","setAttribute","eventName","addEventListener","children","child","textContent","_ref2","mode","isChecked","some","appMode","type"],"sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"sourcesContent":["import { NamedNode, Statement, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils'\n\ninterface FormElements {\n modes: HTMLInputElement[]\n // This appears to be used to store either a node from the store,\n // or a reference to the input (checkbox) element for a particular mode.\n // These typings were created post-hoc, so I'm not sure if that was intentional.\n // Thus, this union type should be considered as descriptive rather than prescriptive.\n origin: undefined | NamedNode | HTMLInputElement\n}\n\nexport function createApplicationTable (subject: NamedNode) {\n const applicationsTable = createElement('table', {\n class: 'results'\n })\n\n // creating headers\n const header = createContainer('tr', [\n createText('th', 'Application URL'),\n createText('th', 'Access modes'),\n createText('th', 'Actions')\n ])\n applicationsTable.appendChild(header);\n\n // creating rows\n (store.each(subject, ns.acl('trustedApp'), undefined, undefined) as unknown as Statement[])\n .flatMap(app => store\n .each(app as any, ns.acl('origin'), undefined, undefined)\n .map(origin => ({\n appModes: store.each(app as any, ns.acl('mode'), undefined, undefined) as NamedNode[],\n origin: origin as NamedNode\n })))\n .sort((a: any, b: any) => (a.origin.value < b.origin.value ? -1 : 1))\n .forEach(\n ({ appModes, origin }: { appModes: NamedNode[]; origin: NamedNode }) =>\n applicationsTable.appendChild(\n createApplicationEntry(subject, origin, appModes, updateTable)\n )\n )\n\n // adding a row for new applications\n applicationsTable.appendChild(\n createApplicationEntry(subject, null, [ns.acl('Read')], updateTable)\n )\n\n return applicationsTable\n\n function updateTable () {\n applicationsTable.parentElement!.replaceChild(\n createApplicationTable(subject),\n applicationsTable\n )\n }\n}\n\nfunction createApplicationEntry (\n subject: NamedNode,\n origin: NamedNode | null,\n appModes: NamedNode[],\n updateTable: () => void\n): HTMLTableRowElement {\n const trustedApplicationState = {\n origin,\n appModes,\n formElements: {\n modes: [],\n origin: undefined\n } as FormElements\n }\n return createContainer('tr', [\n createContainer('td', [\n createContainer(\n 'form',\n [\n createElement(\n 'input',\n {\n class: 'textinput',\n placeholder: 'Write new URL here',\n value: origin ? origin.value : ''\n },\n {},\n element => {\n trustedApplicationState.formElements.origin = element\n }\n )\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n createModesInput(trustedApplicationState),\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n origin\n ? [\n createText('button', 'Update', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n }),\n createText(\n 'button',\n 'Delete',\n {\n class: 'controlButton',\n style: 'background: LightCoral;'\n },\n {\n click: removeApplication\n }\n )\n ]\n : [\n createText('button', 'Add', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n })\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ])\n ])\n\n function addOrEditApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert('Please provide an application URL you want to trust')\n }\n\n const modes = trustedApplicationState.formElements.modes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n\n const deletions = getStatementsToDelete(\n trustedApplicationState.origin || origin,\n subject,\n store,\n ns\n )\n const additions = getStatementsToAdd(\n origin,\n generateRandomString(),\n modes,\n subject,\n ns\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, additions, handleUpdateResponse)\n }\n\n function removeApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert(\n 'Please provide an application URL you want to remove trust from'\n )\n }\n\n const deletions = getStatementsToDelete(origin, subject, store, ns)\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, [], handleUpdateResponse)\n }\n\n function handleUpdateResponse (uri: any, success: boolean, errorBody: any) {\n if (success) {\n return updateTable()\n }\n console.error(uri, errorBody)\n }\n}\n\nfunction createElement<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n attributes: { [name: string]: string } = {},\n eventListeners: { [eventName: string]: globalThis.EventListener } = {},\n // eslint-disable-next-line no-unused-vars\n onCreated: null | ((createdElement: globalThis.HTMLElementTagNameMap[K]) => void) = null\n) {\n const element = document.createElement(elementName)\n if (onCreated) {\n onCreated(element)\n }\n Object.keys(attributes).forEach(attName => {\n element.setAttribute(attName, attributes[attName])\n })\n Object.keys(eventListeners).forEach(eventName => {\n element.addEventListener(eventName, eventListeners[eventName])\n })\n return element\n}\n\nexport function createContainer<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n children: HTMLElement[],\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n children.forEach(child => element.appendChild(child))\n return element\n}\n\nexport function createText<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n textContent: string | null,\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n element.textContent = textContent\n return element\n}\n\nfunction createModesInput ({ appModes, formElements }: {\n appModes: NamedNode[]\n formElements: FormElements\n}) {\n return ['Read', 'Write', 'Append', 'Control'].map(mode => {\n const isChecked = appModes.some(\n appMode => appMode.value === ns.acl(mode).value\n )\n return createContainer('label', [\n createElement(\n 'input',\n {\n type: 'checkbox',\n ...(isChecked ? { checked: '' } : {}),\n value: ns.acl(mode).uri\n },\n {},\n element => formElements.modes.push(element)\n ),\n createText('span', mode)\n ])\n })\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trustedApplications.test.js","names":["global","TextEncoder","TextDecoder","ns","solidNamespace","$rdf","describe","it","expect","generateRandomString","length","toBe","mockStore","graph","mockOrigin","sym","mockProfile","getStatementsToDelete","toEqual","mockApplication","add","acl","statementsToDelete","toMatchSnapshot","lit","modes","value","statementsToAdd","getStatementsToAdd"],"sources":["../../src/trustedApplications/trustedApplications.test.ts"],"sourcesContent":["/* eslint-env jest */\nimport { TextEncoder, TextDecoder } from 'util'\nglobal.TextEncoder = TextEncoder as any\nglobal.TextDecoder = TextDecoder as any\n\nimport * as $rdf from 'rdflib'\nimport solidNamespace from 'solid-namespace'\nimport { generateRandomString, getStatementsToDelete, getStatementsToAdd } from './trustedApplications.utils'\n\nconst ns = solidNamespace($rdf)\n\ndescribe('generateRandomString', () => {\n it('generates a random string five characters long', () => {\n expect(generateRandomString().length).toBe(5)\n })\n})\n\ndescribe('getStatementsToDelete', () => {\n it('should return an empty array when there are no statements', () => {\n const mockStore = $rdf.graph()\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n expect(\n getStatementsToDelete(mockOrigin, mockProfile, mockStore, ns)\n ).toEqual([])\n })\n\n it('should return all statements for the given origin', () => {\n const mockStore = $rdf.graph()\n const mockApplication = $rdf.sym('https://app.example')\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n mockStore.add(mockApplication, ns.acl('origin'), mockOrigin)\n mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'))\n mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication)\n const statementsToDelete = getStatementsToDelete(\n mockOrigin,\n mockProfile,\n mockStore,\n ns\n )\n expect(statementsToDelete.length).toBe(3)\n expect(statementsToDelete).toMatchSnapshot()\n })\n\n it('should not return statements for a different origin', () => {\n const mockStore = $rdf.graph()\n const mockApplication = $rdf.sym('https://app.example')\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n mockStore.add(mockApplication, ns.acl('origin'), mockOrigin)\n mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'))\n mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication)\n\n const statementsToDelete = getStatementsToDelete(\n $rdf.lit('A different origin'), // @@ TODO Remove casting\n mockProfile,\n mockStore,\n ns\n )\n expect(statementsToDelete.length).toBe(0)\n expect(statementsToDelete).toEqual([])\n })\n})\n\ndescribe('getStatementsToAdd', () => {\n it('should return all required statements to add the given permissions for a given origin', () => {\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n const modes = [ns.acl('Read').value, ns.acl('Write').value]\n\n const statementsToAdd = getStatementsToAdd(\n mockOrigin,\n 'mock_app_id',\n modes,\n mockProfile,\n ns\n )\n expect(statementsToAdd.length).toBe(4)\n expect(statementsToAdd).toMatchSnapshot()\n })\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"trustedApplications.test.js","names":["_util","require","$rdf","_interopRequireWildcard","_solidNamespace","_interopRequireDefault","_trustedApplications","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","global","TextEncoder","TextDecoder","ns","solidNamespace","describe","it","expect","generateRandomString","length","toBe","mockStore","graph","mockOrigin","sym","mockProfile","getStatementsToDelete","toEqual","mockApplication","add","acl","statementsToDelete","toMatchSnapshot","lit","modes","value","statementsToAdd","getStatementsToAdd"],"sources":["../../src/trustedApplications/trustedApplications.test.ts"],"sourcesContent":["/* eslint-env jest */\nimport { TextEncoder, TextDecoder } from 'util'\nglobal.TextEncoder = TextEncoder as any\nglobal.TextDecoder = TextDecoder as any\n\nimport * as $rdf from 'rdflib'\nimport solidNamespace from 'solid-namespace'\nimport { generateRandomString, getStatementsToDelete, getStatementsToAdd } from './trustedApplications.utils'\n\nconst ns = solidNamespace($rdf)\n\ndescribe('generateRandomString', () => {\n it('generates a random string five characters long', () => {\n expect(generateRandomString().length).toBe(5)\n })\n})\n\ndescribe('getStatementsToDelete', () => {\n it('should return an empty array when there are no statements', () => {\n const mockStore = $rdf.graph()\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n expect(\n getStatementsToDelete(mockOrigin, mockProfile, mockStore, ns)\n ).toEqual([])\n })\n\n it('should return all statements for the given origin', () => {\n const mockStore = $rdf.graph()\n const mockApplication = $rdf.sym('https://app.example')\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n mockStore.add(mockApplication, ns.acl('origin'), mockOrigin)\n mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'))\n mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication)\n const statementsToDelete = getStatementsToDelete(\n mockOrigin,\n mockProfile,\n mockStore,\n ns\n )\n expect(statementsToDelete.length).toBe(3)\n expect(statementsToDelete).toMatchSnapshot()\n })\n\n it('should not return statements for a different origin', () => {\n const mockStore = $rdf.graph()\n const mockApplication = $rdf.sym('https://app.example')\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n mockStore.add(mockApplication, ns.acl('origin'), mockOrigin)\n mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'))\n mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication)\n\n const statementsToDelete = getStatementsToDelete(\n $rdf.lit('A different origin'), // @@ TODO Remove casting\n mockProfile,\n mockStore,\n ns\n )\n expect(statementsToDelete.length).toBe(0)\n expect(statementsToDelete).toEqual([])\n })\n})\n\ndescribe('getStatementsToAdd', () => {\n it('should return all required statements to add the given permissions for a given origin', () => {\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n const modes = [ns.acl('Read').value, ns.acl('Write').value]\n\n const statementsToAdd = getStatementsToAdd(\n mockOrigin,\n 'mock_app_id',\n modes,\n mockProfile,\n ns\n )\n expect(statementsToAdd.length).toBe(4)\n expect(statementsToAdd).toMatchSnapshot()\n })\n})\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trustedApplications.utils.js","names":["getStatementsToDelete","origin","person","kb","ns","applicationStatements","statementsMatching","acl","statementsToDelete","reduce","memo","st","concat","subject","getStatementsToAdd","nodeName","modes","application","BlankNode","doc","map","mode","sym","generateRandomString","Math","random","toString","substr"],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":";;;;;;;;AAAA;AAA0F;AAAA;AAAA;AAAA;AAAA;AAAA;AAGnF,SAASA,qBAAqB,CACnCC,MAA2B,EAC3BC,MAAiB,EACjBC,EAAkB,EAClBC,EAAc,EACT;EACL,IAAMC,qBAAqB,GAAGF,EAAE,CAACG,kBAAkB,CACjD,IAAI,EACJF,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAChBN,MAAM,CACP;EACD,IAAMO,kBAAkB,GAAGH,qBAAqB,CAACI,MAAM,CACrD,UAACC,IAAI,EAAEC,EAAE,EAAK;IACZ,OAAOD,IAAI,CACRE,MAAM,CACLT,EAAE,CAACG,kBAAkB,CACnBJ,MAAM,EACNE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EACpBI,EAAE,CAACE,OAAO,CACX,CACF,CACAD,MAAM,CAACT,EAAE,CAACG,kBAAkB,CAACK,EAAE,CAACE,OAAO,CAAC,CAAC;EAC9C,CAAC,EACD,EAAE,CACH;EACD,OAAOL,kBAAkB;AAC3B;AAEO,SAASM,kBAAkB,CAChCb,MAAiB,EACjBc,QAAgB,EAChBC,KAAe,EACfd,MAAiB,EACjBE,EAAc,EACT;EACL,IAAMa,WAAW,GAAG,IAAIC,iBAAS,cAAOH,QAAQ,EAAG;EACnD,QACE,IAAAJ,UAAE,EAACT,MAAM,EAAEE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EAAEU,WAAW,EAAEf,MAAM,CAACiB,GAAG,EAAE,CAAC,EAC3D,IAAAR,UAAE,EAACM,WAAW,EAAEb,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAAEN,MAAM,EAAEC,MAAM,CAACiB,GAAG,EAAE,CAAC,4BACpDH,KAAK,CACLI,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAI,IAAAC,WAAG,EAACD,IAAI,CAAC;EAAA,EAAC,CACtBD,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAI,IAAAV,UAAE,EAACM,WAAW,EAAEb,EAAE,CAACG,GAAG,CAAC,MAAM,CAAC,EAAEc,IAAI,EAAEnB,MAAM,CAACiB,GAAG,EAAE,CAAC;EAAA,EAAC;AAEvE;AAEO,SAASI,oBAAoB,GAAI;EACtC,OAAOC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD"}
1
+ {"version":3,"file":"trustedApplications.utils.js","names":["_rdflib","require","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","iter","Symbol","iterator","isArray","len","length","i","arr2","getStatementsToDelete","origin","person","kb","ns","applicationStatements","statementsMatching","acl","statementsToDelete","reduce","memo","st","concat","subject","getStatementsToAdd","nodeName","modes","application","BlankNode","doc","map","mode","sym","generateRandomString","Math","random","substr"],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trustedApplications.view.js","names":["thisColor","trustedApplicationView","global","icon","icons","iconBase","name","label","render","subject","context","dom","div","createElement","classList","add","setAttribute","table","appendChild","main","bottom","statusArea","err","widgets","errorMessageBlock","login","ensureLoadedProfile","me","authContext","profile","doc","store","updater","Error","editable","uri","createText","applicationsTable","createApplicationTable","createContainer"],"sources":["../../src/trustedApplications/trustedApplications.view.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { NamedNode } from 'rdflib'\nimport { icons, login, widgets } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { createApplicationTable, createContainer, createText } from './trustedApplications.dom'\n\nconst thisColor = '#418d99'\n\nconst trustedApplicationView: PaneDefinition = {\n global: true,\n icon: `${icons.iconBase}noun_15177.svg`,\n name: 'trustedApplications',\n label: () => null,\n render: (subject, context) => {\n const dom = context.dom\n const div = dom.createElement('div')\n div.classList.add('trusted-applications-pane')\n div.setAttribute(\n 'style',\n 'border: 0.3em solid ' +\n thisColor +\n '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;'\n )\n const table = div.appendChild(dom.createElement('table'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)))\n return div\n }\n}\n\nasync function render (dom, main, statusArea): Promise<void> {\n const authContext = await login.ensureLoadedProfile({ dom: dom, div: main, statusArea: statusArea, me: null })\n const subject = authContext.me as NamedNode\n\n const profile = subject.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n const editable = store.updater.editable(profile.uri, store)\n\n main.appendChild(createText('h3', 'Manage your trusted applications'))\n\n if (!editable) {\n main.appendChild(\n widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`)\n )\n return\n }\n\n main.appendChild(createText('p', 'Here you can manage the applications you trust.'))\n\n const applicationsTable = createApplicationTable(subject)\n main.appendChild(applicationsTable)\n\n main.appendChild(createText('h4', 'Notes'))\n main.appendChild(\n createContainer('ol', [\n main.appendChild(\n createText(\n 'li',\n 'Trusted applications will get access to all resources that you have access to.'\n )\n ),\n main.appendChild(\n createText('li', 'You can limit which modes they have by default.')\n ),\n main.appendChild(\n createText('li', 'They will not gain more access than you have.')\n )\n ])\n )\n main.appendChild(\n createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.')\n )\n}\n\nexport default trustedApplicationView\n"],"mappings":"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"}
1
+ {"version":3,"file":"trustedApplications.view.js","names":["_solidUi","require","_solidLogic","_trustedApplications","_typeof","obj","Symbol","iterator","constructor","prototype","_regeneratorRuntime","exports","Op","Object","hasOwn","hasOwnProperty","defineProperty","key","desc","value","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","thisColor","trustedApplicationView","global","icon","concat","icons","iconBase","label","render","subject","dom","div","createElement","classList","add","setAttribute","table","appendChild","main","bottom","statusArea","widgets","errorMessageBlock","_x","_x2","_x3","_render2","_callee","authContext","profile","editable","applicationsTable","_callee$","_context","login","ensureLoadedProfile","me","doc","store","updater","uri","createText","createApplicationTable","createContainer","_default"],"sources":["../../src/trustedApplications/trustedApplications.view.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { NamedNode } from 'rdflib'\nimport { icons, login, widgets } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { createApplicationTable, createContainer, createText } from './trustedApplications.dom'\n\nconst thisColor = '#418d99'\n\nconst trustedApplicationView: PaneDefinition = {\n global: true,\n icon: `${icons.iconBase}noun_15177.svg`,\n name: 'trustedApplications',\n label: () => null,\n render: (subject, context) => {\n const dom = context.dom\n const div = dom.createElement('div')\n div.classList.add('trusted-applications-pane')\n div.setAttribute(\n 'style',\n 'border: 0.3em solid ' +\n thisColor +\n '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;'\n )\n const table = div.appendChild(dom.createElement('table'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)))\n return div\n }\n}\n\nasync function render (dom, main, statusArea): Promise<void> {\n const authContext = await login.ensureLoadedProfile({ dom: dom, div: main, statusArea: statusArea, me: null })\n const subject = authContext.me as NamedNode\n\n const profile = subject.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n const editable = store.updater.editable(profile.uri, store)\n\n main.appendChild(createText('h3', 'Manage your trusted applications'))\n\n if (!editable) {\n main.appendChild(\n widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`)\n )\n return\n }\n\n main.appendChild(createText('p', 'Here you can manage the applications you trust.'))\n\n const applicationsTable = createApplicationTable(subject)\n main.appendChild(applicationsTable)\n\n main.appendChild(createText('h4', 'Notes'))\n main.appendChild(\n createContainer('ol', [\n main.appendChild(\n createText(\n 'li',\n 'Trusted applications will get access to all resources that you have access to.'\n )\n ),\n main.appendChild(\n createText('li', 'You can limit which modes they have by default.')\n ),\n main.appendChild(\n createText('li', 'They will not gain more access than you have.')\n )\n ])\n )\n main.appendChild(\n createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.')\n )\n}\n\nexport default trustedApplicationView\n"],"mappings":"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"}
package/lib/types.d.ts CHANGED
File without changes
File without changes
package/lib/types.js CHANGED
File without changes
package/lib/types.js.map CHANGED
File without changes
package/lib/ui/pane.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"pane.js","names":["ns","UI","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","rdfs","uri","ui","render","dom","box","createElement","setAttribute","utils","mention","complain","message","style","pre","appendChild","textContent","complainIfBad","ok","body","docuri","$rdf","Util","docpart","updater","editable","sym","any","link","widgets","defaultAnnotationStore","pred","wait","fetcher","nowOrWhenFetched","removeChild","displayFormsForRelation","allowCreation","sts","statementsMatching","outliner","getOutliner","length","i","appendPropertyTRs","form","object","cell","lastChild","newButton","formdef","rdf","editFormButton","why","appendForm"],"sources":["../../src/ui/pane.js"],"sourcesContent":["/* Form building/editing Pane\n **\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // noun_170702.svg' builder noun_122196.svg form\n icon: UI.icons.iconBase + 'noun_170702.svg',\n\n name: 'ui',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const ns = UI.ns\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t[ns.rdfs('Class').uri]) return 'creation forms'\n // if (t[ns.rdf('Property').uri]) return \"user interface\";\n if (t[ns.ui('Form').uri]) return 'edit form'\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 ns = UI.ns\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane') // Share styles\n const label = UI.utils.label(subject)\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n\n const t = kb.findTypeURIs(subject)\n\n let store = null\n let docuri\n if (subject.uri) {\n docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri)) {\n store = kb.sym($rdf.Util.uri.docpart(subject.uri))\n } // an editable ontology with hash\n }\n if (!store) store = kb.any(kb.sym(docuri), ns.link('annotationStore'))\n if (!store) store = UI.widgets.defaultAnnotationStore(subject)\n\n if (!store) {\n store = kb.sym(\n 'https://formsregistry.solid.community/public/formRegistry/'\n ) // fallback\n }\n // if (!store) store = kb.sym('http://tabulator.org/wiki/ontologyAnnotation/common') // fallback\n\n // A fallback which gives a different store page for each ontology would be good @@\n\n let pred\n if (t[ns.rdfs('Class').uri]) {\n // Stuff we can do before we load the store\n }\n\n const wait = mention('(Loading data from: ' + store + ')')\n\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) {\n complain('Cannot load store ' + store + ' :' + body)\n return\n }\n box.removeChild(wait)\n\n // Render a Class -- the forms associated with it\n\n if (t[ns.rdfs('Class').uri]) {\n // For each creation form, allow one to create a new object with it, and also to edit the form.\n const displayFormsForRelation = function displayFormsForRelation (\n pred,\n allowCreation\n ) {\n const sts = kb.statementsMatching(subject, pred)\n const outliner = context.getOutliner(dom)\n if (sts.length) {\n for (let i = 0; i < sts.length; i++) {\n outliner.appendPropertyTRs(box, [sts[i]])\n const form = sts[i].object\n const cell = dom.createElement('td')\n box.lastChild.appendChild(cell)\n if (allowCreation) {\n cell.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n null,\n null,\n subject,\n form,\n store,\n function (ok, body) {\n if (ok) {\n // dom.outlineManager.GotoSubject(newThing@@, true, undefined, true, undefined);\n // rerender(box); // Deleted forms at the moment\n } else {\n complain('Sorry, failed to save your change:\\n' + body)\n }\n }\n )\n )\n }\n let formdef = kb.statementsMatching(form, ns.rdf('type'))\n if (!formdef.length) formdef = kb.statementsMatching(form)\n if (!formdef.length) complain('No data about form')\n else {\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formdef[0].why,\n complainIfBad\n )\n }\n }\n box.appendChild(dom.createElement('hr'))\n } else {\n mention(\n 'There are currently no known forms to make a ' + label + '.'\n )\n }\n }\n\n pred = ns.ui('creationForm')\n box.appendChild(dom.createElement('h2')).textContent = UI.utils.label(\n pred\n )\n mention(\n 'Creation forms allow you to add information about a new thing,' +\n ' in this case a new ' +\n label +\n '.'\n )\n displayFormsForRelation(pred, true)\n box.appendChild(dom.createElement('hr'))\n mention('You can make a new creation form:')\n box.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n subject,\n pred,\n ns.ui('Form'),\n null,\n store,\n complainIfBad\n )\n )\n\n box.appendChild(dom.createElement('hr'))\n\n pred = ns.ui('annotationForm')\n box.appendChild(dom.createElement('h2')).textContent = UI.utils.label(\n pred\n )\n mention(\n 'Annotaion forms allow you to add extra information about a ,' +\n label +\n ' we already know about.'\n )\n displayFormsForRelation(pred, false)\n box.appendChild(dom.createElement('hr'))\n mention('You can make a new annotation form:')\n box.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n subject,\n pred,\n ns.ui('Form'),\n null,\n store,\n complainIfBad\n )\n )\n\n mention('(Storing new forms in: ' + store + ')')\n\n // Render a Form\n } else if (t[ns.ui('Form').uri]) {\n UI.widgets.appendForm(\n dom,\n box,\n kb,\n subject,\n ns.ui('FormForm'),\n store,\n complainIfBad\n )\n } else {\n complain('ui/pane internal error -- Eh?')\n }\n }) // end: when store loded\n\n return box\n }\n}\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"pane.js","names":["UI","_interopRequireWildcard","require","$rdf","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ns","_default","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","rdfs","uri","ui","render","dom","box","createElement","setAttribute","utils","mention","complain","message","style","pre","appendChild","textContent","complainIfBad","ok","body","docuri","Util","docpart","updater","editable","sym","any","link","widgets","defaultAnnotationStore","pred","wait","fetcher","nowOrWhenFetched","removeChild","displayFormsForRelation","allowCreation","sts","statementsMatching","outliner","getOutliner","length","i","appendPropertyTRs","form","object","cell","lastChild","newButton","formdef","rdf","editFormButton","why","appendForm","exports"],"sources":["../../src/ui/pane.js"],"sourcesContent":["/* Form building/editing Pane\n **\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // noun_170702.svg' builder noun_122196.svg form\n icon: UI.icons.iconBase + 'noun_170702.svg',\n\n name: 'ui',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const ns = UI.ns\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t[ns.rdfs('Class').uri]) return 'creation forms'\n // if (t[ns.rdf('Property').uri]) return \"user interface\";\n if (t[ns.ui('Form').uri]) return 'edit form'\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 ns = UI.ns\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane') // Share styles\n const label = UI.utils.label(subject)\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n\n const t = kb.findTypeURIs(subject)\n\n let store = null\n let docuri\n if (subject.uri) {\n docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri)) {\n store = kb.sym($rdf.Util.uri.docpart(subject.uri))\n } // an editable ontology with hash\n }\n if (!store) store = kb.any(kb.sym(docuri), ns.link('annotationStore'))\n if (!store) store = UI.widgets.defaultAnnotationStore(subject)\n\n if (!store) {\n store = kb.sym(\n 'https://formsregistry.solid.community/public/formRegistry/'\n ) // fallback\n }\n // if (!store) store = kb.sym('http://tabulator.org/wiki/ontologyAnnotation/common') // fallback\n\n // A fallback which gives a different store page for each ontology would be good @@\n\n let pred\n if (t[ns.rdfs('Class').uri]) {\n // Stuff we can do before we load the store\n }\n\n const wait = mention('(Loading data from: ' + store + ')')\n\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) {\n complain('Cannot load store ' + store + ' :' + body)\n return\n }\n box.removeChild(wait)\n\n // Render a Class -- the forms associated with it\n\n if (t[ns.rdfs('Class').uri]) {\n // For each creation form, allow one to create a new object with it, and also to edit the form.\n const displayFormsForRelation = function displayFormsForRelation (\n pred,\n allowCreation\n ) {\n const sts = kb.statementsMatching(subject, pred)\n const outliner = context.getOutliner(dom)\n if (sts.length) {\n for (let i = 0; i < sts.length; i++) {\n outliner.appendPropertyTRs(box, [sts[i]])\n const form = sts[i].object\n const cell = dom.createElement('td')\n box.lastChild.appendChild(cell)\n if (allowCreation) {\n cell.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n null,\n null,\n subject,\n form,\n store,\n function (ok, body) {\n if (ok) {\n // dom.outlineManager.GotoSubject(newThing@@, true, undefined, true, undefined);\n // rerender(box); // Deleted forms at the moment\n } else {\n complain('Sorry, failed to save your change:\\n' + body)\n }\n }\n )\n )\n }\n let formdef = kb.statementsMatching(form, ns.rdf('type'))\n if (!formdef.length) formdef = kb.statementsMatching(form)\n if (!formdef.length) complain('No data about form')\n else {\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formdef[0].why,\n complainIfBad\n )\n }\n }\n box.appendChild(dom.createElement('hr'))\n } else {\n mention(\n 'There are currently no known forms to make a ' + label + '.'\n )\n }\n }\n\n pred = ns.ui('creationForm')\n box.appendChild(dom.createElement('h2')).textContent = UI.utils.label(\n pred\n )\n mention(\n 'Creation forms allow you to add information about a new thing,' +\n ' in this case a new ' +\n label +\n '.'\n )\n displayFormsForRelation(pred, true)\n box.appendChild(dom.createElement('hr'))\n mention('You can make a new creation form:')\n box.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n subject,\n pred,\n ns.ui('Form'),\n null,\n store,\n complainIfBad\n )\n )\n\n box.appendChild(dom.createElement('hr'))\n\n pred = ns.ui('annotationForm')\n box.appendChild(dom.createElement('h2')).textContent = UI.utils.label(\n pred\n )\n mention(\n 'Annotaion forms allow you to add extra information about a ,' +\n label +\n ' we already know about.'\n )\n displayFormsForRelation(pred, false)\n box.appendChild(dom.createElement('hr'))\n mention('You can make a new annotation form:')\n box.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n subject,\n pred,\n ns.ui('Form'),\n null,\n store,\n complainIfBad\n )\n )\n\n mention('(Storing new forms in: ' + store + ')')\n\n // Render a Form\n } else if (t[ns.ui('Form').uri]) {\n UI.widgets.appendForm(\n dom,\n box,\n kb,\n subject,\n ns.ui('FormForm'),\n store,\n complainIfBad\n )\n } else {\n complain('ui/pane internal error -- Eh?')\n }\n }) // end: when store loded\n\n return box\n }\n}\n// ends\n"],"mappings":";;;;;;;AAIA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,uBAAA,CAAAC,OAAA;AAA8B,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAL9B;AACA;AACA;;AAIA,IAAMW,EAAE,GAAG1B,EAAE,CAAC0B,EAAE;AAAA,IAAAC,QAAA,GAED;EACb;EACAC,IAAI,EAAE5B,EAAE,CAAC6B,KAAK,CAACC,QAAQ,GAAG,iBAAiB;EAE3CC,IAAI,EAAE,IAAI;EAEVC,QAAQ,EAAE,CAACN,EAAE,CAACO,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjC;EACAC,KAAK,EAAE,SAAAA,MAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,IAAMV,EAAE,GAAG1B,EAAE,CAAC0B,EAAE;IAChB,IAAMW,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACC,KAAK;IAChC,IAAMC,CAAC,GAAGH,EAAE,CAACI,YAAY,CAACN,OAAO,CAAC;IAClC,IAAIK,CAAC,CAACd,EAAE,CAACgB,IAAI,CAAC,OAAO,CAAC,CAACC,GAAG,CAAC,EAAE,OAAO,gBAAgB;IACpD;IACA,IAAIH,CAAC,CAACd,EAAE,CAACkB,EAAE,CAAC,MAAM,CAAC,CAACD,GAAG,CAAC,EAAE,OAAO,WAAW;IAE5C,OAAO,IAAI,EAAC;EACd,CAAC;;EAEDE,MAAM,EAAE,SAAAA,OAAUV,OAAO,EAAEC,OAAO,EAAE;IAClC,IAAMU,GAAG,GAAGV,OAAO,CAACU,GAAG;IACvB,IAAMT,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACC,KAAK;IAChC,IAAMb,EAAE,GAAG1B,EAAE,CAAC0B,EAAE;IAEhB,IAAMqB,GAAG,GAAGD,GAAG,CAACE,aAAa,CAAC,KAAK,CAAC;IACpCD,GAAG,CAACE,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,EAAC;IACtC,IAAMf,KAAK,GAAGlC,EAAE,CAACkD,KAAK,CAAChB,KAAK,CAACC,OAAO,CAAC;IAErC,IAAMgB,OAAO,GAAG,SAASC,QAAQA,CAAEC,OAAO,EAAEC,KAAK,EAAE;MACjD,IAAMC,GAAG,GAAGT,GAAG,CAACE,aAAa,CAAC,GAAG,CAAC;MAClCO,GAAG,CAACN,YAAY,CAAC,OAAO,EAAEK,KAAK,IAAI,sCAAsC,CAAC;MAC1EP,GAAG,CAACS,WAAW,CAACD,GAAG,CAAC,CAACE,WAAW,GAAGJ,OAAO;MAC1C,OAAOE,GAAG;IACZ,CAAC;IAED,IAAMH,QAAQ,GAAG,SAASA,QAAQA,CAAEC,OAAO,EAAEC,KAAK,EAAE;MAClDH,OAAO,CAACE,OAAO,EAAE,OAAO,EAAEC,KAAK,IAAI,qCAAqC,CAAC;IAC3E,CAAC;IAED,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAaC,EAAE,EAAEC,IAAI,EAAE;MACxC,IAAID,EAAE,EAAE;QACN;QACA;MAAA,CACD,MAAMP,QAAQ,CAAC,sCAAsC,GAAGQ,IAAI,CAAC;IAChE,CAAC;;IAED;;IAEA,IAAMpB,CAAC,GAAGH,EAAE,CAACI,YAAY,CAACN,OAAO,CAAC;IAElC,IAAII,KAAK,GAAG,IAAI;IAChB,IAAIsB,MAAM;IACV,IAAI1B,OAAO,CAACQ,GAAG,EAAE;MACfkB,MAAM,GAAG1D,IAAI,CAAC2D,IAAI,CAACnB,GAAG,CAACoB,OAAO,CAAC5B,OAAO,CAACQ,GAAG,CAAC;MAC3C,IAAIR,OAAO,CAACQ,GAAG,KAAKkB,MAAM,IAAIxB,EAAE,CAAC2B,OAAO,CAACC,QAAQ,CAACJ,MAAM,CAAC,EAAE;QACzDtB,KAAK,GAAGF,EAAE,CAAC6B,GAAG,CAAC/D,IAAI,CAAC2D,IAAI,CAACnB,GAAG,CAACoB,OAAO,CAAC5B,OAAO,CAACQ,GAAG,CAAC,CAAC;MACpD,CAAC,CAAC;IACJ;;IACA,IAAI,CAACJ,KAAK,EAAEA,KAAK,GAAGF,EAAE,CAAC8B,GAAG,CAAC9B,EAAE,CAAC6B,GAAG,CAACL,MAAM,CAAC,EAAEnC,EAAE,CAAC0C,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtE,IAAI,CAAC7B,KAAK,EAAEA,KAAK,GAAGvC,EAAE,CAACqE,OAAO,CAACC,sBAAsB,CAACnC,OAAO,CAAC;IAE9D,IAAI,CAACI,KAAK,EAAE;MACVA,KAAK,GAAGF,EAAE,CAAC6B,GAAG,CACZ,4DAA4D,CAC7D,EAAC;IACJ;IACA;;IAEA;;IAEA,IAAIK,IAAI;IACR,IAAI/B,CAAC,CAACd,EAAE,CAACgB,IAAI,CAAC,OAAO,CAAC,CAACC,GAAG,CAAC,EAAE;MAC3B;IAAA;IAGF,IAAM6B,IAAI,GAAGrB,OAAO,CAAC,sBAAsB,GAAGZ,KAAK,GAAG,GAAG,CAAC;IAE1DF,EAAE,CAACoC,OAAO,CAACC,gBAAgB,CAACnC,KAAK,CAACI,GAAG,EAAER,OAAO,EAAE,UAAUwB,EAAE,EAAEC,IAAI,EAAE;MAClE,IAAI,CAACD,EAAE,EAAE;QACPP,QAAQ,CAAC,oBAAoB,GAAGb,KAAK,GAAG,IAAI,GAAGqB,IAAI,CAAC;QACpD;MACF;MACAb,GAAG,CAAC4B,WAAW,CAACH,IAAI,CAAC;;MAErB;;MAEA,IAAIhC,CAAC,CAACd,EAAE,CAACgB,IAAI,CAAC,OAAO,CAAC,CAACC,GAAG,CAAC,EAAE;QAC3B;QACA,IAAMiC,uBAAuB,GAAG,SAASA,uBAAuBA,CAC9DL,IAAI,EACJM,aAAa,EACb;UACA,IAAMC,GAAG,GAAGzC,EAAE,CAAC0C,kBAAkB,CAAC5C,OAAO,EAAEoC,IAAI,CAAC;UAChD,IAAMS,QAAQ,GAAG5C,OAAO,CAAC6C,WAAW,CAACnC,GAAG,CAAC;UACzC,IAAIgC,GAAG,CAACI,MAAM,EAAE;YACd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;cACnCH,QAAQ,CAACI,iBAAiB,CAACrC,GAAG,EAAE,CAAC+B,GAAG,CAACK,CAAC,CAAC,CAAC,CAAC;cACzC,IAAME,IAAI,GAAGP,GAAG,CAACK,CAAC,CAAC,CAACG,MAAM;cAC1B,IAAMC,IAAI,GAAGzC,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC;cACpCD,GAAG,CAACyC,SAAS,CAAChC,WAAW,CAAC+B,IAAI,CAAC;cAC/B,IAAIV,aAAa,EAAE;gBACjBU,IAAI,CAAC/B,WAAW,CACdxD,EAAE,CAACqE,OAAO,CAACoB,SAAS,CAClB3C,GAAG,EACHT,EAAE,EACF,IAAI,EACJ,IAAI,EACJF,OAAO,EACPkD,IAAI,EACJ9C,KAAK,EACL,UAAUoB,EAAE,EAAEC,IAAI,EAAE;kBAClB,IAAID,EAAE,EAAE;oBACN;oBACA;kBAAA,CACD,MAAM;oBACLP,QAAQ,CAAC,sCAAsC,GAAGQ,IAAI,CAAC;kBACzD;gBACF,CAAC,CACF,CACF;cACH;cACA,IAAI8B,OAAO,GAAGrD,EAAE,CAAC0C,kBAAkB,CAACM,IAAI,EAAE3D,EAAE,CAACiE,GAAG,CAAC,MAAM,CAAC,CAAC;cACzD,IAAI,CAACD,OAAO,CAACR,MAAM,EAAEQ,OAAO,GAAGrD,EAAE,CAAC0C,kBAAkB,CAACM,IAAI,CAAC;cAC1D,IAAI,CAACK,OAAO,CAACR,MAAM,EAAE9B,QAAQ,CAAC,oBAAoB,CAAC,MAC9C;gBACHpD,EAAE,CAACqE,OAAO,CAACuB,cAAc,CACvB9C,GAAG,EACHC,GAAG,EACHsC,IAAI,EACJK,OAAO,CAAC,CAAC,CAAC,CAACG,GAAG,EACdnC,aAAa,CACd;cACH;YACF;YACAX,GAAG,CAACS,WAAW,CAACV,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;UAC1C,CAAC,MAAM;YACLG,OAAO,CACL,+CAA+C,GAAGjB,KAAK,GAAG,GAAG,CAC9D;UACH;QACF,CAAC;QAEDqC,IAAI,GAAG7C,EAAE,CAACkB,EAAE,CAAC,cAAc,CAAC;QAC5BG,GAAG,CAACS,WAAW,CAACV,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC,CAACS,WAAW,GAAGzD,EAAE,CAACkD,KAAK,CAAChB,KAAK,CACnEqC,IAAI,CACL;QACDpB,OAAO,CACL,gEAAgE,GAC9D,sBAAsB,GACtBjB,KAAK,GACL,GAAG,CACN;QACD0C,uBAAuB,CAACL,IAAI,EAAE,IAAI,CAAC;QACnCxB,GAAG,CAACS,WAAW,CAACV,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;QACxCG,OAAO,CAAC,mCAAmC,CAAC;QAC5CJ,GAAG,CAACS,WAAW,CACbxD,EAAE,CAACqE,OAAO,CAACoB,SAAS,CAClB3C,GAAG,EACHT,EAAE,EACFF,OAAO,EACPoC,IAAI,EACJ7C,EAAE,CAACkB,EAAE,CAAC,MAAM,CAAC,EACb,IAAI,EACJL,KAAK,EACLmB,aAAa,CACd,CACF;QAEDX,GAAG,CAACS,WAAW,CAACV,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;QAExCuB,IAAI,GAAG7C,EAAE,CAACkB,EAAE,CAAC,gBAAgB,CAAC;QAC9BG,GAAG,CAACS,WAAW,CAACV,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC,CAACS,WAAW,GAAGzD,EAAE,CAACkD,KAAK,CAAChB,KAAK,CACnEqC,IAAI,CACL;QACDpB,OAAO,CACL,8DAA8D,GAC5DjB,KAAK,GACL,yBAAyB,CAC5B;QACD0C,uBAAuB,CAACL,IAAI,EAAE,KAAK,CAAC;QACpCxB,GAAG,CAACS,WAAW,CAACV,GAAG,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;QACxCG,OAAO,CAAC,qCAAqC,CAAC;QAC9CJ,GAAG,CAACS,WAAW,CACbxD,EAAE,CAACqE,OAAO,CAACoB,SAAS,CAClB3C,GAAG,EACHT,EAAE,EACFF,OAAO,EACPoC,IAAI,EACJ7C,EAAE,CAACkB,EAAE,CAAC,MAAM,CAAC,EACb,IAAI,EACJL,KAAK,EACLmB,aAAa,CACd,CACF;QAEDP,OAAO,CAAC,yBAAyB,GAAGZ,KAAK,GAAG,GAAG,CAAC;;QAEhD;MACF,CAAC,MAAM,IAAIC,CAAC,CAACd,EAAE,CAACkB,EAAE,CAAC,MAAM,CAAC,CAACD,GAAG,CAAC,EAAE;QAC/B3C,EAAE,CAACqE,OAAO,CAACyB,UAAU,CACnBhD,GAAG,EACHC,GAAG,EACHV,EAAE,EACFF,OAAO,EACPT,EAAE,CAACkB,EAAE,CAAC,UAAU,CAAC,EACjBL,KAAK,EACLmB,aAAa,CACd;MACH,CAAC,MAAM;QACLN,QAAQ,CAAC,+BAA+B,CAAC;MAC3C;IACF,CAAC,CAAC,EAAC;;IAEH,OAAOL,GAAG;EACZ;AACF,CAAC,EACD;AAAAgD,OAAA,cAAApE,QAAA"}
File without changes
File without changes