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.
- package/README.md +0 -2
- package/lib/RDFXMLPane.js +6 -8
- package/lib/RDFXMLPane.js.map +1 -1
- package/lib/argument/argumentPane.js +10 -11
- package/lib/argument/argumentPane.js.map +1 -1
- package/lib/attach/attachPane.js +47 -85
- package/lib/attach/attachPane.js.map +1 -1
- package/lib/audio/audioPane.js +11 -36
- package/lib/audio/audioPane.js.map +1 -1
- package/lib/classInstancePane.js +11 -20
- package/lib/classInstancePane.js.map +1 -1
- package/lib/dashboard/basicPreferences.js +3 -53
- package/lib/dashboard/basicPreferences.js.map +1 -1
- package/lib/dashboard/dashboardPane.js +2 -18
- package/lib/dashboard/dashboardPane.js.map +1 -1
- package/lib/dashboard/homepage.js +1 -19
- package/lib/dashboard/homepage.js.map +1 -1
- package/lib/dataContentPane.js +15 -58
- package/lib/dataContentPane.js.map +1 -1
- package/lib/defaultPane.js +13 -21
- package/lib/defaultPane.js.map +1 -1
- package/lib/dokieli/dokieliPane.js +19 -28
- package/lib/dokieli/dokieliPane.js.map +1 -1
- package/lib/dokieli/new.js.map +1 -1
- package/lib/form/pane.js +26 -40
- package/lib/form/pane.js.map +1 -1
- package/lib/home/homePane.js +7 -23
- package/lib/home/homePane.js.map +1 -1
- package/lib/humanReadablePane.js +14 -28
- package/lib/humanReadablePane.js.map +1 -1
- package/lib/imagePane.js +9 -13
- package/lib/imagePane.js.map +1 -1
- package/lib/index.js +4 -18
- package/lib/index.js.map +1 -1
- package/lib/internal/internalPane.js +10 -41
- package/lib/internal/internalPane.js.map +1 -1
- package/lib/mainPage/footer.js +0 -4
- package/lib/mainPage/footer.js.map +1 -1
- package/lib/mainPage/header.js +2 -28
- package/lib/mainPage/header.js.map +1 -1
- package/lib/mainPage/index.js +1 -12
- package/lib/mainPage/index.js.map +1 -1
- package/lib/microblogPane/microblogPane.js +100 -237
- package/lib/microblogPane/microblogPane.js.map +1 -1
- package/lib/n3Pane.js +2 -7
- package/lib/n3Pane.js.map +1 -1
- package/lib/outline/context.js +0 -2
- package/lib/outline/context.js.map +1 -1
- package/lib/outline/licenseOptions.js +9 -25
- package/lib/outline/licenseOptions.js.map +1 -1
- package/lib/outline/manager.js +178 -580
- package/lib/outline/manager.js.map +1 -1
- package/lib/outline/manager.test.js +1 -11
- package/lib/outline/manager.test.js.map +1 -1
- package/lib/outline/outlineIcons.js +30 -25
- package/lib/outline/outlineIcons.js.map +1 -1
- package/lib/outline/propertyViews.js +0 -10
- package/lib/outline/propertyViews.js.map +1 -1
- package/lib/outline/propertyViews.test.js +1 -3
- package/lib/outline/propertyViews.test.js.map +1 -1
- package/lib/outline/queryByExample.js +24 -76
- package/lib/outline/queryByExample.js.map +1 -1
- package/lib/outline/userInput.js +214 -454
- package/lib/outline/userInput.js.map +1 -1
- package/lib/outline/viewAsImage.js +0 -6
- package/lib/outline/viewAsImage.js.map +1 -1
- package/lib/outline/viewAsMbox.js +3 -4
- package/lib/outline/viewAsMbox.js.map +1 -1
- package/lib/pad/padPane.js +45 -93
- package/lib/pad/padPane.js.map +1 -1
- package/lib/playlist/playlistPane.js +3 -20
- package/lib/playlist/playlistPane.js.map +1 -1
- package/lib/profile/editProfile.view.js +7 -24
- package/lib/profile/editProfile.view.js.map +1 -1
- package/lib/profile/profile.dom.js +0 -3
- package/lib/profile/profile.dom.js.map +1 -1
- package/lib/registerPanes.js +29 -27
- package/lib/registerPanes.js.map +1 -1
- package/lib/schedule/formsForSchedule.js.map +1 -1
- package/lib/schedule/schedulePane.js +62 -122
- package/lib/schedule/schedulePane.js.map +1 -1
- package/lib/sharing/sharingPane.js +2 -10
- package/lib/sharing/sharingPane.js.map +1 -1
- package/lib/slideshow/slideshowPane.js +9 -14
- package/lib/slideshow/slideshowPane.js.map +1 -1
- package/lib/socialPane.js +43 -124
- package/lib/socialPane.js.map +1 -1
- package/lib/tabbed/tabbedPane.js +1 -15
- package/lib/tabbed/tabbedPane.js.map +1 -1
- package/lib/tableViewPane.js +4 -7
- package/lib/tableViewPane.js.map +1 -1
- package/lib/test-import-export/common.js +2 -1
- package/lib/test-import-export/common.js.map +1 -1
- package/lib/test-import-export/edit-importer.js +7 -9
- package/lib/test-import-export/edit-importer.js.map +1 -1
- package/lib/transaction/pane.js +31 -90
- package/lib/transaction/pane.js.map +1 -1
- package/lib/transaction/period.js +20 -71
- package/lib/transaction/period.js.map +1 -1
- package/lib/trip/tripPane.js +30 -34
- package/lib/trip/tripPane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.dom.js +8 -34
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.test.js +3 -8
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.utils.js +0 -10
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.view.js +1 -22
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
- package/lib/ui/pane.js +22 -28
- package/lib/ui/pane.js.map +1 -1
- package/lib/versionInfo.d.ts +2 -0
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +18 -16
- package/lib/versionInfo.js.map +1 -1
- package/lib/video/videoPane.js +2 -5
- package/lib/video/videoPane.js.map +1 -1
- package/package.json +24 -24
- 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":"
|
|
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":";;;;;;AAAA;AACA;AAA6B;AAAA,+CAA7B;AAAA;AAAA;AAAA,SAEsBA,gBAAgB;EAAA;AAAA;AAAA;EAAA,+EAA/B,iBACLC,OAAkB,EAClBC,KAAqB,EACrBC,OAAgB;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OAEYC,WAAW,CAACH,OAAO,EAAEE,OAAO,CAAC;UAAA;YAAnDE,aAAa;YACbC,IAAI,GAAGC,OAAO,CAACL,KAAK,EAAEG,aAAa,CAAC;YAEpCG,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;YAC7CF,OAAO,CAACG,SAAS,CAACC,GAAG,CAAC,WAAW,CAAC;YAClCJ,OAAO,CAACK,WAAW,CAACC,WAAW,CAACT,aAAa,CAACU,GAAG,EAAET,IAAI,CAAC,CAAC;YACzDE,OAAO,CAACK,WAAW,CAACG,iBAAiB,CAACV,IAAI,CAAC,CAAC;YAAA,iCAErCE,OAAO;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACf;EAAA;AAAA;AAED,SAASQ,iBAAiB,CAAEV,IAAY,EAAe;EACrD,IAAMW,WAAW,GAAGR,QAAQ,CAACC,aAAa,CAAC,SAAS,CAAC;EAErD,IAAMQ,KAAK,GAAGT,QAAQ,CAACC,aAAa,CAAC,IAAI,CAAC;EAC1CQ,KAAK,CAACC,SAAS,GAAG,MAAM;EACxBF,WAAW,CAACJ,WAAW,CAACK,KAAK,CAAC;EAE9B,IAAME,SAAS,GAAGX,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAC/CU,SAAS,CAACT,SAAS,CAACC,GAAG,CAAC,YAAY,CAAC;EACrCK,WAAW,CAACJ,WAAW,CAACO,SAAS,CAAC;EAElC,IAAMC,cAAc,GAAGZ,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;EAClDW,cAAc,CAACV,SAAS,CAACC,GAAG,CAAC,iBAAiB,CAAC;EAC/CS,cAAc,CAACC,IAAI,GAAGC,MAAM,CAACd,QAAQ,CAACe,QAAQ,CAACF,IAAI,GAAG,SAAS;EAC/DD,cAAc,CAACF,SAAS,kBAAWb,IAAI,aAAU;EACjDc,SAAS,CAACP,WAAW,CAACQ,cAAc,CAAC;EAErC,OAAOJ,WAAW;AACpB;AAEA,SAASH,WAAW,CAAEC,GAAW,EAAET,IAAY,EAAe;EAC5D,IAAMmB,WAAW,GAAGhB,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;EAC/Ce,WAAW,CAACH,IAAI,GAAGP,GAAG;EACtBU,WAAW,CAACN,SAAS,GAAGb,IAAI;EAE5B,IAAMoB,eAAe,GAAGjB,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;EACtDgB,eAAe,CAACP,SAAS,GAAG,SAAS;EAErC,IAAMD,KAAK,GAAGT,QAAQ,CAACC,aAAa,CAAC,IAAI,CAAC;EAC1CQ,KAAK,CAACL,WAAW,CAACY,WAAW,CAAC;EAC9BP,KAAK,CAACL,WAAW,CAACa,eAAe,CAAC;EAElC,OAAOR,KAAK;AACd;AAAC,SAEcd,WAAW;EAAA;AAAA;AAAA;EAAA,0EAA1B,kBACEH,OAAkB,EAClBE,OAAgB;IAAA;IAAA;MAAA;QAAA;UAAA;YAEVwB,GAAG,GAAG1B,OAAO,CAAC2B,IAAI,EAAE,CAACb,GAAG,EAC9B;YACMc,KAAK,GAAG,IAAAC,WAAG,YAAIH,GAAG,qBAAkB;YAAA;YAAA,OACpCxB,OAAO,CAAC4B,IAAI,CAACF,KAAK,CAAC;UAAA;YAAA,kCAClBA,KAAK;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACb;EAAA;AAAA;AAED,SAAStB,OAAO,CAAEL,KAAqB,EAAEG,aAAwB,EAAU;EACzE,OACEH,KAAK,CAAC8B,QAAQ,CAAC3B,aAAa,EAAE4B,WAAE,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE7B,aAAa,CAAC8B,GAAG,EAAE,CAAC,IACxEjC,KAAK,CAAC8B,QAAQ,CAAC3B,aAAa,EAAE4B,WAAE,CAACG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE/B,aAAa,CAAC8B,GAAG,EAAE,CAAC,IACzE,IAAIE,GAAG,CAAChC,aAAa,CAACU,GAAG,CAAC,CAACuB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEjD"}
|
package/lib/dataContentPane.js
CHANGED
|
@@ -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;
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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];
|
|
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
|
-
}
|
|
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');
|
|
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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"}
|
package/lib/defaultPane.js
CHANGED
|
@@ -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;
|
|
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');
|
|
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
|
-
|
|
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';
|
|
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
|
-
};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// ends
|
|
78
70
|
//# sourceMappingURL=defaultPane.js.map
|
package/lib/defaultPane.js.map
CHANGED
|
@@ -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":";;AAAA;AACA;AACA;AACA;AACA;AACA
|
|
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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"}
|