solid-panes 3.5.18-5dfe2dbf → 3.5.18-a4dc4f9c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dev/loader.ts +11 -11
  2. package/lib/argument/argumentPane.js +7 -15
  3. package/lib/argument/argumentPane.js.map +1 -1
  4. package/lib/dashboard/basicPreferences.d.ts.map +1 -1
  5. package/lib/dashboard/basicPreferences.js +6 -6
  6. package/lib/dashboard/basicPreferences.js.map +1 -1
  7. package/lib/dashboard/dashboardPane.d.ts.map +1 -1
  8. package/lib/dashboard/dashboardPane.js +4 -6
  9. package/lib/dashboard/dashboardPane.js.map +1 -1
  10. package/lib/dataContentPane.js +1 -1
  11. package/lib/dataContentPane.js.map +1 -1
  12. package/lib/form/pane.js +6 -15
  13. package/lib/form/pane.js.map +1 -1
  14. package/lib/home/homePane.d.ts.map +1 -1
  15. package/lib/home/homePane.js +5 -7
  16. package/lib/home/homePane.js.map +1 -1
  17. package/lib/index.d.ts +3 -7
  18. package/lib/index.d.ts.map +1 -1
  19. package/lib/index.js +4 -15
  20. package/lib/index.js.map +1 -1
  21. package/lib/mainPage/header.d.ts.map +1 -1
  22. package/lib/mainPage/header.js +2 -4
  23. package/lib/mainPage/header.js.map +1 -1
  24. package/lib/microblogPane/microblogPane.js +14 -16
  25. package/lib/microblogPane/microblogPane.js.map +1 -1
  26. package/lib/outline/dragDrop.js +6 -16
  27. package/lib/outline/dragDrop.js.map +1 -1
  28. package/lib/outline/licenseOptions.js +5 -12
  29. package/lib/outline/licenseOptions.js.map +1 -1
  30. package/lib/outline/manager.js +21 -29
  31. package/lib/outline/manager.js.map +1 -1
  32. package/lib/outline/queryByExample.js +6 -14
  33. package/lib/outline/queryByExample.js.map +1 -1
  34. package/lib/outline/userInput.js +80 -90
  35. package/lib/outline/userInput.js.map +1 -1
  36. package/lib/pad/padPane.d.ts.map +1 -1
  37. package/lib/pad/padPane.js +4 -6
  38. package/lib/pad/padPane.js.map +1 -1
  39. package/lib/profile/editProfile.view.d.ts.map +1 -1
  40. package/lib/profile/editProfile.view.js +3 -3
  41. package/lib/profile/editProfile.view.js.map +1 -1
  42. package/lib/schedule/schedulePane.js +14 -26
  43. package/lib/schedule/schedulePane.js.map +1 -1
  44. package/lib/socialPane.js +6 -16
  45. package/lib/socialPane.js.map +1 -1
  46. package/lib/transaction/pane.js +1 -1
  47. package/lib/transaction/pane.js.map +1 -1
  48. package/lib/transaction/period.js +1 -1
  49. package/lib/transaction/period.js.map +1 -1
  50. package/lib/trip/tripPane.js +1 -1
  51. package/lib/trip/tripPane.js.map +1 -1
  52. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +1 -1
  53. package/lib/trustedApplications/trustedApplications.dom.js +9 -11
  54. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  55. package/lib/trustedApplications/trustedApplications.view.d.ts.map +1 -1
  56. package/lib/trustedApplications/trustedApplications.view.js +3 -5
  57. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  58. package/lib/versionInfo.js +2 -2
  59. package/lib/versionInfo.js.map +1 -1
  60. package/package.json +13 -13
  61. package/src/argument/argumentPane.js +5 -5
  62. package/src/dashboard/basicPreferences.ts +5 -4
  63. package/src/dashboard/dashboardPane.ts +3 -4
  64. package/src/dataContentPane.js +1 -1
  65. package/src/form/pane.js +4 -5
  66. package/src/home/homePane.ts +6 -7
  67. package/src/index.ts +18 -24
  68. package/src/mainPage/header.ts +2 -3
  69. package/src/microblogPane/microblogPane.js +8 -9
  70. package/src/outline/dragDrop.js +4 -5
  71. package/src/outline/licenseOptions.js +5 -4
  72. package/src/outline/manager.js +21 -22
  73. package/src/outline/queryByExample.js +4 -4
  74. package/src/outline/userInput.js +72 -72
  75. package/src/pad/padPane.ts +3 -3
  76. package/src/profile/editProfile.view.ts +8 -5
  77. package/src/schedule/schedulePane.js +13 -14
  78. package/src/socialPane.js +4 -5
  79. package/src/transaction/pane.js +1 -1
  80. package/src/transaction/period.js +1 -1
  81. package/src/trip/tripPane.js +1 -1
  82. package/src/trustedApplications/trustedApplications.dom.ts +1 -2
  83. package/src/trustedApplications/trustedApplications.view.ts +4 -4
  84. package/src/versionInfo.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"padPane.d.ts","sourceRoot":"","sources":["../../src/pad/padPane.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAK9C,QAAA,MAAM,OAAO,EAAE,cAmiBd,CAAA;AAGD,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"padPane.d.ts","sourceRoot":"","sources":["../../src/pad/padPane.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAM9C,QAAA,MAAM,OAAO,EAAE,cAmiBd,CAAA;AAGD,eAAe,OAAO,CAAA"}
@@ -7,8 +7,6 @@ exports["default"] = void 0;
7
7
 
8
8
  var _solidUi = require("solid-ui");
9
9
 
10
- var _solidLogic = require("solid-logic");
11
-
12
10
  var _rdflib = require("rdflib");
13
11
 
14
12
  /* pad Pane
@@ -189,7 +187,7 @@ var paneDef = {
189
187
  var appDetails = {
190
188
  noun: 'notepad'
191
189
  };
192
- div.appendChild(_solidUi.login.newAppInstance(dom, appDetails, function (workspace, newBase) {
190
+ div.appendChild(_solidUi.authn.newAppInstance(dom, appDetails, function (workspace, newBase) {
193
191
  // FIXME: not sure if this will work at all, just
194
192
  // trying to get the types to match - Michiel.
195
193
  return initializeNewInstanceInWorkspace(new _rdflib.NamedNode(workspace || newBase));
@@ -282,7 +280,7 @@ var paneDef = {
282
280
  }
283
281
 
284
282
  store.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(function () {
285
- return _solidLogic.authn.checkUser();
283
+ return _solidUi.authn.checkUser();
286
284
  }).then(function (webId) {
287
285
  me = webId;
288
286
  setThatACL();
@@ -343,9 +341,9 @@ var paneDef = {
343
341
 
344
342
  var showResults = function showResults(exists) {
345
343
  console.log('showResults()');
346
- me = _solidLogic.authn.currentUser();
344
+ me = _solidUi.authn.currentUser();
347
345
 
348
- _solidLogic.authn.checkUser().then(function (webId) {
346
+ _solidUi.authn.checkUser().then(function (webId) {
349
347
  me = webId;
350
348
  });
351
349
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pad/padPane.ts"],"names":["paneDef","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","t","session","store","findTypeURIs","mintClass","pad","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newPadDoc","doc","add","rdf","dc","Date","chunk","sioc","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","render","paneOptions","dom","complainIfBad","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","genACLtext","docURI","aclURI","allWrite","g","auth","a","acl","foaf","setACL","callbackFunction","aclDoc","any","fetcher","aclText","webOperation","data","contentType","then","err","load","newInstanceButton","button","createElement","textContent","addEventListener","showBootstrap","spawnArea","thisInstance","container","noun","appDetails","login","newAppInstance","workspace","initializeNewInstanceInWorkspace","NamedNode","p","baseField","setAttribute","size","autocomplete","_e","value","slice","initializeNewInstanceAtBase","ws","space","split","log","error","appPathSegment","now","getTime","here","base","newIndexDoc","toBeCopied","local","agenda","f","length","item","fun","copyItem","push","newURI","console","setThatACL","shift","webCopy","authn","checkUser","webId","createNewPadDataFile","PAD","padDoc","_uri2","body","innerHTML","showResults","exists","currentUser","title","vcard","solo","window","document","options","padEle","notepad","naviMain","partipationTarget","meeting","manageParticipation","naviMiddle2","setRefreshHandler","reloadAndSync","loadPadData","nowOrWhenFetched","response","status","holds","wf","naviMiddle3","structure","naviLoginoutTR","naviTop","naviMiddle","naviMiddle1","naviStatus","statusArea","naviSpawn","naviMenu","timingArea"],"mappings":"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","sourcesContent":["import { icons, ns, pad, widgets, login } from 'solid-ui'\nimport { authn, AppDetails } from 'solid-logic'\nimport { graph, log, NamedNode, Namespace, sym, serialize, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\n/* pad Pane\n **\n */\n\nconst paneDef: PaneDefinition = {\n // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',\n icon: icons.iconBase + 'noun_79217.svg',\n\n name: 'pad',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an pad pane?\n label: function (subject, context) {\n const t = (context.session.store as Store).findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/pad#Notepad']) {\n return 'pad'\n }\n return null // No under other circumstances\n },\n\n mintClass: ns.pad('Notepad'),\n\n mintNew: function (context, newPaneOptions: any) {\n const store = context.session.store as Store\n const updater = store.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('notepad mintNew: Invalid userid')\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n store.sym(newPaneOptions.newBase + 'index.ttl#this'))\n // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');\n const newPadDoc = newInstance.doc()\n\n store.add(newInstance, ns.rdf('type'), ns.pad('Notepad'), newPadDoc)\n store.add(newInstance, ns.dc('title'), 'Shared Notes', newPadDoc)\n store.add(newInstance, ns.dc('created'), new Date() as any, newPadDoc) // @@ TODO Remove casting\n if (newPaneOptions.me) {\n store.add(newInstance, ns.dc('author'), newPaneOptions.me, newPadDoc)\n }\n // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);\n // linked list empty @@\n const chunk = store.sym(newInstance.uri + '_line0')\n store.add(newInstance, ns.pad('next'), chunk, newPadDoc) // Linked list has one entry\n store.add(chunk, ns.pad('next'), newInstance, newPadDoc)\n store.add(chunk, ns.dc('author'), newPaneOptions.me, newPadDoc)\n store.add(chunk, ns.sioc('content'), '', newPadDoc)\n\n return new Promise(function (resolve, reject) {\n if (!updater) {\n reject(new Error('Have no updater'))\n return\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n // and follow instructions there\n // @@ TODO Set better type for paneOptions\n render: function (subject, context, paneOptions: any) {\n const dom = context.dom\n const store = context.session.store as Store\n // Utility functions\n const complainIfBad = function (ok: boolean, message: string) {\n if (!ok) {\n div.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele: HTMLElement) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n // Access 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 const genACLtext = function (\n docURI: string,\n aclURI: string,\n allWrite: boolean\n ) {\n const g = graph()\n const auth = 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, 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, 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 // TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:\n return serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /**\n * @param docURI\n * @param allWrite\n * @param callbackFunction\n *\n * @returns {Promise<Response>}\n */\n const setACL = function setACL (\n docURI: string,\n allWrite: boolean,\n callbackFunction: Function\n ) {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode // @@ check that this get set by web.js\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch((err: Error) => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode\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(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n const newInstanceButton = function () {\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start another pad'\n button.addEventListener('click', function () {\n return showBootstrap(subject, spawnArea, 'pad')\n })\n return button\n }\n\n // Option of either using the workspace system or just typing in a URI\n const showBootstrap = function showBootstrap (\n thisInstance: any,\n container: HTMLElement,\n noun: string\n ) {\n const div = clearElement(container)\n const appDetails = { noun: 'notepad' } as AppDetails\n div.appendChild(\n login.newAppInstance(dom, appDetails, (workspace: string | null, newBase) => {\n // FIXME: not sure if this will work at all, just\n // trying to get the types to match - Michiel.\n return initializeNewInstanceInWorkspace(new NamedNode(workspace || newBase))\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 ' +\n noun +\n '? ' +\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 as any).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.textContent = 'Start new ' + noun + ' 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 // Create new document files for new instance of app\n const initializeNewInstanceInWorkspace = function (ws: NamedNode) {\n // @@ TODO Clean up type for newBase\n let newBase: any = store.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 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 (\n thisInstance: any,\n newBase: string\n ) {\n const here = sym(thisInstance.uri.split('#')[0])\n const base = here // @@ ???\n\n const newPadDoc = store.sym(newBase + 'pad.ttl')\n const newIndexDoc = store.sym(newBase + 'index.html')\n\n const toBeCopied = [{ local: 'index.html', contentType: 'text/html' }]\n\n const newInstance = store.sym(newPadDoc.uri + '#thisPad')\n\n // log.debug(\"\\n Ready to put \" + kb.statementsMatching(undefined, undefined, undefined, there)); //@@\n\n const agenda: Function[] = []\n\n let f // @@ This needs some form of visible progress bar\n for (f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item: any) {\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 setACL(newURI, false, function (ok: boolean, message: string) {\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 if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.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 createNewPadDataFile () {\n store.add(newInstance, ns.rdf('type'), PAD('Notepad'), newPadDoc)\n\n // TODO @@ Remove casting of add\n store.add(\n newInstance,\n ns.dc('created'),\n new Date() as any, // @@ TODO Remove casting\n newPadDoc\n )\n if (me) {\n store.add(newInstance, ns.dc('author'), me, newPadDoc)\n }\n store.add(newInstance, PAD('next'), newInstance, newPadDoc) // linked list empty\n\n // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy\n store.add(newInstance, ns.space('inspiration'), thisInstance, padDoc)\n store.add(newInstance, ns.space('inspiration'), thisInstance, newPadDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\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 notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n setACL(newPadDoc.uri, true, function (ok: boolean, body: string) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on pad data 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\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n newIndexDoc.uri +\n \"'><b>new notepad</b></a> is ready. \" +\n \"<br/><br/><a href='\" +\n newIndexDoc.uri +\n \"'>Go to new pad</a>\"\n })\n\n agenda.shift()!()\n // Created new data files.\n }\n\n // Update on incoming changes\n const showResults = function (exists: boolean) {\n console.log('showResults()')\n\n me = authn.currentUser()\n\n authn.checkUser().then((webId: unknown) => {\n me = webId as string\n })\n\n const title =\n store.any(subject, ns.dc('title')) || store.any(subject, ns.vcard('fn'))\n if (paneOptions.solo && typeof window !== 'undefined' && title) {\n window.document.title = title.value\n }\n options.exists = exists\n padEle = pad.notepad(dom, padDoc, subject, me, options)\n naviMain.appendChild(padEle)\n\n const partipationTarget =\n store.any(subject, ns.meeting('parentMeeting')) || subject\n pad.manageParticipation(\n dom,\n naviMiddle2,\n padDoc,\n partipationTarget as any,\n me,\n options\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync) // initiated =\n }\n\n // Read or create empty data file\n const loadPadData = function () {\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (\n ok: boolean,\n body: string,\n response: any\n ) {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing results file ' + padDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(padDoc, [], 'text/turtle', function (\n _uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults(false)\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n padDoc.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 if (store.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))) {\n showBootstrap(subject, naviMain, 'pad')\n }\n showResults(true)\n naviMiddle3.appendChild(newInstanceButton())\n }\n })\n }\n\n // Body of Pane\n const appPathSegment = 'app-pad.timbl.com' // how to allocate this string and connect to\n\n const fetcher = store.fetcher\n const updater = store.updater\n let me: any\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n const thisInstance = subject\n const padDoc = subject.doc()\n\n let padEle\n\n const div = dom.createElement('div')\n\n // Build the DOM\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td')) // naviLoginout1\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const naviTop = structure.appendChild(dom.createElement('tr')) // stuff\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMiddle = structure.appendChild(dom.createElement('tr')) // controls\n const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'))\n\n const naviStatus = structure.appendChild(dom.createElement('tr')) // status etc\n const statusArea = naviStatus.appendChild(dom.createElement('div'))\n\n const naviSpawn = structure.appendChild(dom.createElement('tr')) // create new\n const spawnArea = naviSpawn.appendChild(dom.createElement('div'))\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n // naviMenu.setAttribute('style', 'margin-top: 3em;');\n naviMenu.appendChild(dom.createElement('td')) // naviLeft\n naviMenu.appendChild(dom.createElement('td'))\n naviMenu.appendChild(dom.createElement('td'))\n\n const options: any = { statusArea: statusArea, timingArea: naviMiddle1 }\n\n loadPadData()\n\n return div\n }\n}\n// ends\n\nexport default paneDef\n"],"file":"padPane.js"}
1
+ {"version":3,"sources":["../../src/pad/padPane.ts"],"names":["paneDef","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","t","session","store","findTypeURIs","mintClass","pad","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newPadDoc","doc","add","rdf","dc","Date","chunk","sioc","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","render","paneOptions","dom","complainIfBad","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","genACLtext","docURI","aclURI","allWrite","g","auth","a","acl","foaf","setACL","callbackFunction","aclDoc","any","fetcher","aclText","webOperation","data","contentType","then","err","load","newInstanceButton","button","createElement","textContent","addEventListener","showBootstrap","spawnArea","thisInstance","container","noun","appDetails","authn","newAppInstance","workspace","initializeNewInstanceInWorkspace","NamedNode","p","baseField","setAttribute","size","autocomplete","_e","value","slice","initializeNewInstanceAtBase","ws","space","split","log","error","appPathSegment","now","getTime","here","base","newIndexDoc","toBeCopied","local","agenda","f","length","item","fun","copyItem","push","newURI","console","setThatACL","shift","webCopy","checkUser","webId","createNewPadDataFile","PAD","padDoc","_uri2","body","innerHTML","showResults","exists","currentUser","title","vcard","solo","window","document","options","padEle","notepad","naviMain","partipationTarget","meeting","manageParticipation","naviMiddle2","setRefreshHandler","reloadAndSync","loadPadData","nowOrWhenFetched","response","status","holds","wf","naviMiddle3","structure","naviLoginoutTR","naviTop","naviMiddle","naviMiddle1","naviStatus","statusArea","naviSpawn","naviMenu","timingArea"],"mappings":"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","sourcesContent":["import { authn, icons, ns, pad, widgets } from 'solid-ui'\nimport { graph, log, NamedNode, Namespace, sym, serialize, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\nimport { AppDetails } from 'solid-ui/lib/authn/types'\n/* pad Pane\n **\n */\n\nconst paneDef: PaneDefinition = {\n // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',\n icon: icons.iconBase + 'noun_79217.svg',\n\n name: 'pad',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an pad pane?\n label: function (subject, context) {\n const t = (context.session.store as Store).findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/pad#Notepad']) {\n return 'pad'\n }\n return null // No under other circumstances\n },\n\n mintClass: ns.pad('Notepad'),\n\n mintNew: function (context, newPaneOptions: any) {\n const store = context.session.store as Store\n const updater = store.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('notepad mintNew: Invalid userid')\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n store.sym(newPaneOptions.newBase + 'index.ttl#this'))\n // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');\n const newPadDoc = newInstance.doc()\n\n store.add(newInstance, ns.rdf('type'), ns.pad('Notepad'), newPadDoc)\n store.add(newInstance, ns.dc('title'), 'Shared Notes', newPadDoc)\n store.add(newInstance, ns.dc('created'), new Date() as any, newPadDoc) // @@ TODO Remove casting\n if (newPaneOptions.me) {\n store.add(newInstance, ns.dc('author'), newPaneOptions.me, newPadDoc)\n }\n // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);\n // linked list empty @@\n const chunk = store.sym(newInstance.uri + '_line0')\n store.add(newInstance, ns.pad('next'), chunk, newPadDoc) // Linked list has one entry\n store.add(chunk, ns.pad('next'), newInstance, newPadDoc)\n store.add(chunk, ns.dc('author'), newPaneOptions.me, newPadDoc)\n store.add(chunk, ns.sioc('content'), '', newPadDoc)\n\n return new Promise(function (resolve, reject) {\n if (!updater) {\n reject(new Error('Have no updater'))\n return\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n // and follow instructions there\n // @@ TODO Set better type for paneOptions\n render: function (subject, context, paneOptions: any) {\n const dom = context.dom\n const store = context.session.store as Store\n // Utility functions\n const complainIfBad = function (ok: boolean, message: string) {\n if (!ok) {\n div.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele: HTMLElement) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n // Access 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 const genACLtext = function (\n docURI: string,\n aclURI: string,\n allWrite: boolean\n ) {\n const g = graph()\n const auth = 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, 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, 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 // TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:\n return serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /**\n * @param docURI\n * @param allWrite\n * @param callbackFunction\n *\n * @returns {Promise<Response>}\n */\n const setACL = function setACL (\n docURI: string,\n allWrite: boolean,\n callbackFunction: Function\n ) {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode // @@ check that this get set by web.js\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch((err: Error) => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode\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(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n const newInstanceButton = function () {\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start another pad'\n button.addEventListener('click', function () {\n return showBootstrap(subject, spawnArea, 'pad')\n })\n return button\n }\n\n // Option of either using the workspace system or just typing in a URI\n const showBootstrap = function showBootstrap (\n thisInstance: any,\n container: HTMLElement,\n noun: string\n ) {\n const div = clearElement(container)\n const appDetails = { noun: 'notepad' } as AppDetails\n div.appendChild(\n authn.newAppInstance(dom, appDetails, (workspace: string | null, newBase) => {\n // FIXME: not sure if this will work at all, just\n // trying to get the types to match - Michiel.\n return initializeNewInstanceInWorkspace(new NamedNode(workspace || newBase))\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 ' +\n noun +\n '? ' +\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 as any).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.textContent = 'Start new ' + noun + ' 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 // Create new document files for new instance of app\n const initializeNewInstanceInWorkspace = function (ws: NamedNode) {\n // @@ TODO Clean up type for newBase\n let newBase: any = store.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 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 (\n thisInstance: any,\n newBase: string\n ) {\n const here = sym(thisInstance.uri.split('#')[0])\n const base = here // @@ ???\n\n const newPadDoc = store.sym(newBase + 'pad.ttl')\n const newIndexDoc = store.sym(newBase + 'index.html')\n\n const toBeCopied = [{ local: 'index.html', contentType: 'text/html' }]\n\n const newInstance = store.sym(newPadDoc.uri + '#thisPad')\n\n // log.debug(\"\\n Ready to put \" + kb.statementsMatching(undefined, undefined, undefined, there)); //@@\n\n const agenda: Function[] = []\n\n let f // @@ This needs some form of visible progress bar\n for (f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item: any) {\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 setACL(newURI, false, function (ok: boolean, message: string) {\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 if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.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 createNewPadDataFile () {\n store.add(newInstance, ns.rdf('type'), PAD('Notepad'), newPadDoc)\n\n // TODO @@ Remove casting of add\n store.add(\n newInstance,\n ns.dc('created'),\n new Date() as any, // @@ TODO Remove casting\n newPadDoc\n )\n if (me) {\n store.add(newInstance, ns.dc('author'), me, newPadDoc)\n }\n store.add(newInstance, PAD('next'), newInstance, newPadDoc) // linked list empty\n\n // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy\n store.add(newInstance, ns.space('inspiration'), thisInstance, padDoc)\n store.add(newInstance, ns.space('inspiration'), thisInstance, newPadDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\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 notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n setACL(newPadDoc.uri, true, function (ok: boolean, body: string) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on pad data 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\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n newIndexDoc.uri +\n \"'><b>new notepad</b></a> is ready. \" +\n \"<br/><br/><a href='\" +\n newIndexDoc.uri +\n \"'>Go to new pad</a>\"\n })\n\n agenda.shift()!()\n // Created new data files.\n }\n\n // Update on incoming changes\n const showResults = function (exists: boolean) {\n console.log('showResults()')\n\n me = authn.currentUser()\n\n authn.checkUser().then((webId: unknown) => {\n me = webId as string\n })\n\n const title =\n store.any(subject, ns.dc('title')) || store.any(subject, ns.vcard('fn'))\n if (paneOptions.solo && typeof window !== 'undefined' && title) {\n window.document.title = title.value\n }\n options.exists = exists\n padEle = pad.notepad(dom, padDoc, subject, me, options)\n naviMain.appendChild(padEle)\n\n const partipationTarget =\n store.any(subject, ns.meeting('parentMeeting')) || subject\n pad.manageParticipation(\n dom,\n naviMiddle2,\n padDoc,\n partipationTarget as any,\n me,\n options\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync) // initiated =\n }\n\n // Read or create empty data file\n const loadPadData = function () {\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (\n ok: boolean,\n body: string,\n response: any\n ) {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing results file ' + padDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(padDoc, [], 'text/turtle', function (\n _uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults(false)\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n padDoc.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 if (store.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))) {\n showBootstrap(subject, naviMain, 'pad')\n }\n showResults(true)\n naviMiddle3.appendChild(newInstanceButton())\n }\n })\n }\n\n // Body of Pane\n const appPathSegment = 'app-pad.timbl.com' // how to allocate this string and connect to\n\n const fetcher = store.fetcher\n const updater = store.updater\n let me: any\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n const thisInstance = subject\n const padDoc = subject.doc()\n\n let padEle\n\n const div = dom.createElement('div')\n\n // Build the DOM\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td')) // naviLoginout1\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const naviTop = structure.appendChild(dom.createElement('tr')) // stuff\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMiddle = structure.appendChild(dom.createElement('tr')) // controls\n const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'))\n\n const naviStatus = structure.appendChild(dom.createElement('tr')) // status etc\n const statusArea = naviStatus.appendChild(dom.createElement('div'))\n\n const naviSpawn = structure.appendChild(dom.createElement('tr')) // create new\n const spawnArea = naviSpawn.appendChild(dom.createElement('div'))\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n // naviMenu.setAttribute('style', 'margin-top: 3em;');\n naviMenu.appendChild(dom.createElement('td')) // naviLeft\n naviMenu.appendChild(dom.createElement('td'))\n naviMenu.appendChild(dom.createElement('td'))\n\n const options: any = { statusArea: statusArea, timingArea: naviMiddle1 }\n\n loadPadData()\n\n return div\n }\n}\n// ends\n\nexport default paneDef\n"],"file":"padPane.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"editProfile.view.d.ts","sourceRoot":"","sources":["../../src/profile/editProfile.view.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAQ9C,QAAA,MAAM,eAAe,EAAE,cA2HtB,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"editProfile.view.d.ts","sourceRoot":"","sources":["../../src/profile/editProfile.view.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAK9C,QAAA,MAAM,eAAe,EAAE,cA4HtB,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _rdflib = require("rdflib");
9
-
10
8
  var _solidUi = require("solid-ui");
11
9
 
10
+ var _rdflib = require("rdflib");
11
+
12
12
  var _profile = require("./profile.dom");
13
13
 
14
14
  /**
@@ -86,7 +86,7 @@ var editProfileView = {
86
86
  me: null
87
87
  };
88
88
 
89
- _solidUi.login.ensureLoadedProfile(profileContext).then(function (loggedInContext) {
89
+ _solidUi.authn.logInLoadProfile(profileContext).then(function (loggedInContext) {
90
90
  var me = loggedInContext.me;
91
91
  heading('Edit your public profile');
92
92
  var profile = me.doc();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/profile/editProfile.view.ts"],"names":["highlightColor","style","editProfileView","global","icon","icons","iconBase","name","label","render","subject","context","dom","store","session","complainIfBad","ok","mess","div","appendChild","widgets","errorMessageBlock","renderProfileForm","preferencesForm","preferencesFormDoc","doc","holds","undefined","profileFormText","uri","appendForm","editableProfile","createElement","setAttribute","table","main","bottom","statusArea","comment","str","p","textContent","heading","h","profileContext","me","login","ensureLoadedProfile","then","loggedInContext","profile","updater","Error","any","ns","solid","editable","attachmentList","modify","predicate","foaf","noun","error"],"mappings":"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","sourcesContent":["/**\n * Profile Editing App Pane\n *\n * Unlike view panes, this is available any place whatever the real subject,\n * and allows the user to edit their own profile.\n *\n * Usage: paneRegistry.register('profile/profilePane')\n * or standalone script adding onto existing mashlib.\n */\n\nimport { PaneDefinition } from 'pane-registry'\nimport { NamedNode, parse, Store, sym } from 'rdflib'\nimport { icons, login, ns, style, widgets } from 'solid-ui'\nimport { paneDiv } from './profile.dom'\nimport profileFormText from './profileFormText.ttl'\n\nconst highlightColor = style.highlightColor || '#7C4DFF'\n\nconst editProfileView: PaneDefinition = {\n global: true,\n\n icon: icons.iconBase + 'noun_492246.svg',\n\n name: 'editProfile',\n\n label: () => null,\n\n render: function (subject, context) {\n const dom = context.dom\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n div.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n function renderProfileForm (div: HTMLElement, subject: NamedNode) {\n const preferencesForm = sym('https://solid.github.io/solid-panes/dashboard/profileStyle.ttl#this')\n const preferencesFormDoc = preferencesForm.doc()\n if (!store.holds(undefined, undefined, undefined, preferencesFormDoc)) {\n // If not loaded already\n parse(profileFormText, store, preferencesFormDoc.uri, 'text/turtle', () => null) // Load form directly\n }\n\n widgets.appendForm(\n dom,\n div,\n {},\n subject,\n preferencesForm,\n editableProfile,\n complainIfBad\n )\n } // renderProfileForm\n\n const div = dom.createElement('div')\n let editableProfile: NamedNode | null\n div.setAttribute('style', `border: 0.3em solid ${highlightColor}; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;`)\n\n const table = div.appendChild(dom.createElement('table'))\n // const top = table.appendChild(dom.createElement('tr'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n\n function comment (str: string) {\n const p = main.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'padding: 1em;')\n p.textContent = str\n return p\n }\n\n function heading (str: string) {\n const h = main.appendChild(dom.createElement('h3'))\n h.setAttribute('style', 'color:' + highlightColor + ';')\n h.textContent = str\n return h\n }\n\n const profileContext = {\n dom: dom,\n div: main,\n statusArea: statusArea,\n me: null\n }\n login.ensureLoadedProfile(profileContext)\n .then(loggedInContext => {\n const me = loggedInContext.me!\n\n heading('Edit your public profile')\n\n const profile = me.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n if (store.any(me, ns.solid('editableProfile'))) {\n editableProfile = store.any(me as any, ns.solid('editableProfile')) as NamedNode\n } else if (store.updater.editable(profile.uri, store)) {\n editableProfile = profile\n } else {\n statusArea.appendChild(widgets.errorMessageBlock(dom, `⚠️ Your profile ${profile} is not editable, so we cannot do much here.`, 'straw'))\n return\n }\n\n comment(`Everything you put here will be public.\n There will be other places to record private things.`)\n\n heading('Your contact information')\n\n main.appendChild(paneDiv(context, me, 'contact'))\n\n heading('People you know who have WebIDs')\n\n comment(`This is your public social network.\n Only put people here to whom you are happy to be publicly connected.\n (You can always keep private track of friends and family in your contacts.)`)\n\n // TODO: would be useful to explain what it means to \"drag people\"\n // what is it that is being dragged?\n // is there a way to search for people (or things to drag) on this page?\n if (editableProfile) {\n comment('Drag people onto the target below to add people.')\n }\n\n widgets.attachmentList(dom, me, main, {\n doc: profile,\n modify: !!editableProfile,\n predicate: ns.foaf('knows'),\n noun: 'friend'\n })\n\n // heading('The style of your public profile') headings are in form now\n renderProfileForm(main, me)\n\n heading('Thank you for filling your profile.')\n }).catch(error => {\n statusArea.appendChild(widgets.errorMessageBlock(dom, error, '#fee'))\n })\n return div\n }\n}\n\nexport default editProfileView\n"],"file":"editProfile.view.js"}
1
+ {"version":3,"sources":["../../src/profile/editProfile.view.ts"],"names":["highlightColor","style","editProfileView","global","icon","icons","iconBase","name","label","render","subject","context","dom","store","session","complainIfBad","ok","mess","div","appendChild","widgets","errorMessageBlock","renderProfileForm","preferencesForm","preferencesFormDoc","doc","holds","undefined","profileFormText","uri","appendForm","editableProfile","createElement","setAttribute","table","main","bottom","statusArea","comment","str","p","textContent","heading","h","profileContext","me","authn","logInLoadProfile","then","loggedInContext","profile","updater","Error","any","ns","solid","editable","attachmentList","modify","predicate","foaf","noun","error"],"mappings":"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","sourcesContent":["/**\n * Profile Editing App Pane\n *\n * Unlike view panes, this is available any place whatever the real subject,\n * and allows the user to edit their own profile.\n *\n * Usage: paneRegistry.register('profile/profilePane')\n * or standalone script adding onto existing mashlib.\n */\n\nimport { authn, icons, ns, style, widgets } from 'solid-ui'\n\nimport { NamedNode, parse, sym, Store } from 'rdflib'\n\nimport profileFormText from './profileFormText.ttl'\nimport { PaneDefinition } from 'pane-registry'\nimport { paneDiv } from './profile.dom'\n\nconst highlightColor = style.highlightColor || '#7C4DFF'\n\nconst editProfileView: PaneDefinition = {\n global: true,\n\n icon: icons.iconBase + 'noun_492246.svg',\n\n name: 'editProfile',\n\n label: () => null,\n\n render: function (subject, context) {\n const dom = context.dom\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n div.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n function renderProfileForm (div: HTMLElement, subject: NamedNode) {\n const preferencesForm = sym('https://solid.github.io/solid-panes/dashboard/profileStyle.ttl#this')\n const preferencesFormDoc = preferencesForm.doc()\n if (!store.holds(undefined, undefined, undefined, preferencesFormDoc)) {\n // If not loaded already\n parse(profileFormText, store, preferencesFormDoc.uri, 'text/turtle', () => null) // Load form directly\n }\n\n widgets.appendForm(\n dom,\n div,\n {},\n subject,\n preferencesForm,\n editableProfile,\n complainIfBad\n )\n } // renderProfileForm\n\n const div = dom.createElement('div')\n let editableProfile: NamedNode | null\n div.setAttribute('style', `border: 0.3em solid ${highlightColor}; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;`)\n\n const table = div.appendChild(dom.createElement('table'))\n // const top = table.appendChild(dom.createElement('tr'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n\n function comment (str: string) {\n const p = main.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'padding: 1em;')\n p.textContent = str\n return p\n }\n\n function heading (str: string) {\n const h = main.appendChild(dom.createElement('h3'))\n h.setAttribute('style', 'color:' + highlightColor + ';')\n h.textContent = str\n return h\n }\n\n const profileContext = {\n dom: dom,\n div: main,\n statusArea: statusArea,\n me: null\n }\n authn.logInLoadProfile(profileContext)\n .then(loggedInContext => {\n const me = loggedInContext.me!\n\n heading('Edit your public profile')\n\n const profile = me.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n if (store.any(me, ns.solid('editableProfile'))) {\n editableProfile = store.any(me as any, ns.solid('editableProfile')) as NamedNode\n } else if (store.updater.editable(profile.uri, store)) {\n editableProfile = profile\n } else {\n statusArea.appendChild(widgets.errorMessageBlock(dom, `⚠️ Your profile ${profile} is not editable, so we cannot do much here.`, 'straw'))\n return\n }\n\n comment(`Everything you put here will be public.\n There will be other places to record private things.`)\n\n heading('Your contact information')\n\n main.appendChild(paneDiv(context, me, 'contact'))\n\n heading('People you know who have WebIDs')\n\n comment(`This is your public social network.\n Only put people here to whom you are happy to be publicly connected.\n (You can always keep private track of friends and family in your contacts.)`)\n\n // TODO: would be useful to explain what it means to \"drag people\"\n // what is it that is being dragged?\n // is there a way to search for people (or things to drag) on this page?\n if (editableProfile) {\n comment('Drag people onto the target below to add people.')\n }\n\n widgets.attachmentList(dom, me, main, {\n doc: profile,\n modify: !!editableProfile,\n predicate: ns.foaf('knows'),\n noun: 'friend'\n })\n\n // heading('The style of your public profile') headings are in form now\n renderProfileForm(main, me)\n\n heading('Thank you for filling your profile.')\n })\n .catch(error => {\n statusArea.appendChild(widgets.errorMessageBlock(dom, error, '#fee'))\n })\n return div\n }\n}\n\nexport default editProfileView\n"],"file":"editProfile.view.js"}
@@ -1,21 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
- var UI = _interopRequireWildcard(require("solid-ui"));
6
-
7
- var _solidLogic = require("solid-logic");
8
-
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
-
11
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
-
13
3
  /* Scheduler Pane
14
4
  **
15
5
  **
16
6
  */
17
7
 
18
8
  /* global alert */
9
+ var UI = require('solid-ui');
10
+
19
11
  var $rdf = UI.rdf;
20
12
  var ns = UI.ns; // @@ Give other combos too-- see schedule ontology
21
13
 
@@ -127,8 +119,7 @@ module.exports = {
127
119
 
128
120
  var fetcher = kb.fetcher;
129
121
  var updater = kb.updater;
130
-
131
- var me = options.me || _solidLogic.authn.currentUser();
122
+ var me = options.me || UI.authn.currentUser();
132
123
 
133
124
  if (!me) {
134
125
  console.log('MUST BE LOGGED IN');
@@ -180,7 +171,7 @@ module.exports = {
180
171
  };
181
172
 
182
173
  kb.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(function () {
183
- return _solidLogic.authn.checkUser();
174
+ return UI.authn.checkUser();
184
175
  }).then(function (webId) {
185
176
  me = webId;
186
177
  setThatACL();
@@ -301,8 +292,7 @@ module.exports = {
301
292
  };
302
293
 
303
294
  var me;
304
-
305
- _solidLogic.authn.checkUser().then(function (webId) {
295
+ UI.authn.checkUser().then(function (webId) {
306
296
  me = webId;
307
297
 
308
298
  if (logInOutButton) {
@@ -314,7 +304,6 @@ module.exports = {
314
304
  showAppropriateDisplay();
315
305
  }
316
306
  });
317
-
318
307
  console.log('me: ' + me); // @@ curently not actually used elsewhere
319
308
  // ////////////////////////////// Reproduction: spawn a new instance
320
309
  //
@@ -322,7 +311,7 @@ module.exports = {
322
311
  //
323
312
 
324
313
  var newInstanceButton = function newInstanceButton() {
325
- var b = UI.login.newAppInstance(dom, {
314
+ var b = UI.authn.newAppInstance(dom, {
326
315
  noun: 'scheduler'
327
316
  }, initializeNewInstanceInWorkspace);
328
317
  b.firstChild.setAttribute('style', inputStyle);
@@ -391,8 +380,7 @@ module.exports = {
391
380
 
392
381
  var showAppropriateDisplay = function showAppropriateDisplay() {
393
382
  console.log('showAppropriateDisplay()');
394
-
395
- _solidLogic.authn.checkUser().then(function (webId) {
383
+ UI.authn.checkUser().then(function (webId) {
396
384
  if (!webId) {
397
385
  return showSignon();
398
386
  } // On gh-pages, the turtle will not load properly (bad mime type)
@@ -422,7 +410,7 @@ module.exports = {
422
410
  div: div,
423
411
  dom: dom
424
412
  };
425
- UI.login.loggedInContext(signonContext).then(function (context) {
413
+ UI.authn.logIn(signonContext).then(function (context) {
426
414
  me = context.me;
427
415
  waitingForLogin = false; // untested
428
416
 
@@ -432,7 +420,7 @@ module.exports = {
432
420
 
433
421
  var showBootstrap = function showBootstrap() {
434
422
  var div = clearElement(naviMain);
435
- div.appendChild(UI.login.newAppInstance(dom, {
423
+ div.appendChild(UI.authn.newAppInstance(dom, {
436
424
  noun: 'poll'
437
425
  }, initializeNewInstanceInWorkspace));
438
426
  div.appendChild(dom.createElement('hr')); // @@
@@ -630,7 +618,7 @@ module.exports = {
630
618
  refreshButton.textContent = 'refresh'
631
619
  refreshButton.addEventListener('click', function (e) {
632
620
  refreshButton.disabled = true
633
- store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {
621
+ UI.store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {
634
622
  if (!ok) {
635
623
  console.log('Cant refresh matrix' + body)
636
624
  } else {
@@ -687,7 +675,7 @@ module.exports = {
687
675
  dataPointForNT[possibleTimes[j].toNT()] = dataPoint
688
676
  }
689
677
  if (insertables.length) {
690
- store.updater.update([], insertables, function (uri, success, errorBody) {
678
+ UI.store.updater.update([], insertables, function (uri, success, errorBody) {
691
679
  if (!success) {
692
680
  complainIfBad(success, errorBody)
693
681
  } else {
@@ -810,7 +798,7 @@ module.exports = {
810
798
  naviCenter.appendChild(refreshButton);
811
799
  }; // @@ Give other combos too-- see schedule ontology
812
800
  // const possibleAvailabilities = [ SCHED('No'), SCHED('Maybe'), SCHED('Yes') ]
813
- // const me = authn.currentUser()
801
+ // const me = UI.authn.currentUser()
814
802
 
815
803
 
816
804
  var dataPointForNT = [];
@@ -818,7 +806,7 @@ module.exports = {
818
806
  div: naviCenter,
819
807
  dom: dom
820
808
  };
821
- UI.login.loggedInContext(loginContext).then(function (context) {
809
+ UI.authn.logIn(loginContext).then(function (context) {
822
810
  var me = context.me;
823
811
  var doc = resultsDoc;
824
812
  options.set_y = options.set_y.filter(function (z) {
@@ -930,7 +918,7 @@ module.exports = {
930
918
  naviLoginoutTR.appendChild(dom.createElement('td'));
931
919
  var logInOutButton = null;
932
920
  /*
933
- const logInOutButton = UI.login.loginStatusBox(dom, setUser)
921
+ const logInOutButton = UI.authn.loginStatusBox(dom, setUser)
934
922
  // floating divs lead to a mess
935
923
  // logInOutButton.setAttribute('style', 'float: right') // float the beginning of the end
936
924
  naviLoginout3.appendChild(logInOutButton)