solid-panes 3.5.19 → 3.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dev/loader.ts +11 -11
  2. package/lib/argument/argumentPane.js +15 -7
  3. package/lib/argument/argumentPane.js.map +1 -1
  4. package/lib/dashboard/basicPreferences.d.ts.map +1 -1
  5. package/lib/dashboard/basicPreferences.js +6 -6
  6. package/lib/dashboard/basicPreferences.js.map +1 -1
  7. package/lib/dashboard/dashboardPane.d.ts.map +1 -1
  8. package/lib/dashboard/dashboardPane.js +6 -4
  9. package/lib/dashboard/dashboardPane.js.map +1 -1
  10. package/lib/dataContentPane.js +1 -1
  11. package/lib/dataContentPane.js.map +1 -1
  12. package/lib/form/pane.js +15 -6
  13. package/lib/form/pane.js.map +1 -1
  14. package/lib/home/homePane.d.ts.map +1 -1
  15. package/lib/home/homePane.js +7 -5
  16. package/lib/home/homePane.js.map +1 -1
  17. package/lib/index.d.ts +7 -3
  18. package/lib/index.d.ts.map +1 -1
  19. package/lib/index.js +15 -4
  20. package/lib/index.js.map +1 -1
  21. package/lib/mainPage/header.d.ts.map +1 -1
  22. package/lib/mainPage/header.js +4 -2
  23. package/lib/mainPage/header.js.map +1 -1
  24. package/lib/microblogPane/microblogPane.js +16 -14
  25. package/lib/microblogPane/microblogPane.js.map +1 -1
  26. package/lib/outline/dragDrop.js +16 -6
  27. package/lib/outline/dragDrop.js.map +1 -1
  28. package/lib/outline/licenseOptions.js +12 -5
  29. package/lib/outline/licenseOptions.js.map +1 -1
  30. package/lib/outline/manager.js +29 -21
  31. package/lib/outline/manager.js.map +1 -1
  32. package/lib/outline/queryByExample.js +14 -6
  33. package/lib/outline/queryByExample.js.map +1 -1
  34. package/lib/outline/userInput.js +90 -80
  35. package/lib/outline/userInput.js.map +1 -1
  36. package/lib/pad/padPane.d.ts.map +1 -1
  37. package/lib/pad/padPane.js +6 -4
  38. package/lib/pad/padPane.js.map +1 -1
  39. package/lib/profile/editProfile.view.d.ts.map +1 -1
  40. package/lib/profile/editProfile.view.js +3 -3
  41. package/lib/profile/editProfile.view.js.map +1 -1
  42. package/lib/schedule/schedulePane.js +26 -14
  43. package/lib/schedule/schedulePane.js.map +1 -1
  44. package/lib/socialPane.js +16 -6
  45. package/lib/socialPane.js.map +1 -1
  46. package/lib/transaction/pane.js +1 -1
  47. package/lib/transaction/pane.js.map +1 -1
  48. package/lib/transaction/period.js +1 -1
  49. package/lib/transaction/period.js.map +1 -1
  50. package/lib/trip/tripPane.js +1 -1
  51. package/lib/trip/tripPane.js.map +1 -1
  52. package/lib/trustedApplications/trustedApplications.dom.d.ts.map +1 -1
  53. package/lib/trustedApplications/trustedApplications.dom.js +11 -9
  54. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  55. package/lib/trustedApplications/trustedApplications.view.d.ts.map +1 -1
  56. package/lib/trustedApplications/trustedApplications.view.js +5 -3
  57. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  58. package/lib/versionInfo.js +2 -2
  59. package/lib/versionInfo.js.map +1 -1
  60. package/package.json +14 -14
  61. package/src/argument/argumentPane.js +5 -5
  62. package/src/dashboard/basicPreferences.ts +4 -5
  63. package/src/dashboard/dashboardPane.ts +4 -3
  64. package/src/dataContentPane.js +1 -1
  65. package/src/form/pane.js +5 -4
  66. package/src/home/homePane.ts +7 -6
  67. package/src/index.ts +24 -18
  68. package/src/mainPage/header.ts +3 -2
  69. package/src/microblogPane/microblogPane.js +9 -8
  70. package/src/outline/dragDrop.js +5 -4
  71. package/src/outline/licenseOptions.js +4 -5
  72. package/src/outline/manager.js +22 -21
  73. package/src/outline/queryByExample.js +4 -4
  74. package/src/outline/userInput.js +72 -72
  75. package/src/pad/padPane.ts +3 -3
  76. package/src/profile/editProfile.view.ts +5 -8
  77. package/src/schedule/schedulePane.js +14 -13
  78. package/src/socialPane.js +5 -4
  79. package/src/transaction/pane.js +1 -1
  80. package/src/transaction/period.js +1 -1
  81. package/src/trip/tripPane.js +1 -1
  82. package/src/trustedApplications/trustedApplications.dom.ts +2 -1
  83. package/src/trustedApplications/trustedApplications.view.ts +4 -4
  84. package/src/versionInfo.ts +2 -2
package/dev/loader.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as paneRegistry from 'pane-registry'
2
+ import * as $rdf from 'rdflib'
3
+ import { solidLogicSingleton, store, authSession } from 'solid-logic'
2
4
  import { getOutliner } from '../src'
3
- const Pane = require('./pane').default
4
- const $rdf = require('rdflib')
5
- const UI = require('solid-ui')
5
+ import * as Pane from './pane'
6
6
 
7
7
  // FIXME:
8
8
  window.$rdf = $rdf
@@ -16,16 +16,16 @@ async function renderPane (uri: string) {
16
16
  const doc = subject.doc()
17
17
 
18
18
  await new Promise((resolve, reject) => {
19
- UI.store.fetcher.load(doc).then(resolve, reject)
19
+ store.fetcher.load(doc).then(resolve, reject)
20
20
  })
21
21
  const context = {
22
22
  // see https://github.com/solid/solid-panes/blob/005f90295d83e499fd626bd84aeb3df10135d5c1/src/index.ts#L30-L34
23
23
  dom: document,
24
24
  getOutliner,
25
25
  session: {
26
- store: UI.store,
26
+ store: store,
27
27
  paneRegistry,
28
- logic: UI.solidLogicSingleton
28
+ logic: solidLogicSingleton
29
29
  }
30
30
  }
31
31
  const options = {}
@@ -56,10 +56,10 @@ window.onload = async () => {
56
56
  console.log('document ready')
57
57
  // registerPanes((cjsOrEsModule: any) => paneRegistry.register(cjsOrEsModule.default || cjsOrEsModule))
58
58
  paneRegistry.register(require('contacts-pane'))
59
- await UI.authn.authSession.handleIncomingRedirect({
59
+ await authSession.handleIncomingRedirect({
60
60
  restorePreviousSession: true
61
61
  })
62
- const session = await UI.authn.authSession
62
+ const session = await authSession
63
63
  if (!session.info.isLoggedIn) {
64
64
  console.log('The user is not logged in')
65
65
  document.getElementById('loginBanner').innerHTML =
@@ -74,14 +74,14 @@ window.onload = async () => {
74
74
  renderPane()
75
75
  }
76
76
  window.logout = () => {
77
- UI.authn.authSession.logout()
77
+ authSession.logout()
78
78
  window.location = ''
79
79
  }
80
80
  window.login = async function () {
81
- const session = await UI.authn.authSession
81
+ const session = await authSession
82
82
  if (!session.info.isLoggedIn) {
83
83
  const issuer = prompt('Please enter an issuer URI', 'https://solidcommunity.net')
84
- await UI.authn.authSession.login({
84
+ await authSession.login({
85
85
  oidcIssuer: issuer,
86
86
  redirectUrl: window.location.href,
87
87
  clientName: 'Solid Panes Dev Loader'
@@ -1,5 +1,17 @@
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 _solidLogic = require("solid-logic");
6
+
7
+ var UI = _interopRequireWildcard(require("solid-ui"));
8
+
9
+ var panes = _interopRequireWildcard(require("pane-registry"));
10
+
11
+ 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); }
12
+
13
+ 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; }
14
+
3
15
  /* View argument Pane
4
16
  **
5
17
  ** This pane shows a position and optionally the positions which
@@ -8,17 +20,13 @@
8
20
  ** Should allow editing the data too
9
21
 
10
22
  */
11
- var UI = require('solid-ui');
12
-
13
- var panes = require('pane-registry'); // console.log('@@@ argument pane icon at ' + (module.__dirname || __dirname) + '/icon_argument.png')
14
-
15
-
23
+ // console.log('@@@ argument pane icon at ' + (module.__dirname || __dirname) + '/icon_argument.png')
16
24
  module.exports = {
17
25
  icon: (module.__dirname || __dirname) + '/icon_argument.png',
18
26
  // @@ fix fro mashlib version
19
27
  name: 'argument',
20
28
  label: function label(subject) {
21
- var kb = UI.store;
29
+ var kb = _solidLogic.store;
22
30
  var t = kb.findTypeURIs(subject);
23
31
  if (t[UI.ns.arg('Position').uri]) return 'Argument';
24
32
  return null;
@@ -26,7 +34,7 @@ module.exports = {
26
34
  // View the data in a file in user-friendly way
27
35
  render: function render(subject, dom) {
28
36
  var outliner = panes.getOutliner(dom);
29
- var kb = UI.store;
37
+ var kb = _solidLogic.store;
30
38
  var arg = UI.ns.arg;
31
39
  subject = kb.canon(subject); // var types = kb.findTypeURIs(subject)
32
40
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/argument/argumentPane.js"],"names":["UI","require","panes","module","exports","icon","__dirname","name","label","subject","kb","store","t","findTypeURIs","ns","arg","uri","render","dom","outliner","getOutliner","canon","div","createElement","setAttribute","comment","any","rdfs","para","appendChild","textContent","value","plist","statementsMatching","appendPropertyTRs"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,EAAE,GAAGC,OAAO,CAAC,UAAD,CAAlB;;AACA,IAAMC,KAAK,GAAGD,OAAO,CAAC,eAAD,CAArB,C,CAEA;;;AACAE,MAAM,CAACC,OAAP,GAAiB;AACfC,EAAAA,IAAI,EAAE,CAACF,MAAM,CAACG,SAAP,IAAoBA,SAArB,IAAkC,oBADzB;AAC+C;AAE9DC,EAAAA,IAAI,EAAE,UAHS;AAKfC,EAAAA,KAAK,EAAE,eAAUC,OAAV,EAAmB;AACxB,QAAMC,EAAE,GAAGV,EAAE,CAACW,KAAd;AACA,QAAMC,CAAC,GAAGF,EAAE,CAACG,YAAH,CAAgBJ,OAAhB,CAAV;AAEA,QAAIG,CAAC,CAACZ,EAAE,CAACc,EAAH,CAAMC,GAAN,CAAU,UAAV,EAAsBC,GAAvB,CAAL,EAAkC,OAAO,UAAP;AAElC,WAAO,IAAP;AACD,GAZc;AAcf;AACAC,EAAAA,MAAM,EAAE,gBAAUR,OAAV,EAAmBS,GAAnB,EAAwB;AAC9B,QAAMC,QAAQ,GAAGjB,KAAK,CAACkB,WAAN,CAAkBF,GAAlB,CAAjB;AACA,QAAMR,EAAE,GAAGV,EAAE,CAACW,KAAd;AACA,QAAMI,GAAG,GAAGf,EAAE,CAACc,EAAH,CAAMC,GAAlB;AAEAN,IAAAA,OAAO,GAAGC,EAAE,CAACW,KAAH,CAASZ,OAAT,CAAV,CAL8B,CAM9B;;AAEA,QAAMa,GAAG,GAAGJ,GAAG,CAACK,aAAJ,CAAkB,KAAlB,CAAZ;AACAD,IAAAA,GAAG,CAACE,YAAJ,CAAiB,OAAjB,EAA0B,cAA1B,EAT8B,CAW9B;;AAEA,QAAMC,OAAO,GAAGf,EAAE,CAACgB,GAAH,CAAOjB,OAAP,EAAgBT,EAAE,CAACc,EAAH,CAAMa,IAAN,CAAW,SAAX,CAAhB,CAAhB;;AACA,QAAIF,OAAJ,EAAa;AACX,UAAMG,IAAI,GAAGV,GAAG,CAACK,aAAJ,CAAkB,GAAlB,CAAb;AACAK,MAAAA,IAAI,CAACJ,YAAL,CAAkB,OAAlB,EAA2B,uCAA3B;AACAF,MAAAA,GAAG,CAACO,WAAJ,CAAgBD,IAAhB;AACAA,MAAAA,IAAI,CAACE,WAAL,GAAmBL,OAAO,CAACM,KAA3B;AACD;;AAEDT,IAAAA,GAAG,CAACO,WAAJ,CAAgBX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CAAhB;AAEA,QAAIS,KAAK,GAAGtB,EAAE,CAACuB,kBAAH,CAAsBxB,OAAtB,EAA+BM,GAAG,CAAC,SAAD,CAAlC,CAAZ;AACAI,IAAAA,QAAQ,CAACe,iBAAT,CAA2BZ,GAA3B,EAAgCU,KAAhC,EAAuC,KAAvC;AAEAV,IAAAA,GAAG,CAACO,WAAJ,CAAgBX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CAAhB;AAEAS,IAAAA,KAAK,GAAGtB,EAAE,CAACuB,kBAAH,CAAsBxB,OAAtB,EAA+BM,GAAG,CAAC,YAAD,CAAlC,CAAR;AACAI,IAAAA,QAAQ,CAACe,iBAAT,CAA2BZ,GAA3B,EAAgCU,KAAhC,EAAuC,KAAvC;AAEAV,IAAAA,GAAG,CAACO,WAAJ,CAAgBX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CAAhB;AACA,WAAOD,GAAP;AACD;AAhDc,CAAjB,C,CAmDA","sourcesContent":["/* View argument Pane\n**\n** This pane shows a position and optionally the positions which\n** support or oppose it.\n** @@ Unfinsihed.\n** Should allow editing the data too\n\n*/\n\nconst UI = require('solid-ui')\nconst panes = require('pane-registry')\n\n// console.log('@@@ argument pane icon at ' + (module.__dirname || __dirname) + '/icon_argument.png')\nmodule.exports = {\n icon: (module.__dirname || __dirname) + '/icon_argument.png', // @@ fix fro mashlib version\n\n name: 'argument',\n\n label: function (subject) {\n const kb = UI.store\n const t = kb.findTypeURIs(subject)\n\n if (t[UI.ns.arg('Position').uri]) return 'Argument'\n\n return null\n },\n\n // View the data in a file in user-friendly way\n render: function (subject, dom) {\n const outliner = panes.getOutliner(dom)\n const kb = UI.store\n const arg = UI.ns.arg\n\n subject = kb.canon(subject)\n // var types = kb.findTypeURIs(subject)\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'argumentPane')\n\n // var title = kb.any(subject, UI.ns.dc('title'))\n\n const comment = kb.any(subject, UI.ns.rdfs('comment'))\n if (comment) {\n const para = dom.createElement('p')\n para.setAttribute('style', 'margin-left: 2em; font-style: italic;')\n div.appendChild(para)\n para.textContent = comment.value\n }\n\n div.appendChild(dom.createElement('hr'))\n\n let plist = kb.statementsMatching(subject, arg('support'))\n outliner.appendPropertyTRs(div, plist, false)\n\n div.appendChild(dom.createElement('hr'))\n\n plist = kb.statementsMatching(subject, arg('opposition'))\n outliner.appendPropertyTRs(div, plist, false)\n\n div.appendChild(dom.createElement('hr'))\n return div\n }\n}\n\n// ends\n"],"file":"argumentPane.js"}
1
+ {"version":3,"sources":["../../src/argument/argumentPane.js"],"names":["module","exports","icon","__dirname","name","label","subject","kb","store","t","findTypeURIs","UI","ns","arg","uri","render","dom","outliner","panes","getOutliner","canon","div","createElement","setAttribute","comment","any","rdfs","para","appendChild","textContent","value","plist","statementsMatching","appendPropertyTRs"],"mappings":";;;;AAQA;;AACA;;AACA;;;;;;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACAA,MAAM,CAACC,OAAP,GAAiB;AACfC,EAAAA,IAAI,EAAE,CAACF,MAAM,CAACG,SAAP,IAAoBA,SAArB,IAAkC,oBADzB;AAC+C;AAE9DC,EAAAA,IAAI,EAAE,UAHS;AAKfC,EAAAA,KAAK,EAAE,eAAUC,OAAV,EAAmB;AACxB,QAAMC,EAAE,GAAGC,iBAAX;AACA,QAAMC,CAAC,GAAGF,EAAE,CAACG,YAAH,CAAgBJ,OAAhB,CAAV;AAEA,QAAIG,CAAC,CAACE,EAAE,CAACC,EAAH,CAAMC,GAAN,CAAU,UAAV,EAAsBC,GAAvB,CAAL,EAAkC,OAAO,UAAP;AAElC,WAAO,IAAP;AACD,GAZc;AAcf;AACAC,EAAAA,MAAM,EAAE,gBAAUT,OAAV,EAAmBU,GAAnB,EAAwB;AAC9B,QAAMC,QAAQ,GAAGC,KAAK,CAACC,WAAN,CAAkBH,GAAlB,CAAjB;AACA,QAAMT,EAAE,GAAGC,iBAAX;AACA,QAAMK,GAAG,GAAGF,EAAE,CAACC,EAAH,CAAMC,GAAlB;AAEAP,IAAAA,OAAO,GAAGC,EAAE,CAACa,KAAH,CAASd,OAAT,CAAV,CAL8B,CAM9B;;AAEA,QAAMe,GAAG,GAAGL,GAAG,CAACM,aAAJ,CAAkB,KAAlB,CAAZ;AACAD,IAAAA,GAAG,CAACE,YAAJ,CAAiB,OAAjB,EAA0B,cAA1B,EAT8B,CAW9B;;AAEA,QAAMC,OAAO,GAAGjB,EAAE,CAACkB,GAAH,CAAOnB,OAAP,EAAgBK,EAAE,CAACC,EAAH,CAAMc,IAAN,CAAW,SAAX,CAAhB,CAAhB;;AACA,QAAIF,OAAJ,EAAa;AACX,UAAMG,IAAI,GAAGX,GAAG,CAACM,aAAJ,CAAkB,GAAlB,CAAb;AACAK,MAAAA,IAAI,CAACJ,YAAL,CAAkB,OAAlB,EAA2B,uCAA3B;AACAF,MAAAA,GAAG,CAACO,WAAJ,CAAgBD,IAAhB;AACAA,MAAAA,IAAI,CAACE,WAAL,GAAmBL,OAAO,CAACM,KAA3B;AACD;;AAEDT,IAAAA,GAAG,CAACO,WAAJ,CAAgBZ,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB;AAEA,QAAIS,KAAK,GAAGxB,EAAE,CAACyB,kBAAH,CAAsB1B,OAAtB,EAA+BO,GAAG,CAAC,SAAD,CAAlC,CAAZ;AACAI,IAAAA,QAAQ,CAACgB,iBAAT,CAA2BZ,GAA3B,EAAgCU,KAAhC,EAAuC,KAAvC;AAEAV,IAAAA,GAAG,CAACO,WAAJ,CAAgBZ,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB;AAEAS,IAAAA,KAAK,GAAGxB,EAAE,CAACyB,kBAAH,CAAsB1B,OAAtB,EAA+BO,GAAG,CAAC,YAAD,CAAlC,CAAR;AACAI,IAAAA,QAAQ,CAACgB,iBAAT,CAA2BZ,GAA3B,EAAgCU,KAAhC,EAAuC,KAAvC;AAEAV,IAAAA,GAAG,CAACO,WAAJ,CAAgBZ,GAAG,CAACM,aAAJ,CAAkB,IAAlB,CAAhB;AACA,WAAOD,GAAP;AACD;AAhDc,CAAjB,C,CAmDA","sourcesContent":["/* View argument Pane\n**\n** This pane shows a position and optionally the positions which\n** support or oppose it.\n** @@ Unfinsihed.\n** Should allow editing the data too\n\n*/\nimport { store } from 'solid-logic'\nimport * as UI from 'solid-ui'\nimport * as panes from 'pane-registry'\n\n// console.log('@@@ argument pane icon at ' + (module.__dirname || __dirname) + '/icon_argument.png')\nmodule.exports = {\n icon: (module.__dirname || __dirname) + '/icon_argument.png', // @@ fix fro mashlib version\n\n name: 'argument',\n\n label: function (subject) {\n const kb = store\n const t = kb.findTypeURIs(subject)\n\n if (t[UI.ns.arg('Position').uri]) return 'Argument'\n\n return null\n },\n\n // View the data in a file in user-friendly way\n render: function (subject, dom) {\n const outliner = panes.getOutliner(dom)\n const kb = store\n const arg = UI.ns.arg\n\n subject = kb.canon(subject)\n // var types = kb.findTypeURIs(subject)\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'argumentPane')\n\n // var title = kb.any(subject, UI.ns.dc('title'))\n\n const comment = kb.any(subject, UI.ns.rdfs('comment'))\n if (comment) {\n const para = dom.createElement('p')\n para.setAttribute('style', 'margin-left: 2em; font-style: italic;')\n div.appendChild(para)\n para.textContent = comment.value\n }\n\n div.appendChild(dom.createElement('hr'))\n\n let plist = kb.statementsMatching(subject, arg('support'))\n outliner.appendPropertyTRs(div, plist, false)\n\n div.appendChild(dom.createElement('hr'))\n\n plist = kb.statementsMatching(subject, arg('opposition'))\n outliner.appendPropertyTRs(div, plist, false)\n\n div.appendChild(dom.createElement('hr'))\n return div\n }\n}\n\n// ends\n"],"file":"argumentPane.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"basicPreferences.d.ts","sourceRoot":"","sources":["../../src/dashboard/basicPreferences.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,oBAAoB,EAAE,cA6ElC,CAAA;AAoBD,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"basicPreferences.d.ts","sourceRoot":"","sources":["../../src/dashboard/basicPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAM9C,eAAO,MAAM,oBAAoB,EAAE,cA6ElC,CAAA;AAoBD,eAAe,oBAAoB,CAAA"}
@@ -5,19 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = exports.basicPreferencesPane = void 0;
7
7
 
8
- var _solidUi = require("solid-ui");
9
-
10
8
  var _rdflib = require("rdflib");
11
9
 
10
+ var _solidUi = require("solid-ui");
11
+
12
12
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
13
 
14
14
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
15
 
16
- /* babel-plugin-inline-import './preferencesFormText.ttl' */
17
- var preferencesFormText = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n";
18
-
19
16
  /* babel-plugin-inline-import './ontologyData.ttl' */
20
17
  var ontologyData = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label \"user\"@en, \"utilisateur\"@fr;\n rdfs:comment \"\"\"Any person who might use a Solid-based system\"\"\";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label \"new user\"@en;\n# rdfs:comment \"\"\"A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.\"\"\";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label \"power user\"@en;\n rdfs:comment \"\"\"A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.\"\"\";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label \"Developer\";\n rdfs:comment \"\"\"Any person who might use a Solid-based system,\n who has software development skills.\"\"\";\n rdfs:subClassOf solid:User.\n";
18
+
19
+ /* babel-plugin-inline-import './preferencesFormText.ttl' */
20
+ var preferencesFormText = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n";
21
21
  var basicPreferencesPane = {
22
22
  icon: _solidUi.icons.iconBase + 'noun_Sliders_341315_000000.svg',
23
23
  name: 'basicPreferences',
@@ -65,7 +65,7 @@ var basicPreferencesPane = {
65
65
  switch (_context.prev = _context.next) {
66
66
  case 0:
67
67
  _context.next = 2;
68
- return _solidUi.authn.logInLoadPreferences({
68
+ return _solidUi.login.ensureLoadedPreferences({
69
69
  dom: dom,
70
70
  div: container
71
71
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dashboard/basicPreferences.ts"],"names":["basicPreferencesPane","icon","icons","iconBase","name","label","_subject","render","subject","context","dom","store","session","complainIfBad","ok","mess","container","appendChild","widgets","errorMessageBlock","createElement","formArea","setupUserTypesSection","loadData","doc","turtle","holds","undefined","parse","uri","preferencesForm","sym","preferencesFormText","ontologyExtra","ontologyData","doRender","authn","logInLoadPreferences","div","renderContext","preferencesFile","console","log","preferencesFileError","appendedForm","appendForm","me","style","borderStyle","trustedApplicationsView","paneRegistry","byName","addDeleteSection","formContainer","createSection","description","innerText","userTypesLink","href","profile","section","podServerNodes","each","ns","space","podServers","map","node","value","list","forEach","server","generateDeletionLink","deletionLink","listItem","podServer","link","textContent","getDeletionUrlForServer","deletionUrl","singleUserUrl","URL","multiUserUrl","pathname","hostnameParts","hostname","split","slice","join","fetch","method","multiUserNssResponse","singleUserNssResponse","title","border","borderRadius","padding","marginTop","titleElement"],"mappings":"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","sourcesContent":["import { authn, icons, ns, widgets } from 'solid-ui'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\n\nimport preferencesFormText from './preferencesFormText.ttl'\nimport ontologyData from './ontologyData.ttl'\nimport { PaneDefinition } from 'pane-registry'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (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 container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await authn.logInLoadPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solid/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solid/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"file":"basicPreferences.js"}
1
+ {"version":3,"sources":["../../src/dashboard/basicPreferences.ts"],"names":["basicPreferencesPane","icon","icons","iconBase","name","label","_subject","render","subject","context","dom","store","session","complainIfBad","ok","mess","container","appendChild","widgets","errorMessageBlock","createElement","formArea","setupUserTypesSection","loadData","doc","turtle","holds","undefined","parse","uri","preferencesForm","sym","preferencesFormText","ontologyExtra","ontologyData","doRender","login","ensureLoadedPreferences","div","renderContext","preferencesFile","console","log","preferencesFileError","appendedForm","appendForm","me","style","borderStyle","trustedApplicationsView","paneRegistry","byName","addDeleteSection","formContainer","createSection","description","innerText","userTypesLink","href","profile","section","podServerNodes","each","ns","space","podServers","map","node","value","list","forEach","server","generateDeletionLink","deletionLink","listItem","podServer","link","textContent","getDeletionUrlForServer","deletionUrl","singleUserUrl","URL","multiUserUrl","pathname","hostnameParts","hostname","split","slice","join","fetch","method","multiUserNssResponse","singleUserNssResponse","title","border","borderRadius","padding","marginTop","titleElement"],"mappings":"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","sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\nimport { icons, login, ns, widgets } from 'solid-ui'\nimport ontologyData from './ontologyData.ttl'\nimport preferencesFormText from './preferencesFormText.ttl'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (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 container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await login.ensureLoadedPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solid/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solid/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"file":"basicPreferences.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardPane.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,cAqC3B,CAAA;AAuCD,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"dashboardPane.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,cAqC3B,CAAA;AAuCD,eAAe,aAAa,CAAA"}
@@ -7,6 +7,8 @@ exports["default"] = exports.dashboardPane = void 0;
7
7
 
8
8
  var _solidUi = require("solid-ui");
9
9
 
10
+ var _solidLogic = require("solid-logic");
11
+
10
12
  var _homepage = require("./homepage");
11
13
 
12
14
  var dashboardPane = {
@@ -28,15 +30,15 @@ var dashboardPane = {
28
30
 
29
31
  var runBuildPage = function runBuildPage() {
30
32
  container.innerHTML = '';
31
- buildPage(container, _solidUi.authn.currentUser() || null, context, subject);
33
+ buildPage(container, _solidLogic.authn.currentUser() || null, context, subject);
32
34
  };
33
35
 
34
- _solidUi.authn.authSession.onLogin(function () {
36
+ _solidLogic.authSession.onLogin(function () {
35
37
  // console.log('On Login')
36
38
  runBuildPage();
37
39
  });
38
40
 
39
- _solidUi.authn.authSession.onSessionRestore(function () {
41
+ _solidLogic.authSession.onSessionRestore(function () {
40
42
  // console.log('On Session Restore')
41
43
  runBuildPage();
42
44
  }); // console.log('Initial Load')
@@ -79,7 +81,7 @@ function buildHomePage(container, subject) {
79
81
  link.rel = 'stylesheet';
80
82
  link.href = '/common/css/bootstrap.min.css';
81
83
  shadow.appendChild(link);
82
- (0, _homepage.generateHomepage)(subject, _solidUi.store, _solidUi.store.fetcher).then(function (homepage) {
84
+ (0, _homepage.generateHomepage)(subject, _solidLogic.store, _solidLogic.store.fetcher).then(function (homepage) {
83
85
  return shadow.appendChild(homepage);
84
86
  });
85
87
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dashboard/dashboardPane.ts"],"names":["dashboardPane","icon","icons","iconBase","name","label","subject","console","log","uri","site","render","context","dom","container","createElement","runBuildPage","innerHTML","buildPage","authn","currentUser","authSession","onLogin","onSessionRestore","webId","URL","window","location","href","searchParams","get","buildDashboard","buildHomePage","outliner","getOutliner","getDashboard","then","dashboard","appendChild","wrapper","document","shadow","attachShadow","mode","link","rel","store","fetcher","homepage"],"mappings":";;;;;;;AAAA;;AAEA;;AAGO,IAAMA,aAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAEC,eAAMC,QAAN,GAAiB,iBADoB;AAE3CC,EAAAA,IAAI,EAAE,WAFqC;AAG3CC,EAAAA,KAAK,EAAE,eAAAC,OAAO,EAAI;AAChBC,IAAAA,OAAO,CAACC,GAAR;;AACA,QAAIF,OAAO,CAACG,GAAR,KAAgBH,OAAO,CAACI,IAAR,GAAeD,GAAnC,EAAwC;AACtC,aAAO,WAAP;AACD;;AACD,WAAO,IAAP;AACD,GAT0C;AAU3CE,EAAAA,MAAM,EAAE,gBAACL,OAAD,EAAUM,OAAV,EAAsB;AAC5BL,IAAAA,OAAO,CAACC,GAAR,CAAY,uBAAZ;AACA,QAAMK,GAAG,GAAGD,OAAO,CAACC,GAApB;AACA,QAAMC,SAAS,GAAGD,GAAG,CAACE,aAAJ,CAAkB,KAAlB,CAAlB;;AACA,QAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzBF,MAAAA,SAAS,CAACG,SAAV,GAAsB,EAAtB;AACAC,MAAAA,SAAS,CACPJ,SADO,EAEPK,eAAMC,WAAN,MAAuB,IAFhB,EAGPR,OAHO,EAIPN,OAJO,CAAT;AAMD,KARD;;AAUAa,mBAAME,WAAN,CAAkBC,OAAlB,CAA0B,YAAM;AAC9B;AACAN,MAAAA,YAAY;AACb,KAHD;;AAIAG,mBAAME,WAAN,CAAkBE,gBAAlB,CAAmC,YAAM;AACvC;AACAP,MAAAA,YAAY;AACb,KAHD,EAlB4B,CAsB5B;;;AACAA,IAAAA,YAAY;AAEZ,WAAOF,SAAP;AACD;AApC0C,CAAtC;;;AAuCP,SAASI,SAAT,CACEJ,SADF,EAEEU,KAFF,EAGEZ,OAHF,EAIEN,OAJF,EAKE;AACA;AACA,MAAMG,GAAG,GAAI,IAAIgB,GAAJ,CAAQC,MAAM,CAACC,QAAP,CAAgBC,IAAxB,CAAD,CAAgCC,YAAhC,CAA6CC,GAA7C,CAAiD,KAAjD,CAAZ;;AACA,MAAIN,KAAK,KAAKf,GAAG,IAAIe,KAAK,CAACd,IAAN,GAAaD,GAAb,KAAqBH,OAAO,CAACI,IAAR,GAAeD,GAAhD,CAAT,EAA+D;AAC7D,WAAOsB,cAAc,CAACjB,SAAD,EAAYF,OAAZ,CAArB;AACD;;AACD,SAAOoB,aAAa,CAAClB,SAAD,EAAYR,OAAZ,CAApB;AACD;;AAED,SAASyB,cAAT,CAAyBjB,SAAzB,EAAiDF,OAAjD,EAA8E;AAC5E;AACA;AACA,MAAMqB,QAAa,GAAGrB,OAAO,CAACsB,WAAR,CAAoBtB,OAAO,CAACC,GAA5B,CAAtB;AACAoB,EAAAA,QAAQ,CACLE,YADH,GAEGC,IAFH,CAEQ,UAACC,SAAD;AAAA,WAA4BvB,SAAS,CAACwB,WAAV,CAAsBD,SAAtB,CAA5B;AAAA,GAFR;AAGD;;AAED,SAASL,aAAT,CAAwBlB,SAAxB,EAAgDR,OAAhD,EAAoE;AAClE;AACA,MAAMiC,OAAO,GAAGC,QAAQ,CAACzB,aAAT,CAAuB,KAAvB,CAAhB;AACAD,EAAAA,SAAS,CAACwB,WAAV,CAAsBC,OAAtB;AACA,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAR,CAAqB;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAArB,CAAf;AACA,MAAMC,IAAI,GAAGJ,QAAQ,CAACzB,aAAT,CAAuB,MAAvB,CAAb;AACA6B,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;AACAD,EAAAA,IAAI,CAAChB,IAAL,GAAY,+BAAZ;AACAa,EAAAA,MAAM,CAACH,WAAP,CAAmBM,IAAnB;AACA,kCAAiBtC,OAAjB,EAA0BwC,cAA1B,EAAiCA,eAAMC,OAAvC,EAA2DX,IAA3D,CAAgE,UAAAY,QAAQ;AAAA,WACtEP,MAAM,CAACH,WAAP,CAAmBU,QAAnB,CADsE;AAAA,GAAxE;AAGD;;eAEchD,a","sourcesContent":["import { authn, icons, store } from 'solid-ui'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n console.log()\n if (subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authn.authSession.onLogin(() => {\n // console.log('On Login')\n runBuildPage()\n })\n authn.authSession.onSessionRestore(() => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode\n) {\n // if uri then SolidOS is a browse.html web app\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n if (webId && (uri || webId.site().uri === subject.site().uri)) {\n return buildDashboard(container, context)\n }\n return buildHomePage(container, subject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"file":"dashboardPane.js"}
1
+ {"version":3,"sources":["../../src/dashboard/dashboardPane.ts"],"names":["dashboardPane","icon","icons","iconBase","name","label","subject","console","log","uri","site","render","context","dom","container","createElement","runBuildPage","innerHTML","buildPage","authn","currentUser","authSession","onLogin","onSessionRestore","webId","URL","window","location","href","searchParams","get","buildDashboard","buildHomePage","outliner","getOutliner","getDashboard","then","dashboard","appendChild","wrapper","document","shadow","attachShadow","mode","link","rel","store","fetcher","homepage"],"mappings":"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","sourcesContent":["import { icons } from 'solid-ui'\nimport { authn, authSession, store } from 'solid-logic'\nimport { Fetcher, NamedNode } from 'rdflib'\nimport { generateHomepage } from './homepage'\nimport { DataBrowserContext, PaneDefinition } from 'pane-registry'\n\nexport const dashboardPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_547570.svg',\n name: 'dashboard',\n label: subject => {\n console.log()\n if (subject.uri === subject.site().uri) {\n return 'Dashboard'\n }\n return null\n },\n render: (subject, context) => {\n console.log('Dashboard Pane Render')\n const dom = context.dom\n const container = dom.createElement('div')\n const runBuildPage = () => {\n container.innerHTML = ''\n buildPage(\n container,\n authn.currentUser() || null,\n context,\n subject\n )\n }\n\n authSession.onLogin(() => {\n // console.log('On Login')\n runBuildPage()\n })\n authSession.onSessionRestore(() => {\n // console.log('On Session Restore')\n runBuildPage()\n })\n // console.log('Initial Load')\n runBuildPage()\n\n return container\n }\n}\n\nfunction buildPage (\n container: HTMLElement,\n webId: NamedNode | null,\n context: DataBrowserContext,\n subject: NamedNode\n) {\n // if uri then SolidOS is a browse.html web app\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n if (webId && (uri || webId.site().uri === subject.site().uri)) {\n return buildDashboard(container, context)\n }\n return buildHomePage(container, subject)\n}\n\nfunction buildDashboard (container: HTMLElement, context: DataBrowserContext) {\n // console.log('build dashboard')\n // @@ TODO get a proper type\n const outliner: any = context.getOutliner(context.dom)\n outliner\n .getDashboard()\n .then((dashboard: HTMLElement) => container.appendChild(dashboard))\n}\n\nfunction buildHomePage (container: HTMLElement, subject: NamedNode) {\n // console.log('build home page')\n const wrapper = document.createElement('div')\n container.appendChild(wrapper)\n const shadow = wrapper.attachShadow({ mode: 'open' })\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = '/common/css/bootstrap.min.css'\n shadow.appendChild(link)\n generateHomepage(subject, store, store.fetcher as Fetcher).then(homepage =>\n shadow.appendChild(homepage)\n )\n}\n\nexport default dashboardPane\n"],"file":"dashboardPane.js"}
@@ -30,7 +30,7 @@ module.exports = {
30
30
 
31
31
  /*
32
32
  shouldGetFocus: function(subject) {
33
- return UI.store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))
33
+ return store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))
34
34
  },
35
35
  */
36
36
  statementsAsTables: function statementsAsTables(sts, context, initialRoots) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dataContentPane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","session","store","findTypeURIs","n","statementsMatching","undefined","length","statementsAsTables","sts","initialRoots","myDocument","dom","rep","createElement","sz","rdf","Serializer","res","rootSubjects","roots","subjects","loopBreakers","x","console","log","doneBnodes","referencedBnodes","propertyTree","lastPred","toStr","appendChild","createTextNode","sort","same","predicateTD","i","st","tr","predicate","uri","setAttribute","anchor","addEventListener","widgets","openHrefInOutlineMode","utils","predicateLabelForXML","objectTD","objectTree","object","obj","termType","datatype","textContent","value","innerHTML","toNT","slice","newTable","ancestor","style","backgroundColor","elements","paneRegistry","byName","statements","Error","concat","filter","sameTerm","subjectTD","TDTree","root","bNT","table","insertBefore","firstChild","render","alternativeRendering","p","s2","div","plist","kb","outliner","appendPropertyTRs","_pred","_inverse","verticalAlign","td","outlineObjectTD","outlineExpand","pane","mainRendering","holds","push","ps","any","foaf","getOutliner","keepThisCodeForLaterButDisableFerossConstantConditionPolice"],"mappings":"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","sourcesContent":["/* Data content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource.\n */\n\n// To do: - Only take data from one graph\n// - Only do forwards not backward?\n// - Expand automatically all the way down\n// - original source view? Use ffox view source\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'rdf_flyer.24.gif',\n\n name: 'dataContents',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n context.session.store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = context.session.store.statementsMatching(\n undefined,\n undefined,\n undefined,\n subject\n ).length\n if (n === 0) return null\n return 'Data (' + n + ')'\n },\n /*\n shouldGetFocus: function(subject) {\n return UI.store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))\n },\n*/\n statementsAsTables: function statementsAsTables (sts, context, initialRoots) {\n const myDocument = context.dom\n // const outliner = context.getOutliner(myDocument)\n const rep = myDocument.createElement('table')\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n let roots = res.roots\n const subjects = res.subjects\n const loopBreakers = res.loopBreakers\n for (const x in loopBreakers) {\n console.log('\\tdataContentPane: loopbreaker:' + x)\n }\n const doneBnodes = {} // For preventing looping\n const referencedBnodes = {} // Bnodes which need to be named alas\n\n // The property tree for a single subject or anonymous node\n function propertyTree (subject) {\n // print('Proprty tree for '+subject)\n const rep = myDocument.createElement('table')\n let lastPred = null\n const sts = subjects[sz.toStr(subject)] // relevant statements\n if (!sts) {\n // No statements in tree\n rep.appendChild(myDocument.createTextNode('...')) // just empty bnode as object\n return rep\n }\n sts.sort()\n let same = 0\n let predicateTD // The cell which holds the predicate\n for (let i = 0; i < sts.length; i++) {\n const st = sts[i]\n const tr = myDocument.createElement('tr')\n if (st.predicate.uri !== lastPred) {\n if (lastPred && same > 1) {\n predicateTD.setAttribute('rowspan', '' + same)\n }\n predicateTD = myDocument.createElement('td')\n predicateTD.setAttribute('class', 'pred')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', st.predicate.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(\n myDocument.createTextNode(\n UI.utils.predicateLabelForXML(st.predicate)\n )\n )\n predicateTD.appendChild(anchor)\n tr.appendChild(predicateTD)\n lastPred = st.predicate.uri\n same = 0\n }\n same++\n const objectTD = myDocument.createElement('td')\n objectTD.appendChild(objectTree(st.object))\n tr.appendChild(objectTD)\n rep.appendChild(tr)\n }\n if (lastPred && same > 1) predicateTD.setAttribute('rowspan', '' + same)\n return rep\n }\n\n // Convert a set of statements into a nested tree of tables\n function objectTree (obj) {\n let res, anchor\n switch (obj.termType) {\n case 'NamedNode':\n anchor = myDocument.createElement('a')\n anchor.setAttribute('href', obj.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(myDocument.createTextNode(UI.utils.label(obj)))\n return anchor\n\n case 'Literal':\n if (!obj.datatype || !obj.datatype.uri) {\n res = myDocument.createElement('div')\n res.setAttribute('style', 'white-space: pre-wrap;')\n res.textContent = obj.value\n return res\n } else if (\n obj.datatype.uri ===\n 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral'\n ) {\n res = myDocument.createElement('div')\n res.setAttribute('class', 'embeddedXHTML')\n res.innerHTML = obj.value // Try that @@@ beware embedded dangerous code\n return res\n }\n return myDocument.createTextNode(obj.value) // placeholder - could be smarter,\n\n case 'BlankNode': {\n if (obj.toNT() in doneBnodes) {\n // Break infinite recursion\n referencedBnodes[obj.toNT()] = true\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', '#' + obj.toNT().slice(2))\n anchor.setAttribute('class', 'bnodeRef')\n anchor.textContent = '*' + obj.toNT().slice(3)\n return anchor\n }\n doneBnodes[obj.toNT()] = true // Flag to prevent infinite recursion in propertyTree\n const newTable = propertyTree(obj)\n doneBnodes[obj.toNT()] = newTable // Track where we mentioned it first\n if (\n UI.utils.ancestor(newTable, 'TABLE') &&\n UI.utils.ancestor(newTable, 'TABLE').style.backgroundColor ===\n 'white'\n ) {\n newTable.style.backgroundColor = '#eee'\n } else {\n newTable.style.backgroundColor = 'white'\n }\n return newTable\n }\n case 'Collection':\n res = myDocument.createElement('table')\n res.setAttribute('class', 'collectionAsTables')\n for (let i = 0; i < obj.elements.length; i++) {\n const tr = myDocument.createElement('tr')\n res.appendChild(tr)\n tr.appendChild(objectTree(obj.elements[i]))\n }\n return res\n case 'Graph':\n res = context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(obj.statements, context)\n res.setAttribute('class', 'nestedFormula')\n return res\n case 'Variable':\n res = myDocument.createTextNode('?' + obj.uri)\n return res\n }\n throw new Error('Unhandled node type: ' + obj.termType)\n }\n\n // roots.sort()\n\n if (initialRoots) {\n roots = initialRoots.concat(\n roots.filter(function (x) {\n for (let i = 0; i < initialRoots.length; i++) {\n // Max 2\n if (x.sameTerm(initialRoots[i])) return false\n }\n return true\n })\n )\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('tr')\n rep.appendChild(tr)\n const subjectTD = myDocument.createElement('td')\n tr.appendChild(subjectTD)\n const TDTree = myDocument.createElement('td')\n tr.appendChild(TDTree)\n const root = roots[i]\n if (root.termType === 'BlankNode') {\n subjectTD.appendChild(myDocument.createTextNode(UI.utils.label(root))) // Don't recurse!\n } else {\n subjectTD.appendChild(objectTree(root)) // won't have tree\n }\n TDTree.appendChild(propertyTree(root))\n }\n for (const bNT in referencedBnodes) {\n // Add number to refer to\n const table = doneBnodes[bNT]\n // let tr = myDocument.createElement('tr')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('id', bNT.slice(2))\n anchor.setAttribute('class', 'bnodeDef')\n anchor.textContent = bNT.slice(3) + ')'\n table.insertBefore(anchor, table.firstChild)\n }\n return rep\n }, // statementsAsTables\n // View the data in a file in user-friendly way\n render: function (subject, context) {\n const myDocument = context.dom\n\n function alternativeRendering () {\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n const roots = res.roots\n const p = {}\n p.render = function (s2) {\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'withinDocumentPane')\n const plist = kb.statementsMatching(s2, undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, false, function (\n _pred,\n _inverse\n ) {\n return true\n })\n return div\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('TR')\n const root = roots[i]\n tr.style.verticalAlign = 'top'\n const td = outliner.outlineObjectTD(root, undefined, tr)\n tr.appendChild(td)\n div.appendChild(tr)\n outliner.outlineExpand(td, root, { pane: p })\n }\n }\n\n function mainRendering () {\n const initialRoots = [] // Ordering: start with stuff about this doc\n if (kb.holds(subject, undefined, undefined, subject)) {\n initialRoots.push(subject)\n }\n // Then about the primary topic of the document if any\n const ps = kb.any(subject, UI.ns.foaf('primaryTopic'), undefined, subject)\n if (ps) initialRoots.push(ps)\n div.appendChild(\n context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(sts, context, initialRoots)\n )\n }\n\n const outliner = context.getOutliner(myDocument)\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'dataContentPane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n\n if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n alternativeRendering()\n } else {\n mainRendering()\n }\n return div\n }\n}\n"],"file":"dataContentPane.js"}
1
+ {"version":3,"sources":["../src/dataContentPane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","session","store","findTypeURIs","n","statementsMatching","undefined","length","statementsAsTables","sts","initialRoots","myDocument","dom","rep","createElement","sz","rdf","Serializer","res","rootSubjects","roots","subjects","loopBreakers","x","console","log","doneBnodes","referencedBnodes","propertyTree","lastPred","toStr","appendChild","createTextNode","sort","same","predicateTD","i","st","tr","predicate","uri","setAttribute","anchor","addEventListener","widgets","openHrefInOutlineMode","utils","predicateLabelForXML","objectTD","objectTree","object","obj","termType","datatype","textContent","value","innerHTML","toNT","slice","newTable","ancestor","style","backgroundColor","elements","paneRegistry","byName","statements","Error","concat","filter","sameTerm","subjectTD","TDTree","root","bNT","table","insertBefore","firstChild","render","alternativeRendering","p","s2","div","plist","kb","outliner","appendPropertyTRs","_pred","_inverse","verticalAlign","td","outlineObjectTD","outlineExpand","pane","mainRendering","holds","push","ps","any","foaf","getOutliner","keepThisCodeForLaterButDisableFerossConstantConditionPolice"],"mappings":"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","sourcesContent":["/* Data content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource.\n */\n\n// To do: - Only take data from one graph\n// - Only do forwards not backward?\n// - Expand automatically all the way down\n// - original source view? Use ffox view source\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'rdf_flyer.24.gif',\n\n name: 'dataContents',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n context.session.store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = context.session.store.statementsMatching(\n undefined,\n undefined,\n undefined,\n subject\n ).length\n if (n === 0) return null\n return 'Data (' + n + ')'\n },\n /*\n shouldGetFocus: function(subject) {\n return store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))\n },\n*/\n statementsAsTables: function statementsAsTables (sts, context, initialRoots) {\n const myDocument = context.dom\n // const outliner = context.getOutliner(myDocument)\n const rep = myDocument.createElement('table')\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n let roots = res.roots\n const subjects = res.subjects\n const loopBreakers = res.loopBreakers\n for (const x in loopBreakers) {\n console.log('\\tdataContentPane: loopbreaker:' + x)\n }\n const doneBnodes = {} // For preventing looping\n const referencedBnodes = {} // Bnodes which need to be named alas\n\n // The property tree for a single subject or anonymous node\n function propertyTree (subject) {\n // print('Proprty tree for '+subject)\n const rep = myDocument.createElement('table')\n let lastPred = null\n const sts = subjects[sz.toStr(subject)] // relevant statements\n if (!sts) {\n // No statements in tree\n rep.appendChild(myDocument.createTextNode('...')) // just empty bnode as object\n return rep\n }\n sts.sort()\n let same = 0\n let predicateTD // The cell which holds the predicate\n for (let i = 0; i < sts.length; i++) {\n const st = sts[i]\n const tr = myDocument.createElement('tr')\n if (st.predicate.uri !== lastPred) {\n if (lastPred && same > 1) {\n predicateTD.setAttribute('rowspan', '' + same)\n }\n predicateTD = myDocument.createElement('td')\n predicateTD.setAttribute('class', 'pred')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', st.predicate.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(\n myDocument.createTextNode(\n UI.utils.predicateLabelForXML(st.predicate)\n )\n )\n predicateTD.appendChild(anchor)\n tr.appendChild(predicateTD)\n lastPred = st.predicate.uri\n same = 0\n }\n same++\n const objectTD = myDocument.createElement('td')\n objectTD.appendChild(objectTree(st.object))\n tr.appendChild(objectTD)\n rep.appendChild(tr)\n }\n if (lastPred && same > 1) predicateTD.setAttribute('rowspan', '' + same)\n return rep\n }\n\n // Convert a set of statements into a nested tree of tables\n function objectTree (obj) {\n let res, anchor\n switch (obj.termType) {\n case 'NamedNode':\n anchor = myDocument.createElement('a')\n anchor.setAttribute('href', obj.uri)\n anchor.addEventListener(\n 'click',\n UI.widgets.openHrefInOutlineMode,\n true\n )\n anchor.appendChild(myDocument.createTextNode(UI.utils.label(obj)))\n return anchor\n\n case 'Literal':\n if (!obj.datatype || !obj.datatype.uri) {\n res = myDocument.createElement('div')\n res.setAttribute('style', 'white-space: pre-wrap;')\n res.textContent = obj.value\n return res\n } else if (\n obj.datatype.uri ===\n 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral'\n ) {\n res = myDocument.createElement('div')\n res.setAttribute('class', 'embeddedXHTML')\n res.innerHTML = obj.value // Try that @@@ beware embedded dangerous code\n return res\n }\n return myDocument.createTextNode(obj.value) // placeholder - could be smarter,\n\n case 'BlankNode': {\n if (obj.toNT() in doneBnodes) {\n // Break infinite recursion\n referencedBnodes[obj.toNT()] = true\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('href', '#' + obj.toNT().slice(2))\n anchor.setAttribute('class', 'bnodeRef')\n anchor.textContent = '*' + obj.toNT().slice(3)\n return anchor\n }\n doneBnodes[obj.toNT()] = true // Flag to prevent infinite recursion in propertyTree\n const newTable = propertyTree(obj)\n doneBnodes[obj.toNT()] = newTable // Track where we mentioned it first\n if (\n UI.utils.ancestor(newTable, 'TABLE') &&\n UI.utils.ancestor(newTable, 'TABLE').style.backgroundColor ===\n 'white'\n ) {\n newTable.style.backgroundColor = '#eee'\n } else {\n newTable.style.backgroundColor = 'white'\n }\n return newTable\n }\n case 'Collection':\n res = myDocument.createElement('table')\n res.setAttribute('class', 'collectionAsTables')\n for (let i = 0; i < obj.elements.length; i++) {\n const tr = myDocument.createElement('tr')\n res.appendChild(tr)\n tr.appendChild(objectTree(obj.elements[i]))\n }\n return res\n case 'Graph':\n res = context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(obj.statements, context)\n res.setAttribute('class', 'nestedFormula')\n return res\n case 'Variable':\n res = myDocument.createTextNode('?' + obj.uri)\n return res\n }\n throw new Error('Unhandled node type: ' + obj.termType)\n }\n\n // roots.sort()\n\n if (initialRoots) {\n roots = initialRoots.concat(\n roots.filter(function (x) {\n for (let i = 0; i < initialRoots.length; i++) {\n // Max 2\n if (x.sameTerm(initialRoots[i])) return false\n }\n return true\n })\n )\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('tr')\n rep.appendChild(tr)\n const subjectTD = myDocument.createElement('td')\n tr.appendChild(subjectTD)\n const TDTree = myDocument.createElement('td')\n tr.appendChild(TDTree)\n const root = roots[i]\n if (root.termType === 'BlankNode') {\n subjectTD.appendChild(myDocument.createTextNode(UI.utils.label(root))) // Don't recurse!\n } else {\n subjectTD.appendChild(objectTree(root)) // won't have tree\n }\n TDTree.appendChild(propertyTree(root))\n }\n for (const bNT in referencedBnodes) {\n // Add number to refer to\n const table = doneBnodes[bNT]\n // let tr = myDocument.createElement('tr')\n const anchor = myDocument.createElement('a')\n anchor.setAttribute('id', bNT.slice(2))\n anchor.setAttribute('class', 'bnodeDef')\n anchor.textContent = bNT.slice(3) + ')'\n table.insertBefore(anchor, table.firstChild)\n }\n return rep\n }, // statementsAsTables\n // View the data in a file in user-friendly way\n render: function (subject, context) {\n const myDocument = context.dom\n\n function alternativeRendering () {\n const sz = UI.rdf.Serializer(context.session.store)\n const res = sz.rootSubjects(sts)\n const roots = res.roots\n const p = {}\n p.render = function (s2) {\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'withinDocumentPane')\n const plist = kb.statementsMatching(s2, undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, false, function (\n _pred,\n _inverse\n ) {\n return true\n })\n return div\n }\n for (let i = 0; i < roots.length; i++) {\n const tr = myDocument.createElement('TR')\n const root = roots[i]\n tr.style.verticalAlign = 'top'\n const td = outliner.outlineObjectTD(root, undefined, tr)\n tr.appendChild(td)\n div.appendChild(tr)\n outliner.outlineExpand(td, root, { pane: p })\n }\n }\n\n function mainRendering () {\n const initialRoots = [] // Ordering: start with stuff about this doc\n if (kb.holds(subject, undefined, undefined, subject)) {\n initialRoots.push(subject)\n }\n // Then about the primary topic of the document if any\n const ps = kb.any(subject, UI.ns.foaf('primaryTopic'), undefined, subject)\n if (ps) initialRoots.push(ps)\n div.appendChild(\n context.session.paneRegistry\n .byName('dataContents')\n .statementsAsTables(sts, context, initialRoots)\n )\n }\n\n const outliner = context.getOutliner(myDocument)\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'dataContentPane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n\n if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n alternativeRendering()\n } else {\n mainRendering()\n }\n return div\n }\n}\n"],"file":"dataContentPane.js"}
package/lib/form/pane.js CHANGED
@@ -1,13 +1,21 @@
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
+ var $rdf = _interopRequireWildcard(require("rdflib"));
10
+
11
+ 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); }
12
+
13
+ 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; }
14
+
3
15
  /*
4
16
  ** Pane for running existing forms for any object
5
17
  **
6
18
  */
7
- var UI = require('solid-ui');
8
-
9
- var $rdf = require('rdflib');
10
-
11
19
  var ns = UI.ns;
12
20
  module.exports = {
13
21
  icon: UI.icons.iconBase + 'noun_122196.svg',
@@ -45,7 +53,8 @@ module.exports = {
45
53
  // const t = kb.findTypeURIs(subject)
46
54
 
47
55
 
48
- var me = UI.authn.currentUser();
56
+ var me = _solidLogic.authn.currentUser();
57
+
49
58
  var box = dom.createElement('div');
50
59
  box.setAttribute('class', 'formPane');
51
60
 
@@ -163,7 +172,7 @@ module.exports = {
163
172
  renderFormsFor(store, subject);
164
173
  } else {
165
174
  complain('No suitable store is known, to edit <' + subject.uri + '>.');
166
- var foobarbaz = UI.authn.selectWorkspace(dom, function (ws) {
175
+ var foobarbaz = UI.login.selectWorkspace(dom, function (ws) {
167
176
  mention('Workspace selected OK: ' + ws);
168
177
  var activities = store.each(undefined, ns.space('workspace'), ws);
169
178
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/pane.js"],"names":["UI","require","$rdf","ns","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","n","widgets","formsFor","length","log","debug","render","context","kb","session","store","dom","mention","complain","message","style","pre","createElement","setAttribute","box","appendChild","textContent","complainIfBad","ok","body","me","authn","currentUser","ws","each","ui","renderFormsFor","fetcher","nowOrWhenFetched","uri","forms","i","form","heading","formStore","Util","document","e","editFormButton","anchor","utils","appendForm","docuri","docpart","updater","editable","doc","any","sym","link","docs","docList","statementsMatching","forEach","st","why","undefined","d","push","sort","_followeach","path","oo","res","concat","slice","date","foobarbaz","selectWorkspace","activities","space","j","act","subjectDoc2","start","cal","value","end"],"mappings":"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","sourcesContent":["/*\n ** Pane for running existing forms for any object\n **\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_122196.svg',\n\n name: 'form',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject) {\n const n = UI.widgets.formsFor(subject).length\n UI.log.debug('Form pane: forms for ' + subject + ': ' + n)\n if (!n) return null\n return '' + n + ' forms'\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd;')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // The question of where to store this data about subject\n // This in general needs a whole lot more thought\n // and it connects to the discoverbility through links\n\n // const t = kb.findTypeURIs(subject)\n\n const me = UI.authn.currentUser()\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane')\n\n if (!me) {\n mention(\n 'You are not logged in. If you log in and have ' +\n 'workspaces then you would be able to select workspace in which ' +\n 'to put this new information'\n )\n } else {\n const ws = kb.each(me, ns.ui('workspace'))\n if (ws.length === 0) {\n mention(\n \"You don't seem to have any workspaces defined. \" +\n 'A workspace is a place on the web (http://..) or in ' +\n 'the file system (file:///) to store application data.\\n'\n )\n } else {\n // @@\n }\n }\n\n // Render forms using a given store\n\n const renderFormsFor = function (store, subject) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) return complain('Cannot load store ' + store.uri + ': ' + body)\n\n // Render the forms\n\n const forms = UI.widgets.formsFor(subject)\n\n // complain('Form for editing this form:');\n for (let i = 0; i < forms.length; i++) {\n const form = forms[i]\n const heading = dom.createElement('h4')\n box.appendChild(heading)\n if (form.uri) {\n const formStore = $rdf.Util.uri.document(form.uri)\n if (formStore.uri !== form.uri) {\n // The form is a hash-type URI\n const e = box.appendChild(\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formStore,\n complainIfBad\n )\n )\n e.setAttribute('style', 'float: right;')\n }\n }\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', form.uri)\n heading.appendChild(anchor)\n anchor.textContent = UI.utils.label(form, true)\n\n /* Keep tis as a reminder to let a New one have its URI given by user\n mention(\"Where will this information be stored?\")\n const ele = dom.createElement('input');\n box.appendChild(ele);\n ele.setAttribute('type', 'text');\n ele.setAttribute('size', '72');\n ele.setAttribute('maxlength', '1024');\n ele.setAttribute('style', 'font-size: 80%; color:#222;');\n ele.value = store.uri\n */\n\n UI.widgets.appendForm(\n dom,\n box,\n {},\n subject,\n form,\n store,\n complainIfBad\n )\n }\n }) // end: when store loded\n } // renderFormsFor\n\n // Figure out what store\n\n // Which places are editable and have stuff about the subject?\n\n let store = null\n\n // 1. The document URI of the subject itself\n const docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri, kb)) {\n store = subject.doc()\n } // an editable data file with hash\n\n store = store || kb.any(kb.sym(docuri), ns.link('annotationStore'))\n\n // 2. where stuff is already stored\n if (!store) {\n const docs = {}\n const docList = []\n store.statementsMatching(subject).forEach(function (st) {\n docs[st.why.uri] = 1\n })\n store\n .statementsMatching(undefined, undefined, subject)\n .forEach(function (st) {\n docs[st.why.uri] = 2\n })\n for (const d in docs) docList.push(docs[d], d)\n docList.sort()\n for (let i = 0; i < docList.length; i++) {\n const uri = docList[i][1]\n if (uri && store.updater.editable(uri)) {\n store = store.sym(uri)\n break\n }\n }\n }\n\n // 3. In a workspace store\n // @@ TODO: Can probably remove _followeach (not done this time because the commit is a very safe refactor)\n const _followeach = function (kb, subject, path) {\n if (path.length === 0) return [subject]\n const oo = kb.each(subject, path[0])\n let res = []\n for (let i = 0; i < oo.length; i++) {\n res = res.concat(_followeach(kb, oo[i], path.slice(1)))\n }\n return res\n }\n\n const date = '2014' // @@@@@@@@@@@@ pass as parameter\n\n if (store) {\n // mention(\"@@ Ok, we have a store <\" + store.uri + \">.\");\n renderFormsFor(store, subject)\n } else {\n complain('No suitable store is known, to edit <' + subject.uri + '>.')\n const foobarbaz = UI.authn.selectWorkspace(dom, function (ws) {\n mention('Workspace selected OK: ' + ws)\n\n const activities = store.each(undefined, ns.space('workspace'), ws)\n for (let j = 0; j < activities.length; j++) {\n const act = activities[j]\n\n const subjectDoc2 = store.any(ws, ns.space('store'))\n const start = store.any(ws, ns.cal('dtstart')).value()\n const end = store.any(ws, ns.cal('dtend')).value()\n if (subjectDoc2 && start && end && start <= date && end > date) {\n renderFormsFor(subjectDoc2, subject)\n break\n } else {\n complain('Note no suitable annotation store in activity: ' + act)\n }\n }\n })\n box.appendChild(foobarbaz)\n }\n\n return box\n }\n}\n"],"file":"pane.js"}
1
+ {"version":3,"sources":["../../src/form/pane.js"],"names":["ns","UI","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","n","widgets","formsFor","length","log","debug","render","context","kb","session","store","dom","mention","complain","message","style","pre","createElement","setAttribute","box","appendChild","textContent","complainIfBad","ok","body","me","authn","currentUser","ws","each","ui","renderFormsFor","fetcher","nowOrWhenFetched","uri","forms","i","form","heading","formStore","$rdf","Util","document","e","editFormButton","anchor","utils","appendForm","docuri","docpart","updater","editable","doc","any","sym","link","docs","docList","statementsMatching","forEach","st","why","undefined","d","push","sort","_followeach","path","oo","res","concat","slice","date","foobarbaz","login","selectWorkspace","activities","space","j","act","subjectDoc2","start","cal","value","end"],"mappings":"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","sourcesContent":["/*\n ** Pane for running existing forms for any object\n **\n */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_122196.svg',\n\n name: 'form',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject) {\n const n = UI.widgets.formsFor(subject).length\n UI.log.debug('Form pane: forms for ' + subject + ': ' + n)\n if (!n) return null\n return '' + n + ' forms'\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd;')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // The question of where to store this data about subject\n // This in general needs a whole lot more thought\n // and it connects to the discoverbility through links\n\n // const t = kb.findTypeURIs(subject)\n\n const me = authn.currentUser()\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane')\n\n if (!me) {\n mention(\n 'You are not logged in. If you log in and have ' +\n 'workspaces then you would be able to select workspace in which ' +\n 'to put this new information'\n )\n } else {\n const ws = kb.each(me, ns.ui('workspace'))\n if (ws.length === 0) {\n mention(\n \"You don't seem to have any workspaces defined. \" +\n 'A workspace is a place on the web (http://..) or in ' +\n 'the file system (file:///) to store application data.\\n'\n )\n } else {\n // @@\n }\n }\n\n // Render forms using a given store\n\n const renderFormsFor = function (store, subject) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) return complain('Cannot load store ' + store.uri + ': ' + body)\n\n // Render the forms\n\n const forms = UI.widgets.formsFor(subject)\n\n // complain('Form for editing this form:');\n for (let i = 0; i < forms.length; i++) {\n const form = forms[i]\n const heading = dom.createElement('h4')\n box.appendChild(heading)\n if (form.uri) {\n const formStore = $rdf.Util.uri.document(form.uri)\n if (formStore.uri !== form.uri) {\n // The form is a hash-type URI\n const e = box.appendChild(\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formStore,\n complainIfBad\n )\n )\n e.setAttribute('style', 'float: right;')\n }\n }\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', form.uri)\n heading.appendChild(anchor)\n anchor.textContent = UI.utils.label(form, true)\n\n /* Keep tis as a reminder to let a New one have its URI given by user\n mention(\"Where will this information be stored?\")\n const ele = dom.createElement('input');\n box.appendChild(ele);\n ele.setAttribute('type', 'text');\n ele.setAttribute('size', '72');\n ele.setAttribute('maxlength', '1024');\n ele.setAttribute('style', 'font-size: 80%; color:#222;');\n ele.value = store.uri\n */\n\n UI.widgets.appendForm(\n dom,\n box,\n {},\n subject,\n form,\n store,\n complainIfBad\n )\n }\n }) // end: when store loded\n } // renderFormsFor\n\n // Figure out what store\n\n // Which places are editable and have stuff about the subject?\n\n let store = null\n\n // 1. The document URI of the subject itself\n const docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri, kb)) {\n store = subject.doc()\n } // an editable data file with hash\n\n store = store || kb.any(kb.sym(docuri), ns.link('annotationStore'))\n\n // 2. where stuff is already stored\n if (!store) {\n const docs = {}\n const docList = []\n store.statementsMatching(subject).forEach(function (st) {\n docs[st.why.uri] = 1\n })\n store\n .statementsMatching(undefined, undefined, subject)\n .forEach(function (st) {\n docs[st.why.uri] = 2\n })\n for (const d in docs) docList.push(docs[d], d)\n docList.sort()\n for (let i = 0; i < docList.length; i++) {\n const uri = docList[i][1]\n if (uri && store.updater.editable(uri)) {\n store = store.sym(uri)\n break\n }\n }\n }\n\n // 3. In a workspace store\n // @@ TODO: Can probably remove _followeach (not done this time because the commit is a very safe refactor)\n const _followeach = function (kb, subject, path) {\n if (path.length === 0) return [subject]\n const oo = kb.each(subject, path[0])\n let res = []\n for (let i = 0; i < oo.length; i++) {\n res = res.concat(_followeach(kb, oo[i], path.slice(1)))\n }\n return res\n }\n\n const date = '2014' // @@@@@@@@@@@@ pass as parameter\n\n if (store) {\n // mention(\"@@ Ok, we have a store <\" + store.uri + \">.\");\n renderFormsFor(store, subject)\n } else {\n complain('No suitable store is known, to edit <' + subject.uri + '>.')\n const foobarbaz = UI.login.selectWorkspace(dom, function (ws) {\n mention('Workspace selected OK: ' + ws)\n\n const activities = store.each(undefined, ns.space('workspace'), ws)\n for (let j = 0; j < activities.length; j++) {\n const act = activities[j]\n\n const subjectDoc2 = store.any(ws, ns.space('store'))\n const start = store.any(ws, ns.cal('dtstart')).value()\n const end = store.any(ws, ns.cal('dtend')).value()\n if (subjectDoc2 && start && end && start <= date && end > date) {\n renderFormsFor(subjectDoc2, subject)\n break\n } else {\n complain('Note no suitable annotation store in activity: ' + act)\n }\n }\n })\n box.appendChild(foobarbaz)\n }\n\n return box\n }\n}\n"],"file":"pane.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"homePane.d.ts","sourceRoot":"","sources":["../../src/home/homePane.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,QAAA,MAAM,cAAc,EAAE,cAiErB,CAAA;AAGD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"homePane.d.ts","sourceRoot":"","sources":["../../src/home/homePane.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAM9C,QAAA,MAAM,cAAc,EAAE,cAiErB,CAAA;AAGD,eAAe,cAAc,CAAA"}