solid-panes 3.5.28-alpha → 3.5.29-alpha

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 (119) hide show
  1. package/README.md +0 -2
  2. package/lib/RDFXMLPane.js +6 -8
  3. package/lib/RDFXMLPane.js.map +1 -1
  4. package/lib/argument/argumentPane.js +10 -11
  5. package/lib/argument/argumentPane.js.map +1 -1
  6. package/lib/attach/attachPane.js +47 -85
  7. package/lib/attach/attachPane.js.map +1 -1
  8. package/lib/audio/audioPane.js +11 -36
  9. package/lib/audio/audioPane.js.map +1 -1
  10. package/lib/classInstancePane.js +11 -20
  11. package/lib/classInstancePane.js.map +1 -1
  12. package/lib/dashboard/basicPreferences.js +3 -53
  13. package/lib/dashboard/basicPreferences.js.map +1 -1
  14. package/lib/dashboard/dashboardPane.js +2 -18
  15. package/lib/dashboard/dashboardPane.js.map +1 -1
  16. package/lib/dashboard/homepage.js +1 -19
  17. package/lib/dashboard/homepage.js.map +1 -1
  18. package/lib/dataContentPane.js +15 -58
  19. package/lib/dataContentPane.js.map +1 -1
  20. package/lib/defaultPane.js +13 -21
  21. package/lib/defaultPane.js.map +1 -1
  22. package/lib/dokieli/dokieliPane.js +19 -28
  23. package/lib/dokieli/dokieliPane.js.map +1 -1
  24. package/lib/dokieli/new.js.map +1 -1
  25. package/lib/form/pane.js +26 -40
  26. package/lib/form/pane.js.map +1 -1
  27. package/lib/home/homePane.js +7 -23
  28. package/lib/home/homePane.js.map +1 -1
  29. package/lib/humanReadablePane.js +14 -28
  30. package/lib/humanReadablePane.js.map +1 -1
  31. package/lib/imagePane.js +9 -13
  32. package/lib/imagePane.js.map +1 -1
  33. package/lib/index.js +4 -18
  34. package/lib/index.js.map +1 -1
  35. package/lib/internal/internalPane.js +10 -41
  36. package/lib/internal/internalPane.js.map +1 -1
  37. package/lib/mainPage/footer.js +0 -4
  38. package/lib/mainPage/footer.js.map +1 -1
  39. package/lib/mainPage/header.js +2 -28
  40. package/lib/mainPage/header.js.map +1 -1
  41. package/lib/mainPage/index.js +1 -12
  42. package/lib/mainPage/index.js.map +1 -1
  43. package/lib/microblogPane/microblogPane.js +100 -237
  44. package/lib/microblogPane/microblogPane.js.map +1 -1
  45. package/lib/n3Pane.js +2 -7
  46. package/lib/n3Pane.js.map +1 -1
  47. package/lib/outline/context.js +0 -2
  48. package/lib/outline/context.js.map +1 -1
  49. package/lib/outline/licenseOptions.js +9 -25
  50. package/lib/outline/licenseOptions.js.map +1 -1
  51. package/lib/outline/manager.js +178 -580
  52. package/lib/outline/manager.js.map +1 -1
  53. package/lib/outline/manager.test.js +1 -11
  54. package/lib/outline/manager.test.js.map +1 -1
  55. package/lib/outline/outlineIcons.js +30 -25
  56. package/lib/outline/outlineIcons.js.map +1 -1
  57. package/lib/outline/propertyViews.js +0 -10
  58. package/lib/outline/propertyViews.js.map +1 -1
  59. package/lib/outline/propertyViews.test.js +1 -3
  60. package/lib/outline/propertyViews.test.js.map +1 -1
  61. package/lib/outline/queryByExample.js +24 -76
  62. package/lib/outline/queryByExample.js.map +1 -1
  63. package/lib/outline/userInput.js +214 -454
  64. package/lib/outline/userInput.js.map +1 -1
  65. package/lib/outline/viewAsImage.js +0 -6
  66. package/lib/outline/viewAsImage.js.map +1 -1
  67. package/lib/outline/viewAsMbox.js +3 -4
  68. package/lib/outline/viewAsMbox.js.map +1 -1
  69. package/lib/pad/padPane.js +45 -93
  70. package/lib/pad/padPane.js.map +1 -1
  71. package/lib/playlist/playlistPane.js +3 -20
  72. package/lib/playlist/playlistPane.js.map +1 -1
  73. package/lib/profile/editProfile.view.js +7 -24
  74. package/lib/profile/editProfile.view.js.map +1 -1
  75. package/lib/profile/profile.dom.js +0 -3
  76. package/lib/profile/profile.dom.js.map +1 -1
  77. package/lib/registerPanes.js +29 -27
  78. package/lib/registerPanes.js.map +1 -1
  79. package/lib/schedule/formsForSchedule.js.map +1 -1
  80. package/lib/schedule/schedulePane.js +62 -122
  81. package/lib/schedule/schedulePane.js.map +1 -1
  82. package/lib/sharing/sharingPane.js +2 -10
  83. package/lib/sharing/sharingPane.js.map +1 -1
  84. package/lib/slideshow/slideshowPane.js +9 -14
  85. package/lib/slideshow/slideshowPane.js.map +1 -1
  86. package/lib/socialPane.js +43 -124
  87. package/lib/socialPane.js.map +1 -1
  88. package/lib/tabbed/tabbedPane.js +1 -15
  89. package/lib/tabbed/tabbedPane.js.map +1 -1
  90. package/lib/tableViewPane.js +4 -7
  91. package/lib/tableViewPane.js.map +1 -1
  92. package/lib/test-import-export/common.js +2 -1
  93. package/lib/test-import-export/common.js.map +1 -1
  94. package/lib/test-import-export/edit-importer.js +7 -9
  95. package/lib/test-import-export/edit-importer.js.map +1 -1
  96. package/lib/transaction/pane.js +31 -90
  97. package/lib/transaction/pane.js.map +1 -1
  98. package/lib/transaction/period.js +20 -71
  99. package/lib/transaction/period.js.map +1 -1
  100. package/lib/trip/tripPane.js +30 -34
  101. package/lib/trip/tripPane.js.map +1 -1
  102. package/lib/trustedApplications/trustedApplications.dom.js +8 -34
  103. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  104. package/lib/trustedApplications/trustedApplications.test.js +3 -8
  105. package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
  106. package/lib/trustedApplications/trustedApplications.utils.js +0 -10
  107. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  108. package/lib/trustedApplications/trustedApplications.view.js +1 -22
  109. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  110. package/lib/ui/pane.js +22 -28
  111. package/lib/ui/pane.js.map +1 -1
  112. package/lib/versionInfo.d.ts +2 -0
  113. package/lib/versionInfo.d.ts.map +1 -1
  114. package/lib/versionInfo.js +18 -16
  115. package/lib/versionInfo.js.map +1 -1
  116. package/lib/video/videoPane.js +2 -5
  117. package/lib/video/videoPane.js.map +1 -1
  118. package/package.json +24 -24
  119. package/src/versionInfo.ts +18 -16
@@ -1 +1 @@
1
- {"version":3,"file":"homepage.js","names":["generateHomepage","subject","store","fetcher","loadProfile","ownersProfile","name","getName","wrapper","document","createElement","classList","add","appendChild","createTitle","uri","createDataSection","dataSection","title","innerText","listGroup","publicDataLink","href","window","location","profileLink","profileLinkPost","pod","site","webId","sym","load","anyValue","ns","vcard","doc","foaf","URL","host","split"],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\n\nexport async function generateHomepage (\n subject: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfile(subject, fetcher)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Pod'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n\nasync function loadProfile (\n subject: NamedNode,\n fetcher: Fetcher\n): Promise<NamedNode> {\n const pod = subject.site().uri\n // TODO: This is a hack - we cannot assume that the profile is at this document, but we will live with it for now\n const webId = sym(`${pod}profile/card#me`)\n await fetcher.load(webId)\n return webId\n}\n\nfunction getName (store: IndexedFormula, ownersProfile: NamedNode): string {\n return (\n store.anyValue(ownersProfile, ns.vcard('fn'), null, ownersProfile.doc()) ||\n store.anyValue(ownersProfile, ns.foaf('name'), null, ownersProfile.doc()) ||\n new URL(ownersProfile.uri).host.split('.')[0]\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"homepage.js","names":["generateHomepage","subject","store","fetcher","loadProfile","ownersProfile","name","getName","wrapper","document","createElement","classList","add","appendChild","createTitle","uri","createDataSection","dataSection","title","innerText","listGroup","publicDataLink","href","window","location","profileLink","profileLinkPost","pod","site","webId","sym","load","anyValue","ns","vcard","doc","foaf","URL","host","split"],"sources":["../../src/dashboard/homepage.ts"],"sourcesContent":["import { Fetcher, IndexedFormula, NamedNode, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\n\nexport async function generateHomepage (\n subject: NamedNode,\n store: IndexedFormula,\n fetcher: Fetcher\n): Promise<HTMLElement> {\n const ownersProfile = await loadProfile(subject, fetcher)\n const name = getName(store, ownersProfile)\n\n const wrapper = document.createElement('div')\n wrapper.classList.add('container')\n wrapper.appendChild(createTitle(ownersProfile.uri, name))\n wrapper.appendChild(createDataSection(name))\n\n return wrapper\n}\n\nfunction createDataSection (name: string): HTMLElement {\n const dataSection = document.createElement('section')\n\n const title = document.createElement('h2')\n title.innerText = 'Data'\n dataSection.appendChild(title)\n\n const listGroup = document.createElement('div')\n listGroup.classList.add('list-group')\n dataSection.appendChild(listGroup)\n\n const publicDataLink = document.createElement('a')\n publicDataLink.classList.add('list-group-item')\n publicDataLink.href = window.document.location.href + 'public/'\n publicDataLink.innerText = `View ${name}'s files`\n listGroup.appendChild(publicDataLink)\n\n return dataSection\n}\n\nfunction createTitle (uri: string, name: string): HTMLElement {\n const profileLink = document.createElement('a')\n profileLink.href = uri\n profileLink.innerText = name\n\n const profileLinkPost = document.createElement('span')\n profileLinkPost.innerText = '\\'s Pod'\n\n const title = document.createElement('h1')\n title.appendChild(profileLink)\n title.appendChild(profileLinkPost)\n\n return title\n}\n\nasync function loadProfile (\n subject: NamedNode,\n fetcher: Fetcher\n): Promise<NamedNode> {\n const pod = subject.site().uri\n // TODO: This is a hack - we cannot assume that the profile is at this document, but we will live with it for now\n const webId = sym(`${pod}profile/card#me`)\n await fetcher.load(webId)\n return webId\n}\n\nfunction getName (store: IndexedFormula, ownersProfile: NamedNode): string {\n return (\n store.anyValue(ownersProfile, ns.vcard('fn'), null, ownersProfile.doc()) ||\n store.anyValue(ownersProfile, ns.foaf('name'), null, ownersProfile.doc()) ||\n new URL(ownersProfile.uri).host.split('.')[0]\n )\n}\n"],"mappings":"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"}
@@ -5,14 +5,14 @@
5
5
  ** This pane shows the content of a particular RDF resource
6
6
  ** or at least the RDF semantics we attribute to that resource.
7
7
  */
8
+
8
9
  // To do: - Only take data from one graph
9
10
  // - Only do forwards not backward?
10
11
  // - Expand automatically all the way down
11
12
  // - original source view? Use ffox view source
12
- var UI = require('solid-ui');
13
13
 
14
+ var UI = require('solid-ui');
14
15
  var $rdf = require('rdflib');
15
-
16
16
  var ns = UI.ns;
17
17
  module.exports = {
18
18
  icon: UI.icons.originalIconBase + 'rdf_flyer.24.gif',
@@ -22,62 +22,51 @@ module.exports = {
22
22
  if ('http://www.w3.org/2007/ont/link#ProtocolEvent' in context.session.store.findTypeURIs(subject)) {
23
23
  return null;
24
24
  }
25
-
26
25
  var n = context.session.store.statementsMatching(undefined, undefined, undefined, subject).length;
27
26
  if (n === 0) return null;
28
27
  return 'Data (' + n + ')';
29
28
  },
30
-
31
29
  /*
32
30
  shouldGetFocus: function(subject) {
33
31
  return store.whether(subject, UI.ns.rdf('type'), UI.ns.link('RDFDocument'))
34
32
  },
35
33
  */
36
34
  statementsAsTables: function statementsAsTables(sts, context, initialRoots) {
37
- var myDocument = context.dom; // const outliner = context.getOutliner(myDocument)
38
-
35
+ var myDocument = context.dom;
36
+ // const outliner = context.getOutliner(myDocument)
39
37
  var rep = myDocument.createElement('table');
40
38
  var sz = UI.rdf.Serializer(context.session.store);
41
39
  var res = sz.rootSubjects(sts);
42
40
  var roots = res.roots;
43
41
  var subjects = res.subjects;
44
42
  var loopBreakers = res.loopBreakers;
45
-
46
43
  for (var x in loopBreakers) {
47
44
  console.log('\tdataContentPane: loopbreaker:' + x);
48
45
  }
49
-
50
46
  var doneBnodes = {}; // For preventing looping
51
-
52
47
  var referencedBnodes = {}; // Bnodes which need to be named alas
53
- // The property tree for a single subject or anonymous node
54
48
 
49
+ // The property tree for a single subject or anonymous node
55
50
  function propertyTree(subject) {
56
51
  // print('Proprty tree for '+subject)
57
52
  var rep = myDocument.createElement('table');
58
53
  var lastPred = null;
59
54
  var sts = subjects[sz.toStr(subject)]; // relevant statements
60
-
61
55
  if (!sts) {
62
56
  // No statements in tree
63
57
  rep.appendChild(myDocument.createTextNode('...')); // just empty bnode as object
64
-
65
58
  return rep;
66
59
  }
67
-
68
60
  sts.sort();
69
61
  var same = 0;
70
62
  var predicateTD; // The cell which holds the predicate
71
-
72
63
  for (var i = 0; i < sts.length; i++) {
73
64
  var st = sts[i];
74
65
  var tr = myDocument.createElement('tr');
75
-
76
66
  if (st.predicate.uri !== lastPred) {
77
67
  if (lastPred && same > 1) {
78
68
  predicateTD.setAttribute('rowspan', '' + same);
79
69
  }
80
-
81
70
  predicateTD = myDocument.createElement('td');
82
71
  predicateTD.setAttribute('class', 'pred');
83
72
  var anchor = myDocument.createElement('a');
@@ -89,22 +78,19 @@ module.exports = {
89
78
  lastPred = st.predicate.uri;
90
79
  same = 0;
91
80
  }
92
-
93
81
  same++;
94
82
  var objectTD = myDocument.createElement('td');
95
83
  objectTD.appendChild(objectTree(st.object));
96
84
  tr.appendChild(objectTD);
97
85
  rep.appendChild(tr);
98
86
  }
99
-
100
87
  if (lastPred && same > 1) predicateTD.setAttribute('rowspan', '' + same);
101
88
  return rep;
102
- } // Convert a set of statements into a nested tree of tables
103
-
89
+ }
104
90
 
91
+ // Convert a set of statements into a nested tree of tables
105
92
  function objectTree(obj) {
106
93
  var res, anchor;
107
-
108
94
  switch (obj.termType) {
109
95
  case 'NamedNode':
110
96
  anchor = myDocument.createElement('a');
@@ -112,7 +98,6 @@ module.exports = {
112
98
  anchor.addEventListener('click', UI.widgets.openHrefInOutlineMode, true);
113
99
  anchor.appendChild(myDocument.createTextNode(UI.utils.label(obj)));
114
100
  return anchor;
115
-
116
101
  case 'Literal':
117
102
  if (!obj.datatype || !obj.datatype.uri) {
118
103
  res = myDocument.createElement('div');
@@ -123,10 +108,8 @@ module.exports = {
123
108
  res = myDocument.createElement('div');
124
109
  res.setAttribute('class', 'embeddedXHTML');
125
110
  res.innerHTML = obj.value; // Try that @@@ beware embedded dangerous code
126
-
127
111
  return res;
128
112
  }
129
-
130
113
  return myDocument.createTextNode(obj.value);
131
114
  // placeholder - could be smarter,
132
115
 
@@ -135,56 +118,43 @@ module.exports = {
135
118
  if (obj.toNT() in doneBnodes) {
136
119
  // Break infinite recursion
137
120
  referencedBnodes[obj.toNT()] = true;
138
-
139
121
  var _anchor = myDocument.createElement('a');
140
-
141
122
  _anchor.setAttribute('href', '#' + obj.toNT().slice(2));
142
-
143
123
  _anchor.setAttribute('class', 'bnodeRef');
144
-
145
124
  _anchor.textContent = '*' + obj.toNT().slice(3);
146
125
  return _anchor;
147
126
  }
148
-
149
127
  doneBnodes[obj.toNT()] = true; // Flag to prevent infinite recursion in propertyTree
150
-
151
128
  var newTable = propertyTree(obj);
152
129
  doneBnodes[obj.toNT()] = newTable; // Track where we mentioned it first
153
-
154
130
  if (UI.utils.ancestor(newTable, 'TABLE') && UI.utils.ancestor(newTable, 'TABLE').style.backgroundColor === 'white') {
155
131
  newTable.style.backgroundColor = '#eee';
156
132
  } else {
157
133
  newTable.style.backgroundColor = 'white';
158
134
  }
159
-
160
135
  return newTable;
161
136
  }
162
-
163
137
  case 'Collection':
164
138
  res = myDocument.createElement('table');
165
139
  res.setAttribute('class', 'collectionAsTables');
166
-
167
140
  for (var i = 0; i < obj.elements.length; i++) {
168
141
  var tr = myDocument.createElement('tr');
169
142
  res.appendChild(tr);
170
143
  tr.appendChild(objectTree(obj.elements[i]));
171
144
  }
172
-
173
145
  return res;
174
-
175
146
  case 'Graph':
176
147
  res = context.session.paneRegistry.byName('dataContents').statementsAsTables(obj.statements, context);
177
148
  res.setAttribute('class', 'nestedFormula');
178
149
  return res;
179
-
180
150
  case 'Variable':
181
151
  res = myDocument.createTextNode('?' + obj.uri);
182
152
  return res;
183
153
  }
184
-
185
154
  throw new Error('Unhandled node type: ' + obj.termType);
186
- } // roots.sort()
155
+ }
187
156
 
157
+ // roots.sort()
188
158
 
189
159
  if (initialRoots) {
190
160
  roots = initialRoots.concat(roots.filter(function (x) {
@@ -192,11 +162,9 @@ module.exports = {
192
162
  // Max 2
193
163
  if (x.sameTerm(initialRoots[i])) return false;
194
164
  }
195
-
196
165
  return true;
197
166
  }));
198
167
  }
199
-
200
168
  for (var i = 0; i < roots.length; i++) {
201
169
  var tr = myDocument.createElement('tr');
202
170
  rep.appendChild(tr);
@@ -205,7 +173,6 @@ module.exports = {
205
173
  var TDTree = myDocument.createElement('td');
206
174
  tr.appendChild(TDTree);
207
175
  var root = roots[i];
208
-
209
176
  if (root.termType === 'BlankNode') {
210
177
  subjectTD.appendChild(myDocument.createTextNode(UI.utils.label(root))); // Don't recurse!
211
178
  } else {
@@ -214,31 +181,27 @@ module.exports = {
214
181
 
215
182
  TDTree.appendChild(propertyTree(root));
216
183
  }
217
-
218
184
  for (var bNT in referencedBnodes) {
219
185
  // Add number to refer to
220
- var table = doneBnodes[bNT]; // let tr = myDocument.createElement('tr')
221
-
186
+ var table = doneBnodes[bNT];
187
+ // let tr = myDocument.createElement('tr')
222
188
  var anchor = myDocument.createElement('a');
223
189
  anchor.setAttribute('id', bNT.slice(2));
224
190
  anchor.setAttribute('class', 'bnodeDef');
225
191
  anchor.textContent = bNT.slice(3) + ')';
226
192
  table.insertBefore(anchor, table.firstChild);
227
193
  }
228
-
229
194
  return rep;
230
195
  },
231
196
  // statementsAsTables
232
197
  // View the data in a file in user-friendly way
233
198
  render: function render(subject, context) {
234
199
  var myDocument = context.dom;
235
-
236
200
  function alternativeRendering() {
237
201
  var sz = UI.rdf.Serializer(context.session.store);
238
202
  var res = sz.rootSubjects(sts);
239
203
  var roots = res.roots;
240
204
  var p = {};
241
-
242
205
  p.render = function (s2) {
243
206
  var div = myDocument.createElement('div');
244
207
  div.setAttribute('class', 'withinDocumentPane');
@@ -248,7 +211,6 @@ module.exports = {
248
211
  });
249
212
  return div;
250
213
  };
251
-
252
214
  for (var i = 0; i < roots.length; i++) {
253
215
  var tr = myDocument.createElement('TR');
254
216
  var root = roots[i];
@@ -261,27 +223,23 @@ module.exports = {
261
223
  });
262
224
  }
263
225
  }
264
-
265
226
  function mainRendering() {
266
227
  var initialRoots = []; // Ordering: start with stuff about this doc
267
-
268
228
  if (kb.holds(subject, undefined, undefined, subject)) {
269
229
  initialRoots.push(subject);
270
- } // Then about the primary topic of the document if any
271
-
272
-
230
+ }
231
+ // Then about the primary topic of the document if any
273
232
  var ps = kb.any(subject, UI.ns.foaf('primaryTopic'), undefined, subject);
274
233
  if (ps) initialRoots.push(ps);
275
234
  div.appendChild(context.session.paneRegistry.byName('dataContents').statementsAsTables(sts, context, initialRoots));
276
235
  }
277
-
278
236
  var outliner = context.getOutliner(myDocument);
279
237
  var kb = context.session.store;
280
238
  var div = myDocument.createElement('div');
281
- div.setAttribute('class', 'dataContentPane'); // Because of smushing etc, this will not be a copy of the original source
239
+ div.setAttribute('class', 'dataContentPane');
240
+ // Because of smushing etc, this will not be a copy of the original source
282
241
  // We could instead either fetch and re-parse the source,
283
242
  // or we could keep all the pre-smushed triples.
284
-
285
243
  var sts = kb.statementsMatching(undefined, undefined, undefined, subject); // @@ slow with current store!
286
244
 
287
245
  if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {
@@ -289,7 +247,6 @@ module.exports = {
289
247
  } else {
290
248
  mainRendering();
291
249
  }
292
-
293
250
  return div;
294
251
  }
295
252
  };
@@ -1 +1 @@
1
- {"version":3,"file":"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"],"sources":["../src/dataContentPane.js"],"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"],"mappings":"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"}
1
+ {"version":3,"file":"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"],"sources":["../src/dataContentPane.js"],"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"],"mappings":"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"}
@@ -6,10 +6,9 @@
6
6
  ** normally displayed to the user. See also: internalPane
7
7
  ** This pane hides the ones considered too low-level for the normal user.
8
8
  */
9
- var UI = require('solid-ui');
10
9
 
10
+ var UI = require('solid-ui');
11
11
  var $rdf = require('rdflib');
12
-
13
12
  var ns = UI.ns;
14
13
  module.exports = {
15
14
  icon: UI.icons.originalIconBase + 'about.png',
@@ -20,44 +19,36 @@ module.exports = {
20
19
  },
21
20
  render: function render(subject, context) {
22
21
  var dom = context.dom;
23
-
24
22
  var filter = function filter(pred, inverse) {
25
23
  if (typeof context.session.paneRegistry.byName('internal').predicates[pred.uri] !== 'undefined') {
26
24
  return false;
27
25
  }
28
-
29
26
  if (inverse && pred.uri === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type') {
30
27
  return false;
31
28
  }
32
-
33
29
  return true;
34
30
  };
35
-
36
31
  var outliner = context.getOutliner(dom);
37
- var kb = context.session.store; // var outline = outliner; // @@
38
-
32
+ var kb = context.session.store;
33
+ // var outline = outliner; // @@
39
34
  UI.log.info('@defaultPane.render, dom is now ' + dom.location);
40
35
  subject = kb.canon(subject);
41
36
  var div = dom.createElement('div');
42
- div.setAttribute('class', 'defaultPane'); // appendRemoveIcon(div, subject, div)
37
+ div.setAttribute('class', 'defaultPane');
38
+ // appendRemoveIcon(div, subject, div)
43
39
 
44
40
  var plist = kb.statementsMatching(subject);
45
41
  outliner.appendPropertyTRs(div, plist, false, filter);
46
42
  plist = kb.statementsMatching(undefined, undefined, subject);
47
43
  outliner.appendPropertyTRs(div, plist, true, filter);
48
-
49
44
  if (subject.termType === 'Literal' && subject.value.slice(0, 7) === 'http://') {
50
45
  outliner.appendPropertyTRs(div, [$rdf.st(kb.sym(subject.value), UI.ns.link('uri'), subject)], true, filter);
51
46
  }
52
-
53
- if (subject.termType === 'NamedNode' && kb.updater.editable(UI.rdf.Util.uri.docpart(subject.uri), kb) || subject.termType === 'BlankNode' && kb.anyStatementMatching(subject) && kb.anyStatementMatching(subject).why && kb.anyStatementMatching(subject).why.uri && kb.updater.editable(kb.anyStatementMatching(subject).why.uri) // check the document containing something about of the bnode @@ what about as object?
54
-
55
- /* ! && HCIoptions["bottom insert highlights"].enabled */
56
- ) {
47
+ if (subject.termType === 'NamedNode' && kb.updater.editable(UI.rdf.Util.uri.docpart(subject.uri), kb) || subject.termType === 'BlankNode' && kb.anyStatementMatching(subject) && kb.anyStatementMatching(subject).why && kb.anyStatementMatching(subject).why.uri && kb.updater.editable(kb.anyStatementMatching(subject).why.uri)
48
+ // check the document containing something about of the bnode @@ what about as object?
49
+ /* ! && HCIoptions["bottom insert highlights"].enabled */) {
57
50
  var holdingTr = dom.createElement('tr'); // these are to minimize required changes
58
-
59
51
  var holdingTd = dom.createElement('td'); // in userinput.js
60
-
61
52
  holdingTd.setAttribute('colspan', '2');
62
53
  holdingTd.setAttribute('notSelectable', 'true');
63
54
  var img = dom.createElement('img');
@@ -67,12 +58,13 @@ module.exports = {
67
58
  e.stopPropagation();
68
59
  e.preventDefault();
69
60
  });
70
- img.className = 'bottom-border-active'; // img.addEventListener('click', thisOutline.UserInput.addNewPredicateObject,false)
71
-
61
+ img.className = 'bottom-border-active';
62
+ // img.addEventListener('click', thisOutline.UserInput.addNewPredicateObject,false)
72
63
  div.appendChild(holdingTr).appendChild(holdingTd).appendChild(img);
73
64
  }
74
-
75
65
  return div;
76
66
  }
77
- }; // ends
67
+ };
68
+
69
+ // ends
78
70
  //# sourceMappingURL=defaultPane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultPane.js","names":["UI","require","$rdf","ns","module","exports","icon","icons","originalIconBase","name","audience","solid","label","_subject","render","subject","context","dom","filter","pred","inverse","session","paneRegistry","byName","predicates","uri","outliner","getOutliner","kb","store","log","info","location","canon","div","createElement","setAttribute","plist","statementsMatching","appendPropertyTRs","undefined","termType","value","slice","st","sym","link","updater","editable","rdf","Util","docpart","anyStatementMatching","why","holdingTr","holdingTd","img","src","addEventListener","addNewTripleIconMouseDownListener","e","UserInput","addNewPredicateObject","stopPropagation","preventDefault","className","appendChild"],"sources":["../src/defaultPane.js"],"sourcesContent":["/* Default Pane\n **\n ** This outline pane contains the properties which are\n ** normally displayed to the user. See also: internalPane\n ** This pane hides the ones considered too low-level for the normal user.\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'about.png',\n\n name: 'default',\n\n audience: [ns.solid('Developer')],\n\n label: function (_subject) {\n return 'about '\n },\n\n render: function (subject, context) {\n const dom = context.dom\n\n const filter = function (pred, inverse) {\n if (\n typeof context.session.paneRegistry.byName('internal').predicates[\n pred.uri\n ] !== 'undefined'\n ) {\n return false\n }\n if (\n inverse &&\n pred.uri === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'\n ) {\n return false\n }\n return true\n }\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n // var outline = outliner; // @@\n UI.log.info('@defaultPane.render, dom is now ' + dom.location)\n subject = kb.canon(subject)\n const div = dom.createElement('div')\n div.setAttribute('class', 'defaultPane')\n // appendRemoveIcon(div, subject, div)\n\n let plist = kb.statementsMatching(subject)\n outliner.appendPropertyTRs(div, plist, false, filter)\n plist = kb.statementsMatching(undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, true, filter)\n if (\n subject.termType === 'Literal' &&\n subject.value.slice(0, 7) === 'http://'\n ) {\n outliner.appendPropertyTRs(\n div,\n [$rdf.st(kb.sym(subject.value), UI.ns.link('uri'), subject)],\n true,\n filter\n )\n }\n if (\n (subject.termType === 'NamedNode' &&\n kb.updater.editable(UI.rdf.Util.uri.docpart(subject.uri), kb)) ||\n (subject.termType === 'BlankNode' &&\n kb.anyStatementMatching(subject) &&\n kb.anyStatementMatching(subject).why &&\n kb.anyStatementMatching(subject).why.uri &&\n kb.updater.editable(kb.anyStatementMatching(subject).why.uri))\n // check the document containing something about of the bnode @@ what about as object?\n /* ! && HCIoptions[\"bottom insert highlights\"].enabled */\n ) {\n const holdingTr = dom.createElement('tr') // these are to minimize required changes\n const holdingTd = dom.createElement('td') // in userinput.js\n holdingTd.setAttribute('colspan', '2')\n holdingTd.setAttribute('notSelectable', 'true')\n const img = dom.createElement('img')\n img.src = UI.icons.originalIconBase + 'tango/22-list-add-new.png'\n img.addEventListener('click', function addNewTripleIconMouseDownListener (\n e\n ) {\n outliner.UserInput.addNewPredicateObject(e)\n e.stopPropagation()\n e.preventDefault()\n })\n img.className = 'bottom-border-active'\n // img.addEventListener('click', thisOutline.UserInput.addNewPredicateObject,false)\n div\n .appendChild(holdingTr)\n .appendChild(holdingTd)\n .appendChild(img)\n }\n return div\n }\n}\n\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"defaultPane.js","names":["UI","require","$rdf","ns","module","exports","icon","icons","originalIconBase","name","audience","solid","label","_subject","render","subject","context","dom","filter","pred","inverse","session","paneRegistry","byName","predicates","uri","outliner","getOutliner","kb","store","log","info","location","canon","div","createElement","setAttribute","plist","statementsMatching","appendPropertyTRs","undefined","termType","value","slice","st","sym","link","updater","editable","rdf","Util","docpart","anyStatementMatching","why","holdingTr","holdingTd","img","src","addEventListener","addNewTripleIconMouseDownListener","e","UserInput","addNewPredicateObject","stopPropagation","preventDefault","className","appendChild"],"sources":["../src/defaultPane.js"],"sourcesContent":["/* Default Pane\n **\n ** This outline pane contains the properties which are\n ** normally displayed to the user. See also: internalPane\n ** This pane hides the ones considered too low-level for the normal user.\n */\n\nconst UI = require('solid-ui')\nconst $rdf = require('rdflib')\nconst ns = UI.ns\n\nmodule.exports = {\n icon: UI.icons.originalIconBase + 'about.png',\n\n name: 'default',\n\n audience: [ns.solid('Developer')],\n\n label: function (_subject) {\n return 'about '\n },\n\n render: function (subject, context) {\n const dom = context.dom\n\n const filter = function (pred, inverse) {\n if (\n typeof context.session.paneRegistry.byName('internal').predicates[\n pred.uri\n ] !== 'undefined'\n ) {\n return false\n }\n if (\n inverse &&\n pred.uri === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'\n ) {\n return false\n }\n return true\n }\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n // var outline = outliner; // @@\n UI.log.info('@defaultPane.render, dom is now ' + dom.location)\n subject = kb.canon(subject)\n const div = dom.createElement('div')\n div.setAttribute('class', 'defaultPane')\n // appendRemoveIcon(div, subject, div)\n\n let plist = kb.statementsMatching(subject)\n outliner.appendPropertyTRs(div, plist, false, filter)\n plist = kb.statementsMatching(undefined, undefined, subject)\n outliner.appendPropertyTRs(div, plist, true, filter)\n if (\n subject.termType === 'Literal' &&\n subject.value.slice(0, 7) === 'http://'\n ) {\n outliner.appendPropertyTRs(\n div,\n [$rdf.st(kb.sym(subject.value), UI.ns.link('uri'), subject)],\n true,\n filter\n )\n }\n if (\n (subject.termType === 'NamedNode' &&\n kb.updater.editable(UI.rdf.Util.uri.docpart(subject.uri), kb)) ||\n (subject.termType === 'BlankNode' &&\n kb.anyStatementMatching(subject) &&\n kb.anyStatementMatching(subject).why &&\n kb.anyStatementMatching(subject).why.uri &&\n kb.updater.editable(kb.anyStatementMatching(subject).why.uri))\n // check the document containing something about of the bnode @@ what about as object?\n /* ! && HCIoptions[\"bottom insert highlights\"].enabled */\n ) {\n const holdingTr = dom.createElement('tr') // these are to minimize required changes\n const holdingTd = dom.createElement('td') // in userinput.js\n holdingTd.setAttribute('colspan', '2')\n holdingTd.setAttribute('notSelectable', 'true')\n const img = dom.createElement('img')\n img.src = UI.icons.originalIconBase + 'tango/22-list-add-new.png'\n img.addEventListener('click', function addNewTripleIconMouseDownListener (\n e\n ) {\n outliner.UserInput.addNewPredicateObject(e)\n e.stopPropagation()\n e.preventDefault()\n })\n img.className = 'bottom-border-active'\n // img.addEventListener('click', thisOutline.UserInput.addNewPredicateObject,false)\n div\n .appendChild(holdingTr)\n .appendChild(holdingTd)\n .appendChild(img)\n }\n return div\n }\n}\n\n// ends\n"],"mappings":"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"}