solid-panes 3.6.1 → 3.6.2-43aaa74a
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/coverage/clover.xml +152 -0
- package/coverage/coverage-final.json +6 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +131 -0
- package/coverage/lcov-report/outline/index.html +161 -0
- package/coverage/lcov-report/outline/outlineIcons.js.html +565 -0
- package/coverage/lcov-report/outline/propertyViews.ts.html +196 -0
- package/coverage/lcov-report/outline/viewAsImage.ts.html +121 -0
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +127 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/trustedApplications/index.html +116 -0
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +238 -0
- package/coverage/lcov.info +202 -0
- package/lib/dataContentPane.js +1 -0
- package/lib/dataContentPane.js.map +1 -1
- package/lib/dokieli/dokieliPane.js +21 -8
- package/lib/dokieli/dokieliPane.js.map +1 -1
- package/lib/humanReadablePane.js +12 -14
- package/lib/humanReadablePane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.utils.js +1 -1
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
- package/lib/versionInfo.js +20 -20
- package/lib/versionInfo.js.map +1 -1
- package/package.json +30 -30
- package/src/dashboard/languages/get-language-names.sh +0 -0
- package/src/dataContentPane.js +2 -1
- package/src/dokieli/dokieliPane.js +23 -9
- package/src/humanReadablePane.js +11 -10
- package/src/trustedApplications/trustedApplications.utils.ts +1 -1
- package/src/versionInfo.ts +20 -20
- package/timestamp.sh +0 -0
- package/.babelrc +0 -16
- package/.eslintignore +0 -3
- package/.eslintrc +0 -26
- package/.github/workflows/ci.yml +0 -82
- package/.nvmrc +0 -1
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
TN:
|
|
2
|
+
SF:src/outline/outlineIcons.js
|
|
3
|
+
FN:128,(anonymous_0)
|
|
4
|
+
FNF:1
|
|
5
|
+
FNH:1
|
|
6
|
+
FNDA:3,(anonymous_0)
|
|
7
|
+
DA:6,1
|
|
8
|
+
DA:8,1
|
|
9
|
+
DA:9,1
|
|
10
|
+
DA:13,1
|
|
11
|
+
DA:15,1
|
|
12
|
+
DA:17,1
|
|
13
|
+
DA:18,1
|
|
14
|
+
DA:20,1
|
|
15
|
+
DA:22,1
|
|
16
|
+
DA:23,1
|
|
17
|
+
DA:24,1
|
|
18
|
+
DA:25,1
|
|
19
|
+
DA:26,1
|
|
20
|
+
DA:31,1
|
|
21
|
+
DA:33,1
|
|
22
|
+
DA:34,1
|
|
23
|
+
DA:35,1
|
|
24
|
+
DA:39,1
|
|
25
|
+
DA:40,1
|
|
26
|
+
DA:41,1
|
|
27
|
+
DA:43,1
|
|
28
|
+
DA:45,1
|
|
29
|
+
DA:46,1
|
|
30
|
+
DA:48,1
|
|
31
|
+
DA:50,1
|
|
32
|
+
DA:51,1
|
|
33
|
+
DA:52,1
|
|
34
|
+
DA:55,1
|
|
35
|
+
DA:56,1
|
|
36
|
+
DA:57,1
|
|
37
|
+
DA:58,1
|
|
38
|
+
DA:59,1
|
|
39
|
+
DA:60,1
|
|
40
|
+
DA:61,1
|
|
41
|
+
DA:62,1
|
|
42
|
+
DA:70,1
|
|
43
|
+
DA:71,1
|
|
44
|
+
DA:72,1
|
|
45
|
+
DA:73,1
|
|
46
|
+
DA:74,1
|
|
47
|
+
DA:75,1
|
|
48
|
+
DA:76,1
|
|
49
|
+
DA:78,1
|
|
50
|
+
DA:82,1
|
|
51
|
+
DA:84,1
|
|
52
|
+
DA:85,1
|
|
53
|
+
DA:87,1
|
|
54
|
+
DA:89,1
|
|
55
|
+
DA:91,1
|
|
56
|
+
DA:95,1
|
|
57
|
+
DA:97,1
|
|
58
|
+
DA:101,1
|
|
59
|
+
DA:102,1
|
|
60
|
+
DA:103,1
|
|
61
|
+
DA:104,1
|
|
62
|
+
DA:105,1
|
|
63
|
+
DA:106,1
|
|
64
|
+
DA:107,1
|
|
65
|
+
DA:108,1
|
|
66
|
+
DA:109,1
|
|
67
|
+
DA:110,1
|
|
68
|
+
DA:113,1
|
|
69
|
+
DA:114,1
|
|
70
|
+
DA:115,1
|
|
71
|
+
DA:117,1
|
|
72
|
+
DA:120,1
|
|
73
|
+
DA:121,1
|
|
74
|
+
DA:123,1
|
|
75
|
+
DA:128,1
|
|
76
|
+
DA:129,3
|
|
77
|
+
DA:130,3
|
|
78
|
+
DA:131,3
|
|
79
|
+
DA:132,3
|
|
80
|
+
DA:133,3
|
|
81
|
+
DA:138,3
|
|
82
|
+
DA:141,1
|
|
83
|
+
DA:142,1
|
|
84
|
+
DA:148,1
|
|
85
|
+
DA:154,1
|
|
86
|
+
LF:79
|
|
87
|
+
LH:79
|
|
88
|
+
BRF:0
|
|
89
|
+
BRH:0
|
|
90
|
+
end_of_record
|
|
91
|
+
TN:
|
|
92
|
+
SF:src/outline/propertyViews.ts
|
|
93
|
+
FN:7,propertyViews
|
|
94
|
+
FN:28,viewsAddPropertyView
|
|
95
|
+
FNF:2
|
|
96
|
+
FNH:2
|
|
97
|
+
FNDA:10,propertyViews
|
|
98
|
+
FNDA:60,viewsAddPropertyView
|
|
99
|
+
DA:1,2
|
|
100
|
+
DA:2,2
|
|
101
|
+
DA:3,2
|
|
102
|
+
DA:7,2
|
|
103
|
+
DA:9,10
|
|
104
|
+
DA:15,10
|
|
105
|
+
DA:16,10
|
|
106
|
+
DA:18,10
|
|
107
|
+
DA:19,10
|
|
108
|
+
DA:20,10
|
|
109
|
+
DA:21,10
|
|
110
|
+
DA:22,10
|
|
111
|
+
DA:23,10
|
|
112
|
+
DA:24,10
|
|
113
|
+
DA:28,2
|
|
114
|
+
DA:29,60
|
|
115
|
+
DA:30,60
|
|
116
|
+
DA:32,60
|
|
117
|
+
DA:33,60
|
|
118
|
+
DA:35,60
|
|
119
|
+
LF:20
|
|
120
|
+
LH:20
|
|
121
|
+
BRDA:29,0,0,60
|
|
122
|
+
BRDA:33,1,0,60
|
|
123
|
+
BRF:2
|
|
124
|
+
BRH:2
|
|
125
|
+
end_of_record
|
|
126
|
+
TN:
|
|
127
|
+
SF:src/outline/viewAsImage.ts
|
|
128
|
+
FN:3,(anonymous_9)
|
|
129
|
+
FN:3,viewAsImage
|
|
130
|
+
FNF:2
|
|
131
|
+
FNH:2
|
|
132
|
+
FNDA:10,(anonymous_9)
|
|
133
|
+
FNDA:5,viewAsImage
|
|
134
|
+
DA:1,2
|
|
135
|
+
DA:3,10
|
|
136
|
+
DA:4,5
|
|
137
|
+
DA:10,5
|
|
138
|
+
DA:11,5
|
|
139
|
+
LF:5
|
|
140
|
+
LH:5
|
|
141
|
+
BRF:0
|
|
142
|
+
BRH:0
|
|
143
|
+
end_of_record
|
|
144
|
+
TN:
|
|
145
|
+
SF:src/outline/viewAsMbox.ts
|
|
146
|
+
FN:1,(anonymous_0)
|
|
147
|
+
FN:1,viewAsMbox
|
|
148
|
+
FNF:2
|
|
149
|
+
FNH:2
|
|
150
|
+
FNDA:10,(anonymous_0)
|
|
151
|
+
FNDA:1,viewAsMbox
|
|
152
|
+
DA:1,10
|
|
153
|
+
DA:2,1
|
|
154
|
+
DA:7,1
|
|
155
|
+
DA:9,1
|
|
156
|
+
DA:10,1
|
|
157
|
+
DA:11,1
|
|
158
|
+
DA:12,1
|
|
159
|
+
DA:13,1
|
|
160
|
+
LF:8
|
|
161
|
+
LH:8
|
|
162
|
+
BRDA:7,0,0,1
|
|
163
|
+
BRDA:7,0,1,0
|
|
164
|
+
BRDA:10,1,0,1
|
|
165
|
+
BRDA:10,1,1,0
|
|
166
|
+
BRF:4
|
|
167
|
+
BRH:2
|
|
168
|
+
end_of_record
|
|
169
|
+
TN:
|
|
170
|
+
SF:src/trustedApplications/trustedApplications.utils.ts
|
|
171
|
+
FN:4,getStatementsToDelete
|
|
172
|
+
FN:16,(anonymous_2)
|
|
173
|
+
FN:32,getStatementsToAdd
|
|
174
|
+
FN:44,(anonymous_4)
|
|
175
|
+
FN:45,(anonymous_5)
|
|
176
|
+
FN:49,generateRandomString
|
|
177
|
+
FNF:6
|
|
178
|
+
FNH:6
|
|
179
|
+
FNDA:3,getStatementsToDelete
|
|
180
|
+
FNDA:1,(anonymous_2)
|
|
181
|
+
FNDA:1,getStatementsToAdd
|
|
182
|
+
FNDA:2,(anonymous_4)
|
|
183
|
+
FNDA:2,(anonymous_5)
|
|
184
|
+
FNDA:1,generateRandomString
|
|
185
|
+
DA:1,1
|
|
186
|
+
DA:4,1
|
|
187
|
+
DA:10,3
|
|
188
|
+
DA:15,3
|
|
189
|
+
DA:17,1
|
|
190
|
+
DA:29,3
|
|
191
|
+
DA:32,1
|
|
192
|
+
DA:39,1
|
|
193
|
+
DA:40,1
|
|
194
|
+
DA:44,2
|
|
195
|
+
DA:45,2
|
|
196
|
+
DA:49,1
|
|
197
|
+
DA:50,1
|
|
198
|
+
LF:13
|
|
199
|
+
LH:13
|
|
200
|
+
BRF:0
|
|
201
|
+
BRH:0
|
|
202
|
+
end_of_record
|
package/lib/dataContentPane.js
CHANGED
|
@@ -173,6 +173,7 @@ var dataContentPane = exports.dataContentPane = {
|
|
|
173
173
|
}
|
|
174
174
|
for (var i = 0; i < roots.length; i++) {
|
|
175
175
|
var tr = myDocument.createElement('tr');
|
|
176
|
+
tr.setAttribute('style', "background-color: ".concat(i % 2 === 0 ? '#f0f0f0' : 'white', ";"));
|
|
176
177
|
rep.appendChild(tr);
|
|
177
178
|
var subjectTD = myDocument.createElement('td');
|
|
178
179
|
tr.appendChild(subjectTD);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataContentPane.js","names":["UI","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ns","dataContentPane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","session","store","findTypeURIs","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","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"],"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\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport const dataContentPane = {\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 (false) { // keep code\n alternativeRendering()\n } else {\n mainRendering()\n }\n return div\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"dataContentPane.js","names":["UI","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ns","dataContentPane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","session","store","findTypeURIs","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","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"],"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\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport const dataContentPane = {\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 tr.setAttribute('style', `background-color: ${i % 2 === 0 ? '#f0f0f0' : 'white'};`)\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 (false) { // keep code\n alternativeRendering()\n } else {\n mainRendering()\n }\n return div\n }\n}\n"],"mappings":";;;;;;;AAWA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA8B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAX9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAGA,IAAMW,EAAE,GAAGvB,EAAE,CAACuB,EAAE;AAET,IAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7BE,IAAI,EAAE1B,EAAE,CAAC2B,KAAK,CAACC,gBAAgB,GAAG,kBAAkB;EAEpDC,IAAI,EAAE,cAAc;EAEpBC,QAAQ,EAAE,CAACP,EAAE,CAACQ,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjCC,KAAK,EAAE,SAAPA,KAAKA,CAAYC,OAAO,EAAEC,OAAO,EAAE;IACjC,IACE,+CAA+C,IAC/CA,OAAO,CAACC,OAAO,CAACC,KAAK,CAACC,YAAY,CAACJ,OAAO,CAAC,EAC3C;MACA,OAAO,IAAI;IACb;IACA,IAAMrB,CAAC,GAAGsB,OAAO,CAACC,OAAO,CAACC,KAAK,CAACE,kBAAkB,CAChDC,SAAS,EACTA,SAAS,EACTA,SAAS,EACTN,OACF,CAAC,CAACO,MAAM;IACR,IAAI5B,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;IACxB,OAAO,QAAQ,GAAGA,CAAC,GAAG,GAAG;EAC3B,CAAC;EACD;AACF;AACA;AACA;AACA;EACE6B,kBAAkB,EAAE,SAASA,kBAAkBA,CAAEC,GAAG,EAAER,OAAO,EAAES,YAAY,EAAE;IAC3E,IAAMC,UAAU,GAAGV,OAAO,CAACW,GAAG;IAC9B;IACA,IAAMC,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,OAAO,CAAC;IAC7C,IAAMC,EAAE,GAAGhD,EAAE,CAACiD,GAAG,CAACC,UAAU,CAAChB,OAAO,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAMe,GAAG,GAAGH,EAAE,CAACI,YAAY,CAACV,GAAG,CAAC;IAChC,IAAIW,KAAK,GAAGF,GAAG,CAACE,KAAK;IACrB,IAAMC,QAAQ,GAAGH,GAAG,CAACG,QAAQ;IAC7B,IAAMC,YAAY,GAAGJ,GAAG,CAACI,YAAY;IACrC,KAAK,IAAMC,CAAC,IAAID,YAAY,EAAE;MAC5BE,OAAO,CAACC,GAAG,CAAC,iCAAiC,GAAGF,CAAC,CAAC;IACpD;IACA,IAAMG,UAAU,GAAG,CAAC,CAAC,EAAC;IACtB,IAAMC,gBAAgB,GAAG,CAAC,CAAC,EAAC;;IAE5B;IACA,SAASC,YAAYA,CAAE5B,OAAO,EAAE;MAC9B;MACA,IAAMa,GAAG,GAAGF,UAAU,CAACG,aAAa,CAAC,OAAO,CAAC;MAC7C,IAAIe,QAAQ,GAAG,IAAI;MACnB,IAAMpB,GAAG,GAAGY,QAAQ,CAACN,EAAE,CAACe,KAAK,CAAC9B,OAAO,CAAC,CAAC,EAAC;MACxC,IAAI,CAACS,GAAG,EAAE;QACR;QACAI,GAAG,CAACkB,WAAW,CAACpB,UAAU,CAACqB,cAAc,CAAC,KAAK,CAAC,CAAC,EAAC;QAClD,OAAOnB,GAAG;MACZ;MACAJ,GAAG,CAACwB,IAAI,CAAC,CAAC;MACV,IAAIC,IAAI,GAAG,CAAC;MACZ,IAAIC,WAAW,EAAC;MAChB,KAAK,IAAI/C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqB,GAAG,CAACF,MAAM,EAAEnB,CAAC,EAAE,EAAE;QACnC,IAAMgD,EAAE,GAAG3B,GAAG,CAACrB,CAAC,CAAC;QACjB,IAAMiD,EAAE,GAAG1B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;QACzC,IAAIsB,EAAE,CAACE,SAAS,CAACC,GAAG,KAAKV,QAAQ,EAAE;UACjC,IAAIA,QAAQ,IAAIK,IAAI,GAAG,CAAC,EAAE;YACxBC,WAAW,CAACK,YAAY,CAAC,SAAS,EAAE,EAAE,GAAGN,IAAI,CAAC;UAChD;UACAC,WAAW,GAAGxB,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;UAC5CqB,WAAW,CAACK,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;UACzC,IAAMC,MAAM,GAAG9B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;UAC5C2B,MAAM,CAACD,YAAY,CAAC,MAAM,EAAEJ,EAAE,CAACE,SAAS,CAACC,GAAG,CAAC;UAC7CE,MAAM,CAACC,gBAAgB,CACrB,OAAO,EACP3E,EAAE,CAAC4E,OAAO,CAACC,qBAAqB,EAChC,IACF,CAAC;UACDH,MAAM,CAACV,WAAW,CAChBpB,UAAU,CAACqB,cAAc,CACvBjE,EAAE,CAAC8E,KAAK,CAACC,oBAAoB,CAACV,EAAE,CAACE,SAAS,CAC5C,CACF,CAAC;UACDH,WAAW,CAACJ,WAAW,CAACU,MAAM,CAAC;UAC/BJ,EAAE,CAACN,WAAW,CAACI,WAAW,CAAC;UAC3BN,QAAQ,GAAGO,EAAE,CAACE,SAAS,CAACC,GAAG;UAC3BL,IAAI,GAAG,CAAC;QACV;QACAA,IAAI,EAAE;QACN,IAAMa,QAAQ,GAAGpC,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;QAC/CiC,QAAQ,CAAChB,WAAW,CAACiB,UAAU,CAACZ,EAAE,CAACa,MAAM,CAAC,CAAC;QAC3CZ,EAAE,CAACN,WAAW,CAACgB,QAAQ,CAAC;QACxBlC,GAAG,CAACkB,WAAW,CAACM,EAAE,CAAC;MACrB;MACA,IAAIR,QAAQ,IAAIK,IAAI,GAAG,CAAC,EAAEC,WAAW,CAACK,YAAY,CAAC,SAAS,EAAE,EAAE,GAAGN,IAAI,CAAC;MACxE,OAAOrB,GAAG;IACZ;;IAEA;IACA,SAASmC,UAAUA,CAAEE,GAAG,EAAE;MACxB,IAAIhC,GAAG,EAAEuB,MAAM;MACf,QAAQS,GAAG,CAACC,QAAQ;QAClB,KAAK,WAAW;UACdV,MAAM,GAAG9B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;UACtC2B,MAAM,CAACD,YAAY,CAAC,MAAM,EAAEU,GAAG,CAACX,GAAG,CAAC;UACpCE,MAAM,CAACC,gBAAgB,CACrB,OAAO,EACP3E,EAAE,CAAC4E,OAAO,CAACC,qBAAqB,EAChC,IACF,CAAC;UACDH,MAAM,CAACV,WAAW,CAACpB,UAAU,CAACqB,cAAc,CAACjE,EAAE,CAAC8E,KAAK,CAAC9C,KAAK,CAACmD,GAAG,CAAC,CAAC,CAAC;UAClE,OAAOT,MAAM;QAEf,KAAK,SAAS;UACZ,IAAI,CAACS,GAAG,CAACE,QAAQ,IAAI,CAACF,GAAG,CAACE,QAAQ,CAACb,GAAG,EAAE;YACtCrB,GAAG,GAAGP,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;YACrCI,GAAG,CAACsB,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC;YACnDtB,GAAG,CAACmC,WAAW,GAAGH,GAAG,CAACI,KAAK;YAC3B,OAAOpC,GAAG;UACZ,CAAC,MAAM,IACLgC,GAAG,CAACE,QAAQ,CAACb,GAAG,KAChB,uDAAuD,EACvD;YACArB,GAAG,GAAGP,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;YACrCI,GAAG,CAACsB,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;YAC1CtB,GAAG,CAACqC,SAAS,GAAGL,GAAG,CAACI,KAAK,EAAC;YAC1B,OAAOpC,GAAG;UACZ;UACA,OAAOP,UAAU,CAACqB,cAAc,CAACkB,GAAG,CAACI,KAAK,CAAC;QAAC;;QAE9C,KAAK,WAAW;UAAE;YAChB,IAAIJ,GAAG,CAACM,IAAI,CAAC,CAAC,IAAI9B,UAAU,EAAE;cAC5B;cACAC,gBAAgB,CAACuB,GAAG,CAACM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;cACnC,IAAMf,OAAM,GAAG9B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;cAC5C2B,OAAM,CAACD,YAAY,CAAC,MAAM,EAAE,GAAG,GAAGU,GAAG,CAACM,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;cACtDhB,OAAM,CAACD,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;cACxCC,OAAM,CAACY,WAAW,GAAG,GAAG,GAAGH,GAAG,CAACM,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;cAC9C,OAAOhB,OAAM;YACf;YACAf,UAAU,CAACwB,GAAG,CAACM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAAC;YAC9B,IAAME,QAAQ,GAAG9B,YAAY,CAACsB,GAAG,CAAC;YAClCxB,UAAU,CAACwB,GAAG,CAACM,IAAI,CAAC,CAAC,CAAC,GAAGE,QAAQ,EAAC;YAClC,IACE3F,EAAE,CAAC8E,KAAK,CAACc,QAAQ,CAACD,QAAQ,EAAE,OAAO,CAAC,IACpC3F,EAAE,CAAC8E,KAAK,CAACc,QAAQ,CAACD,QAAQ,EAAE,OAAO,CAAC,CAACE,KAAK,CAACC,eAAe,KAC1D,OAAO,EACP;cACAH,QAAQ,CAACE,KAAK,CAACC,eAAe,GAAG,MAAM;YACzC,CAAC,MAAM;cACLH,QAAQ,CAACE,KAAK,CAACC,eAAe,GAAG,OAAO;YAC1C;YACA,OAAOH,QAAQ;UACjB;QACA,KAAK,YAAY;UACfxC,GAAG,GAAGP,UAAU,CAACG,aAAa,CAAC,OAAO,CAAC;UACvCI,GAAG,CAACsB,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC;UAC/C,KAAK,IAAIpD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8D,GAAG,CAACY,QAAQ,CAACvD,MAAM,EAAEnB,CAAC,EAAE,EAAE;YAC5C,IAAMiD,EAAE,GAAG1B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;YACzCI,GAAG,CAACa,WAAW,CAACM,EAAE,CAAC;YACnBA,EAAE,CAACN,WAAW,CAACiB,UAAU,CAACE,GAAG,CAACY,QAAQ,CAAC1E,CAAC,CAAC,CAAC,CAAC;UAC7C;UACA,OAAO8B,GAAG;QACZ,KAAK,OAAO;UACVA,GAAG,GAAGjB,OAAO,CAACC,OAAO,CAAC6D,YAAY,CAC/BC,MAAM,CAAC,cAAc,CAAC,CACtBxD,kBAAkB,CAAC0C,GAAG,CAACe,UAAU,EAAEhE,OAAO,CAAC;UAC9CiB,GAAG,CAACsB,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;UAC1C,OAAOtB,GAAG;QACZ,KAAK,UAAU;UACbA,GAAG,GAAGP,UAAU,CAACqB,cAAc,CAAC,GAAG,GAAGkB,GAAG,CAACX,GAAG,CAAC;UAC9C,OAAOrB,GAAG;MACd;MACA,MAAM,IAAIgD,KAAK,CAAC,uBAAuB,GAAGhB,GAAG,CAACC,QAAQ,CAAC;IACzD;;IAEA;;IAEA,IAAIzC,YAAY,EAAE;MAChBU,KAAK,GAAGV,YAAY,CAACyD,MAAM,CACzB/C,KAAK,CAACgD,MAAM,CAAC,UAAU7C,CAAC,EAAE;QACxB,KAAK,IAAInC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,YAAY,CAACH,MAAM,EAAEnB,CAAC,EAAE,EAAE;UAC5C;UACA,IAAImC,CAAC,CAAC8C,QAAQ,CAAC3D,YAAY,CAACtB,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;QAC/C;QACA,OAAO,IAAI;MACb,CAAC,CACH,CAAC;IACH;IACA,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,KAAK,CAACb,MAAM,EAAEnB,CAAC,EAAE,EAAE;MACrC,IAAMiD,EAAE,GAAG1B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MACzCuB,EAAE,CAACG,YAAY,CAAC,OAAO,uBAAA2B,MAAA,CAAuB/E,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,OAAO,MAAG,CAAC;MACnFyB,GAAG,CAACkB,WAAW,CAACM,EAAE,CAAC;MACnB,IAAMiC,SAAS,GAAG3D,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MAChDuB,EAAE,CAACN,WAAW,CAACuC,SAAS,CAAC;MACzB,IAAMC,MAAM,GAAG5D,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;MAC7CuB,EAAE,CAACN,WAAW,CAACwC,MAAM,CAAC;MACtB,IAAMC,IAAI,GAAGpD,KAAK,CAAChC,CAAC,CAAC;MACrB,IAAIoF,IAAI,CAACrB,QAAQ,KAAK,WAAW,EAAE;QACjCmB,SAAS,CAACvC,WAAW,CAACpB,UAAU,CAACqB,cAAc,CAACjE,EAAE,CAAC8E,KAAK,CAAC9C,KAAK,CAACyE,IAAI,CAAC,CAAC,CAAC,EAAC;MACzE,CAAC,MAAM;QACLF,SAAS,CAACvC,WAAW,CAACiB,UAAU,CAACwB,IAAI,CAAC,CAAC,EAAC;MAC1C;MACAD,MAAM,CAACxC,WAAW,CAACH,YAAY,CAAC4C,IAAI,CAAC,CAAC;IACxC;IACA,KAAK,IAAMC,GAAG,IAAI9C,gBAAgB,EAAE;MAClC;MACA,IAAM+C,KAAK,GAAGhD,UAAU,CAAC+C,GAAG,CAAC;MAC7B;MACA,IAAMhC,MAAM,GAAG9B,UAAU,CAACG,aAAa,CAAC,GAAG,CAAC;MAC5C2B,MAAM,CAACD,YAAY,CAAC,IAAI,EAAEiC,GAAG,CAAChB,KAAK,CAAC,CAAC,CAAC,CAAC;MACvChB,MAAM,CAACD,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;MACxCC,MAAM,CAACY,WAAW,GAAGoB,GAAG,CAAChB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;MACvCiB,KAAK,CAACC,YAAY,CAAClC,MAAM,EAAEiC,KAAK,CAACE,UAAU,CAAC;IAC9C;IACA,OAAO/D,GAAG;EACZ,CAAC;EAAE;EACH;EACAgE,MAAM,EAAE,SAARA,MAAMA,CAAY7E,OAAO,EAAEC,OAAO,EAAE;IAClC,IAAMU,UAAU,GAAGV,OAAO,CAACW,GAAG;IAE9B,SAASkE,oBAAoBA,CAAA,EAAI;MAC/B,IAAM/D,EAAE,GAAGhD,EAAE,CAACiD,GAAG,CAACC,UAAU,CAAChB,OAAO,CAACC,OAAO,CAACC,KAAK,CAAC;MACnD,IAAMe,GAAG,GAAGH,EAAE,CAACI,YAAY,CAACV,GAAG,CAAC;MAChC,IAAMW,KAAK,GAAGF,GAAG,CAACE,KAAK;MACvB,IAAM2D,CAAC,GAAG,CAAC,CAAC;MACZA,CAAC,CAACF,MAAM,GAAG,UAAUG,EAAE,EAAE;QACvB,IAAMC,GAAG,GAAGtE,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;QAC3CmE,GAAG,CAACzC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC;QAC/C,IAAM0C,KAAK,GAAGC,EAAE,CAAC9E,kBAAkB,CAAC2E,EAAE,EAAE1E,SAAS,EAAEA,SAAS,EAAEN,OAAO,CAAC;QACtEoF,QAAQ,CAACC,iBAAiB,CAACJ,GAAG,EAAEC,KAAK,EAAE,KAAK,EAAE,UAC5CI,KAAK,EACLC,QAAQ,EACR;UACA,OAAO,IAAI;QACb,CAAC,CAAC;QACF,OAAON,GAAG;MACZ,CAAC;MACD,KAAK,IAAI7F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,KAAK,CAACb,MAAM,EAAEnB,CAAC,EAAE,EAAE;QACrC,IAAMiD,EAAE,GAAG1B,UAAU,CAACG,aAAa,CAAC,IAAI,CAAC;QACzC,IAAM0D,IAAI,GAAGpD,KAAK,CAAChC,CAAC,CAAC;QACrBiD,EAAE,CAACuB,KAAK,CAAC4B,aAAa,GAAG,KAAK;QAC9B,IAAMC,EAAE,GAAGL,QAAQ,CAACM,eAAe,CAAClB,IAAI,EAAElE,SAAS,EAAE+B,EAAE,CAAC;QACxDA,EAAE,CAACN,WAAW,CAAC0D,EAAE,CAAC;QAClBR,GAAG,CAAClD,WAAW,CAACM,EAAE,CAAC;QACnB+C,QAAQ,CAACO,aAAa,CAACF,EAAE,EAAEjB,IAAI,EAAE;UAAEoB,IAAI,EAAEb;QAAE,CAAC,CAAC;MAC/C;IACF;IAEA,SAASc,aAAaA,CAAA,EAAI;MACxB,IAAMnF,YAAY,GAAG,EAAE,EAAC;MACxB,IAAIyE,EAAE,CAACW,KAAK,CAAC9F,OAAO,EAAEM,SAAS,EAAEA,SAAS,EAAEN,OAAO,CAAC,EAAE;QACpDU,YAAY,CAACqF,IAAI,CAAC/F,OAAO,CAAC;MAC5B;MACA;MACA,IAAMgG,EAAE,GAAGb,EAAE,CAACc,GAAG,CAACjG,OAAO,EAAEjC,EAAE,CAACuB,EAAE,CAAC4G,IAAI,CAAC,cAAc,CAAC,EAAE5F,SAAS,EAAEN,OAAO,CAAC;MAC1E,IAAIgG,EAAE,EAAEtF,YAAY,CAACqF,IAAI,CAACC,EAAE,CAAC;MAC7Bf,GAAG,CAAClD,WAAW,CACb9B,OAAO,CAACC,OAAO,CAAC6D,YAAY,CACzBC,MAAM,CAAC,cAAc,CAAC,CACtBxD,kBAAkB,CAACC,GAAG,EAAER,OAAO,EAAES,YAAY,CAClD,CAAC;IACH;IAEA,IAAM0E,QAAQ,GAAGnF,OAAO,CAACkG,WAAW,CAACxF,UAAU,CAAC;IAChD,IAAMwE,EAAE,GAAGlF,OAAO,CAACC,OAAO,CAACC,KAAK;IAChC,IAAM8E,GAAG,GAAGtE,UAAU,CAACG,aAAa,CAAC,KAAK,CAAC;IAC3CmE,GAAG,CAACzC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAC5C;IACA;IACA;IACA,IAAM/B,GAAG,GAAG0E,EAAE,CAAC9E,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEN,OAAO,CAAC,EAAC;;IAE5E,IAAI,KAAK,EAAE;MAAE;MACX8E,oBAAoB,CAAC,CAAC;IACxB,CAAC,MAAM;MACLe,aAAa,CAAC,CAAC;IACjB;IACA,OAAOZ,GAAG;EACZ;AACF,CAAC","ignoreList":[]}
|
|
@@ -88,14 +88,15 @@ var _default = exports["default"] = {
|
|
|
88
88
|
}
|
|
89
89
|
newPaneOptions.newInstance = newInstance; // Save for creation system
|
|
90
90
|
|
|
91
|
-
console.log('New dokieli will make: ' + newInstance)
|
|
91
|
+
// console.log('New dokieli will make: ' + newInstance)
|
|
92
|
+
|
|
92
93
|
var htmlContents = _new["default"];
|
|
93
94
|
var filename = newInstance.uri.split('/').slice(-1)[0];
|
|
94
95
|
filename = decodeURIComponent(filename.split('.')[0]);
|
|
95
96
|
var encodedTitle = filename.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
96
97
|
htmlContents = htmlContents.replace('<title>', '<title>' + encodedTitle);
|
|
97
98
|
htmlContents = htmlContents.replace('</article>', '<h1>' + encodedTitle + '</h1></article>');
|
|
98
|
-
console.log('@@ New HTML for Dok:' + htmlContents)
|
|
99
|
+
// console.log('@@ New HTML for Dok:' + htmlContents)
|
|
99
100
|
return new Promise(function (resolve) {
|
|
100
101
|
kb.fetcher.webOperation('PUT', newInstance.uri, {
|
|
101
102
|
data: htmlContents,
|
|
@@ -104,7 +105,7 @@ var _default = exports["default"] = {
|
|
|
104
105
|
console.log('new Dokieli document created at ' + newPaneOptions.newInstance);
|
|
105
106
|
resolve(newPaneOptions);
|
|
106
107
|
})["catch"](function (err) {
|
|
107
|
-
console.log('Error creating
|
|
108
|
+
console.log('Error creating dokieli doc at ' + newPaneOptions.newInstance + ': ' + err);
|
|
108
109
|
});
|
|
109
110
|
});
|
|
110
111
|
},
|
|
@@ -117,8 +118,23 @@ var _default = exports["default"] = {
|
|
|
117
118
|
// @@ When we can, use CSP to turn off scripts within the iframe
|
|
118
119
|
div.setAttribute('class', 'docView');
|
|
119
120
|
var iframe = myDocument.createElement('IFRAME');
|
|
120
|
-
|
|
121
|
-
|
|
121
|
+
|
|
122
|
+
// get with authenticated fetch
|
|
123
|
+
kb.fetcher._fetch(subject.uri).then(function (response) {
|
|
124
|
+
return response.blob();
|
|
125
|
+
}).then(function (blob) {
|
|
126
|
+
var objectURL = URL.createObjectURL(blob);
|
|
127
|
+
iframe.setAttribute('src', objectURL); // w640 h480 //
|
|
128
|
+
iframe.setAttribute('type', blob.type);
|
|
129
|
+
iframe.setAttribute('class', 'doc');
|
|
130
|
+
return blob.text();
|
|
131
|
+
}).then(function (blobText) {
|
|
132
|
+
var newLines = blobText.includes('<script src="https://dokie.li/scripts/dokieli.js">') ? -10 : 5;
|
|
133
|
+
var lines = Math.min(30, blobText.split(/\n/).length + newLines);
|
|
134
|
+
iframe.setAttribute('style', "border: 1px solid; padding: 1em; height:".concat(lines, "em; width:800px; resize: both; overflow: auto;"));
|
|
135
|
+
})["catch"](function (err) {
|
|
136
|
+
console.log(err);
|
|
137
|
+
});
|
|
122
138
|
var cts = kb.fetcher.getHeader(subject.doc(), 'content-type');
|
|
123
139
|
var ct = cts ? cts[0] : null;
|
|
124
140
|
if (ct) {
|
|
@@ -135,9 +151,6 @@ var _default = exports["default"] = {
|
|
|
135
151
|
|
|
136
152
|
// iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static
|
|
137
153
|
|
|
138
|
-
iframe.setAttribute('style', 'resize = both; height: 40em; width:40em;'); // @@ improve guess
|
|
139
|
-
// iframe.setAttribute('height', '480')
|
|
140
|
-
// iframe.setAttribute('width', '640')
|
|
141
154
|
var tr = myDocument.createElement('tr');
|
|
142
155
|
tr.appendChild(iframe);
|
|
143
156
|
div.appendChild(tr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dokieliPane.js","names":["UI","_interopRequireWildcard","require","$rdf","mime","_new","_interopRequireDefault","e","__esModule","_getRequireWildcardCache","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_default","exports","icon","icons","iconBase","name","mintClass","ns","solid","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","findTypeURIs","Util","mediaTypeClass","uri","link","mintNew","newPaneOptions","newInstance","newBase","endsWith","slice","sym","contentType","lookup","includes","console","log","htmlContents","DOKIELI_TEMPLATE","filename","split","decodeURIComponent","encodedTitle","replace","Promise","resolve","webOperation","data","then","err","render","myDocument","dom","div","createElement","setAttribute","iframe","doc","ct","tr","appendChild"],"sources":["../../src/dokieli/dokieliPane.js"],"sourcesContent":["/* Human-readable editable \"Dokieli\" Pane\n **\n ** This outline pane contains the document contents for a Dokieli document\n ** The dokeili system allows the user to edit a document including anotations\n ** review. It does not use turtle, but RDF/a\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nimport * as mime from 'mime-types'\n\n// const DOKIELI_TEMPLATE_URI = 'https://dokie.li/new' // Copy to make new dok\n\nimport DOKIELI_TEMPLATE from './new.js' // Distributed with this library\n\nexport default {\n icon: UI.icons.iconBase + 'dokieli-logo.png', // @@ improve? more like doccument?\n\n name: 'Dokieli',\n\n mintClass: UI.ns.solid('DokieliDocument'), // @@ A better class?\n\n label: function (subject, context) {\n const kb = context.session.store\n const ns = UI.ns\n const allowed = [\n // 'text/plain',\n 'text/html',\n 'application/xhtml+xml'\n // 'image/png', 'image/jpeg', 'application/pdf',\n // 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data coul d come from a fetch OR from ldp comtaimner\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if ($rdf.Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'Dok'\n }\n\n return null\n },\n\n // Create a new folder in a Solid system, with a dokieli editable document in it\n mintNew: function (context, newPaneOptions) {\n const kb = context.session.store\n let newInstance = newPaneOptions.newInstance\n if (!newInstance) {\n let uri = newPaneOptions.newBase\n if (uri.endsWith('/')) {\n uri = uri.slice(0, -1)\n newPaneOptions.newBase = uri\n }\n newInstance = kb.sym(uri)\n }\n\n const contentType = mime.lookup(newInstance.uri)\n if (!contentType || !contentType.includes('html')) {\n newInstance = $rdf.sym(newInstance.uri + '.html')\n }\n newPaneOptions.newInstance = newInstance // Save for creation system\n\n console.log('New dokieli will make: ' + newInstance)\n\n let htmlContents = DOKIELI_TEMPLATE\n let filename = newInstance.uri.split('/').slice(-1)[0]\n filename = decodeURIComponent(filename.split('.')[0])\n const encodedTitle = filename\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n htmlContents = htmlContents.replace('<title>', '<title>' + encodedTitle)\n htmlContents = htmlContents.replace(\n '</article>',\n '<h1>' + encodedTitle + '</h1></article>'\n )\n console.log('@@ New HTML for Dok:' + htmlContents)\n return new Promise(function (resolve) {\n kb.fetcher\n .webOperation('PUT', newInstance.uri, {\n data: htmlContents,\n contentType: 'text/html'\n })\n .then(function () {\n console.log(\n 'new Dokieli document created at ' + newPaneOptions.newInstance\n )\n resolve(newPaneOptions)\n })\n .catch(function (err) {\n console.log(\n 'Error creating dokelili dok at ' +\n newPaneOptions.newInstance +\n ': ' +\n err\n )\n })\n })\n },\n\n // Derived from: humanReadablePane .. share code?\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const iframe = myDocument.createElement('IFRAME')\n iframe.setAttribute('src', subject.uri) // allow-same-origin\n iframe.setAttribute('class', 'doc')\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n console.log('dokieliPane: c-t:' + ct)\n } else {\n console.log('dokieliPane: unknown content-type?')\n }\n\n // @@ NOte beflow - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can;'t have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n iframe.setAttribute('style', 'resize = both; height: 40em; width:40em;') // @@ improve guess\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('tr')\n tr.appendChild(iframe)\n div.appendChild(tr)\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"dokieliPane.js","names":["UI","_interopRequireWildcard","require","$rdf","mime","_new","_interopRequireDefault","e","__esModule","_getRequireWildcardCache","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_default","exports","icon","icons","iconBase","name","mintClass","ns","solid","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","findTypeURIs","Util","mediaTypeClass","uri","link","mintNew","newPaneOptions","newInstance","newBase","endsWith","slice","sym","contentType","lookup","includes","htmlContents","DOKIELI_TEMPLATE","filename","split","decodeURIComponent","encodedTitle","replace","Promise","resolve","webOperation","data","then","console","log","err","render","myDocument","dom","div","createElement","setAttribute","iframe","_fetch","response","blob","objectURL","URL","createObjectURL","type","text","blobText","newLines","lines","Math","min","concat","doc","ct","tr","appendChild"],"sources":["../../src/dokieli/dokieliPane.js"],"sourcesContent":["/* Human-readable editable \"Dokieli\" Pane\n **\n ** This outline pane contains the document contents for a Dokieli document\n ** The dokeili system allows the user to edit a document including anotations\n ** review. It does not use turtle, but RDF/a\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nimport * as mime from 'mime-types'\n\n// const DOKIELI_TEMPLATE_URI = 'https://dokie.li/new' // Copy to make new dok\n\nimport DOKIELI_TEMPLATE from './new.js' // Distributed with this library\n\nexport default {\n icon: UI.icons.iconBase + 'dokieli-logo.png', // @@ improve? more like doccument?\n\n name: 'Dokieli',\n\n mintClass: UI.ns.solid('DokieliDocument'), // @@ A better class?\n\n label: function (subject, context) {\n const kb = context.session.store\n const ns = UI.ns\n const allowed = [\n // 'text/plain',\n 'text/html',\n 'application/xhtml+xml'\n // 'image/png', 'image/jpeg', 'application/pdf',\n // 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data coul d come from a fetch OR from ldp comtaimner\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if ($rdf.Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'Dok'\n }\n\n return null\n },\n\n // Create a new folder in a Solid system, with a dokieli editable document in it\n mintNew: function (context, newPaneOptions) {\n const kb = context.session.store\n let newInstance = newPaneOptions.newInstance\n if (!newInstance) {\n let uri = newPaneOptions.newBase\n if (uri.endsWith('/')) {\n uri = uri.slice(0, -1)\n newPaneOptions.newBase = uri\n }\n newInstance = kb.sym(uri)\n }\n\n const contentType = mime.lookup(newInstance.uri)\n if (!contentType || !contentType.includes('html')) {\n newInstance = $rdf.sym(newInstance.uri + '.html')\n }\n newPaneOptions.newInstance = newInstance // Save for creation system\n\n // console.log('New dokieli will make: ' + newInstance)\n\n let htmlContents = DOKIELI_TEMPLATE\n let filename = newInstance.uri.split('/').slice(-1)[0]\n filename = decodeURIComponent(filename.split('.')[0])\n const encodedTitle = filename\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n htmlContents = htmlContents.replace('<title>', '<title>' + encodedTitle)\n htmlContents = htmlContents.replace(\n '</article>',\n '<h1>' + encodedTitle + '</h1></article>'\n )\n // console.log('@@ New HTML for Dok:' + htmlContents)\n return new Promise(function (resolve) {\n kb.fetcher\n .webOperation('PUT', newInstance.uri, {\n data: htmlContents,\n contentType: 'text/html'\n })\n .then(function () {\n console.log(\n 'new Dokieli document created at ' + newPaneOptions.newInstance\n )\n resolve(newPaneOptions)\n })\n .catch(function (err) {\n console.log(\n 'Error creating dokieli doc at ' +\n newPaneOptions.newInstance +\n ': ' +\n err\n )\n })\n })\n },\n\n // Derived from: humanReadablePane .. share code?\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const iframe = myDocument.createElement('IFRAME')\n\n // get with authenticated fetch\n kb.fetcher._fetch(subject.uri)\n .then(function(response) {\n return response.blob()\n })\n .then(function(blob) {\n const objectURL = URL.createObjectURL(blob)\n iframe.setAttribute('src', objectURL) // w640 h480 //\n iframe.setAttribute('type', blob.type)\n iframe.setAttribute('class', 'doc')\n return blob.text()\n })\n .then(function(blobText) {\n const newLines = blobText.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ? -10 : 5\n const lines = Math.min(30, blobText.split(/\\n/).length + newLines)\n iframe.setAttribute('style', `border: 1px solid; padding: 1em; height:${lines}em; width:800px; resize: both; overflow: auto;`)\n })\n .catch(err => { console.log(err) })\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n console.log('dokieliPane: c-t:' + ct)\n } else {\n console.log('dokieliPane: unknown content-type?')\n }\n\n // @@ NOte beflow - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can;'t have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n const tr = myDocument.createElement('tr')\n tr.appendChild(iframe)\n div.appendChild(tr)\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
package/lib/humanReadablePane.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -8,9 +7,8 @@ exports["default"] = void 0;
|
|
|
8
7
|
var _solidUi = require("solid-ui");
|
|
9
8
|
var _rdflib = require("rdflib");
|
|
10
9
|
var _marked = require("marked");
|
|
11
|
-
var
|
|
12
|
-
function
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
10
|
+
var _dompurify = _interopRequireDefault(require("dompurify"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
12
|
/* Human-readable Pane
|
|
15
13
|
**
|
|
16
14
|
** This outline pane contains the document contents for an HTML document
|
|
@@ -82,7 +80,7 @@ var humanReadablePane = {
|
|
|
82
80
|
var markdownText = response.responseText;
|
|
83
81
|
var lines = Math.min(30, markdownText.split(/\n/).length + 5);
|
|
84
82
|
var res = _marked.marked.parse(markdownText);
|
|
85
|
-
var clean =
|
|
83
|
+
var clean = _dompurify["default"].sanitize(res);
|
|
86
84
|
frame.innerHTML = clean;
|
|
87
85
|
frame.setAttribute('class', 'doc');
|
|
88
86
|
frame.setAttribute('style', "border: 1px solid; padding: 1em; height: ".concat(lines, "em; width: 800px; resize: both; overflow: auto;"));
|
|
@@ -90,21 +88,23 @@ var humanReadablePane = {
|
|
|
90
88
|
};
|
|
91
89
|
if (ct === 'text/markdown') {
|
|
92
90
|
markdownHtml();
|
|
93
|
-
} else
|
|
91
|
+
} else {
|
|
94
92
|
// get with authenticated fetch
|
|
95
93
|
kb.fetcher._fetch(subject.uri).then(function (response) {
|
|
96
94
|
return response.blob();
|
|
97
95
|
}).then(function (blob) {
|
|
98
96
|
var objectURL = URL.createObjectURL(blob);
|
|
99
|
-
frame.setAttribute('src', objectURL);
|
|
97
|
+
frame.setAttribute('src', objectURL);
|
|
98
|
+
frame.setAttribute('type', blob.type);
|
|
100
99
|
frame.setAttribute('class', 'doc');
|
|
101
|
-
|
|
100
|
+
return blob.type.startsWith('text') ? blob.text() : '';
|
|
101
|
+
}).then(function (blobText) {
|
|
102
|
+
var newLines = blobText.includes('<script src="https://dokie.li/scripts/dokieli.js">') ? -10 : 5;
|
|
103
|
+
var lines = Math.min(30, blobText.split(/\n/).length + newLines);
|
|
104
|
+
frame.setAttribute('style', "border: 1px solid; padding: 1em; height:".concat(lines, "em; width:800px; resize: both; overflow: auto;"));
|
|
102
105
|
});
|
|
103
|
-
} else {
|
|
104
|
-
frame.setAttribute('src', subject.uri); // allow-same-origin
|
|
105
|
-
frame.setAttribute('class', 'doc');
|
|
106
|
-
frame.setAttribute('style', 'resize = both; height:120em; width:80em;');
|
|
107
106
|
}
|
|
107
|
+
|
|
108
108
|
// @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.
|
|
109
109
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
|
|
110
110
|
// You can't have any sandbox and allow plugins.
|
|
@@ -113,8 +113,6 @@ var humanReadablePane = {
|
|
|
113
113
|
|
|
114
114
|
// iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static
|
|
115
115
|
|
|
116
|
-
// iframe.setAttribute('height', '480')
|
|
117
|
-
// iframe.setAttribute('width', '640')
|
|
118
116
|
var tr = myDocument.createElement('TR');
|
|
119
117
|
tr.appendChild(frame);
|
|
120
118
|
div.appendChild(tr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanReadablePane.js","names":["_solidUi","require","_rdflib","_marked","DOMPurify","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","humanReadablePane","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","findTypeURIs","Util","mediaTypeClass","uri","ns","link","render","myDocument","dom","div","createElement","doc","ct","console","log","setAttribute","element","frame","markdownHtml","webOperation","then","response","markdownText","responseText","lines","Math","min","split","res","marked","parse","clean","sanitize","innerHTML","concat","_fetch","blob","objectURL","URL","createObjectURL","tr","appendChild","_default","exports"],"sources":["../src/humanReadablePane.js"],"sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nimport { icons, ns } from 'solid-ui'\nimport { Util } from 'rdflib'\nimport { marked } from 'marked'\nimport * as DOMPurify from 'dompurify'\n\nconst humanReadablePane = {\n icon: icons.originalIconBase + 'tango/22-text-x-generic.png',\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if (Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n // console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const element = ct === 'text/markdown' ? 'DIV' : 'IFRAME'\n const frame = myDocument.createElement(element)\n\n // render markdown to html\n const markdownHtml = function () {\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const markdownText = response.responseText\n const lines = Math.min(30, markdownText.split(/\\n/).length + 5)\n const res = marked.parse(markdownText)\n const clean = DOMPurify.sanitize(res)\n frame.innerHTML = clean\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n })\n }\n\n if (ct === 'text/markdown') {\n markdownHtml()\n } else if (ct !== 'text/html') {\n // get with authenticated fetch\n kb.fetcher._fetch(subject.uri)\n .then(function(response) {\n return response.blob()\n })\n .then(function(blob) {\n const objectURL = URL.createObjectURL(blob)\n frame.setAttribute('src', objectURL) // w640 h480 //\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height:120em; width:80em; resize: both; overflow: auto;`)\n })\n } else {\n frame.setAttribute('src', subject.uri) // allow-same-origin\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', 'resize = both; height:120em; width:80em;')\n }\n // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can't have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n // iframe.setAttribute('height', '480')\n // iframe.setAttribute('width', '640')\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n return div\n }\n}\n\nexport default humanReadablePane\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"humanReadablePane.js","names":["_solidUi","require","_rdflib","_marked","_dompurify","_interopRequireDefault","e","__esModule","humanReadablePane","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","allowed","hasContentTypeIn","x","displayables","cts","fetcher","getHeader","j","length","k","indexOf","hasContentTypeIn2","t","findTypeURIs","Util","mediaTypeClass","uri","ns","link","render","myDocument","dom","div","createElement","doc","ct","console","log","setAttribute","element","frame","markdownHtml","webOperation","then","response","markdownText","responseText","lines","Math","min","split","res","marked","parse","clean","DOMPurify","sanitize","innerHTML","concat","_fetch","blob","objectURL","URL","createObjectURL","type","startsWith","text","blobText","newLines","includes","tr","appendChild","_default","exports"],"sources":["../src/humanReadablePane.js"],"sourcesContent":["/* Human-readable Pane\n **\n ** This outline pane contains the document contents for an HTML document\n ** This is for peeking at a page, because the user might not want to leave the data browser.\n */\nimport { icons, ns } from 'solid-ui'\nimport { Util } from 'rdflib'\nimport { marked } from 'marked'\nimport DOMPurify from 'dompurify';\n\nconst humanReadablePane = {\n icon: icons.originalIconBase + 'tango/22-text-x-generic.png',\n\n name: 'humanReadable',\n\n label: function (subject, context) {\n const kb = context.session.store\n\n // See also the source pane, which has lower precedence.\n\n const allowed = [\n 'text/plain',\n 'text/html',\n 'text/markdown',\n 'application/xhtml+xml',\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'video/mp4'\n ]\n\n const hasContentTypeIn = function (kb, x, displayables) {\n const cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n for (let j = 0; j < cts.length; j++) {\n for (let k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n\n // This data could come from a fetch OR from ldp container\n const hasContentTypeIn2 = function (kb, x, displayables) {\n const t = kb.findTypeURIs(subject)\n for (let k = 0; k < displayables.length; k++) {\n if (Util.mediaTypeClass(displayables[k]).uri in t) {\n return true\n }\n }\n return false\n }\n\n if (!subject.uri) return null // no bnodes\n\n const t = kb.findTypeURIs(subject)\n if (t[ns.link('WebPage').uri]) return 'view'\n\n if (\n hasContentTypeIn(kb, subject, allowed) ||\n hasContentTypeIn2(kb, subject, allowed)\n ) {\n return 'View'\n }\n\n return null\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n const kb = context.session.store\n\n const cts = kb.fetcher.getHeader(subject.doc(), 'content-type')\n const ct = cts ? cts[0] : null\n if (ct) {\n // console.log('humanReadablePane: c-t:' + ct)\n } else {\n console.log('humanReadablePane: unknown content-type?')\n }\n\n // @@ When we can, use CSP to turn off scripts within the iframe\n div.setAttribute('class', 'docView')\n const element = ct === 'text/markdown' ? 'DIV' : 'IFRAME'\n const frame = myDocument.createElement(element)\n\n // render markdown to html\n const markdownHtml = function () {\n kb.fetcher.webOperation('GET', subject.uri).then(response => {\n const markdownText = response.responseText\n const lines = Math.min(30, markdownText.split(/\\n/).length + 5)\n const res = marked.parse(markdownText)\n const clean = DOMPurify.sanitize(res)\n frame.innerHTML = clean\n frame.setAttribute('class', 'doc')\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height: ${lines}em; width: 800px; resize: both; overflow: auto;`)\n })\n }\n\n if (ct === 'text/markdown') {\n markdownHtml()\n } else {\n // get with authenticated fetch\n kb.fetcher._fetch(subject.uri)\n .then(function(response) {\n return response.blob()\n })\n .then(function(blob) {\n const objectURL = URL.createObjectURL(blob)\n frame.setAttribute('src', objectURL)\n frame.setAttribute('type', blob.type)\n frame.setAttribute('class', 'doc')\n return blob.type.startsWith('text') ? blob.text() : ''\n })\n .then(function(blobText) {\n const newLines = blobText.includes('<script src=\"https://dokie.li/scripts/dokieli.js\">') ? -10 : 5\n const lines = Math.min(30, blobText.split(/\\n/).length + newLines)\n frame.setAttribute('style', `border: 1px solid; padding: 1em; height:${lines}em; width:800px; resize: both; overflow: auto;`)\n })\n }\n\n // @@ Note below - if we set ANY sandbox, then Chrome and Safari won't display it if it is PDF.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe\n // You can't have any sandbox and allow plugins.\n // We could sandbox only HTML files I suppose.\n // HTML5 bug: https://lists.w3.org/Archives/Public/public-html/2011Jun/0330.html\n\n // iframe.setAttribute('sandbox', 'allow-same-origin allow-forms'); // allow-scripts ?? no documents should be static\n\n const tr = myDocument.createElement('TR')\n tr.appendChild(frame)\n div.appendChild(tr)\n return div\n }\n}\n\nexport default humanReadablePane\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ function getStatementsToDelete(origin, person, kb, ns) {
|
|
|
21
21
|
return statementsToDelete;
|
|
22
22
|
}
|
|
23
23
|
function getStatementsToAdd(origin, nodeName, modes, person, ns) {
|
|
24
|
-
var application = new _rdflib.BlankNode("bn_".concat(nodeName));
|
|
24
|
+
var application = new _rdflib.BlankNode("bn_".concat(nodeName)); // NamedNode(`${person.doc().uri}#${nodeName}`)
|
|
25
25
|
return [(0, _rdflib.st)(person, ns.acl('trustedApp'), application, person.doc()), (0, _rdflib.st)(application, ns.acl('origin'), origin, person.doc())].concat(_toConsumableArray(modes.map(function (mode) {
|
|
26
26
|
return (0, _rdflib.sym)(mode);
|
|
27
27
|
}).map(function (mode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.utils.js","names":["_rdflib","require","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","length","e","n","getStatementsToDelete","origin","person","kb","ns","applicationStatements","statementsMatching","acl","statementsToDelete","reduce","memo","st","concat","subject","getStatementsToAdd","nodeName","modes","application","BlankNode","doc","map","mode","sym","generateRandomString","Math","random","substr"],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAA0F,SAAAC,mBAAAC,CAAA,WAAAC,kBAAA,CAAAD,CAAA,KAAAE,gBAAA,CAAAF,CAAA,KAAAG,2BAAA,CAAAH,CAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAH,CAAA,EAAAM,CAAA,QAAAN,CAAA,2BAAAA,CAAA,SAAAO,iBAAA,CAAAP,CAAA,EAAAM,CAAA,OAAAE,CAAA,MAAAC,QAAA,CAAAC,IAAA,CAAAV,CAAA,EAAAW,KAAA,6BAAAH,CAAA,IAAAR,CAAA,CAAAY,WAAA,KAAAJ,CAAA,GAAAR,CAAA,CAAAY,WAAA,CAAAC,IAAA,aAAAL,CAAA,cAAAA,CAAA,GAAAM,KAAA,CAAAC,IAAA,CAAAf,CAAA,oBAAAQ,CAAA,+CAAAQ,IAAA,CAAAR,CAAA,IAAAD,iBAAA,CAAAP,CAAA,EAAAM,CAAA;AAAA,SAAAJ,iBAAAF,CAAA,8BAAAiB,MAAA,YAAAjB,CAAA,CAAAiB,MAAA,CAAAC,QAAA,aAAAlB,CAAA,uBAAAc,KAAA,CAAAC,IAAA,CAAAf,CAAA;AAAA,SAAAC,mBAAAD,CAAA,QAAAc,KAAA,CAAAK,OAAA,CAAAnB,CAAA,UAAAO,iBAAA,CAAAP,CAAA;AAAA,SAAAO,kBAAAP,CAAA,EAAAM,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAN,CAAA,CAAAoB,MAAA,MAAAd,CAAA,GAAAN,CAAA,CAAAoB,MAAA,YAAAC,CAAA,MAAAC,CAAA,GAAAR,KAAA,CAAAR,CAAA,GAAAe,CAAA,GAAAf,CAAA,EAAAe,CAAA,IAAAC,CAAA,CAAAD,CAAA,IAAArB,CAAA,CAAAqB,CAAA,UAAAC,CAAA;AAGnF,SAASC,qBAAqBA,CACnCC,MAA2B,EAC3BC,MAAiB,EACjBC,EAAkB,EAClBC,EAAc,EACT;EACL,IAAMC,qBAAqB,GAAGF,EAAE,CAACG,kBAAkB,CACjD,IAAI,EACJF,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAChBN,MACF,CAAC;EACD,IAAMO,kBAAkB,GAAGH,qBAAqB,CAACI,MAAM,CACrD,UAACC,IAAI,EAAEC,EAAE,EAAK;IACZ,OAAOD,IAAI,CACRE,MAAM,CACLT,EAAE,CAACG,kBAAkB,CACnBJ,MAAM,EACNE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EACpBI,EAAE,CAACE,OACL,CACF,CAAC,CACAD,MAAM,CAACT,EAAE,CAACG,kBAAkB,CAACK,EAAE,CAACE,OAAO,CAAC,CAAC;EAC9C,CAAC,EACD,EACF,CAAC;EACD,OAAOL,kBAAkB;AAC3B;AAEO,SAASM,kBAAkBA,CAChCb,MAAiB,EACjBc,QAAgB,EAChBC,KAAe,EACfd,MAAiB,EACjBE,EAAc,EACT;EACL,IAAMa,WAAW,GAAG,IAAIC,iBAAS,OAAAN,MAAA,CAAOG,QAAQ,CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"trustedApplications.utils.js","names":["_rdflib","require","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","length","e","n","getStatementsToDelete","origin","person","kb","ns","applicationStatements","statementsMatching","acl","statementsToDelete","reduce","memo","st","concat","subject","getStatementsToAdd","nodeName","modes","application","BlankNode","doc","map","mode","sym","generateRandomString","Math","random","substr"],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`) // NamedNode(`${person.doc().uri}#${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAA0F,SAAAC,mBAAAC,CAAA,WAAAC,kBAAA,CAAAD,CAAA,KAAAE,gBAAA,CAAAF,CAAA,KAAAG,2BAAA,CAAAH,CAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAH,CAAA,EAAAM,CAAA,QAAAN,CAAA,2BAAAA,CAAA,SAAAO,iBAAA,CAAAP,CAAA,EAAAM,CAAA,OAAAE,CAAA,MAAAC,QAAA,CAAAC,IAAA,CAAAV,CAAA,EAAAW,KAAA,6BAAAH,CAAA,IAAAR,CAAA,CAAAY,WAAA,KAAAJ,CAAA,GAAAR,CAAA,CAAAY,WAAA,CAAAC,IAAA,aAAAL,CAAA,cAAAA,CAAA,GAAAM,KAAA,CAAAC,IAAA,CAAAf,CAAA,oBAAAQ,CAAA,+CAAAQ,IAAA,CAAAR,CAAA,IAAAD,iBAAA,CAAAP,CAAA,EAAAM,CAAA;AAAA,SAAAJ,iBAAAF,CAAA,8BAAAiB,MAAA,YAAAjB,CAAA,CAAAiB,MAAA,CAAAC,QAAA,aAAAlB,CAAA,uBAAAc,KAAA,CAAAC,IAAA,CAAAf,CAAA;AAAA,SAAAC,mBAAAD,CAAA,QAAAc,KAAA,CAAAK,OAAA,CAAAnB,CAAA,UAAAO,iBAAA,CAAAP,CAAA;AAAA,SAAAO,kBAAAP,CAAA,EAAAM,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAN,CAAA,CAAAoB,MAAA,MAAAd,CAAA,GAAAN,CAAA,CAAAoB,MAAA,YAAAC,CAAA,MAAAC,CAAA,GAAAR,KAAA,CAAAR,CAAA,GAAAe,CAAA,GAAAf,CAAA,EAAAe,CAAA,IAAAC,CAAA,CAAAD,CAAA,IAAArB,CAAA,CAAAqB,CAAA,UAAAC,CAAA;AAGnF,SAASC,qBAAqBA,CACnCC,MAA2B,EAC3BC,MAAiB,EACjBC,EAAkB,EAClBC,EAAc,EACT;EACL,IAAMC,qBAAqB,GAAGF,EAAE,CAACG,kBAAkB,CACjD,IAAI,EACJF,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAChBN,MACF,CAAC;EACD,IAAMO,kBAAkB,GAAGH,qBAAqB,CAACI,MAAM,CACrD,UAACC,IAAI,EAAEC,EAAE,EAAK;IACZ,OAAOD,IAAI,CACRE,MAAM,CACLT,EAAE,CAACG,kBAAkB,CACnBJ,MAAM,EACNE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EACpBI,EAAE,CAACE,OACL,CACF,CAAC,CACAD,MAAM,CAACT,EAAE,CAACG,kBAAkB,CAACK,EAAE,CAACE,OAAO,CAAC,CAAC;EAC9C,CAAC,EACD,EACF,CAAC;EACD,OAAOL,kBAAkB;AAC3B;AAEO,SAASM,kBAAkBA,CAChCb,MAAiB,EACjBc,QAAgB,EAChBC,KAAe,EACfd,MAAiB,EACjBE,EAAc,EACT;EACL,IAAMa,WAAW,GAAG,IAAIC,iBAAS,OAAAN,MAAA,CAAOG,QAAQ,CAAE,CAAC,EAAC;EACpD,QACE,IAAAJ,UAAE,EAACT,MAAM,EAAEE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EAAEU,WAAW,EAAEf,MAAM,CAACiB,GAAG,CAAC,CAAC,CAAC,EAC3D,IAAAR,UAAE,EAACM,WAAW,EAAEb,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAAEN,MAAM,EAAEC,MAAM,CAACiB,GAAG,CAAC,CAAC,CAAC,EAAAP,MAAA,CAAApC,kBAAA,CACpDwC,KAAK,CACLI,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAI,IAAAC,WAAG,EAACD,IAAI,CAAC;EAAA,EAAC,CACtBD,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAI,IAAAV,UAAE,EAACM,WAAW,EAAEb,EAAE,CAACG,GAAG,CAAC,MAAM,CAAC,EAAEc,IAAI,EAAEnB,MAAM,CAACiB,GAAG,CAAC,CAAC,CAAC;EAAA,EAAC;AAEvE;AAEO,SAASI,oBAAoBA,CAAA,EAAI;EACtC,OAAOC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACvC,QAAQ,CAAC,EAAE,CAAC,CAACwC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD","ignoreList":[]}
|