solid-panes 4.2.3-b259fee7 → 4.2.3-bc35e2d1

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 (108) hide show
  1. package/dist/RDFXMLPane.js +2 -1
  2. package/dist/RDFXMLPane.js.map +1 -0
  3. package/dist/argument/argumentPane.js +2 -1
  4. package/dist/argument/argumentPane.js.map +1 -0
  5. package/dist/attach/attachPane.js +2 -1
  6. package/dist/attach/attachPane.js.map +1 -0
  7. package/dist/audio/audioPane.js +2 -1
  8. package/dist/audio/audioPane.js.map +1 -0
  9. package/dist/classInstancePane.js +2 -1
  10. package/dist/classInstancePane.js.map +1 -0
  11. package/dist/dashboard/basicPreferences.js +147 -0
  12. package/dist/dashboard/basicPreferences.js.map +1 -0
  13. package/dist/dashboard/dashboardPane.js +68 -0
  14. package/dist/dashboard/dashboardPane.js.map +1 -0
  15. package/dist/dashboard/homepage.js +73 -0
  16. package/dist/dashboard/homepage.js.map +1 -0
  17. package/dist/dataContentPane.js +10 -12
  18. package/dist/dataContentPane.js.map +1 -0
  19. package/dist/defaultPane.js +2 -1
  20. package/dist/defaultPane.js.map +1 -0
  21. package/dist/dokieli/dokieliPane.js +2 -1
  22. package/dist/dokieli/dokieliPane.js.map +1 -0
  23. package/dist/dokieli/new.js +2 -1
  24. package/dist/dokieli/new.js.map +1 -0
  25. package/dist/form/pane.js +2 -1
  26. package/dist/form/pane.js.map +1 -0
  27. package/dist/home/homePane.js +73 -0
  28. package/dist/home/homePane.js.map +1 -0
  29. package/dist/humanReadablePane.js +10 -12
  30. package/dist/humanReadablePane.js.map +1 -0
  31. package/dist/imagePane.js +2 -1
  32. package/dist/imagePane.js.map +1 -0
  33. package/dist/index.js +109 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/internal/internalPane.js +184 -0
  36. package/dist/internal/internalPane.js.map +1 -0
  37. package/dist/mainPage/footer.js +22 -0
  38. package/dist/mainPage/footer.js.map +1 -0
  39. package/dist/mainPage/header.js +86 -0
  40. package/dist/mainPage/header.js.map +1 -0
  41. package/dist/mainPage/index.js +25 -0
  42. package/dist/mainPage/index.js.map +1 -0
  43. package/dist/microblogPane/microblogPane.js +2 -1
  44. package/dist/microblogPane/microblogPane.js.map +1 -0
  45. package/dist/n3Pane.js +2 -1
  46. package/dist/n3Pane.js.map +1 -0
  47. package/dist/outline/context.js +19 -0
  48. package/dist/outline/context.js.map +1 -0
  49. package/dist/outline/manager.js +11 -14
  50. package/dist/outline/manager.js.map +1 -0
  51. package/dist/outline/outlineIcons.js +2 -1
  52. package/dist/outline/outlineIcons.js.map +1 -0
  53. package/dist/outline/propertyViews.js +44 -0
  54. package/dist/outline/propertyViews.js.map +1 -0
  55. package/dist/outline/queryByExample.js +2 -1
  56. package/dist/outline/queryByExample.js.map +1 -0
  57. package/dist/outline/userInput.js +2 -1
  58. package/dist/outline/userInput.js.map +1 -0
  59. package/dist/outline/viewAsImage.js +15 -0
  60. package/dist/outline/viewAsImage.js.map +1 -0
  61. package/dist/outline/viewAsMbox.js +22 -0
  62. package/dist/outline/viewAsMbox.js.map +1 -0
  63. package/dist/pad/padPane.js +411 -0
  64. package/dist/pad/padPane.js.map +1 -0
  65. package/dist/playlist/playlistPane.js +2 -1
  66. package/dist/playlist/playlistPane.js.map +1 -0
  67. package/dist/registerPanes.js +2 -1
  68. package/dist/registerPanes.js.map +1 -0
  69. package/dist/schedule/schedulePane.js +2 -1
  70. package/dist/schedule/schedulePane.js.map +1 -0
  71. package/dist/sharing/sharingPane.js +49 -0
  72. package/dist/sharing/sharingPane.js.map +1 -0
  73. package/dist/slideshow/slideshowPane.js +2 -1
  74. package/dist/slideshow/slideshowPane.js.map +1 -0
  75. package/dist/socialPane.js +2 -1
  76. package/dist/socialPane.js.map +1 -0
  77. package/dist/tabbed/tabbedPane.js +58 -0
  78. package/dist/tabbed/tabbedPane.js.map +1 -0
  79. package/dist/tableViewPane.js +2 -1
  80. package/dist/tableViewPane.js.map +1 -0
  81. package/dist/transaction/pane.js +2 -1
  82. package/dist/transaction/pane.js.map +1 -0
  83. package/dist/transaction/period.js +2 -1
  84. package/dist/transaction/period.js.map +1 -0
  85. package/dist/trip/tripPane.js +2 -1
  86. package/dist/trip/tripPane.js.map +1 -0
  87. package/dist/trustedApplications/trustedApplications.dom.js +146 -0
  88. package/dist/trustedApplications/trustedApplications.dom.js.map +1 -0
  89. package/dist/trustedApplications/trustedApplications.utils.js +24 -0
  90. package/dist/trustedApplications/trustedApplications.utils.js.map +1 -0
  91. package/dist/trustedApplications/trustedApplications.view.js +56 -0
  92. package/dist/trustedApplications/trustedApplications.view.js.map +1 -0
  93. package/dist/ui/pane.js +2 -1
  94. package/dist/ui/pane.js.map +1 -0
  95. package/dist/versionInfo.js +42 -0
  96. package/dist/versionInfo.js.map +1 -0
  97. package/dist/video/videoPane.js +2 -1
  98. package/dist/video/videoPane.js.map +1 -0
  99. package/package.json +6 -7
  100. package/dist/microblogPane/mbStyle.css +0 -267
  101. package/dist/outline/manager.css +0 -80
  102. package/dist/solid-panes.js +0 -49526
  103. package/dist/solid-panes.js.map +0 -1
  104. package/dist/solid-panes.min.js +0 -290
  105. package/dist/solid-panes.min.js.map +0 -1
  106. package/dist/styles/dataContentPane.css +0 -23
  107. package/dist/styles/humanReadablePane.css +0 -8
  108. package/dist/styles/tabbedtab.css +0 -1347
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _solidUi = require("solid-ui");
8
+ /* Sharing Pane
9
+ **
10
+ ** This outline pane allows a user to view and adjust the sharing -- access control lists
11
+ ** for anything which has that capability.
12
+ **
13
+ ** I am using in places single quotes strings like 'this'
14
+ ** where internationalization ("i18n") is not a problem, and double quoted
15
+ ** like "this" where the string is seen by the user and so I18n is an issue.
16
+ */
17
+
18
+ const sharingPane = {
19
+ icon: _solidUi.icons.iconBase + 'padlock-timbl.svg',
20
+ name: 'sharing',
21
+ label: (subject, context) => {
22
+ const store = context.session.store;
23
+ const t = store.findTypeURIs(subject);
24
+ if (t[_solidUi.ns.ldp('Resource').uri]) return 'Sharing'; // @@ be more sophisticated?
25
+ if (t[_solidUi.ns.ldp('Container').uri]) return 'Sharing'; // @@ be more sophisticated?
26
+ if (t[_solidUi.ns.ldp('BasicContainer').uri]) return 'Sharing'; // @@ be more sophisticated?
27
+ // check being allowed to see/change sharing?
28
+ return null; // No under other circumstances
29
+ },
30
+ render: (subject, context) => {
31
+ const dom = context.dom;
32
+ const store = context.session.store;
33
+ const noun = getNoun();
34
+ const div = dom.createElement('div');
35
+ div.classList.add('sharingPane');
36
+ _solidUi.aclControl.preventBrowserDropEvents(dom);
37
+ div.appendChild(_solidUi.aclControl.ACLControlBox5(subject, context, noun, store));
38
+ return div;
39
+ function getNoun() {
40
+ const t = store.findTypeURIs(subject);
41
+ if (t[_solidUi.ns.ldp('BasicContainer').uri] || t[_solidUi.ns.ldp('Container').uri]) {
42
+ return 'folder';
43
+ }
44
+ return 'file';
45
+ }
46
+ }
47
+ };
48
+ var _default = exports.default = sharingPane;
49
+ //# sourceMappingURL=sharingPane.js.map
@@ -0,0 +1 @@
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":[]}
@@ -76,4 +76,5 @@ const slideshowPane = exports.slideshowPane = {
76
76
  }
77
77
  };
78
78
 
79
- // ends
79
+ // ends
80
+ //# sourceMappingURL=slideshowPane.js.map
@@ -0,0 +1 @@
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":[]}
@@ -427,4 +427,5 @@ const socialPane = exports.socialPane = {
427
427
  return div;
428
428
  } // render()
429
429
  }; //
430
- // ends
430
+ // ends
431
+ //# sourceMappingURL=socialPane.js.map
@@ -0,0 +1 @@
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":";;;;;;AAUA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAH,uBAAA,CAAAC,OAAA;AAA8B,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,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;AAZ9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMkB,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;EACxBE,IAAI,EAAE1B,EAAE,CAAC2B,KAAK,CAACC,gBAAgB,GAAG,mBAAmB;EAErDC,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAE,SAAAA,CAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,MAAMC,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACC,KAAK;IAChC,MAAMC,KAAK,GAAGH,EAAE,CAACI,YAAY,CAACN,OAAO,CAAC;IACtC,IACEK,KAAK,CAACpC,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,QAAQ,CAAC,CAACC,GAAG,CAAC,IAC/BJ,KAAK,CAACpC,EAAE,CAACsC,EAAE,CAACG,KAAK,CAAC,YAAY,CAAC,CAACD,GAAG,CAAC,EACpC;MACA,OAAO,SAAS;IAClB;IACA,OAAO,IAAI;EACb,CAAC;EAEDE,MAAM,EAAE,SAAAA,CAAUC,CAAC,EAAEX,OAAO,EAAE;IAC5B,MAAMY,GAAG,GAAGZ,OAAO,CAACY,GAAG;IACvB,MAAMC,MAAM,GAAG,SAAAA,CAAUC,CAAC,EAAEC,CAAC,EAAE;MAC7B;MACA,MAAMC,IAAI,GAAG,EAAE;MACf,KAAK,IAAIpC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkC,CAAC,CAACG,MAAM,EAAErC,CAAC,EAAE,EAAE;QACjC,KAAK,IAAIsC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,CAAC,CAACE,MAAM,EAAEC,CAAC,EAAE,EAAE;UACjC,IAAIH,CAAC,CAACG,CAAC,CAAC,CAACC,QAAQ,CAACL,CAAC,CAAClC,CAAC,CAAC,CAAC,EAAE;YACvBoC,IAAI,CAACI,IAAI,CAACL,CAAC,CAACG,CAAC,CAAC,CAAC;YACf;UACF;QACF;MACF;MACA,OAAOF,IAAI;IACb,CAAC;IAED,MAAMK,MAAM,GAAG,SAAAA,CAAU5C,CAAC,EAAE;MAC1B,IAAI6C,GAAG,GAAG,GAAG;MACbA,GAAG,IAAI7C,CAAC,IAAI,IAAI;MAChB,IAAIA,CAAC,KAAK,CAAC,EAAE,OAAO6C,GAAG,GAAG,SAAS;MACnC,OAAOA,GAAG,GAAG,SAAS;IACxB,CAAC;IACD,MAAMC,GAAG,GAAG,SAAAA,CAAUC,GAAG,EAAE;MACzBC,OAAO,CAACC,GAAG,CAACF,GAAG,CAAC;MAChB,MAAMG,CAAC,GAAGf,GAAG,CAACgB,aAAa,CAAC,GAAG,CAAC;MAChCD,CAAC,CAACE,WAAW,GAAGL,GAAG;MACnBM,IAAI,CAACC,WAAW,CAACJ,CAAC,CAAC;IACrB,CAAC;IAED,MAAMK,IAAI,GAAG,SAAAA,CAAUC,QAAQ,EAAEzB,GAAG,EAAE;MACpC,IAAI,CAACA,GAAG,EAAE,OAAOyB,QAAQ;MACzB,MAAMC,CAAC,GAAGtB,GAAG,CAACgB,aAAa,CAAC,GAAG,CAAC;MAChCM,CAAC,CAACC,YAAY,CAAC,MAAM,EAAE3B,GAAG,CAAC;MAC3B0B,CAAC,CAACH,WAAW,CAACE,QAAQ,CAAC;MACvB,OAAOC,CAAC;IACV,CAAC;IAED,MAAME,IAAI,GAAG,SAAAA,CAAUZ,GAAG,EAAE;MAC1B,OAAOZ,GAAG,CAACyB,cAAc,CAACb,GAAG,CAAC;IAChC,CAAC;IAED,MAAMc,iBAAiB,GAAG,SAAAA,CAAUC,GAAG,EAAEC,SAAS,EAAEC,KAAK,EAAE;MACzD,MAAM5D,CAAC,GAAG+B,GAAG,CAACgB,aAAa,CAAC,MAAM,CAAC;MACnC,MAAMc,KAAK,GAAG9B,GAAG,CAACgB,aAAa,CAAC,OAAO,CAAC;MACxC/C,CAAC,CAACkD,WAAW,CAACW,KAAK,CAAC;MACpB,MAAMC,EAAE,GAAG/B,GAAG,CAACyB,cAAc,CAACE,GAAG,CAAC;MAClCI,EAAE,CAACC,SAAS,GAAG,UAAU;MACzB/D,CAAC,CAACkD,WAAW,CAACY,EAAE,CAAC;MACjBD,KAAK,CAACP,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;MACtC,MAAMU,UAAU,GAAG,SAAAA,CAAUC,EAAE,EAAE;QAC/BH,EAAE,CAACC,SAAS,GAAG,aAAa;QAC5B;QACA,IAAI,IAAI,CAACG,OAAO,EAAE;UAChB;UACA,IAAI;YACFC,QAAQ,CAACC,SAAS,CAACC,QAAQ,CAACC,gBAAgB,CAACX,SAAS,EAAE,UACtDhC,GAAG,EACH4C,OAAO,EACPC,SAAS,EACT;cACAV,EAAE,CAACC,SAAS,GAAG,UAAU;cACzB,IAAI,CAACQ,OAAO,EAAE;gBACZpF,EAAE,CAAC0D,GAAG,CAAC4B,KAAK,CACV,IAAI,EACJ,SAAS,EACT,+BAA+B,GAC7Bd,SAAS,GACT,MAAM,GACNa,SACJ,CAAC;gBACDX,KAAK,CAACK,OAAO,GAAG,KAAK,EAAC;gBACtB;cACF;cACA9C,EAAE,CAACsD,GAAG,CACJf,SAAS,CAACzC,OAAO,EACjByC,SAAS,CAACgB,SAAS,EACnBhB,SAAS,CAACiB,MAAM,EAChBjB,SAAS,CAACkB,GACZ,CAAC;YACH,CAAC,CAAC;UACJ,CAAC,CAAC,OAAOrF,CAAC,EAAE;YACVL,EAAE,CAAC0D,GAAG,CAACiC,KAAK,CAAC,mBAAmB,GAAGtF,CAAC,CAAC;YACrCL,EAAE,CAAC0D,GAAG,CAAC4B,KAAK,CAAC,mBAAmB,GAAGjF,CAAC,CAAC;YACrCqE,KAAK,CAACK,OAAO,GAAG,KAAK,EAAC;YACtBJ,EAAE,CAACC,SAAS,GAAG,UAAU;UAC3B;QACF,CAAC,MAAM;UACL;UACA,IAAI;YACFI,QAAQ,CAACC,SAAS,CAACC,QAAQ,CAACU,gBAAgB,CAACpB,SAAS,EAAE,UACtDhC,GAAG,EACH4C,OAAO,EACPC,SAAS,EACT;cACAV,EAAE,CAACC,SAAS,GAAG,UAAU;cACzB,IAAI,CAACQ,OAAO,EAAE;gBACZpF,EAAE,CAAC0D,GAAG,CAAC4B,KAAK,CACV,8BAA8B,GAC5Bd,SAAS,GACT,MAAM,GACNa,SACJ,CAAC;gBACD,IAAI,CAACN,OAAO,GAAG,IAAI,EAAC;cACtB,CAAC,MAAM;gBACL9C,EAAE,CAAC4D,UAAU,CACXrB,SAAS,CAACzC,OAAO,EACjByC,SAAS,CAACgB,SAAS,EACnBhB,SAAS,CAACiB,MAAM,EAChBjB,SAAS,CAACkB,GACZ,CAAC;cACH;YACF,CAAC,CAAC;UACJ,CAAC,CAAC,OAAOrF,CAAC,EAAE;YACVL,EAAE,CAAC0D,GAAG,CAAC4B,KAAK,CAAC,eAAe,GAAGjF,CAAC,CAAC;YACjC,IAAI,CAAC0E,OAAO,GAAG,IAAI,EAAC;YACpB;UACF;QACF;MACF,CAAC;MACDL,KAAK,CAACK,OAAO,GAAGN,KAAK;MACrBC,KAAK,CAACoB,gBAAgB,CAAC,OAAO,EAAEjB,UAAU,EAAE,KAAK,CAAC;MAClD,OAAOhE,CAAC;IACV,CAAC;IAED,MAAMkF,SAAS,GAAG,SAAAA,CAAUC,MAAM,EAAEC,UAAU,EAAE;MAC9C,OAAOjG,EAAE,CAACkG,OAAO,CAACC,QAAQ,CAACvD,GAAG,EAAE5C,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,OAAO,CAAC,EAAEyD,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;;IAED;;IAEA,MAAMhB,QAAQ,GAAGhD,OAAO,CAACoE,WAAW,CAACxD,GAAG,CAAC;IACzC,MAAMX,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACC,KAAK;IAChC,MAAMkE,GAAG,GAAGzD,GAAG,CAACgB,aAAa,CAAC,KAAK,CAAC;IACpCyC,GAAG,CAAClC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC;IACvC,MAAM5B,IAAI,GAAGvC,EAAE,CAACsC,EAAE,CAACC,IAAI;IACvB,MAAME,KAAK,GAAGzC,EAAE,CAACsC,EAAE,CAACG,KAAK;;IAEzB;IACA,MAAM6D,aAAa,GACjB,2EAA2E;IAC7E,MAAMC,cAAc,GAClB,mKAAmK;IACrK,MAAMC,YAAY,GAAG,qDAAqD;IAE1E,MAAMC,SAAS,GAAGJ,GAAG,CAACtC,WAAW,CAACnB,GAAG,CAACgB,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM8C,EAAE,GAAGD,SAAS,CAAC1C,WAAW,CAACnB,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM+C,IAAI,GAAGD,EAAE,CAAC3C,WAAW,CAACnB,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACpD,MAAMgD,MAAM,GAAGF,EAAE,CAAC3C,WAAW,CAACnB,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtD,MAAMiD,KAAK,GAAGH,EAAE,CAAC3C,WAAW,CAACnB,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC,CAAC;IAErD,MAAMkD,KAAK,GAAGH,IAAI;IAClBG,KAAK,CAACC,KAAK,CAACC,OAAO,GAAGV,aAAa;IACnC,MAAMW,SAAS,GAAGL,MAAM,CAAC7C,WAAW,CAACnB,GAAG,CAACgB,aAAa,CAAC,OAAO,CAAC,CAAC;IAChEqD,SAAS,CAACF,KAAK,CAACC,OAAO,GAAGT,cAAc;IACxC,MAAMzC,IAAI,GAAG+C,KAAK;IAClB/C,IAAI,CAACiD,KAAK,CAACC,OAAO,GAAGV,aAAa;;IAElC;IACA,MAAMY,GAAG,GAAGjF,EAAE,CAACkF,GAAG,CAACxE,CAAC,EAAEJ,IAAI,CAAC,KAAK,CAAC,CAAC,IAAIN,EAAE,CAACkF,GAAG,CAACxE,CAAC,EAAEJ,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,IAAI2E,GAAG,EAAE;MACP,MAAME,GAAG,GAAGxE,GAAG,CAACgB,aAAa,CAAC,KAAK,CAAC;MACpCwD,GAAG,CAACjD,YAAY,CAAC,KAAK,EAAE+C,GAAG,CAAC1E,GAAG,CAAC,EAAC;MACjC;MACA4E,GAAG,CAACL,KAAK,CAACC,OAAO,GAAGR,YAAY;MAChCM,KAAK,CAAC/C,WAAW,CAACqD,GAAG,CAAC;IACxB;IACA,MAAMvF,IAAI,GAAGI,EAAE,CAACoF,QAAQ,CAAC1E,CAAC,EAAEJ,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;IAClD,IAAI+E,EAAE,GAAG1E,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;IAChC0D,EAAE,CAACvD,WAAW,CAACnB,GAAG,CAACyB,cAAc,CAACxC,IAAI,CAAC,CAAC;IAExC,IAAI0F,EAAE,GAAGC,iBAAK,CAACC,WAAW,CAAC,CAAC;IAC5B,MAAMC,KAAK,GAAGH,EAAE,GAAGA,EAAE,CAAC/E,GAAG,GAAG,IAAI;;IAEhC;IACA,MAAMmF,cAAc,GAAG3H,EAAE,CAAC4H,KAAK,CAACC,cAAc,CAACjF,GAAG,EAAEkF,QAAQ,IAAI;MAC9DP,EAAE,GAAGtF,EAAE,CAAC8F,GAAG,CAACD,QAAQ,CAAC;MACrB;MACA;MACA9H,EAAE,CAACkG,OAAO,CAAC8B,WAAW,CAAC3B,GAAG,CAAC,EAAC;IAC9B,CAAC,CAAC;IAEFvC,IAAI,CAACC,WAAW,CAAC4D,cAAc,CAAC;IAEhC,MAAMM,SAAS,GAAGV,EAAE,IAAItF,EAAE,CAACiG,UAAU,CAACX,EAAE,EAAE5E,CAAC,CAAC;IAE5C,MAAMwF,KAAK,GAAG5F,IAAI,CAAC,OAAO,CAAC;IAC3B;IACA,MAAM6F,QAAQ,GACZnG,EAAE,CAACoF,QAAQ,CAAC1E,CAAC,EAAEJ,IAAI,CAAC,WAAW,CAAC,CAAC,IACjCN,EAAE,CAACoF,QAAQ,CAAC1E,CAAC,EAAEJ,IAAI,CAAC,WAAW,CAAC,CAAC,IACjCN,EAAE,CAACoF,QAAQ,CAAC1E,CAAC,EAAEJ,IAAI,CAAC,MAAM,CAAC,CAAC,IAC5BN,EAAE,CAACoF,QAAQ,CAAC1E,CAAC,EAAEJ,IAAI,CAAC,MAAM,CAAC,CAAC,IAC5BN,EAAE,CAACoF,QAAQ,CAAC1E,CAAC,EAAEF,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM4F,OAAO,GAAGpG,EAAE,CAACqG,IAAI,CAAC3F,CAAC,EAAEwF,KAAK,CAAC;;IAEjC;IACA,IAAII,OAAO,GAAG,IAAI,EAAC;IACnB,IAAIC,QAAQ,GAAG,KAAK;IACpB,IAAIC,QAAQ;IACZ,IAAIC,QAAQ;IACZ,IAAInB,EAAE,EAAE;MACN;MACA,MAAMoB,KAAK,GAAG1G,EAAE,CAACqG,IAAI,CAACM,SAAS,EAAErG,IAAI,CAAC,cAAc,CAAC,EAAEgF,EAAE,CAAC,EAAC;MAC3D,IAAIsB,OAAO,GAAG,EAAE;MAChB,KAAK,IAAIjI,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+H,KAAK,CAAC1F,MAAM,EAAErC,CAAC,EAAE,EAAE;QACrC,IACEqB,EAAE,CAAC6G,OAAO,CACRH,KAAK,CAAC/H,CAAC,CAAC,EACRZ,EAAE,CAACsC,EAAE,CAACyG,GAAG,CAAC,MAAM,CAAC,EACjBxG,IAAI,CAAC,yBAAyB,CAChC,CAAC,EACD;UACAiG,QAAQ,GAAGxD,QAAQ,CAACC,SAAS,CAACC,QAAQ,CAACsD,QAAQ,CAACG,KAAK,CAAC/H,CAAC,CAAC,CAAC4B,GAAG,EAAEP,EAAE,CAAC;UACjE,IAAI,CAACuG,QAAQ,EAAE;YACbK,OAAO,IACL,gBAAgB,GAChB7I,EAAE,CAACgJ,KAAK,CAACC,YAAY,CAACN,KAAK,CAAC/H,CAAC,CAAC,CAAC4B,GAAG,CAAC,GACnC,6BAA6B;UACjC,CAAC,MAAM;YACL+F,OAAO,GAAGI,KAAK,CAAC/H,CAAC,CAAC;YAClB;UACF;QACF;MACF;MAEA,IAAI,CAAC2H,OAAO,EAAE;QACZhF,GAAG,CACDsF,OAAO,GAAG,6DACZ,CAAC;MACH,CAAC,MAAM;QACLtF,GAAG,CAAC,uBAAuB,GAAGgF,OAAO,GAAG,GAAG,CAAC;QAC5C;QACAC,QAAQ,GAAGxD,QAAQ,CAACC,SAAS,CAACC,QAAQ,CAACsD,QAAQ,CAACD,OAAO,CAAC/F,GAAG,EAAEP,EAAE,CAAC;MAClE;MAEA,IAAIgG,SAAS,EAAE;QACb;QACA;MAAA,CACD,MAAM;QACL;QACA;;QAEAX,EAAE,GAAG1E,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;QAC5B0D,EAAE,CAACvD,WAAW,CAACnB,GAAG,CAACyB,cAAc,CAAC,UAAU,GAAG+D,QAAQ,CAAC,CAAC;QACzDtB,KAAK,CAAC/C,WAAW,CAACuD,EAAE,CAAC;QAErB,MAAM4B,GAAG,GAAGjH,EAAE,CAACkH,KAAK,CAAC5B,EAAE,CAAC;QACxBkB,QAAQ,GAAGxG,EAAE,CAAC6G,OAAO,CAACnG,CAAC,EAAEwF,KAAK,EAAEe,GAAG,CAAC;QACpCR,QAAQ,GAAG,KAAK;QAChB,MAAMU,UAAU,GAAGnH,EAAE,CAACoH,kBAAkB,CAACH,GAAG,EAAEf,KAAK,EAAExF,CAAC,CAAC;QACvD,IAAIyG,UAAU,CAACnG,MAAM,EAAE;UACrByF,QAAQ,GAAG,IAAI;UACf,IAAI,CAACH,OAAO,EAAEA,OAAO,GAAGa,UAAU,CAAC,CAAC,CAAC,CAAC1D,GAAG;QAC3C;QAEA,MAAMgB,EAAE,GAAG9D,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;QAClCkD,KAAK,CAAC/C,WAAW,CAAC2C,EAAE,CAAC;QAErB,MAAM4C,UAAU,GAAG,SAAAA,CAAA,EAAY;UAC7B5C,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAAC,KAAK,CAAC,EAAEsD,KAAK,CAAC,CAAC;UACxChB,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,OAAO,CAAC,CAAC;UAC7BsC,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAACgE,QAAQ,CAAC,EAAEzF,CAAC,CAACH,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAACiG,QAAQ,EAAE;UACb,IAAI,CAACC,QAAQ,EAAE;YACbY,UAAU,CAAC,CAAC;YACZ5C,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,qCAAqC,CAAC,CAAC;UAC7D,CAAC,MAAM;YACLsC,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAAC,KAAK,CAAC,EAAEsD,KAAK,CAAC,CAAC;YACxChB,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9BsC,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAACgE,QAAQ,CAAC,EAAEzF,CAAC,CAACH,GAAG,CAAC,CAAC;YAC3CkE,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,gBAAgB,CAAC,CAAC;UACxC;QACF,CAAC,MAAM;UACL,IAAI,CAACsE,QAAQ,EAAE;YACbhC,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAACgE,QAAQ,CAAC,EAAEzF,CAAC,CAACH,GAAG,CAAC,CAAC;YAC3CkE,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/BsC,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAAC,KAAK,CAAC,EAAEsD,KAAK,CAAC,CAAC;YACxChB,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAC;YACxCsC,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC1CsC,EAAE,CAAC3C,WAAW,CAACC,IAAI,CAACI,IAAI,CAACgE,QAAQ,CAAC,EAAEzF,CAAC,CAACH,GAAG,CAAC,CAAC;YAC3CkE,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,GAAG,CAAC,CAAC;UAC3B,CAAC,MAAM;YACLkF,UAAU,CAAC,CAAC;YACZ5C,EAAE,CAAC3C,WAAW,CAACK,IAAI,CAAC,2BAA2B,CAAC,CAAC;UACnD;QACF;QAEA,IAAIoE,QAAQ,EAAE;UACZ,MAAM3H,CAAC,GAAGyD,iBAAiB,CACzB,WAAW,GAAG8D,QAAQ,EACtB,IAAIhI,IAAI,CAACmJ,SAAS,CAAChC,EAAE,EAAEY,KAAK,EAAExF,CAAC,EAAE4F,OAAO,CAAC,EACzCG,QACF,CAAC;UACD5B,KAAK,CAAC/C,WAAW,CAAClD,CAAC,CAAC;QACtB,CAAC,CAAC;;QAEF;QACA,IAAIwH,OAAO,EAAE;UACX,MAAMmB,SAAS,GAAGvH,EAAE,CAACqG,IAAI,CAACf,EAAE,EAAEhF,IAAI,CAAC,OAAO,CAAC,CAAC;UAC5C,IAAIiH,SAAS,CAACvG,MAAM,EAAE;YACpB,MAAMwG,aAAa,GAAG5G,MAAM,CAACwF,OAAO,EAAEmB,SAAS,CAAC;YAChD,MAAM9C,EAAE,GAAG9D,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;YAClCkD,KAAK,CAAC/C,WAAW,CAAC2C,EAAE,CAAC;YACrBA,EAAE,CAAC3C,WAAW,CACZnB,GAAG,CAACyB,cAAc,CAChB,KAAK,IACF+D,QAAQ,GAAG,OAAO,GAAGA,QAAQ,GAAG,EAAE,CAAC,GACpC,OAAO,GACP/E,MAAM,CAACoG,aAAa,CAACxG,MAAM,CAAC,GAC5B,kBACJ,CACF,CAAC;YACD,IAAIwG,aAAa,EAAE;cACjB,KAAK,IAAI7I,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6I,aAAa,CAACxG,MAAM,EAAErC,CAAC,EAAE,EAAE;gBAC7C8F,EAAE,CAAC3C,WAAW,CACZnB,GAAG,CAACyB,cAAc,CAAC,KAAK,GAAGrE,EAAE,CAACgJ,KAAK,CAAClH,KAAK,CAAC2H,aAAa,CAAC7I,CAAC,CAAC,CAAC,CAC7D,CAAC;cACH;YACF;UACF;UACA,MAAM8F,EAAE,GAAG9D,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;UAClCkD,KAAK,CAAC/C,WAAW,CAAC2C,EAAE,CAAC;QACvB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;IACF;;IAEA;;IAEA;IACA;IACA;;IAEA;IACA1G,EAAE,CAACkG,OAAO,CAACwD,cAAc,CAAC9G,GAAG,EAAED,CAAC,EAAEsE,SAAS,EAAE;MAC3C0C,GAAG,EAAEpB,OAAO;MACZqB,MAAM,EAAE,CAAC,CAACpB,QAAQ;MAClBhD,SAAS,EAAEjD,IAAI,CAAC,OAAO,CAAC;MACxBsH,IAAI,EAAE;IACR,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA,SAASC,cAAcA,CAAEnH,CAAC,EAAE;MAC1B+F,QAAQ,GAAGzG,EAAE,CAACqG,IAAI,CAAC3F,CAAC,EAAEJ,IAAI,CAAC,OAAO,CAAC,CAAC;MACpCkG,QAAQ,GAAGxG,EAAE,CAACqG,IAAI,CAACM,SAAS,EAAErG,IAAI,CAAC,OAAO,CAAC,EAAEI,CAAC,CAAC,EAAC;MAChD,MAAMoH,SAAS,GAAG,EAAE;MACpB,MAAMC,WAAW,GAAG,EAAE;MACtB,MAAMC,QAAQ,GAAG,EAAE;MAEnB,KAAK,IAAIrJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8H,QAAQ,CAACzF,MAAM,EAAErC,CAAC,EAAE,EAAE;QACxC,MAAMoF,MAAM,GAAG0C,QAAQ,CAAC9H,CAAC,CAAC;QAC1B,IAAIsJ,KAAK,GAAG,KAAK;QACjB,KAAK,IAAIhH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuF,QAAQ,CAACxF,MAAM,EAAEC,CAAC,EAAE,EAAE;UACxC,IAAIuF,QAAQ,CAACvF,CAAC,CAAC,CAACC,QAAQ,CAAC6C,MAAM,CAAC,EAAE;YAChCkE,KAAK,GAAG,IAAI;YACZ;UACF;QACF;QACA,IAAIA,KAAK,EAAEH,SAAS,CAAC3G,IAAI,CAAC4C,MAAM,CAAC,MAC5BgE,WAAW,CAAC5G,IAAI,CAAC4C,MAAM,CAAC;MAC/B,CAAC,CAAC;;MAEF,KAAK,IAAIpF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6H,QAAQ,CAACxF,MAAM,EAAErC,CAAC,EAAE,EAAE;QACxC,MAAMoF,MAAM,GAAGyC,QAAQ,CAAC7H,CAAC,CAAC;QAC1B;QACA,IAAIsJ,KAAK,GAAG,KAAK;QACjB,KAAK,IAAIhH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwF,QAAQ,CAACzF,MAAM,EAAEC,CAAC,EAAE,EAAE;UACxC,IAAIwF,QAAQ,CAACxF,CAAC,CAAC,CAACC,QAAQ,CAAC6C,MAAM,CAAC,EAAE;YAChCkE,KAAK,GAAG,IAAI;YACZ;UACF;QACF;QACA,IAAI,CAACA,KAAK,EAAED,QAAQ,CAAC7G,IAAI,CAAC4C,MAAM,CAAC;MACnC,CAAC,CAAC;;MAEF,MAAMmE,KAAK,GAAG,CACZ,CAAC,eAAe,EAAEzB,QAAQ,CAAC,EAC3B,CAAC,iCAAiC,EAAEuB,QAAQ,CAAC,CAC9C;MACD,KAAK,IAAIrJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuJ,KAAK,CAAClH,MAAM,EAAErC,CAAC,EAAE,EAAE;QACrC,MAAMwJ,QAAQ,GAAGD,KAAK,CAACvJ,CAAC,CAAC;QACzB,MAAMyH,OAAO,GAAG+B,QAAQ,CAAC,CAAC,CAAC;QAC3B,IAAI/B,OAAO,CAACpF,MAAM,KAAK,CAAC,EAAE,SAAQ,CAAC;;QAEnC,MAAMqE,EAAE,GAAG1E,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;QAClC0D,EAAE,CAACzD,WAAW,GAAGuG,QAAQ,CAAC,CAAC,CAAC;QAC5B,MAAMC,GAAG,GAAGzH,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;QACnCyG,GAAG,CAACtG,WAAW,CAACuD,EAAE,CAAC;QACnBL,SAAS,CAAClD,WAAW,CAACsG,GAAG,CAAC;QAE1B,MAAMC,KAAK,GAAG,EAAE;QAChB,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGlC,OAAO,CAACpF,MAAM,EAAEsH,EAAE,EAAE,EAAE;UAC1CD,KAAK,CAAClH,IAAI,CAAC,CAACpD,EAAE,CAACgJ,KAAK,CAAClH,KAAK,CAACuG,OAAO,CAACkC,EAAE,CAAC,CAAC,EAAElC,OAAO,CAACkC,EAAE,CAAC,CAAC,CAAC;QACxD;QACAD,KAAK,CAACE,IAAI,CAAC,CAAC;QACZ,IAAIC,IAAI,GAAG,IAAI;QACf,IAAIC,EAAE;QACN,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGL,KAAK,CAACrH,MAAM,EAAE0H,EAAE,EAAE,EAAE;UACxCD,EAAE,GAAGJ,KAAK,CAACK,EAAE,CAAC,CAAC,CAAC,CAAC;UACjB,IAAID,EAAE,CAACvH,QAAQ,CAACsH,IAAI,CAAC,EAAE,SAAQ,CAAC;UAChCA,IAAI,GAAGC,EAAE;UACT,IAAI1K,EAAE,CAACgJ,KAAK,CAAClH,KAAK,CAAC4I,EAAE,CAAC,KAAK,KAAK,EAAE;YAChC;YACA;YACAzD,SAAS,CAAClD,WAAW,CAACgC,SAAS,CAAC2E,EAAE,CAAC,CAAC;UACtC;QACF;MACF;IACF;IACA;AACJ;AACA;IACI;;IAEApD,EAAE,GAAG1E,GAAG,CAACgB,aAAa,CAAC,IAAI,CAAC;IAC5B0D,EAAE,CAACvD,WAAW,CAACnB,GAAG,CAACyB,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACvDyC,KAAK,CAAC/C,WAAW,CAACuD,EAAE,CAAC;;IAErB;IACA;IACA;IACA,MAAMsD,KAAK,GAAG,CACZ5K,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,UAAU,CAAC,EACtBvC,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,QAAQ,CAAC,EACpBvC,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,mBAAmB,CAAC,EAC/BvC,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,gBAAgB,CAAC,CAC7B;IACD,KAAK,IAAIsI,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGD,KAAK,CAAC3H,MAAM,EAAE4H,EAAE,EAAE,EAAE;MACxC,MAAMC,IAAI,GAAGF,KAAK,CAACC,EAAE,CAAC;MACtB,MAAME,GAAG,GAAG9I,EAAE,CAACoH,kBAAkB,CAAC1G,CAAC,EAAEmI,IAAI,CAAC;MAC1C,IAAIC,GAAG,CAAC9H,MAAM,KAAK,CAAC,EAAE;QACpB;MAAA,CACD,MAAM;QACL,MAAM+H,IAAI,GAAG,EAAE;QACf,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGF,GAAG,CAAC9H,MAAM,EAAEgI,EAAE,EAAE,EAAE;UACtC,MAAMC,EAAE,GAAGH,GAAG,CAACE,EAAE,CAAC;UAClB,IAAIC,EAAE,CAACzF,MAAM,CAACjD,GAAG,EAAEwI,IAAI,CAAC5H,IAAI,CAAC8H,EAAE,CAACzF,MAAM,CAACjD,GAAG,CAAC,EAAC;QAC9C;QACAwI,IAAI,CAACR,IAAI,CAAC,CAAC;QACX,IAAIW,KAAK,GAAG,EAAE;QACd,IAAIC,IAAI;QACR,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAAC/H,MAAM,EAAEoI,CAAC,EAAE,EAAE;UACpC,MAAM7I,GAAG,GAAGwI,IAAI,CAACK,CAAC,CAAC;UACnB,IAAI7I,GAAG,KAAK2I,KAAK,EAAE,SAAQ,CAAC;UAC5BA,KAAK,GAAG3I,GAAG;UACX,IAAI8I,SAAS,GAAG,EAAE;UAClBF,IAAI,GAAGpL,EAAE,CAACgJ,KAAK,CAAClH,KAAK,CAACgJ,IAAI,CAAC;UAC3B,IAAIE,IAAI,CAAC/H,MAAM,GAAG,CAAC,EAAE;YACnB,MAAMsI,CAAC,GAAG/I,GAAG,CAACgJ,OAAO,CAAC,IAAI,CAAC;YAC3B,IAAID,CAAC,GAAG,CAAC,EAAE;cACT,IAAI/K,CAAC,GAAGgC,GAAG,CAACgJ,OAAO,CAAC,GAAG,EAAED,CAAC,GAAG,CAAC,CAAC;cAC/B,MAAME,EAAE,GAAGjJ,GAAG,CAACkJ,WAAW,CAAC,GAAG,EAAElL,CAAC,CAAC;cAClC,IAAIiL,EAAE,GAAG,CAAC,EAAEjL,CAAC,GAAGiL,EAAE;cAClBH,SAAS,GAAG9I,GAAG,CAACmJ,KAAK,CAACJ,CAAC,GAAG,CAAC,EAAE/K,CAAC,CAAC;YACjC;UACF;UACA,IAAI8K,SAAS,EAAEF,IAAI,GAAGE,SAAS,GAAG,GAAG,GAAGF,IAAI,EAAC;UAC7C,MAAM9K,CAAC,GAAGsC,GAAG,CAACyB,cAAc,CAAC+G,IAAI,CAAC;UAClC,MAAMlH,CAAC,GAAGtB,GAAG,CAACgB,aAAa,CAAC,GAAG,CAAC;UAChCM,CAAC,CAACH,WAAW,CAACzD,CAAC,CAAC;UAChB4D,CAAC,CAACC,YAAY,CAAC,MAAM,EAAE3B,GAAG,CAAC;UAC3B,MAAMoJ,CAAC,GAAGhJ,GAAG,CAACgB,aAAa,CAAC,KAAK,CAAC;UAClC;UACAgI,CAAC,CAAC7E,KAAK,CAACC,OAAO,GACb,8IAA8I;UAChJ4E,CAAC,CAAC7H,WAAW,CAACG,CAAC,CAAC;UAChB4C,KAAK,CAAC/C,WAAW,CAAC6H,CAAC,CAAC;QACtB;MACF;IACF;IAEA,MAAMC,MAAM,GAAG,CAAC7L,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,QAAQ,CAAC,EAAEvC,EAAE,CAACsC,EAAE,CAACC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,KAAK,IAAIuJ,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGD,MAAM,CAAC5I,MAAM,EAAE6I,EAAE,EAAE,EAAE;MACzC,MAAMhB,IAAI,GAAGe,MAAM,CAACC,EAAE,CAAC;MACvB,MAAMC,IAAI,GAAG9J,EAAE,CAACoH,kBAAkB,CAAC1G,CAAC,EAAEmI,IAAI,CAAC;MAC3C,IAAIiB,IAAI,CAAC9I,MAAM,KAAK,CAAC,EAAE;QACrB;MAAA,CACD,MAAM;QACL+B,QAAQ,CAACgH,iBAAiB,CAAClF,KAAK,EAAEiF,IAAI,EAAE,KAAK,EAAE,UAAUE,KAAK,EAAE;UAC9D,OAAO,IAAI;QACb,CAAC,CAAC;MACJ;IACF;IAEA,OAAO5F,GAAG;EACZ,CAAC,CAAC;AACJ,CAAC,EAAC;AACF","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _solidUi = require("solid-ui");
8
+ /* Tabbed view of anything
9
+ **
10
+ ** data-driven
11
+ **
12
+ */
13
+
14
+ const TabbedPane = {
15
+ icon: _solidUi.icons.iconBase + 'noun_688606.svg',
16
+ name: 'tabbed',
17
+ audience: [_solidUi.ns.solid('PowerUser')],
18
+ // Does the subject deserve this pane?
19
+ label: (subject, context) => {
20
+ const kb = context.session.store;
21
+ const typeURIs = kb.findTypeURIs(subject);
22
+ if (_solidUi.ns.meeting('Cluster').uri in typeURIs) {
23
+ return 'Tabbed';
24
+ }
25
+ return null;
26
+ },
27
+ render: (subject, context) => {
28
+ const dom = context.dom;
29
+ const store = context.session.store;
30
+ const div = dom.createElement('div');
31
+ (async () => {
32
+ if (!store.fetcher) {
33
+ throw new Error('Store has no fetcher');
34
+ }
35
+ await store.fetcher.load(subject);
36
+ div.appendChild(_solidUi.tabs.tabWidget({
37
+ dom,
38
+ subject,
39
+ predicate: store.any(subject, _solidUi.ns.meeting('predicate')) || _solidUi.ns.meeting('toolList'),
40
+ ordered: true,
41
+ orientation: store.anyValue(subject, _solidUi.ns.meeting('orientation')) || '0',
42
+ renderMain: (containerDiv, item) => {
43
+ containerDiv.innerHTML = '';
44
+ const table = containerDiv.appendChild(context.dom.createElement('table'));
45
+ context.getOutliner(context.dom).GotoSubject(item, true, null, false, undefined, table);
46
+ },
47
+ renderTab: (containerDiv, item) => {
48
+ const predicate = store.the(subject, _solidUi.ns.meeting('predicate'));
49
+ containerDiv.appendChild(_solidUi.widgets.personTR(context.dom, predicate, item, {}));
50
+ },
51
+ backgroundColor: store.anyValue(subject, _solidUi.ns.ui('backgroundColor')) || '#ddddcc'
52
+ }));
53
+ })();
54
+ return div;
55
+ }
56
+ };
57
+ var _default = exports.default = TabbedPane;
58
+ //# sourceMappingURL=tabbedPane.js.map
@@ -0,0 +1 @@
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":[]}
@@ -53,4 +53,5 @@ const tableViewPane = exports.tableViewPane = {
53
53
  }));
54
54
  return div;
55
55
  }
56
- };
56
+ };
57
+ //# sourceMappingURL=tableViewPane.js.map
@@ -0,0 +1 @@
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":[]}
@@ -474,4 +474,5 @@ var _default = exports.default = {
474
474
 
475
475
  return div;
476
476
  }
477
- }; // ends
477
+ }; // ends
478
+ //# sourceMappingURL=pane.js.map