solid-panes 3.5.19 → 3.5.21

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 (84) hide show
  1. package/dev/loader.ts +11 -11
  2. package/lib/argument/argumentPane.js +15 -7
  3. package/lib/argument/argumentPane.js.map +1 -1
  4. package/lib/dashboard/basicPreferences.d.ts.map +1 -1
  5. package/lib/dashboard/basicPreferences.js +6 -6
  6. package/lib/dashboard/basicPreferences.js.map +1 -1
  7. package/lib/dashboard/dashboardPane.d.ts.map +1 -1
  8. package/lib/dashboard/dashboardPane.js +6 -4
  9. package/lib/dashboard/dashboardPane.js.map +1 -1
  10. package/lib/dataContentPane.js +1 -1
  11. package/lib/dataContentPane.js.map +1 -1
  12. package/lib/form/pane.js +15 -6
  13. package/lib/form/pane.js.map +1 -1
  14. package/lib/home/homePane.d.ts.map +1 -1
  15. package/lib/home/homePane.js +7 -5
  16. package/lib/home/homePane.js.map +1 -1
  17. package/lib/index.d.ts +7 -3
  18. package/lib/index.d.ts.map +1 -1
  19. package/lib/index.js +15 -4
  20. package/lib/index.js.map +1 -1
  21. package/lib/mainPage/header.d.ts.map +1 -1
  22. package/lib/mainPage/header.js +4 -2
  23. package/lib/mainPage/header.js.map +1 -1
  24. package/lib/microblogPane/microblogPane.js +16 -14
  25. package/lib/microblogPane/microblogPane.js.map +1 -1
  26. package/lib/outline/dragDrop.js +16 -6
  27. package/lib/outline/dragDrop.js.map +1 -1
  28. package/lib/outline/licenseOptions.js +12 -5
  29. package/lib/outline/licenseOptions.js.map +1 -1
  30. package/lib/outline/manager.js +29 -21
  31. package/lib/outline/manager.js.map +1 -1
  32. package/lib/outline/queryByExample.js +14 -6
  33. package/lib/outline/queryByExample.js.map +1 -1
  34. package/lib/outline/userInput.js +90 -80
  35. package/lib/outline/userInput.js.map +1 -1
  36. package/lib/pad/padPane.d.ts.map +1 -1
  37. package/lib/pad/padPane.js +6 -4
  38. package/lib/pad/padPane.js.map +1 -1
  39. package/lib/profile/editProfile.view.d.ts.map +1 -1
  40. package/lib/profile/editProfile.view.js +3 -3
  41. package/lib/profile/editProfile.view.js.map +1 -1
  42. package/lib/schedule/schedulePane.js +26 -14
  43. package/lib/schedule/schedulePane.js.map +1 -1
  44. package/lib/socialPane.js +16 -6
  45. package/lib/socialPane.js.map +1 -1
  46. package/lib/transaction/pane.js +1 -1
  47. package/lib/transaction/pane.js.map +1 -1
  48. package/lib/transaction/period.js +1 -1
  49. package/lib/transaction/period.js.map +1 -1
  50. package/lib/trip/tripPane.js +1 -1
  51. package/lib/trip/tripPane.js.map +1 -1
  52. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +1 -1
  53. package/lib/trustedApplications/trustedApplications.dom.js +11 -9
  54. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  55. package/lib/trustedApplications/trustedApplications.view.d.ts.map +1 -1
  56. package/lib/trustedApplications/trustedApplications.view.js +5 -3
  57. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  58. package/lib/versionInfo.js +3 -3
  59. package/lib/versionInfo.js.map +1 -1
  60. package/package.json +14 -14
  61. package/src/argument/argumentPane.js +5 -5
  62. package/src/dashboard/basicPreferences.ts +4 -5
  63. package/src/dashboard/dashboardPane.ts +4 -3
  64. package/src/dataContentPane.js +1 -1
  65. package/src/form/pane.js +5 -4
  66. package/src/home/homePane.ts +7 -6
  67. package/src/index.ts +24 -18
  68. package/src/mainPage/header.ts +3 -2
  69. package/src/microblogPane/microblogPane.js +9 -8
  70. package/src/outline/dragDrop.js +5 -4
  71. package/src/outline/licenseOptions.js +4 -5
  72. package/src/outline/manager.js +22 -21
  73. package/src/outline/queryByExample.js +4 -4
  74. package/src/outline/userInput.js +72 -72
  75. package/src/pad/padPane.ts +3 -3
  76. package/src/profile/editProfile.view.ts +5 -8
  77. package/src/schedule/schedulePane.js +14 -13
  78. package/src/socialPane.js +5 -4
  79. package/src/transaction/pane.js +1 -1
  80. package/src/transaction/period.js +1 -1
  81. package/src/trip/tripPane.js +1 -1
  82. package/src/trustedApplications/trustedApplications.dom.ts +2 -1
  83. package/src/trustedApplications/trustedApplications.view.ts +4 -4
  84. package/src/versionInfo.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/socialPane.js"],"names":["UI","require","$rdf","module","exports","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","types","findTypeURIs","ns","foaf","uri","vcard","render","s","dom","common","x","y","both","i","length","j","sameTerm","push","people","n","res","say","str","console","log","p","createElement","textContent","tips","appendChild","link","contents","a","setAttribute","text","createTextNode","buildCheckboxForm","lab","statement","state","f","input","tx","className","boxHandler","_e","checked","outliner","UserInput","sparqler","insert_statement","success","errorBody","alert","add","predicate","object","why","e","error","delete_statement","removeMany","addEventListener","oneFriend","friend","_confirmed","widgets","personTR","getOutliner","div","navBlockStyle","mainBlockStyle","foafPicStyle","structure","tr","left","middle","right","tools","style","cssText","mainTable","src","any","img","anyValue","h3","me","authn","currentUser","meUri","loginOutButton","loginStatusBox","webIdUri","sym","refreshTree","thisIsYou","sameThings","knows","familiar","friends","each","profile","editable","incoming","outgoing","works","undefined","message","whether","rdf","utils","escapeForXML","cme","canon","outgoingSt","statementsMatching","youAndThem","Statement","myFriends","mutualFriends","attachmentList","doc","modify","noun","triageFriends","confirmed","unconfirmed","requests","found","cases","thisCase","htr","items","j9","sort","last","fr","j7","keepThisCodeForLaterButDisableFerossConstantConditionPolice","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r","r2","lastIndexOf","slice","t","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"mappings":"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","sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[UI.ns.foaf('Person').uri] ||\n types[UI.ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x, y) {\n // Find common members of two lists\n const both = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const people = function (n) {\n let res = ' '\n res += n || 'no'\n if (n === 1) return res + ' person'\n return res + ' people'\n }\n const say = function (str) {\n console.log(str)\n const p = dom.createElement('p')\n p.textContent = str\n tips.appendChild(p)\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str) {\n return dom.createTextNode(str)\n }\n\n const buildCheckboxForm = function (lab, statement, state) {\n const f = dom.createElement('form')\n const input = dom.createElement('input')\n f.appendChild(input)\n const tx = dom.createTextNode(lab)\n tx.className = 'question'\n f.appendChild(tx)\n input.setAttribute('type', 'checkbox')\n const boxHandler = function (_e) {\n tx.className = 'pendingedit'\n // alert('Should be greyed out')\n if (this.checked) {\n // Add link\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n null,\n 'Message',\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n })\n } catch (e) {\n UI.log.error('Data write fails:' + e)\n UI.log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n // Remove link\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n this.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n }\n })\n } catch (e) {\n UI.log.alert('Delete fails:' + e)\n this.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n const oneFriend = function (friend, _confirmed) {\n return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {})\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const div = dom.createElement('div')\n div.setAttribute('class', 'socialPane')\n const foaf = UI.ns.foaf\n const vcard = UI.ns.vcard\n\n // extracted from tabbedtab.css 2017-03-21\n const navBlockStyle =\n 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;'\n const mainBlockStyle =\n 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;'\n const foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;'\n\n const structure = div.appendChild(dom.createElement('table'))\n const tr = structure.appendChild(dom.createElement('tr'))\n const left = tr.appendChild(dom.createElement('td'))\n const middle = tr.appendChild(dom.createElement('td'))\n const right = tr.appendChild(dom.createElement('td'))\n\n const tools = left\n tools.style.cssText = navBlockStyle\n const mainTable = middle.appendChild(dom.createElement('table'))\n mainTable.style.cssText = mainBlockStyle\n const tips = right\n tips.style.cssText = navBlockStyle\n\n // Image top left\n const src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'))\n if (src) {\n const img = dom.createElement('IMG')\n img.setAttribute('src', src.uri) // w640 h480\n // img.className = 'foafPic'\n img.style.cssText = foafPicStyle\n tools.appendChild(img)\n }\n const name = kb.anyValue(s, foaf('name')) || '???'\n let h3 = dom.createElement('H3')\n h3.appendChild(dom.createTextNode(name))\n\n let me = UI.authn.currentUser()\n const meUri = me ? me.uri : null\n\n // @@ Add: event handler to redraw the stuff below when me changes.\n const loginOutButton = UI.authn.loginStatusBox(dom, webIdUri => {\n me = kb.sym(webIdUri)\n // @@ To be written: redraw as a function the new me\n // @@ refresh the sidebars\n UI.widgets.refreshTree(div) // this refreshes the middle at least\n })\n\n tips.appendChild(loginOutButton)\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n\n // Do I have a public profile document?\n let profile = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming\n let outgoing\n if (me) {\n // The definition of FAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n UI.ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n editable = outliner.UserInput.sparqler.editable(works[i].uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n UI.utils.escapeForXML(works[i].uri) +\n '> is not remotely editable.'\n } else {\n profile = works[i]\n break\n }\n }\n }\n\n if (!profile) {\n say(\n message + \"\\nI couldn't find your editable personal profile document.\"\n )\n } else {\n say('Editing your profile ' + profile + '.')\n // Do I have an EDITABLE profile?\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('You and ' + familiar))\n tools.appendChild(h3)\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n\n const youAndThem = function () {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' and '))\n tr.appendChild(link(text(familiar), s.uri))\n }\n\n if (!incoming) {\n if (!outgoing) {\n youAndThem()\n tr.appendChild(text(' have not said you know each other.'))\n } else {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' (unconfirmed)'))\n }\n } else {\n if (!outgoing) {\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' knows '))\n tr.appendChild(link(text('you'), meUri))\n tr.appendChild(text(' (unconfirmed).')) // @@\n tr.appendChild(text(' confirm you know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text('.'))\n } else {\n youAndThem()\n tr.appendChild(text(' say you know each other.'))\n }\n }\n\n if (editable) {\n const f = buildCheckboxForm(\n 'You know ' + familiar,\n new UI.rdf.Statement(me, knows, s, profile),\n outgoing\n )\n tools.appendChild(f)\n } // editable\n\n // //////////////// Mutual friends\n if (friends) {\n const myFriends = kb.each(me, foaf('knows'))\n if (myFriends.length) {\n const mutualFriends = common(friends, myFriends)\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n tr.appendChild(\n dom.createTextNode(\n 'You' +\n (familiar ? ' and ' + familiar : '') +\n ' know' +\n people(mutualFriends.length) +\n ' found in common'\n )\n )\n if (mutualFriends) {\n for (let i = 0; i < mutualFriends.length; i++) {\n tr.appendChild(\n dom.createTextNode(', ' + UI.utils.label(mutualFriends[i]))\n )\n }\n }\n }\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n } // friends\n } // About someone else\n } // me is defined\n // End of you and s\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n // List all x such that s knows x.\n UI.widgets.attachmentList(dom, s, mainTable, {\n doc: profile,\n modify: !!editable,\n predicate: foaf('knows'),\n noun: 'friend'\n })\n\n // Figure out which are reciprocated:\n // @@ Does not look up profiles\n // Does distinguish reciprocated from unreciprocated friendships\n //\n function triageFriends (s) {\n outgoing = kb.each(s, foaf('knows'))\n incoming = kb.each(undefined, foaf('knows'), s) // @@ have to load the friends\n const confirmed = []\n const unconfirmed = []\n const requests = []\n\n for (let i = 0; i < outgoing.length; i++) {\n const friend = outgoing[i]\n let found = false\n for (let j = 0; j < incoming.length; j++) {\n if (incoming[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (found) confirmed.push(friend)\n else unconfirmed.push(friend)\n } // outgoing\n\n for (let i = 0; i < incoming.length; i++) {\n const friend = incoming[i]\n // var lab = UI.utils.label(friend)\n let found = false\n for (let j = 0; j < outgoing.length; j++) {\n if (outgoing[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (!found) requests.push(friend)\n } // incoming\n\n const cases = [\n ['Acquaintances', outgoing],\n ['Mentioned as acquaintances by: ', requests]\n ]\n for (let i = 0; i < cases.length; i++) {\n const thisCase = cases[i]\n const friends = thisCase[1]\n if (friends.length === 0) continue // Skip empty sections (sure?)\n\n const h3 = dom.createElement('h3')\n h3.textContent = thisCase[0]\n const htr = dom.createElement('tr')\n htr.appendChild(h3)\n mainTable.appendChild(htr)\n\n const items = []\n for (let j9 = 0; j9 < friends.length; j9++) {\n items.push([UI.utils.label(friends[j9]), friends[j9]])\n }\n items.sort()\n let last = null\n let fr\n for (let j7 = 0; j7 < items.length; j7++) {\n fr = items[j7][1]\n if (fr.sameTerm(last)) continue // unique\n last = fr\n if (UI.utils.label(fr) !== '...') {\n // This check is to avoid bnodes with no labels attached\n // appearing in the friends list with \"...\" - Oshani\n mainTable.appendChild(oneFriend(fr))\n }\n }\n }\n }\n if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n triageFriends(s)\n }\n // //////////////////////////////////// Basic info on left\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('Basic Information'))\n tools.appendChild(h3)\n\n // For each home page like thing make a label which will\n // make sense and add the domain (like \"w3.org blog\") if there are more than one of the same type\n //\n const preds = [\n UI.ns.foaf('homepage'),\n UI.ns.foaf('weblog'),\n UI.ns.foaf('workplaceHomepage'),\n UI.ns.foaf('schoolHomepage')\n ]\n for (let i6 = 0; i6 < preds.length; i6++) {\n const pred = preds[i6]\n const sts = kb.statementsMatching(s, pred)\n if (sts.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n const uris = []\n for (let j5 = 0; j5 < sts.length; j5++) {\n const st = sts[j5]\n if (st.object.uri) uris.push(st.object.uri) // Ignore if not symbol\n }\n uris.sort()\n let last2 = ''\n let lab2\n for (let k = 0; k < uris.length; k++) {\n const uri = uris[k]\n if (uri === last2) continue // uniques only\n last2 = uri\n let hostlabel = ''\n lab2 = UI.utils.label(pred)\n if (uris.length > 1) {\n const l = uri.indexOf('//')\n if (l > 0) {\n let r = uri.indexOf('/', l + 2)\n const r2 = uri.lastIndexOf('.', r)\n if (r2 > 0) r = r2\n hostlabel = uri.slice(l + 2, r)\n }\n }\n if (hostlabel) lab2 = hostlabel + ' ' + lab2 // disambiguate\n const t = dom.createTextNode(lab2)\n const a = dom.createElement('a')\n a.appendChild(t)\n a.setAttribute('href', uri)\n const d = dom.createElement('div')\n // d.className = 'social_linkButton'\n d.style.cssText =\n 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;'\n d.appendChild(a)\n tools.appendChild(d)\n }\n }\n }\n\n const preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')]\n for (let i2 = 0; i2 < preds2.length; i2++) {\n const pred = preds2[i2]\n const sts2 = kb.statementsMatching(s, pred)\n if (sts2.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n outliner.appendPropertyTRs(tools, sts2, false, function (_pred) {\n return true\n })\n }\n }\n\n return div\n } // render()\n} //\n// ends\n"],"file":"socialPane.js"}
1
+ {"version":3,"sources":["../src/socialPane.js"],"names":["module","exports","icon","UI","icons","originalIconBase","name","label","subject","context","kb","session","store","types","findTypeURIs","ns","foaf","uri","vcard","render","s","dom","common","x","y","both","i","length","j","sameTerm","push","people","n","res","say","str","console","log","p","createElement","textContent","tips","appendChild","link","contents","a","setAttribute","text","createTextNode","buildCheckboxForm","lab","statement","state","f","input","tx","className","boxHandler","_e","checked","outliner","UserInput","sparqler","insert_statement","success","errorBody","alert","add","predicate","object","why","e","error","delete_statement","removeMany","addEventListener","oneFriend","friend","_confirmed","widgets","personTR","getOutliner","div","navBlockStyle","mainBlockStyle","foafPicStyle","structure","tr","left","middle","right","tools","style","cssText","mainTable","src","any","img","anyValue","h3","me","authn","currentUser","meUri","loginOutButton","login","loginStatusBox","webIdUri","sym","refreshTree","thisIsYou","sameThings","knows","familiar","friends","each","profile","editable","incoming","outgoing","works","undefined","message","whether","rdf","utils","escapeForXML","cme","canon","outgoingSt","statementsMatching","youAndThem","Statement","myFriends","mutualFriends","attachmentList","doc","modify","noun","triageFriends","confirmed","unconfirmed","requests","found","cases","thisCase","htr","items","j9","sort","last","fr","j7","$rdf","keepThisCodeForLaterButDisableFerossConstantConditionPolice","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r","r2","lastIndexOf","slice","t","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"mappings":"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","sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport * as $rdf from 'rdflib'\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[UI.ns.foaf('Person').uri] ||\n types[UI.ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x, y) {\n // Find common members of two lists\n const both = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const people = function (n) {\n let res = ' '\n res += n || 'no'\n if (n === 1) return res + ' person'\n return res + ' people'\n }\n const say = function (str) {\n console.log(str)\n const p = dom.createElement('p')\n p.textContent = str\n tips.appendChild(p)\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str) {\n return dom.createTextNode(str)\n }\n\n const buildCheckboxForm = function (lab, statement, state) {\n const f = dom.createElement('form')\n const input = dom.createElement('input')\n f.appendChild(input)\n const tx = dom.createTextNode(lab)\n tx.className = 'question'\n f.appendChild(tx)\n input.setAttribute('type', 'checkbox')\n const boxHandler = function (_e) {\n tx.className = 'pendingedit'\n // alert('Should be greyed out')\n if (this.checked) {\n // Add link\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n null,\n 'Message',\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n })\n } catch (e) {\n UI.log.error('Data write fails:' + e)\n UI.log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n // Remove link\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n this.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n }\n })\n } catch (e) {\n UI.log.alert('Delete fails:' + e)\n this.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n const oneFriend = function (friend, _confirmed) {\n return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {})\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const div = dom.createElement('div')\n div.setAttribute('class', 'socialPane')\n const foaf = UI.ns.foaf\n const vcard = UI.ns.vcard\n\n // extracted from tabbedtab.css 2017-03-21\n const navBlockStyle =\n 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;'\n const mainBlockStyle =\n 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;'\n const foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;'\n\n const structure = div.appendChild(dom.createElement('table'))\n const tr = structure.appendChild(dom.createElement('tr'))\n const left = tr.appendChild(dom.createElement('td'))\n const middle = tr.appendChild(dom.createElement('td'))\n const right = tr.appendChild(dom.createElement('td'))\n\n const tools = left\n tools.style.cssText = navBlockStyle\n const mainTable = middle.appendChild(dom.createElement('table'))\n mainTable.style.cssText = mainBlockStyle\n const tips = right\n tips.style.cssText = navBlockStyle\n\n // Image top left\n const src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'))\n if (src) {\n const img = dom.createElement('IMG')\n img.setAttribute('src', src.uri) // w640 h480\n // img.className = 'foafPic'\n img.style.cssText = foafPicStyle\n tools.appendChild(img)\n }\n const name = kb.anyValue(s, foaf('name')) || '???'\n let h3 = dom.createElement('H3')\n h3.appendChild(dom.createTextNode(name))\n\n let me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n // @@ Add: event handler to redraw the stuff below when me changes.\n const loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n me = kb.sym(webIdUri)\n // @@ To be written: redraw as a function the new me\n // @@ refresh the sidebars\n UI.widgets.refreshTree(div) // this refreshes the middle at least\n })\n\n tips.appendChild(loginOutButton)\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n\n // Do I have a public profile document?\n let profile = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming\n let outgoing\n if (me) {\n // The definition of FAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n UI.ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n editable = outliner.UserInput.sparqler.editable(works[i].uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n UI.utils.escapeForXML(works[i].uri) +\n '> is not remotely editable.'\n } else {\n profile = works[i]\n break\n }\n }\n }\n\n if (!profile) {\n say(\n message + \"\\nI couldn't find your editable personal profile document.\"\n )\n } else {\n say('Editing your profile ' + profile + '.')\n // Do I have an EDITABLE profile?\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('You and ' + familiar))\n tools.appendChild(h3)\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n\n const youAndThem = function () {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' and '))\n tr.appendChild(link(text(familiar), s.uri))\n }\n\n if (!incoming) {\n if (!outgoing) {\n youAndThem()\n tr.appendChild(text(' have not said you know each other.'))\n } else {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' (unconfirmed)'))\n }\n } else {\n if (!outgoing) {\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' knows '))\n tr.appendChild(link(text('you'), meUri))\n tr.appendChild(text(' (unconfirmed).')) // @@\n tr.appendChild(text(' confirm you know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text('.'))\n } else {\n youAndThem()\n tr.appendChild(text(' say you know each other.'))\n }\n }\n\n if (editable) {\n const f = buildCheckboxForm(\n 'You know ' + familiar,\n new UI.rdf.Statement(me, knows, s, profile),\n outgoing\n )\n tools.appendChild(f)\n } // editable\n\n // //////////////// Mutual friends\n if (friends) {\n const myFriends = kb.each(me, foaf('knows'))\n if (myFriends.length) {\n const mutualFriends = common(friends, myFriends)\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n tr.appendChild(\n dom.createTextNode(\n 'You' +\n (familiar ? ' and ' + familiar : '') +\n ' know' +\n people(mutualFriends.length) +\n ' found in common'\n )\n )\n if (mutualFriends) {\n for (let i = 0; i < mutualFriends.length; i++) {\n tr.appendChild(\n dom.createTextNode(', ' + UI.utils.label(mutualFriends[i]))\n )\n }\n }\n }\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n } // friends\n } // About someone else\n } // me is defined\n // End of you and s\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n // List all x such that s knows x.\n UI.widgets.attachmentList(dom, s, mainTable, {\n doc: profile,\n modify: !!editable,\n predicate: foaf('knows'),\n noun: 'friend'\n })\n\n // Figure out which are reciprocated:\n // @@ Does not look up profiles\n // Does distinguish reciprocated from unreciprocated friendships\n //\n function triageFriends (s) {\n outgoing = kb.each(s, foaf('knows'))\n incoming = kb.each(undefined, foaf('knows'), s) // @@ have to load the friends\n const confirmed = []\n const unconfirmed = []\n const requests = []\n\n for (let i = 0; i < outgoing.length; i++) {\n const friend = outgoing[i]\n let found = false\n for (let j = 0; j < incoming.length; j++) {\n if (incoming[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (found) confirmed.push(friend)\n else unconfirmed.push(friend)\n } // outgoing\n\n for (let i = 0; i < incoming.length; i++) {\n const friend = incoming[i]\n // var lab = UI.utils.label(friend)\n let found = false\n for (let j = 0; j < outgoing.length; j++) {\n if (outgoing[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (!found) requests.push(friend)\n } // incoming\n\n const cases = [\n ['Acquaintances', outgoing],\n ['Mentioned as acquaintances by: ', requests]\n ]\n for (let i = 0; i < cases.length; i++) {\n const thisCase = cases[i]\n const friends = thisCase[1]\n if (friends.length === 0) continue // Skip empty sections (sure?)\n\n const h3 = dom.createElement('h3')\n h3.textContent = thisCase[0]\n const htr = dom.createElement('tr')\n htr.appendChild(h3)\n mainTable.appendChild(htr)\n\n const items = []\n for (let j9 = 0; j9 < friends.length; j9++) {\n items.push([UI.utils.label(friends[j9]), friends[j9]])\n }\n items.sort()\n let last = null\n let fr\n for (let j7 = 0; j7 < items.length; j7++) {\n fr = items[j7][1]\n if (fr.sameTerm(last)) continue // unique\n last = fr\n if (UI.utils.label(fr) !== '...') {\n // This check is to avoid bnodes with no labels attached\n // appearing in the friends list with \"...\" - Oshani\n mainTable.appendChild(oneFriend(fr))\n }\n }\n }\n }\n if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n triageFriends(s)\n }\n // //////////////////////////////////// Basic info on left\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('Basic Information'))\n tools.appendChild(h3)\n\n // For each home page like thing make a label which will\n // make sense and add the domain (like \"w3.org blog\") if there are more than one of the same type\n //\n const preds = [\n UI.ns.foaf('homepage'),\n UI.ns.foaf('weblog'),\n UI.ns.foaf('workplaceHomepage'),\n UI.ns.foaf('schoolHomepage')\n ]\n for (let i6 = 0; i6 < preds.length; i6++) {\n const pred = preds[i6]\n const sts = kb.statementsMatching(s, pred)\n if (sts.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n const uris = []\n for (let j5 = 0; j5 < sts.length; j5++) {\n const st = sts[j5]\n if (st.object.uri) uris.push(st.object.uri) // Ignore if not symbol\n }\n uris.sort()\n let last2 = ''\n let lab2\n for (let k = 0; k < uris.length; k++) {\n const uri = uris[k]\n if (uri === last2) continue // uniques only\n last2 = uri\n let hostlabel = ''\n lab2 = UI.utils.label(pred)\n if (uris.length > 1) {\n const l = uri.indexOf('//')\n if (l > 0) {\n let r = uri.indexOf('/', l + 2)\n const r2 = uri.lastIndexOf('.', r)\n if (r2 > 0) r = r2\n hostlabel = uri.slice(l + 2, r)\n }\n }\n if (hostlabel) lab2 = hostlabel + ' ' + lab2 // disambiguate\n const t = dom.createTextNode(lab2)\n const a = dom.createElement('a')\n a.appendChild(t)\n a.setAttribute('href', uri)\n const d = dom.createElement('div')\n // d.className = 'social_linkButton'\n d.style.cssText =\n 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;'\n d.appendChild(a)\n tools.appendChild(d)\n }\n }\n }\n\n const preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')]\n for (let i2 = 0; i2 < preds2.length; i2++) {\n const pred = preds2[i2]\n const sts2 = kb.statementsMatching(s, pred)\n if (sts2.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n outliner.appendPropertyTRs(tools, sts2, false, function (_pred) {\n return true\n })\n }\n }\n\n return div\n } // render()\n} //\n// ends\n"],"file":"socialPane.js"}
@@ -60,7 +60,7 @@ module.exports = {
60
60
 
61
61
  var plist = kb.statementsMatching(subject);
62
62
  var qlist = kb.statementsMatching(undefined, undefined, subject);
63
- var t = kb.findTypeURIs(subject); // var me = UI.authn.currentUser()
63
+ var t = kb.findTypeURIs(subject); // var me = authn.currentUser()
64
64
 
65
65
  var predicateURIsDone = {};
66
66
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transaction/pane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","any","qu","render","dom","fetcher","Q","Namespace","TRIP","div","createElement","setAttribute","mention","message","style","undefined","pre","appendChild","createTextNode","complain","plist","statementsMatching","qlist","predicateURIsDone","donePredicate","pred","uri","setPaneStyle","account","mystyle","backgroundColor","ui","value","d2","n","s","indexOf","split","slice","numericCell","amount","suppressZero","td","textContent","headerCell","str","oderByDate","x","y","dx","dy","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","filter","table","transactionRow","setTRStyle","c0","date","c1","payee","a1","c3","addEventListener","e","shiftKey","list2","sort","i","rdf","statement","nav","navLink","obj","a","utils","preds","map","inner","labelForXML","join","innerHTML","complainIfBad","ok","body","nowOrWhenFetched","calendarYear","renderCatgorySelectors","widgets","makeSelectForNestedCategory","rdfs","Classified","load","then","_xhrs","each","console","log","makeDescription","trips","st","object","trips2","concat","sortedBy","reverse","l2","key","pair","cal","makeSelectForOptions","multiple","nullLabel","mint","mintClass","mintStatementsFun","trip","is","push","doc","outliner","getOutliner","attachmentList","wf","appendPropertyTRs","_inverse","calculations","total","yearTotal","yearCategoryTotal","trans","bankStatements","forEach","the","year","ty","tyuri","lit","parseFloat","types","grandTotal","years","hasOwnProperty","ny","cell","header","z","cat","sym","tab"],"mappings":"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","sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = UI.authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n \"'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;\"\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n \">,\\nso I can't tell how to annotate it.)\"\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log(\"Can't get categories, because no calendarYear\")\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (yearCategoryTotal.hasOwnProperty(y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (total.hasOwnProperty(uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"file":"pane.js"}
1
+ {"version":3,"sources":["../../src/transaction/pane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","any","qu","render","dom","fetcher","Q","Namespace","TRIP","div","createElement","setAttribute","mention","message","style","undefined","pre","appendChild","createTextNode","complain","plist","statementsMatching","qlist","predicateURIsDone","donePredicate","pred","uri","setPaneStyle","account","mystyle","backgroundColor","ui","value","d2","n","s","indexOf","split","slice","numericCell","amount","suppressZero","td","textContent","headerCell","str","oderByDate","x","y","dx","dy","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","filter","table","transactionRow","setTRStyle","c0","date","c1","payee","a1","c3","addEventListener","e","shiftKey","list2","sort","i","rdf","statement","nav","navLink","obj","a","utils","preds","map","inner","labelForXML","join","innerHTML","complainIfBad","ok","body","nowOrWhenFetched","calendarYear","renderCatgorySelectors","widgets","makeSelectForNestedCategory","rdfs","Classified","load","then","_xhrs","each","console","log","makeDescription","trips","st","object","trips2","concat","sortedBy","reverse","l2","key","pair","cal","makeSelectForOptions","multiple","nullLabel","mint","mintClass","mintStatementsFun","trip","is","push","doc","outliner","getOutliner","attachmentList","wf","appendPropertyTRs","_inverse","calculations","total","yearTotal","yearCategoryTotal","trans","bankStatements","forEach","the","year","ty","tyuri","lit","parseFloat","types","grandTotal","years","hasOwnProperty","ny","cell","header","z","cat","sym","tab"],"mappings":"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","sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n \"'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;\"\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n \">,\\nso I can't tell how to annotate it.)\"\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log(\"Can't get categories, because no calendarYear\")\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (yearCategoryTotal.hasOwnProperty(y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n // eslint-disable-next-line no-prototype-builtins\n if (total.hasOwnProperty(uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"file":"pane.js"}
@@ -349,7 +349,7 @@ module.exports = {
349
349
 
350
350
  }; // renderPeriod
351
351
  // //////////////////////////////////////////////////////////////////////////////
352
- // var me = UI.authn.currentUser()
352
+ // var me = authn.currentUser()
353
353
  // Render a single Period
354
354
  // This works only if enough metadata about the properties can drive the RDFS
355
355
  // (or actual type statements whichtypically are NOT there on)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transaction/period.js"],"names":["UI","require","ns","module","exports","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"],"mappings":"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","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\nconst UI = require('solid-ui')\nconst ns = UI.ns\n\nmodule.exports = {\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 = UI.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"],"file":"period.js"}
1
+ {"version":3,"sources":["../../src/transaction/period.js"],"names":["UI","require","ns","module","exports","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"],"mappings":"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","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\nconst UI = require('solid-ui')\nconst ns = UI.ns\n\nmodule.exports = {\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"],"file":"period.js"}