solid-panes 4.2.4-test.3 → 4.2.4-test.5

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 (106) hide show
  1. package/dist/RDFXMLPane.js +1 -2
  2. package/dist/argument/argumentPane.js +1 -2
  3. package/dist/attach/attachPane.js +1 -2
  4. package/dist/audio/audioPane.js +1 -2
  5. package/dist/classInstancePane.js +1 -2
  6. package/dist/dashboard/basicPreferences.js +1 -2
  7. package/dist/dashboard/dashboardPane.js +1 -2
  8. package/dist/dashboard/homepage.js +1 -2
  9. package/dist/dataContentPane.js +1 -2
  10. package/dist/defaultPane.js +1 -2
  11. package/dist/dokieli/dokieliPane.js +1 -2
  12. package/dist/dokieli/new.js +1 -2
  13. package/dist/form/pane.js +1 -2
  14. package/dist/home/homePane.js +1 -2
  15. package/dist/humanReadablePane.js +1 -2
  16. package/dist/imagePane.js +1 -2
  17. package/dist/index.js +1 -2
  18. package/dist/internal/internalPane.js +1 -2
  19. package/dist/mainPage/footer.js +1 -2
  20. package/dist/mainPage/header.js +1 -2
  21. package/dist/mainPage/index.js +1 -2
  22. package/dist/microblogPane/mbStyle.css +267 -0
  23. package/dist/microblogPane/microblogPane.js +1 -2
  24. package/dist/n3Pane.js +1 -2
  25. package/dist/outline/context.js +1 -2
  26. package/dist/outline/manager.css +80 -0
  27. package/dist/outline/manager.js +14 -11
  28. package/dist/outline/outlineIcons.js +1 -2
  29. package/dist/outline/propertyViews.js +1 -2
  30. package/dist/outline/queryByExample.js +1 -2
  31. package/dist/outline/userInput.js +1 -2
  32. package/dist/outline/viewAsImage.js +1 -2
  33. package/dist/outline/viewAsMbox.js +1 -2
  34. package/dist/pad/padPane.js +1 -2
  35. package/dist/playlist/playlistPane.js +1 -2
  36. package/dist/registerPanes.js +1 -2
  37. package/dist/schedule/schedulePane.js +1 -2
  38. package/dist/sharing/sharingPane.js +1 -2
  39. package/dist/slideshow/slideshowPane.js +1 -2
  40. package/dist/socialPane.js +1 -2
  41. package/dist/solid-panes.js +52145 -0
  42. package/dist/solid-panes.js.map +1 -0
  43. package/dist/solid-panes.min.js +290 -0
  44. package/dist/solid-panes.min.js.map +1 -0
  45. package/dist/style/tabbedtab.css +1347 -0
  46. package/dist/tabbed/tabbedPane.js +1 -2
  47. package/dist/tableViewPane.js +1 -2
  48. package/dist/transaction/pane.js +1 -2
  49. package/dist/transaction/period.js +1 -2
  50. package/dist/trip/tripPane.js +1 -2
  51. package/dist/trustedApplications/trustedApplications.dom.js +1 -2
  52. package/dist/trustedApplications/trustedApplications.utils.js +1 -2
  53. package/dist/trustedApplications/trustedApplications.view.js +1 -2
  54. package/dist/ui/pane.js +1 -2
  55. package/dist/versionInfo.js +4 -5
  56. package/dist/video/videoPane.js +1 -2
  57. package/package.json +12 -11
  58. package/dist/RDFXMLPane.js.map +0 -1
  59. package/dist/argument/argumentPane.js.map +0 -1
  60. package/dist/attach/attachPane.js.map +0 -1
  61. package/dist/audio/audioPane.js.map +0 -1
  62. package/dist/classInstancePane.js.map +0 -1
  63. package/dist/dashboard/basicPreferences.js.map +0 -1
  64. package/dist/dashboard/dashboardPane.js.map +0 -1
  65. package/dist/dashboard/homepage.js.map +0 -1
  66. package/dist/dataContentPane.js.map +0 -1
  67. package/dist/defaultPane.js.map +0 -1
  68. package/dist/dokieli/dokieliPane.js.map +0 -1
  69. package/dist/dokieli/new.js.map +0 -1
  70. package/dist/form/pane.js.map +0 -1
  71. package/dist/home/homePane.js.map +0 -1
  72. package/dist/humanReadablePane.js.map +0 -1
  73. package/dist/imagePane.js.map +0 -1
  74. package/dist/index.js.map +0 -1
  75. package/dist/internal/internalPane.js.map +0 -1
  76. package/dist/mainPage/footer.js.map +0 -1
  77. package/dist/mainPage/header.js.map +0 -1
  78. package/dist/mainPage/index.js.map +0 -1
  79. package/dist/microblogPane/microblogPane.js.map +0 -1
  80. package/dist/n3Pane.js.map +0 -1
  81. package/dist/outline/context.js.map +0 -1
  82. package/dist/outline/manager.js.map +0 -1
  83. package/dist/outline/outlineIcons.js.map +0 -1
  84. package/dist/outline/propertyViews.js.map +0 -1
  85. package/dist/outline/queryByExample.js.map +0 -1
  86. package/dist/outline/userInput.js.map +0 -1
  87. package/dist/outline/viewAsImage.js.map +0 -1
  88. package/dist/outline/viewAsMbox.js.map +0 -1
  89. package/dist/pad/padPane.js.map +0 -1
  90. package/dist/playlist/playlistPane.js.map +0 -1
  91. package/dist/registerPanes.js.map +0 -1
  92. package/dist/schedule/schedulePane.js.map +0 -1
  93. package/dist/sharing/sharingPane.js.map +0 -1
  94. package/dist/slideshow/slideshowPane.js.map +0 -1
  95. package/dist/socialPane.js.map +0 -1
  96. package/dist/tabbed/tabbedPane.js.map +0 -1
  97. package/dist/tableViewPane.js.map +0 -1
  98. package/dist/transaction/pane.js.map +0 -1
  99. package/dist/transaction/period.js.map +0 -1
  100. package/dist/trip/tripPane.js.map +0 -1
  101. package/dist/trustedApplications/trustedApplications.dom.js.map +0 -1
  102. package/dist/trustedApplications/trustedApplications.utils.js.map +0 -1
  103. package/dist/trustedApplications/trustedApplications.view.js.map +0 -1
  104. package/dist/ui/pane.js.map +0 -1
  105. package/dist/versionInfo.js.map +0 -1
  106. package/dist/video/videoPane.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedulePane.js","names":["UI","_interopRequireWildcard","require","_solidLogic","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","formText","ns","possibleAvailabilities","sched","schedulePane","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","mintClass","mintNew","options","Promise","resolve","reject","newBase","thisInstance","useExisting","sym","complainIfBad","ok","body","console","log","Error","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","doc","add","rdf","me","foaf","serialize","setACL2","callbackFunction","aclDoc","any","aclText","uri","fetcher","webOperation","data","contentType","then","_result","catch","err","message","load","updater","authn","currentUser","alert","base","dir","newDetailsDoc","newInstance","newResultsDoc","toBeCopied","noIndexHTML","local","agenda","length","item","fun","copyItem","push","newURI","setThatACL","shift","webCopy","checkUser","webId","createDetailsFile","dc","Date","put","statementsMatching","undefined","uri2","render","dom","invitation","appPathSegment","waitingForLogin","detailsDoc","baseDir","resultsDoc","formsURI","form1","form2","form3","parse","inputStyle","buttonIconStyle","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","refreshCellColor","cell","value","bg","ui","setAttribute","logInOutButton","refresh","showAppropriateDisplay","newInstanceButton","b","login","newAppInstance","noun","initializeNewInstanceInWorkspace","ws","space","split","slice","error","now","getTime","initializeNewInstanceAtBase","p","createElement","innerHTML","getForms","getDetails","nowOrWhenFetched","showSignon","editable","holds","wf","showBootstrap","ready","showForms","getResults","naviMain","signonContext","ensureLoggedIn","textContent","baseField","size","autocomplete","button","addEventListener","_e","doneButton","naviCenter","wizard","currentSlide","gotDoneButton","forms","slides","slide","appendForm","document","b1","removeAttribute","b2","emailButton","naviLeft","naviRight","table","insertables","st","update","success","errorBody","emailIcon","title","anyValue","cal","mailto","each","map","who","mbox","replace","join","encodeURIComponent","window","location","href","response","status","showResults","comment","author","authorName","query","Query","v","vs","forEach","x","vars","variable","pat","resp","time","set_x","opt","set_y","possibleTimes","displayTheMatrix","matrix","matrixForQuery","refreshButton","refreshIcon","disabled","dataPointForNT","loginContext","filter","z","sameTerm","cellFunction","y","_error","selectOptions","predicate","cellSubject","toNT","selector","makeSelectForOptions","utils","responses","myResponse","id","newThing","dps","dataPoint","j","instanceCreator","editButton","editIcon","structure","naviLoginoutTR","naviTop","naviMenu"],"sources":["../../src/schedule/schedulePane.js"],"sourcesContent":["/* Scheduler Pane\n **\n **\n */\n/* global alert */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport * as $rdf from 'rdflib'\nimport formText from './formsForSchedule.ttl'\n\nconst ns = UI.ns\n\n// @@ Give other combos too-- see schedule ontology\nconst possibleAvailabilities = [\n ns.sched('No'),\n ns.sched('Maybe'),\n ns.sched('Yes')\n]\n\nexport const schedulePane = {\n icon: UI.icons.iconBase + 'noun_346777.svg', // @@ better?\n\n name: 'schedule',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an Scheduler 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/ns/pim/schedule#SchedulableEvent']) {\n return 'Scheduling poll'\n }\n return null // No under other circumstances\n },\n\n // Mint a new Schedule poll\n mintClass: ns.sched('SchedulableEvent'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n const ns = UI.ns\n const kb = context.session.store\n let newBase = options.newBase\n const thisInstance =\n options.useExisting || $rdf.sym(options.newBase + 'index.ttl#this')\n\n const complainIfBad = function (ok, body) {\n if (ok) return\n console.log(\n 'Error in Schedule Pane: Error constructing new scheduler: ' + body\n )\n reject(new Error(body))\n }\n\n // ////////////////////// Accesss control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n\n const genACLtext = function (docURI, aclURI, allWrite) {\n const g = $rdf.graph()\n const auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n return $rdf.serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /*\n const setACL3 = function (docURI, allWrite, callbackFunction) {\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return UI.acl.setACL(docURI, aclText, callbackFunction)\n }\n */\n\n const setACL2 = function setACL2 (docURI, allWrite, callbackFunction) {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n ) // @@ check that this get set by web.js\n\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch(err => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n )\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Body of mintNew\n const fetcher = kb.fetcher\n const updater = kb.updater\n\n let me = options.me || authn.currentUser()\n if (!me) {\n console.log('MUST BE LOGGED IN')\n alert('NOT LOGGED IN')\n return\n }\n\n const base = thisInstance.dir().uri\n let newDetailsDoc, newInstance // , newIndexDoc\n\n if (options.useExisting) {\n newInstance = options.useExisting\n newBase = thisInstance.dir().uri\n newDetailsDoc = newInstance.doc()\n // newIndexDoc = null\n if (options.newBase) {\n throw new Error(\n 'mint new scheduler: Illegal - have both new base and existing event'\n )\n }\n } else {\n newDetailsDoc = kb.sym(newBase + 'details.ttl')\n // newIndexDoc = kb.sym(newBase + 'index.html')\n newInstance = kb.sym(newDetailsDoc.uri + '#event')\n }\n\n const newResultsDoc = kb.sym(newBase + 'results.ttl')\n\n const toBeCopied = options.noIndexHTML\n ? {}\n : [{ local: 'index.html', contentType: 'text/html' }]\n\n const agenda = []\n\n // @@ This needs some form of visible progress bar\n for (let f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL2(newURI, false, function (ok, message) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()() // beware too much nesting\n }\n })\n }\n\n kb.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createDetailsFile () {\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.sched('SchedulableEvent'),\n newDetailsDoc\n )\n if (me) {\n kb.add(newInstance, ns.dc('author'), me, newDetailsDoc) // Who is sending the invitation?\n kb.add(newInstance, ns.foaf('maker'), me, newDetailsDoc) // Uneditable - wh is allowed to edit this?\n }\n\n kb.add(newInstance, ns.dc('created'), new Date(), newDetailsDoc)\n kb.add(newInstance, ns.sched('resultsDocument'), newDetailsDoc)\n\n updater.put(\n newDetailsDoc,\n kb.statementsMatching(undefined, undefined, undefined, newDetailsDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n agenda.shift()()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n kb.fetcher\n .webOperation('PUT', newResultsDoc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(() => {\n agenda.shift()()\n })\n .catch(err => {\n complainIfBad(\n false,\n 'Failed to initialize empty results file: ' + err.message\n )\n })\n })\n\n agenda.push(function () {\n setACL2(newResultsDoc.uri, true, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on results file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n setACL2(newDetailsDoc.uri, false, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set read ACL on configuration file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n console.log('Finished minting new scheduler')\n options.newInstance = newInstance\n resolve(options)\n })\n\n agenda.shift()()\n // Created new data files.\n }) // promise\n }, // mintNew\n\n // Render one meeting schedule poll\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n const invitation = subject\n const appPathSegment = 'app-when-can-we.w3.org' // how to allocate this string and connect to\n\n // ////////////////////////////////////////////\n\n const fetcher = kb.fetcher\n const updater = kb.updater\n let waitingForLogin = false\n\n const thisInstance = subject\n const detailsDoc = subject.doc()\n const baseDir = detailsDoc.dir()\n const base = baseDir.uri\n\n const resultsDoc = $rdf.sym(base + 'results.ttl')\n // const formsURI = base + 'forms.ttl'\n // We can't in fact host stuff from there because of CORS\n const formsURI =\n 'https://solidos.github.io/solid-panes/schedule/formsForSchedule.ttl'\n\n const form1 = kb.sym(formsURI + '#form1')\n const form2 = kb.sym(formsURI + '#form2')\n const form3 = kb.sym(formsURI + '#form3')\n\n $rdf.parse(formText, kb, formsURI, 'text/turtle') // Load forms directly\n\n const inputStyle =\n 'background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%' // font-size: 120%\n const buttonIconStyle = 'width: 1.8em; height: 1.8em;'\n\n // Utility functions\n\n const complainIfBad = function (ok, message) {\n if (!ok) {\n div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n const refreshCellColor = function (cell, value) {\n const bg = kb.any(value, UI.ns.ui('backgroundColor'))\n if (bg) {\n cell.setAttribute(\n 'style',\n 'padding: 0.3em; text-align: center; background-color: ' + bg + ';'\n )\n }\n }\n\n let me\n\n authn.checkUser().then(webId => {\n me = webId\n\n if (logInOutButton) {\n logInOutButton.refresh()\n }\n if (webId && waitingForLogin) {\n waitingForLogin = false\n showAppropriateDisplay()\n }\n })\n console.log('me: ' + me) // @@ curently not actually used elsewhere\n\n // ////////////////////////////// Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n //\n\n const newInstanceButton = function () {\n const b = UI.login.newAppInstance(\n dom,\n { noun: 'scheduler' },\n initializeNewInstanceInWorkspace\n )\n b.firstChild.setAttribute('style', inputStyle)\n return b\n } // newInstanceButton\n\n // /////////////////////// Create new document files for new instance of app\n\n const initializeNewInstanceInWorkspace = function (ws) {\n let newBase = kb.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n $rdf.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (thisInstance, newBase) {\n const options = { thisInstance, newBase }\n this.mintNew(context, options)\n .then(function (options) {\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n 'Your <a href=\\'' +\n options.newInstance.uri +\n '\\'><b>new scheduler</b></a> is ready to be set up. ' +\n '<br/><br/><a href=\\'' +\n options.newInstance.uri +\n '\\'>Say when you what days work for you.</a>'\n })\n .catch(function (error) {\n complainIfBad(\n false,\n 'Error createing new scheduler at ' +\n options.newInstance +\n ': ' +\n error\n )\n })\n }\n\n // ///////////////////////\n\n const getForms = function () {\n console.log('getforms()')\n getDetails()\n /*\n fetcher.nowOrWhenFetched(formsURI, undefined, function (ok, body) {\n console.log('getforms() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n getDetails()\n })\n */\n }\n\n const getDetails = function () {\n console.log('getDetails()') // Looking for blank screen hang-up\n fetcher.nowOrWhenFetched(detailsDoc.uri, undefined, function (ok, body) {\n console.log('getDetails() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n showAppropriateDisplay()\n })\n }\n\n const showAppropriateDisplay = function showAppropriateDisplay () {\n console.log('showAppropriateDisplay()')\n\n authn.checkUser().then(webId => {\n if (!webId) {\n return showSignon()\n }\n\n // On gh-pages, the turtle will not load properly (bad mime type)\n // but we can trap it as being a non-editable server.\n\n if (\n !kb.updater.editable(detailsDoc.uri, kb) ||\n kb.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))\n ) {\n // This is read-only example e.g. on github pages, etc\n showBootstrap(div)\n return\n }\n\n const ready = kb.any(subject, ns.sched('ready'))\n\n if (!ready) {\n showForms()\n } else {\n // no editing not author\n getResults()\n }\n })\n }\n\n const showSignon = function showSignon () {\n clearElement(naviMain)\n const signonContext = { div, dom }\n UI.login.ensureLoggedIn(signonContext).then(context => {\n me = context.me\n waitingForLogin = false // untested\n showAppropriateDisplay()\n })\n }\n\n const showBootstrap = function showBootstrap () {\n const div = clearElement(naviMain)\n div.appendChild(\n UI.login.newAppInstance(\n dom,\n { noun: 'poll' },\n initializeNewInstanceInWorkspace\n )\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the poll? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n baseField.label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.setAttribute('style', inputStyle)\n button.textContent = 'Start new poll at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // ///////////// The forms to configure the poll\n\n const doneButton = dom.createElement('button')\n\n const showForms = function () {\n clearElement(naviCenter) // Remove refresh button if nec\n const div = naviMain\n const wizard = true\n let currentSlide = 0\n let gotDoneButton = false\n if (wizard) {\n const forms = [form1, form2, form3]\n const slides = []\n currentSlide = 0\n for (let f = 0; f < forms.length; f++) {\n const slide = dom.createElement('div')\n UI.widgets.appendForm(\n document,\n slide,\n {},\n subject,\n forms[f],\n detailsDoc,\n complainIfBad\n )\n slides.push(slide)\n }\n\n const refresh = function () {\n clearElement(naviMain).appendChild(slides[currentSlide])\n\n if (currentSlide === 0) {\n b1.setAttribute('disabled', '')\n } else {\n b1.removeAttribute('disabled')\n }\n if (currentSlide === slides.length - 1) {\n b2.setAttribute('disabled', '')\n if (!gotDoneButton) {\n // Only expose at last slide seen\n naviCenter.appendChild(emailButton) // could also check data shape\n naviCenter.appendChild(doneButton) // could also check data shape\n gotDoneButton = true\n }\n } else {\n b2.removeAttribute('disabled')\n }\n }\n const b1 = clearElement(naviLeft).appendChild(dom.createElement('button'))\n b1.setAttribute('style', inputStyle)\n b1.textContent = '<- go back'\n b1.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide > 0) {\n currentSlide -= 1\n refresh()\n }\n },\n false\n )\n\n const b2 = clearElement(naviRight).appendChild(\n dom.createElement('button')\n )\n b2.setAttribute('style', inputStyle)\n b2.textContent = 'continue ->'\n b2.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide < slides.length - 1) {\n currentSlide += 1\n refresh()\n }\n },\n false\n )\n\n refresh()\n } else {\n // not wizard one big form\n // @@@ create the initial config doc if not exist\n const table = div.appendChild(dom.createElement('table'))\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form1,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form2,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form3,\n detailsDoc,\n complainIfBad\n )\n naviCenter.appendChild(doneButton) // could also check data shape\n }\n // @@@ link config to results\n\n const insertables = []\n insertables.push(\n $rdf.st(\n subject,\n ns.sched('availabilityOptions'),\n ns.sched('YesNoMaybe'),\n detailsDoc\n )\n )\n insertables.push(\n $rdf.st(subject, ns.sched('ready'), new Date(), detailsDoc)\n )\n insertables.push(\n $rdf.st(subject, ns.sched('results'), resultsDoc, detailsDoc)\n ) // @@ also link in results\n\n doneButton.setAttribute('style', inputStyle)\n doneButton.textContent = 'Go to poll'\n doneButton.addEventListener(\n 'click',\n function (_e) {\n if (kb.any(subject, ns.sched('ready'))) {\n // already done\n getResults()\n naviRight.appendChild(emailButton)\n } else {\n naviRight.appendChild(emailButton)\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n // naviRight.appendChild(emailButton)\n getResults()\n }\n })\n }\n },\n false\n )\n\n const emailButton = dom.createElement('button')\n emailButton.setAttribute('style', inputStyle)\n const emailIcon = emailButton.appendChild(dom.createElement('img'))\n emailIcon.setAttribute('src', UI.icons.iconBase + 'noun_480183.svg') // noun_480183.svg\n emailIcon.setAttribute('style', buttonIconStyle)\n // emailButton.textContent = 'email invitations'\n emailButton.addEventListener(\n 'click',\n function (_e) {\n const title =\n kb.anyValue(subject, ns.cal('summary')) ||\n kb.anyValue(subject, ns.dc('title')) ||\n ''\n const mailto =\n 'mailto:' +\n kb\n .each(subject, ns.sched('invitee'))\n .map(function (who) {\n const mbox = kb.any(who, ns.foaf('mbox'))\n return mbox ? mbox.uri.replace('mailto:', '') : ''\n })\n .join(',') +\n '?subject=' +\n encodeURIComponent(title + '-- When can we meet?') +\n '&body=' +\n encodeURIComponent(\n title + '\\n\\nWhen can you?\\n\\nSee ' + subject + '\\n'\n )\n // @@ assumed there is a data browser\n\n console.log('Mail: ' + mailto)\n window.location.href = mailto\n },\n false\n )\n } // showForms\n\n // Ask for each day, what times .. @@ to be added some time\n /*\n const setTimesOfDay = function () {\n const i, j, x, y, slot, cell, day\n const insertables = []\n const possibleDays = kb.each(invitation, ns.sched('option'))\n .map(function (opt) {return kb.any(opt, ns.cal('dtstart'))})\n const cellLookup = []\n const slots = kb.each(invitation, ns.sched('slot'))\n if (slots.length === 0) {\n for (i = 0; i < 2; i++) {\n slot = UI.widgets.newThing(detailsDoc)\n insertables.push($rdf.st(invitation, ns.sched('slot'), slot))\n insertables.push($rdf.st(slot, ns.rdfs('label'), 'slot ' + (i + 1)))\n for (j = 0; j < possibleDays.length; j++) {\n day - possibleDays[j]\n x = kb.any(slot, ns.rdfs('label'))\n y = kb.any(day, ns.cal('dtstart'))\n cell = UI.widgets.newThing(detailsDoc)\n cellLookup[x.toNT() + y.toNT()] = cell\n insertables.push($rdf.st(slot, ns.sched('cell'), cell))\n insertables.push($rdf.st(cell, ns.sched('day'), possibleDays[j]))\n }\n }\n }\n\n const query = new $rdf.Query('TimesOfDay')\n const v = {}['day', 'label', 'value', 'slot', 'cell'].map(function (x) {\n query.consts.push(v[x] = $rdf.constiable(x)) })\n query.pat.add(invitation, ns.sched('slot'), v.slot)\n query.pat.add(v.slot, ns.rdfs('label'), v.label)\n query.pat.add(v.slot, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('timeOfDay'), v.value)\n query.pat.add(v.cell, ns.sched('day'), v.day)\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('slot')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) { return kb.any(opt, ns.rdfs('label')) })\n\n options.set_y = kb.each(subject, ns.sched('option')); // @@@@@ option -> dtstart in future\n options.set_y = options.set_y.map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const possibleTimes = kb.each(invitation, ns.sched('option'))\n .map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(UI.matrix.matrixForQuery(\n dom, query, v.time, v.author, v.value, options, function () {}))\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n refreshButton.textContent = 'refresh'\n refreshButton.addEventListener('click', function (e) {\n refreshButton.disabled = true\n store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n }, false)\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n const dataPointForNT = []\n\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) { return (! z.sameTerm(me)) })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n // const point = cellLookup[x.toNT() + y.toNT()]\n\n if (y.sameTerm(me)) {\n const callbackFunction = function () { refreshCellColor(cell, value); }; // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('timeOfDay')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(dom, kb, cellSubject, predicate,\n possibleAvailabilities, selectOptions, resultsDoc, callbackFunction)\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n const myResponse = null\n responses.map(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push($rdf.st(invitation, ns.sched('response'), myResponse, doc))\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.map(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push($rdf.st(myResponse, ns.sched('cell'), dataPoint, doc))\n insertables.push($rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n store.updater.update([], insertables, function (uri, success, errorBody) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else { // no insertables\n displayTheMatrix()\n }\n }\n */\n // end setTimesOfDay\n\n // Read or create empty results file\n function getResults () {\n fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing details file ' + resultsDoc)\n updater.put(resultsDoc, [], 'text/turtle', function (\n uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults()\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n showResults()\n }\n })\n }\n\n function showResults () {\n // Now the form for responsing to the poll\n //\n\n // div.appendChild(dom.createElement('hr'))\n\n // const invitation = subject\n const title = kb.any(invitation, ns.cal('summary'))\n const comment = kb.any(invitation, ns.cal('comment'))\n const location = kb.any(invitation, ns.cal('location'))\n const div = naviMain\n if (title) div.appendChild(dom.createElement('h3')).textContent = title\n if (location) {\n div.appendChild(dom.createElement('address')).textContent =\n location.value\n }\n if (comment) {\n div.appendChild(dom.createElement('p')).textContent = comment.value\n }\n const author = kb.any(invitation, ns.dc('author'))\n if (author) {\n const authorName = kb.any(author, ns.foaf('name'))\n if (authorName) {\n div.appendChild(dom.createElement('p')).textContent = authorName\n }\n }\n\n const query = new $rdf.Query('Responses')\n const v = {}\n const vs = ['time', 'author', 'value', 'resp', 'cell']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(invitation, ns.sched('response'), v.resp)\n query.pat.add(v.resp, ns.dc('author'), v.author)\n query.pat.add(v.resp, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('availabilty'), v.value)\n query.pat.add(v.cell, ns.cal('dtstart'), v.time)\n\n // Sort by by person @@@\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('option')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n options.set_y = kb.each(subject, ns.sched('response'))\n options.set_y = options.set_y.map(function (resp) {\n return kb.any(resp, ns.dc('author'))\n })\n\n const possibleTimes = kb\n .each(invitation, ns.sched('option'))\n .map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(\n UI.matrix.matrixForQuery(\n dom,\n query,\n v.time,\n v.author,\n v.value,\n options,\n function () {}\n )\n )\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n // refreshButton.textContent = 'refresh' // noun_479395.svg\n const refreshIcon = dom.createElement('img')\n refreshIcon.setAttribute('src', UI.icons.iconBase + 'noun_479395.svg')\n refreshIcon.setAttribute('style', buttonIconStyle)\n refreshButton.appendChild(refreshIcon)\n refreshButton.addEventListener(\n 'click',\n function (_e) {\n refreshButton.disabled = true\n kb.fetcher.refresh(resultsDoc, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n },\n false\n )\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n // @@ Give other combos too-- see schedule ontology\n // const possibleAvailabilities = [ SCHED('No'), SCHED('Maybe'), SCHED('Yes') ]\n\n // const me = authn.currentUser()\n\n const dataPointForNT = []\n\n const loginContext = { div: naviCenter, dom }\n UI.login.ensureLoggedIn(loginContext).then(context => {\n const me = context.me\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) {\n return !z.sameTerm(me)\n })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n if (value !== null) {\n kb.fetcher.nowOrWhenFetched(\n value.uri.split('#')[0],\n undefined,\n function (ok, _error) {\n if (ok) refreshCellColor(cell, value)\n }\n )\n }\n if (y.sameTerm(me)) {\n const callbackFunction = function () {\n refreshCellColor(cell, value)\n } // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('availabilty')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(\n dom,\n kb,\n cellSubject,\n predicate,\n possibleAvailabilities,\n selectOptions,\n resultsDoc,\n callbackFunction\n )\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n let myResponse = null\n responses.forEach(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const insertables = [] // list of statements to be stored\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push(\n $rdf.st(invitation, ns.sched('response'), myResponse, doc)\n )\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.forEach(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push(\n $rdf.st(myResponse, ns.sched('cell'), dataPoint, doc)\n )\n insertables.push(\n $rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)\n ) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else {\n // no insertables\n displayTheMatrix()\n }\n }) // @@@@ end of .then\n\n // If I made this in the first place, allow me to edit it.\n // @@ optionally -- allows others to if according to original\n const instanceCreator = kb.any(subject, ns.foaf('maker')) // owner?\n if (!instanceCreator || instanceCreator.sameTerm(me)) {\n const editButton = dom.createElement('button')\n editButton.setAttribute('style', inputStyle)\n // editButton.textContent = '(Modify the poll)' // noun_344563.svg\n const editIcon = dom.createElement('img')\n editIcon.setAttribute('src', UI.icons.iconBase + 'noun_344563.svg')\n editIcon.setAttribute('style', buttonIconStyle)\n editButton.appendChild(editIcon)\n editButton.addEventListener(\n 'click',\n function (_e) {\n clearElement(div)\n showForms()\n },\n false\n )\n clearElement(naviLeft)\n naviLeft.appendChild(editButton)\n }\n\n // div.appendChild(editButton)\n\n clearElement(naviRight)\n naviRight.appendChild(newInstanceButton())\n } // showResults\n\n const div = dom.createElement('div')\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 40em; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const logInOutButton = null\n /*\n const logInOutButton = UI.login.loginStatusBox(dom, setUser)\n // floating divs lead to a mess\n // logInOutButton.setAttribute('style', 'float: right') // float the beginning of the end\n naviLoginout3.appendChild(logInOutButton)\n logInOutButton.setAttribute('style', 'margin-right: 0em;')\n */\n\n const naviTop = structure.appendChild(dom.createElement('tr'))\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n naviMenu.setAttribute(\n 'style',\n ' text-align: middle; vertical-align: middle; padding-top: 4em; '\n )\n // naviMenu.setAttribute('style', 'margin-top: 3em;')\n const naviLeft = naviMenu.appendChild(dom.createElement('td'))\n const naviCenter = naviMenu.appendChild(dom.createElement('td'))\n const naviRight = naviMenu.appendChild(dom.createElement('td'))\n\n getForms()\n\n return div\n } // render\n} // property list\n// ends\n"],"mappings":"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,IAAI,GAAGvL,EAAE,CAACuC,GAAG,CAAC+I,GAAG,EAAEpM,EAAE,CAACgD,IAAI,CAAC,MAAM,CAAC,CAAC;UACzC,OAAOqJ,IAAI,GAAGA,IAAI,CAAC9I,GAAG,CAAC+I,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE;QACpD,CAAC,CAAC,CACDC,IAAI,CAAC,GAAG,CAAC,GACZ,WAAW,GACXC,kBAAkB,CAACV,KAAK,GAAG,sBAAsB,CAAC,GAClD,QAAQ,GACRU,kBAAkB,CAChBV,KAAK,GAAG,2BAA2B,GAAGlL,OAAO,GAAG,IAClD,CAAC;QACH;;QAEAmB,OAAO,CAACC,GAAG,CAAC,QAAQ,GAAGiK,MAAM,CAAC;QAC9BQ,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGV,MAAM;MAC/B,CAAC,EACD,KACF,CAAC;IACH,CAAC,EAAC;;IAEF;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAgBI;;IAEA;IACA,SAASrC,UAAUA,CAAA,EAAI;MACrBpG,OAAO,CAAC4F,gBAAgB,CAAC5C,UAAU,CAACjD,GAAG,EAAE,CAAC1B,EAAE,EAAEC,IAAI,EAAE8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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sharingPane.js","names":["_solidUi","require","sharingPane","icon","icons","iconBase","name","label","subject","context","store","session","t","findTypeURIs","ns","ldp","uri","render","dom","noun","getNoun","div","createElement","classList","add","aclControl","preventBrowserDropEvents","appendChild","ACLControlBox5","_default","exports","default"],"sources":["../../src/sharing/sharingPane.ts"],"sourcesContent":["/* Sharing Pane\n **\n ** This outline pane allows a user to view and adjust the sharing -- access control lists\n ** for anything which has that capability.\n **\n ** I am using in places single quotes strings like 'this'\n ** where internationalization (\"i18n\") is not a problem, and double quoted\n ** like \"this\" where the string is seen by the user and so I18n is an issue.\n */\n\nimport { aclControl, icons, ns } from 'solid-ui'\n\nconst sharingPane = {\n icon: icons.iconBase + 'padlock-timbl.svg',\n\n name: 'sharing',\n\n label: (subject, context) => {\n const store = context.session.store\n const t = store.findTypeURIs(subject)\n if (t[ns.ldp('Resource').uri]) return 'Sharing' // @@ be more sophisticated?\n if (t[ns.ldp('Container').uri]) return 'Sharing' // @@ be more sophisticated?\n if (t[ns.ldp('BasicContainer').uri]) return 'Sharing' // @@ be more sophisticated?\n // check being allowed to see/change sharing?\n return null // No under other circumstances\n },\n\n render: (subject, context) => {\n const dom = context.dom\n const store = context.session.store\n const noun = getNoun()\n\n const div = dom.createElement('div')\n div.classList.add('sharingPane')\n aclControl.preventBrowserDropEvents(dom)\n div.appendChild(aclControl.ACLControlBox5(subject, context, noun, store))\n return div\n\n function getNoun () {\n const t = store.findTypeURIs(subject)\n if (t[ns.ldp('BasicContainer').uri] || t[ns.ldp('Container').uri]) {\n return 'folder'\n }\n return 'file'\n }\n }\n}\n\nexport default sharingPane\n"],"mappings":";;;;;;AAUA,IAAAA,QAAA,GAAAC,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMC,WAAW,GAAG;EAClBC,IAAI,EAAEC,cAAK,CAACC,QAAQ,GAAG,mBAAmB;EAE1CC,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEA,CAACC,OAAO,EAAEC,OAAO,KAAK;IAC3B,MAAMC,KAAK,GAAGD,OAAO,CAACE,OAAO,CAACD,KAAK;IACnC,MAAME,CAAC,GAAGF,KAAK,CAACG,YAAY,CAACL,OAAO,CAAC;IACrC,IAAII,CAAC,CAACE,WAAE,CAACC,GAAG,CAAC,UAAU,CAAC,CAACC,GAAG,CAAC,EAAE,OAAO,SAAS,EAAC;IAChD,IAAIJ,CAAC,CAACE,WAAE,CAACC,GAAG,CAAC,WAAW,CAAC,CAACC,GAAG,CAAC,EAAE,OAAO,SAAS,EAAC;IACjD,IAAIJ,CAAC,CAACE,WAAE,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAACC,GAAG,CAAC,EAAE,OAAO,SAAS,EAAC;IACtD;IACA,OAAO,IAAI,EAAC;EACd,CAAC;EAEDC,MAAM,EAAEA,CAACT,OAAO,EAAEC,OAAO,KAAK;IAC5B,MAAMS,GAAG,GAAGT,OAAO,CAACS,GAAG;IACvB,MAAMR,KAAK,GAAGD,OAAO,CAACE,OAAO,CAACD,KAAK;IACnC,MAAMS,IAAI,GAAGC,OAAO,CAAC,CAAC;IAEtB,MAAMC,GAAG,GAAGH,GAAG,CAACI,aAAa,CAAC,KAAK,CAAC;IACpCD,GAAG,CAACE,SAAS,CAACC,GAAG,CAAC,aAAa,CAAC;IAChCC,mBAAU,CAACC,wBAAwB,CAACR,GAAG,CAAC;IACxCG,GAAG,CAACM,WAAW,CAACF,mBAAU,CAACG,cAAc,CAACpB,OAAO,EAAEC,OAAO,EAAEU,IAAI,EAAET,KAAK,CAAC,CAAC;IACzE,OAAOW,GAAG;IAEV,SAASD,OAAOA,CAAA,EAAI;MAClB,MAAMR,CAAC,GAAGF,KAAK,CAACG,YAAY,CAACL,OAAO,CAAC;MACrC,IAAII,CAAC,CAACE,WAAE,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAACC,GAAG,CAAC,IAAIJ,CAAC,CAACE,WAAE,CAACC,GAAG,CAAC,WAAW,CAAC,CAACC,GAAG,CAAC,EAAE;QACjE,OAAO,QAAQ;MACjB;MACA,OAAO,MAAM;IACf;EACF;AACF,CAAC;AAAA,IAAAa,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc7B,WAAW","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"slideshowPane.js","names":["UI","_interopRequireWildcard","require","_betterSimpleSlideshow","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","slideshowPane","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","store","session","findTypeURIs","ldp","uri","contents","each","count","forEach","file","widgets","isImage","render","dom","styleSheet","addStyleSheet","div","createElement","setAttribute","predicate","images","sort","length","figure","appendChild","img","fetcher","_fetch","then","response","blob","myBlob","objectURL","URL","createObjectURL","options","setTimeout","makeBSS"],"sources":["../../src/slideshow/slideshowPane.js"],"sourcesContent":["/* slideshow Pane\n **\n */\nimport * as UI from 'solid-ui'\n\nimport makeBSS from '@solid/better-simple-slideshow'\nconst ns = UI.ns\n\nexport const slideshowPane = {\n icon: UI.icons.iconBase + 'noun_138712.svg',\n\n name: 'slideshow',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an slideshow pane?\n label: function (subject, context) {\n const store = context.session.store\n const ns = UI.ns\n const t = store.findTypeURIs(subject)\n if (t[ns.ldp('Container').uri] || t[ns.ldp('BasicContainer').uri]) {\n const contents = store.each(subject, ns.ldp('contains'))\n let count = 0\n contents.forEach(function (file) {\n if (UI.widgets.isImage(file)) count++\n })\n return count > 0 ? 'Slideshow' : null\n }\n return null\n },\n\n // See https://github.com/leemark/better-simple-slideshow\n // and follow instructions there\n render: function (subject, context) {\n const dom = context.dom\n const styleSheet =\n 'https://leemark.github.io/better-simple-slideshow/css/simple-slideshow-styles.css'\n UI.widgets.addStyleSheet(dom, styleSheet)\n\n const store = context.session.store\n const ns = UI.ns\n const div = dom.createElement('div')\n div.setAttribute('class', 'bss-slides')\n\n const t = store.findTypeURIs(subject)\n let predicate\n if (t[ns.ldp('BasicContainer').uri] || t[ns.ldp('Container').uri]) {\n predicate = ns.ldp('contains')\n }\n const images = store.each(subject, predicate) // @@ random order?\n // @@ Ideally: sort by embedded time of image\n images.sort() // Sort for now by URI\n for (let i = 0; i < images.length; i++) {\n if (!UI.widgets.isImage(images[i])) continue\n const figure = div.appendChild(dom.createElement('figure'))\n const img = figure.appendChild(dom.createElement('img'))\n\n // get image with authenticated fetch\n store.fetcher._fetch(images[i].uri)\n .then(function (response) {\n return response.blob()\n })\n .then(function (myBlob) {\n const objectURL = URL.createObjectURL(myBlob)\n img.setAttribute('src', objectURL) // w640 h480 //\n })\n img.setAttribute('width', '100%')\n figure.appendChild(dom.createElement('figcaption'))\n }\n const options = { dom }\n\n setTimeout(function () {\n makeBSS('.bss-slides', options)\n }, 1000) // Must run after the code which called this\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"socialPane.js","names":["UI","_interopRequireWildcard","require","_solidLogic","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","socialPane","exports","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","types","findTypeURIs","ns","foaf","uri","vcard","render","s","dom","common","x","y","both","length","j","sameTerm","push","people","res","say","str","console","log","p","createElement","textContent","tips","appendChild","link","contents","a","setAttribute","text","createTextNode","buildCheckboxForm","lab","statement","state","input","tx","className","boxHandler","_e","checked","outliner","UserInput","sparqler","insert_statement","success","errorBody","alert","add","predicate","object","why","error","delete_statement","removeMany","addEventListener","oneFriend","friend","_confirmed","widgets","personTR","getOutliner","div","navBlockStyle","mainBlockStyle","foafPicStyle","structure","tr","left","middle","right","tools","style","cssText","mainTable","src","any","img","anyValue","h3","me","authn","currentUser","meUri","loginOutButton","login","loginStatusBox","webIdUri","sym","refreshTree","thisIsYou","sameThings","knows","familiar","friends","each","profile","editable","incoming","outgoing","works","undefined","message","whether","rdf","utils","escapeForXML","cme","canon","outgoingSt","statementsMatching","youAndThem","Statement","myFriends","mutualFriends","attachmentList","doc","modify","noun","_triageFriends","confirmed","unconfirmed","requests","found","cases","thisCase","htr","items","j9","sort","last","fr","j7","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r2","lastIndexOf","slice","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"sources":["../src/socialPane.js"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport * as $rdf from 'rdflib'\n\nexport const socialPane = {\n icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[UI.ns.foaf('Person').uri] ||\n types[UI.ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x, y) {\n // Find common members of two lists\n const both = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const people = function (n) {\n let res = ' '\n res += n || 'no'\n if (n === 1) return res + ' person'\n return res + ' people'\n }\n const say = function (str) {\n console.log(str)\n const p = dom.createElement('p')\n p.textContent = str\n tips.appendChild(p)\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str) {\n return dom.createTextNode(str)\n }\n\n const buildCheckboxForm = function (lab, statement, state) {\n const f = dom.createElement('form')\n const input = dom.createElement('input')\n f.appendChild(input)\n const tx = dom.createTextNode(lab)\n tx.className = 'question'\n f.appendChild(tx)\n input.setAttribute('type', 'checkbox')\n const boxHandler = function (_e) {\n tx.className = 'pendingedit'\n // alert('Should be greyed out')\n if (this.checked) {\n // Add link\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n null,\n 'Message',\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n })\n } catch (e) {\n UI.log.error('Data write fails:' + e)\n UI.log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n // Remove link\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n this.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n }\n })\n } catch (e) {\n UI.log.alert('Delete fails:' + e)\n this.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n const oneFriend = function (friend, _confirmed) {\n return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {})\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const div = dom.createElement('div')\n div.setAttribute('class', 'socialPane')\n const foaf = UI.ns.foaf\n const vcard = UI.ns.vcard\n\n // extracted from tabbedtab.css 2017-03-21\n const navBlockStyle =\n 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;'\n const mainBlockStyle =\n 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;'\n const foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;'\n\n const structure = div.appendChild(dom.createElement('table'))\n const tr = structure.appendChild(dom.createElement('tr'))\n const left = tr.appendChild(dom.createElement('td'))\n const middle = tr.appendChild(dom.createElement('td'))\n const right = tr.appendChild(dom.createElement('td'))\n\n const tools = left\n tools.style.cssText = navBlockStyle\n const mainTable = middle.appendChild(dom.createElement('table'))\n mainTable.style.cssText = mainBlockStyle\n const tips = right\n tips.style.cssText = navBlockStyle\n\n // Image top left\n const src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'))\n if (src) {\n const img = dom.createElement('IMG')\n img.setAttribute('src', src.uri) // w640 h480\n // img.className = 'foafPic'\n img.style.cssText = foafPicStyle\n tools.appendChild(img)\n }\n const name = kb.anyValue(s, foaf('name')) || '???'\n let h3 = dom.createElement('H3')\n h3.appendChild(dom.createTextNode(name))\n\n let me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n // @@ Add: event handler to redraw the stuff below when me changes.\n const loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n me = kb.sym(webIdUri)\n // @@ To be written: redraw as a function the new me\n // @@ refresh the sidebars\n UI.widgets.refreshTree(div) // this refreshes the middle at least\n })\n\n tips.appendChild(loginOutButton)\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n\n // Do I have a public profile document?\n let profile = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming\n let outgoing\n if (me) {\n // The definition of FAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n UI.ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n editable = outliner.UserInput.sparqler.editable(works[i].uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n UI.utils.escapeForXML(works[i].uri) +\n '> is not remotely editable.'\n } else {\n profile = works[i]\n break\n }\n }\n }\n\n if (!profile) {\n say(\n message + '\\nI couldn\\'t find your editable personal profile document.'\n )\n } else {\n say('Editing your profile ' + profile + '.')\n // Do I have an EDITABLE profile?\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('You and ' + familiar))\n tools.appendChild(h3)\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n\n const youAndThem = function () {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' and '))\n tr.appendChild(link(text(familiar), s.uri))\n }\n\n if (!incoming) {\n if (!outgoing) {\n youAndThem()\n tr.appendChild(text(' have not said you know each other.'))\n } else {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' (unconfirmed)'))\n }\n } else {\n if (!outgoing) {\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' knows '))\n tr.appendChild(link(text('you'), meUri))\n tr.appendChild(text(' (unconfirmed).')) // @@\n tr.appendChild(text(' confirm you know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text('.'))\n } else {\n youAndThem()\n tr.appendChild(text(' say you know each other.'))\n }\n }\n\n if (editable) {\n const f = buildCheckboxForm(\n 'You know ' + familiar,\n new $rdf.Statement(me, knows, s, profile),\n outgoing\n )\n tools.appendChild(f)\n } // editable\n\n // //////////////// Mutual friends\n if (friends) {\n const myFriends = kb.each(me, foaf('knows'))\n if (myFriends.length) {\n const mutualFriends = common(friends, myFriends)\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n tr.appendChild(\n dom.createTextNode(\n 'You' +\n (familiar ? ' and ' + familiar : '') +\n ' know' +\n people(mutualFriends.length) +\n ' found in common'\n )\n )\n if (mutualFriends) {\n for (let i = 0; i < mutualFriends.length; i++) {\n tr.appendChild(\n dom.createTextNode(', ' + UI.utils.label(mutualFriends[i]))\n )\n }\n }\n }\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n } // friends\n } // About someone else\n } // me is defined\n // End of you and s\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n // List all x such that s knows x.\n UI.widgets.attachmentList(dom, s, mainTable, {\n doc: profile,\n modify: !!editable,\n predicate: foaf('knows'),\n noun: 'friend'\n })\n\n // Figure out which are reciprocated:\n // @@ Does not look up profiles\n // Does distinguish reciprocated from unreciprocated friendships\n //\n function _triageFriends (s) {\n outgoing = kb.each(s, foaf('knows'))\n incoming = kb.each(undefined, foaf('knows'), s) // @@ have to load the friends\n const confirmed = []\n const unconfirmed = []\n const requests = []\n\n for (let i = 0; i < outgoing.length; i++) {\n const friend = outgoing[i]\n let found = false\n for (let j = 0; j < incoming.length; j++) {\n if (incoming[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (found) confirmed.push(friend)\n else unconfirmed.push(friend)\n } // outgoing\n\n for (let i = 0; i < incoming.length; i++) {\n const friend = incoming[i]\n // var lab = UI.utils.label(friend)\n let found = false\n for (let j = 0; j < outgoing.length; j++) {\n if (outgoing[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (!found) requests.push(friend)\n } // incoming\n\n const cases = [\n ['Acquaintances', outgoing],\n ['Mentioned as acquaintances by: ', requests]\n ]\n for (let i = 0; i < cases.length; i++) {\n const thisCase = cases[i]\n const friends = thisCase[1]\n if (friends.length === 0) continue // Skip empty sections (sure?)\n\n const h3 = dom.createElement('h3')\n h3.textContent = thisCase[0]\n const htr = dom.createElement('tr')\n htr.appendChild(h3)\n mainTable.appendChild(htr)\n\n const items = []\n for (let j9 = 0; j9 < friends.length; j9++) {\n items.push([UI.utils.label(friends[j9]), friends[j9]])\n }\n items.sort()\n let last = null\n let fr\n for (let j7 = 0; j7 < items.length; j7++) {\n fr = items[j7][1]\n if (fr.sameTerm(last)) continue // unique\n last = fr\n if (UI.utils.label(fr) !== '...') {\n // This check is to avoid bnodes with no labels attached\n // appearing in the friends list with \"...\" - Oshani\n mainTable.appendChild(oneFriend(fr))\n }\n }\n }\n }\n /* if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n triageFriends(s)\n } */\n // //////////////////////////////////// Basic info on left\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('Basic Information'))\n tools.appendChild(h3)\n\n // For each home page like thing make a label which will\n // make sense and add the domain (like \"w3.org blog\") if there are more than one of the same type\n //\n const preds = [\n UI.ns.foaf('homepage'),\n UI.ns.foaf('weblog'),\n UI.ns.foaf('workplaceHomepage'),\n UI.ns.foaf('schoolHomepage')\n ]\n for (let i6 = 0; i6 < preds.length; i6++) {\n const pred = preds[i6]\n const sts = kb.statementsMatching(s, pred)\n if (sts.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n const uris = []\n for (let j5 = 0; j5 < sts.length; j5++) {\n const st = sts[j5]\n if (st.object.uri) uris.push(st.object.uri) // Ignore if not symbol\n }\n uris.sort()\n let last2 = ''\n let lab2\n for (let k = 0; k < uris.length; k++) {\n const uri = uris[k]\n if (uri === last2) continue // uniques only\n last2 = uri\n let hostlabel = ''\n lab2 = UI.utils.label(pred)\n if (uris.length > 1) {\n const l = uri.indexOf('//')\n if (l > 0) {\n let r = uri.indexOf('/', l + 2)\n const r2 = uri.lastIndexOf('.', r)\n if (r2 > 0) r = r2\n hostlabel = uri.slice(l + 2, r)\n }\n }\n if (hostlabel) lab2 = hostlabel + ' ' + lab2 // disambiguate\n const t = dom.createTextNode(lab2)\n const a = dom.createElement('a')\n a.appendChild(t)\n a.setAttribute('href', uri)\n const d = dom.createElement('div')\n // d.className = 'social_linkButton'\n d.style.cssText =\n 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;'\n d.appendChild(a)\n tools.appendChild(d)\n }\n }\n }\n\n const preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')]\n for (let i2 = 0; i2 < preds2.length; i2++) {\n const pred = preds2[i2]\n const sts2 = kb.statementsMatching(s, pred)\n if (sts2.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n outliner.appendPropertyTRs(tools, sts2, false, function (_pred) {\n return true\n })\n }\n }\n\n return div\n } // render()\n} //\n// ends\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabbedPane.js","names":["_solidUi","require","TabbedPane","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","kb","session","store","typeURIs","findTypeURIs","meeting","uri","render","dom","div","createElement","fetcher","Error","load","appendChild","tabs","tabWidget","predicate","any","ordered","orientation","anyValue","renderMain","containerDiv","item","innerHTML","table","getOutliner","GotoSubject","undefined","renderTab","the","widgets","personTR","backgroundColor","ui","_default","exports","default"],"sources":["../../src/tabbed/tabbedPane.ts"],"sourcesContent":["/* Tabbed view of anything\n **\n ** data-driven\n **\n */\nimport { Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\nimport { icons, ns, tabs, widgets } from 'solid-ui'\n\nconst TabbedPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_688606.svg',\n\n name: 'tabbed',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: (subject, context) => {\n const kb = context.session.store as Store\n const typeURIs = kb.findTypeURIs(subject)\n if (ns.meeting('Cluster').uri in typeURIs) {\n return 'Tabbed'\n }\n return null\n },\n\n render: (subject, context) => {\n const dom = context.dom\n const store = context.session.store as Store\n const div = dom.createElement('div')\n\n ;(async () => {\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n await store.fetcher.load(subject)\n\n div.appendChild(tabs.tabWidget({\n dom,\n subject,\n predicate: store.any(subject, ns.meeting('predicate')) || ns.meeting('toolList'),\n ordered: true,\n orientation: ((store as Store).anyValue(subject, ns.meeting('orientation')) || '0') as ('0' | '1' | '2' | '3'),\n renderMain: (containerDiv, item) => {\n containerDiv.innerHTML = ''\n const table = containerDiv.appendChild(context.dom.createElement('table'))\n ;(context.getOutliner(context.dom) as any).GotoSubject(item, true, null, false, undefined, table)\n },\n renderTab: (containerDiv, item) => {\n const predicate = store.the(subject, ns.meeting('predicate'))\n containerDiv.appendChild(widgets.personTR(context.dom, predicate, item, {}))\n },\n backgroundColor: store.anyValue(subject, ns.ui('backgroundColor')) || '#ddddcc'\n }))\n })()\n return div\n }\n}\n\nexport default TabbedPane\n"],"mappings":";;;;;;AAOA,IAAAA,QAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;;AAKA,MAAMC,UAA0B,GAAG;EACjCC,IAAI,EAAEC,cAAK,CAACC,QAAQ,GAAG,iBAAiB;EAExCC,IAAI,EAAE,QAAQ;EAEdC,QAAQ,EAAE,CAACC,WAAE,CAACC,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjC;EACAC,KAAK,EAAEA,CAACC,OAAO,EAAEC,OAAO,KAAK;IAC3B,MAAMC,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACC,KAAc;IACzC,MAAMC,QAAQ,GAAGH,EAAE,CAACI,YAAY,CAACN,OAAO,CAAC;IACzC,IAAIH,WAAE,CAACU,OAAO,CAAC,SAAS,CAAC,CAACC,GAAG,IAAIH,QAAQ,EAAE;MACzC,OAAO,QAAQ;IACjB;IACA,OAAO,IAAI;EACb,CAAC;EAEDI,MAAM,EAAEA,CAACT,OAAO,EAAEC,OAAO,KAAK;IAC5B,MAAMS,GAAG,GAAGT,OAAO,CAACS,GAAG;IACvB,MAAMN,KAAK,GAAGH,OAAO,CAACE,OAAO,CAACC,KAAc;IAC5C,MAAMO,GAAG,GAAGD,GAAG,CAACE,aAAa,CAAC,KAAK,CAAC;IAEnC,CAAC,YAAY;MACZ,IAAI,CAACR,KAAK,CAACS,OAAO,EAAE;QAClB,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;MACzC;MACA,MAAMV,KAAK,CAACS,OAAO,CAACE,IAAI,CAACf,OAAO,CAAC;MAEjCW,GAAG,CAACK,WAAW,CAACC,aAAI,CAACC,SAAS,CAAC;QAC7BR,GAAG;QACHV,OAAO;QACPmB,SAAS,EAAEf,KAAK,CAACgB,GAAG,CAACpB,OAAO,EAAEH,WAAE,CAACU,OAAO,CAAC,WAAW,CAAC,CAAC,IAAIV,WAAE,CAACU,OAAO,CAAC,UAAU,CAAC;QAChFc,OAAO,EAAE,IAAI;QACbC,WAAW,EAAIlB,KAAK,CAAWmB,QAAQ,CAACvB,OAAO,EAAEH,WAAE,CAACU,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,GAA+B;QAC9GiB,UAAU,EAAEA,CAACC,YAAY,EAAEC,IAAI,KAAK;UAClCD,YAAY,CAACE,SAAS,GAAG,EAAE;UAC3B,MAAMC,KAAK,GAAGH,YAAY,CAACT,WAAW,CAACf,OAAO,CAACS,GAAG,CAACE,aAAa,CAAC,OAAO,CAAC,CAAC;UACxEX,OAAO,CAAC4B,WAAW,CAAC5B,OAAO,CAACS,GAAG,CAAC,CAASoB,WAAW,CAACJ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAEK,SAAS,EAAEH,KAAK,CAAC;QACnG,CAAC;QACDI,SAAS,EAAEA,CAACP,YAAY,EAAEC,IAAI,KAAK;UACjC,MAAMP,SAAS,GAAGf,KAAK,CAAC6B,GAAG,CAACjC,OAAO,EAAEH,WAAE,CAACU,OAAO,CAAC,WAAW,CAAC,CAAC;UAC7DkB,YAAY,CAACT,WAAW,CAACkB,gBAAO,CAACC,QAAQ,CAAClC,OAAO,CAACS,GAAG,EAAES,SAAS,EAAEO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACDU,eAAe,EAAEhC,KAAK,CAACmB,QAAQ,CAACvB,OAAO,EAAEH,WAAE,CAACwC,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI;MACxE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC;IACJ,OAAO1B,GAAG;EACZ;AACF,CAAC;AAAA,IAAA2B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcjD,UAAU","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tableViewPane.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","tableViewPane","exports","icon","icons","originalIconBase","name","label","subject","context","store","session","any","undefined","ns","rdf","statementsMatching","length","utils","render","myDocument","dom","div","createElement","setAttribute","appendChild","table","tableClass"],"sources":["../src/tableViewPane.js"],"sourcesContent":["// Format an array of RDF statements as an HTML table.\n//\n// This can operate in one of three modes: when the class of object is given\n// or when the source document from which data is taken is given,\n// or if a prepared query object is given.\n// (In principle it could operate with neither class nor document\n// given but typically\n// there would be too much data.)\n// When the tableClass is not given, it looks for common classes in the data,\n// and gives the user the option.\n//\n// 2008 Written, Ilaria Liccardi\n// 2014 core functionality now in common/table.js -timbl\n\n// ///////////////////////////////////////////////////////////////////\n\n// Table view pane -- view of a class as a table of properties of class members\nimport * as UI from 'solid-ui'\n\nexport const tableViewPane = {\n icon: UI.icons.originalIconBase + 'table.png',\n\n name: 'tableOfClass',\n\n label: function (subject, context) {\n const store = context.session.store\n // if (!store.holds(subject, UI.ns.rdf('type'),UI.ns.rdfs('Class'))) return null\n if (!store.any(undefined, UI.ns.rdf('type'), subject)) {\n return null\n }\n const n = store.statementsMatching(undefined, UI.ns.rdf('type'), subject)\n .length\n if (n === 0) {\n // None, suppress pane\n return null\n }\n if (n > 15) {\n // @@ At the moment this pane can be slow with too many @@ fixme by using limits\n return null\n }\n return UI.utils.label(subject) + ' table'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'tablePane')\n div.appendChild(UI.table(myDocument, { tableClass: subject }))\n return div\n }\n}\n"],"mappings":";;;;;;AAiBA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA8B,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAjB9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAGO,MAAMkB,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,IAAI,EAAExB,EAAE,CAACyB,KAAK,CAACC,gBAAgB,GAAG,WAAW;EAE7CC,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAE,SAAAA,CAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,MAAMC,KAAK,GAAGD,OAAO,CAACE,OAAO,CAACD,KAAK;IACnC;IACA,IAAI,CAACA,KAAK,CAACE,GAAG,CAACC,SAAS,EAAElC,EAAE,CAACmC,EAAE,CAACC,GAAG,CAAC,MAAM,CAAC,EAAEP,OAAO,CAAC,EAAE;MACrD,OAAO,IAAI;IACb;IACA,MAAMtB,CAAC,GAAGwB,KAAK,CAACM,kBAAkB,CAACH,SAAS,EAAElC,EAAE,CAACmC,EAAE,CAACC,GAAG,CAAC,MAAM,CAAC,EAAEP,OAAO,CAAC,CACtES,MAAM;IACT,IAAI/B,CAAC,KAAK,CAAC,EAAE;MACX;MACA,OAAO,IAAI;IACb;IACA,IAAIA,CAAC,GAAG,EAAE,EAAE;MACV;MACA,OAAO,IAAI;IACb;IACA,OAAOP,EAAE,CAACuC,KAAK,CAACX,KAAK,CAACC,OAAO,CAAC,GAAG,QAAQ;EAC3C,CAAC;EAEDW,MAAM,EAAE,SAAAA,CAAUX,OAAO,EAAEC,OAAO,EAAE;IAClC,MAAMW,UAAU,GAAGX,OAAO,CAACY,GAAG;IAC9B,MAAMC,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;IAC3CD,GAAG,CAACE,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;IACtCF,GAAG,CAACG,WAAW,CAAC9C,EAAE,CAAC+C,KAAK,CAACN,UAAU,EAAE;MAAEO,UAAU,EAAEnB;IAAQ,CAAC,CAAC,CAAC;IAC9D,OAAOc,GAAG;EACZ;AACF,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","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","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","shiftKey","list2","sort","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","catch","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","prototype","ny","cell","header","z","cat","sym","tab"],"sources":["../../src/transaction/pane.js"],"sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n '\\'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n '>,\\nso I can\\'t tell how to annotate it.)'\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log('Can\\'t get categories, because no calendarYear')\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(yearCategoryTotal, 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\n if (Object.prototype.hasOwnProperty.call(total, uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"period.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","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","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","shiftKey","list2","filter","sort","dummies","xURIs","findMemberURIs","unclassifiedIn","unclassifiedOut","usd","z","prototype","sym","tt","each","classified","push","tab","count","catSymbol","catTail","cats","findSubClassesNT","cat","checkCatHasField","guilty","utils","trip","needed","rdfs","console","log","fetcher","load","then"],"sources":["../../src/transaction/period.js"],"sourcesContent":["/* Financial Period Pane\n **\n ** This outline pane allows a user to interact with a period\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_142708.svg',\n\n name: 'period',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return 'period'\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'periodPane')\n\n const mention = function mention (message, style) {\n if (!style) style = 'color: grey;'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const happy = function happy (message) {\n return mention('✓ ' + message, 'color: #010; background-color: #efe')\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n /*\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n*/\n const renderPeriod = function () {\n const dtstart = kb.any(subject, ns.cal('dtstart'))\n if (dtstart === undefined) {\n complain(\n '(Error: There is no start date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n const dtend = kb.any(subject, ns.cal('dtend'))\n if (dtend === undefined) {\n complain(\n '(Error: There is no end date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n // var store = kb.any(subject, UI.ns.qu('annotationStore')) || null\n\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n donePredicate(ns.rdf('type'))\n\n const inPeriod = function (date) {\n return !!(date && date >= dtstart && date < dtend)\n }\n\n const d2 = function (n) {\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const transactionInPeriod = function (x) {\n return inPeriod(kb.any(x, ns.qu('date')))\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n /*\n var setPaneStyle = function (account) {\n var mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n var backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle();\n*/\n const h2 = div.appendChild(dom.createElement('h2'))\n h2.textContent =\n 'Period ' +\n dtstart.value.slice(0, 10) +\n ' - ' +\n dtend.value.slice(0, 10)\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'margin-left: 100; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \";\n let mystyle = 'margin-left: 8em; padding-left: 5em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = list.filter(transactionInPeriod)\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // List unclassified transactions\n\n const dummies = {\n 'http://www.w3.org/2000/10/swap/pim/qif#Transaction': true, // (we knew)\n 'http://www.w3.org/2000/10/swap/pim/qif#Unclassified': true, // pseudo classifications we may phase out\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing': true,\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome': true\n }\n const xURIs = kb.findMemberURIs(ns.qu('Transaction'))\n const unclassifiedIn = []\n const unclassifiedOut = []\n let usd, z\n for (const y in xURIs) {\n // For each thing which can be inferred to be a transaction\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(xURIs, 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\n if (Object.prototype.hasOwnProperty.call(cats, cat)) {\n if (cat.slice(1, -1).split('#')[1] === catTail) {\n return kb.sym(cat.slice(1, -1))\n }\n }\n }\n return null\n }\n\n const checkCatHasField = function (catTail, pred) {\n const cat = catSymbol(catTail)\n let tab\n const guilty = []\n let count = 0\n if (!cat) {\n complain('Error: No category correspnding to ' + catTail)\n return null\n }\n const list = kb.each(undefined, ns.rdf('type'), cat)\n for (let i = 0; i < list.length; i++) {\n if (!kb.any(list[i], pred)) {\n guilty.push(list[i])\n }\n }\n if (guilty.length) {\n tab = transactionTable(dom, guilty)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n UI.utils.label(cat) +\n ' with no ' +\n UI.utils.label(pred) +\n (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n }\n return count\n }\n\n // Load dynamically as properties of period\n if (checkCatHasField('Reimbursables', ns.trip('trip')) === 0) {\n happy('Reimbursables all have trips')\n }\n if (checkCatHasField('Other_Inc_Speaking', ns.trip('trip')) === 0) {\n happy('Speaking income all has trips')\n }\n // end of render period instance\n } // renderPeriod\n\n // //////////////////////////////////////////////////////////////////////////////\n\n // var me = authn.currentUser()\n\n // Render a single Period\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) {\n const needed = kb.each(subject, ns.rdfs('seeAlso'))\n console.log('Loading before render: ' + needed.length)\n kb.fetcher.load(needed).then(function () {\n renderPeriod()\n })\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tripPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","qu","findSuperClassesNT","render","myDocument","dom","CAL","Namespace","TRIP","div","createElement","setAttribute","innerHTML","complain","message","style","undefined","pre","appendChild","createTextNode","renderTrip","thisDiv","query","Query","utils","vars","v","forEach","x","push","variable","pat","add","transaction","opt","formula","rdf","type","optional","date","rdfs","comment","in_USD","calculations","total","trans","each","ty","the","uri","tyuri","lit","any","parseFloat","value","str","types","grandTotal","sym","length","tableDiv","table","onDone","ts","triples","index","trip","transactions","usd","toNT","list","h1","t1","fromNT","sort","j","t2"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return \"$$\";\n // if(kb.any(subject, UI.ns.qu('amount'))) return \"$$$\"; // In case schema not picked up\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\n }\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const opt = kb.formula()\n opt.add(v.transaction, ns.rdf('type'), v.type) // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v.transaction, UI.ns.qu('date'), v.date)\n\n opt.add(v.transaction, ns.rdfs('comment'), v.comment)\n query.pat.optional.push(opt)\n\n // opt = kb.formula();\n query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD)\n // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('type'))\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!total[tyuri]) total[tyuri] = 0.0\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain(' @@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}