solid-panes 3.5.19 → 3.5.21
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/dev/loader.ts +11 -11
- package/lib/argument/argumentPane.js +15 -7
- package/lib/argument/argumentPane.js.map +1 -1
- package/lib/dashboard/basicPreferences.d.ts.map +1 -1
- package/lib/dashboard/basicPreferences.js +6 -6
- package/lib/dashboard/basicPreferences.js.map +1 -1
- package/lib/dashboard/dashboardPane.d.ts.map +1 -1
- package/lib/dashboard/dashboardPane.js +6 -4
- package/lib/dashboard/dashboardPane.js.map +1 -1
- package/lib/dataContentPane.js +1 -1
- package/lib/dataContentPane.js.map +1 -1
- package/lib/form/pane.js +15 -6
- package/lib/form/pane.js.map +1 -1
- package/lib/home/homePane.d.ts.map +1 -1
- package/lib/home/homePane.js +7 -5
- package/lib/home/homePane.js.map +1 -1
- package/lib/index.d.ts +7 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +15 -4
- package/lib/index.js.map +1 -1
- package/lib/mainPage/header.d.ts.map +1 -1
- package/lib/mainPage/header.js +4 -2
- package/lib/mainPage/header.js.map +1 -1
- package/lib/microblogPane/microblogPane.js +16 -14
- package/lib/microblogPane/microblogPane.js.map +1 -1
- package/lib/outline/dragDrop.js +16 -6
- package/lib/outline/dragDrop.js.map +1 -1
- package/lib/outline/licenseOptions.js +12 -5
- package/lib/outline/licenseOptions.js.map +1 -1
- package/lib/outline/manager.js +29 -21
- package/lib/outline/manager.js.map +1 -1
- package/lib/outline/queryByExample.js +14 -6
- package/lib/outline/queryByExample.js.map +1 -1
- package/lib/outline/userInput.js +90 -80
- package/lib/outline/userInput.js.map +1 -1
- package/lib/pad/padPane.d.ts.map +1 -1
- package/lib/pad/padPane.js +6 -4
- package/lib/pad/padPane.js.map +1 -1
- package/lib/profile/editProfile.view.d.ts.map +1 -1
- package/lib/profile/editProfile.view.js +3 -3
- package/lib/profile/editProfile.view.js.map +1 -1
- package/lib/schedule/schedulePane.js +26 -14
- package/lib/schedule/schedulePane.js.map +1 -1
- package/lib/socialPane.js +16 -6
- package/lib/socialPane.js.map +1 -1
- package/lib/transaction/pane.js +1 -1
- package/lib/transaction/pane.js.map +1 -1
- package/lib/transaction/period.js +1 -1
- package/lib/transaction/period.js.map +1 -1
- package/lib/trip/tripPane.js +1 -1
- package/lib/trip/tripPane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.dom.d.ts.map +1 -1
- package/lib/trustedApplications/trustedApplications.dom.js +11 -9
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.view.d.ts.map +1 -1
- package/lib/trustedApplications/trustedApplications.view.js +5 -3
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
- package/lib/versionInfo.js +3 -3
- package/lib/versionInfo.js.map +1 -1
- package/package.json +14 -14
- package/src/argument/argumentPane.js +5 -5
- package/src/dashboard/basicPreferences.ts +4 -5
- package/src/dashboard/dashboardPane.ts +4 -3
- package/src/dataContentPane.js +1 -1
- package/src/form/pane.js +5 -4
- package/src/home/homePane.ts +7 -6
- package/src/index.ts +24 -18
- package/src/mainPage/header.ts +3 -2
- package/src/microblogPane/microblogPane.js +9 -8
- package/src/outline/dragDrop.js +5 -4
- package/src/outline/licenseOptions.js +4 -5
- package/src/outline/manager.js +22 -21
- package/src/outline/queryByExample.js +4 -4
- package/src/outline/userInput.js +72 -72
- package/src/pad/padPane.ts +3 -3
- package/src/profile/editProfile.view.ts +5 -8
- package/src/schedule/schedulePane.js +14 -13
- package/src/socialPane.js +5 -4
- package/src/transaction/pane.js +1 -1
- package/src/transaction/period.js +1 -1
- package/src/trip/tripPane.js +1 -1
- package/src/trustedApplications/trustedApplications.dom.ts +2 -1
- package/src/trustedApplications/trustedApplications.view.ts +4 -4
- package/src/versionInfo.ts +3 -3
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
var _solidLogic = require("solid-logic");
|
|
6
|
+
|
|
7
|
+
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
8
|
+
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
|
|
3
13
|
/* istanbul ignore file */
|
|
4
14
|
// The query-by-example functionality in the tabulator
|
|
5
15
|
// was the ability to expore a bit of the web in outline mode,
|
|
@@ -7,8 +17,6 @@
|
|
|
7
17
|
// then pres "find all" which would then generte a SPARQL query
|
|
8
18
|
// to find all other places which had the same pattern.
|
|
9
19
|
// Fields could be optional by pressing th ewhite optoional button
|
|
10
|
-
var UI = require('solid-ui');
|
|
11
|
-
|
|
12
20
|
module.exports = {
|
|
13
21
|
makeQueryRow: makeQueryRow,
|
|
14
22
|
QuerySource: QuerySource,
|
|
@@ -33,10 +41,9 @@ function predParentOf(node) {
|
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
function makeQueryRow(q, tr, constraint) {
|
|
36
|
-
|
|
44
|
+
// predtr = predParentOf(tr)
|
|
37
45
|
// var nodes = tr.childNodes
|
|
38
46
|
// var n = tr.childNodes.length
|
|
39
|
-
|
|
40
47
|
var inverse = tr.AJAR_inverse; // var hasVar = 0
|
|
41
48
|
|
|
42
49
|
var parentVar, level, pat;
|
|
@@ -94,7 +101,8 @@ function makeQueryRow(q, tr, constraint) {
|
|
|
94
101
|
}
|
|
95
102
|
|
|
96
103
|
if (opt) {
|
|
97
|
-
var optForm =
|
|
104
|
+
var optForm = _solidLogic.store.formula();
|
|
105
|
+
|
|
98
106
|
optionalSubqueriesIndex.push(optForm);
|
|
99
107
|
predtr.setAttribute('optionalSubqueriesIndex', optionalSubqueriesIndex.length - 1);
|
|
100
108
|
pat.optional.push(optForm);
|
|
@@ -117,7 +125,7 @@ function makeQueryRow(q, tr, constraint) {
|
|
|
117
125
|
} // UI.log.debug('Initial variable: '+tr.AJAR_variable)
|
|
118
126
|
|
|
119
127
|
|
|
120
|
-
var v = tr.AJAR_variable ? tr.AJAR_variable :
|
|
128
|
+
var v = tr.AJAR_variable ? tr.AJAR_variable : _solidLogic.store.variable(UI.utils.newVariableName());
|
|
121
129
|
q.vars.push(v);
|
|
122
130
|
v.label = hasParent ? parentVar.label : UI.utils.label(parentVar);
|
|
123
131
|
v.label += ' ' + UI.utils.predicateLabelForXML(st.predicate, inverse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/outline/queryByExample.js"],"names":["UI","require","module","exports","makeQueryRow","QuerySource","viewAndSaveQuery","optionalSubqueriesIndex","predParentOf","node","n","getAttribute","previousSibling","nodeName","console","log","q","tr","constraint","kb","store","inverse","AJAR_inverse","parentVar","level","pat","makeRDFStatement","freeVar","parent","rdf","Statement","st","predicate","optionalSubqueryIndex","parentNode","AJAR_statement","setAttribute","AJAR_variable","predLevel","predtr","opt","removeAttribute","optForm","formula","push","length","optional","constraintVar","subject","object","hasParent","isBlank","window","alert","v","variable","utils","newVariableName","vars","label","predicateLabelForXML","pattern","slice","toUpperCase","ConstraintEqualTo","value","describe","varstr","toNT","test","term","sameTerm","constraints","info","AJAR_pattern","debug","statements","saveQuery","selection","qs","Query","i","sel","indexOf","addQuery","resetOutliner","x","outline","document","location","listeners","getActiveView","view","drawQuery","updateQueryControls","queries","name","id","removeQuery","addListener","listener","removeListener"],"mappings":"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","sourcesContent":["/* istanbul ignore file */\n// The query-by-example functionality in the tabulator\n// was the ability to expore a bit of the web in outline mode,\n// select a ceratain set of fields in the tree,\n// then pres \"find all\" which would then generte a SPARQL query\n// to find all other places which had the same pattern.\n// Fields could be optional by pressing th ewhite optoional button\n\nconst UI = require('solid-ui')\n\nmodule.exports = {\n makeQueryRow,\n QuerySource,\n viewAndSaveQuery // Main function to generate and use the query\n}\n\nconst optionalSubqueriesIndex = []\n\nfunction predParentOf (node) {\n let n = node\n while (true) {\n if (n.getAttribute('predTR')) {\n return n\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else {\n console.log('Could not find predParent')\n return node\n }\n }\n}\n\nfunction makeQueryRow (q, tr, constraint) {\n const kb = UI.store\n // predtr = predParentOf(tr)\n // var nodes = tr.childNodes\n // var n = tr.childNodes.length\n const inverse = tr.AJAR_inverse\n // var hasVar = 0\n let parentVar, level, pat\n\n function makeRDFStatement (freeVar, parent) {\n if (inverse) {\n return new UI.rdf.Statement(freeVar, st.predicate, parent)\n } else {\n return new UI.rdf.Statement(parent, st.predicate, freeVar)\n }\n }\n\n let optionalSubqueryIndex = null\n\n for (level = tr.parentNode; level; level = level.parentNode) {\n if (typeof level.AJAR_statement !== 'undefined') {\n // level.AJAR_statement\n level.setAttribute('bla', level.AJAR_statement) // @@? -timbl\n // UI.log.debug(\"Parent TR statement=\"+level.AJAR_statement + \", var=\" + level.AJAR_variable)\n /* for(let c=0;c<level.parentNode.childNodes.length;c++) //This makes sure the same variable is used for a subject\n if(level.parentNode.childNodes[c].AJAR_variable)\n level.AJAR_variable = level.parentNode.childNodes[c].AJAR_variable; */\n if (!level.AJAR_variable) {\n makeQueryRow(q, level)\n }\n parentVar = level.AJAR_variable\n const predLevel = predParentOf(level)\n if (predLevel.getAttribute('optionalSubqueriesIndex')) {\n optionalSubqueryIndex = predLevel.getAttribute(\n 'optionalSubqueriesIndex'\n )\n pat = optionalSubqueriesIndex[optionalSubqueryIndex]\n }\n break\n }\n }\n\n if (!pat) {\n pat = q.pat\n }\n\n const predtr = predParentOf(tr)\n // /////OPTIONAL KLUDGE///////////\n const opt = predtr.getAttribute('optional')\n if (!opt) {\n if (optionalSubqueryIndex) {\n predtr.setAttribute('optionalSubqueriesIndex', optionalSubqueryIndex)\n } else {\n predtr.removeAttribute('optionalSubqueriesIndex')\n }\n }\n if (opt) {\n const optForm = kb.formula()\n optionalSubqueriesIndex.push(optForm)\n predtr.setAttribute(\n 'optionalSubqueriesIndex',\n optionalSubqueriesIndex.length - 1\n )\n pat.optional.push(optForm)\n pat = optForm\n }\n\n // //////////////////////////////\n\n const st = tr.AJAR_statement\n\n const constraintVar = tr.AJAR_inverse ? st.subject : st.object // this is only used for constraints\n let hasParent = true\n if (constraintVar.isBlank && constraint) {\n window.alert(\n 'You cannot constrain a query with a blank node. No constraint will be added.'\n )\n }\n if (!parentVar) {\n hasParent = false\n parentVar = inverse ? st.object : st.subject // if there is no parents, uses the sub/obj\n }\n // UI.log.debug('Initial variable: '+tr.AJAR_variable)\n const v = tr.AJAR_variable\n ? tr.AJAR_variable\n : kb.variable(UI.utils.newVariableName())\n q.vars.push(v)\n v.label = hasParent ? parentVar.label : UI.utils.label(parentVar)\n v.label += ' ' + UI.utils.predicateLabelForXML(st.predicate, inverse)\n const pattern = makeRDFStatement(v, parentVar)\n // alert(pattern)\n v.label = v.label.slice(0, 1).toUpperCase() + v.label.slice(1) // init cap\n\n // See ../rdf/sparql.js\n // This should only work on literals but doesn't.\n function ConstraintEqualTo (value) {\n this.describe = function (varstr) {\n return varstr + ' = ' + value.toNT()\n }\n this.test = function (term) {\n return value.sameTerm(term)\n }\n return this\n }\n\n if (constraint) {\n // binds the constrained variable to its selected value\n pat.constraints[v] = new ConstraintEqualTo(constraintVar)\n }\n UI.log.info('Pattern: ' + pattern)\n pattern.tr = tr\n tr.AJAR_pattern = pattern // Cross-link UI and query line\n tr.AJAR_variable = v\n // UI.log.debug('Final variable: '+tr.AJAR_variable)\n UI.log.debug('Query pattern: ' + pattern)\n pat.statements.push(pattern)\n return v\n} // makeQueryRow\n\nfunction saveQuery (selection, qs) {\n // var qs = outline.qs // @@\n const q = new UI.rdf.Query()\n const n = selection.length\n let i, sel, st, tr\n for (i = 0; i < n; i++) {\n sel = selection[i]\n tr = sel.parentNode\n st = tr.AJAR_statement\n UI.log.debug('Statement ' + st)\n if (sel.getAttribute('class').indexOf('pred') >= 0) {\n UI.log.info(' We have a predicate')\n makeQueryRow(q, tr)\n }\n if (sel.getAttribute('class').indexOf('obj') >= 0) {\n UI.log.info(' We have an object')\n makeQueryRow(q, tr, true)\n }\n }\n qs.addQuery(q)\n\n function resetOutliner (pat) {\n const n = pat.statements.length\n let pattern, tr\n for (let i = 0; i < n; i++) {\n pattern = pat.statements[i]\n tr = pattern.tr\n // UI.log.debug('tr: ' + tr.AJAR_statement);\n if (typeof tr !== 'undefined') {\n tr.AJAR_pattern = null // TODO: is this == to whats in current version?\n tr.AJAR_variable = null\n }\n }\n for (const x in pat.optional) {\n resetOutliner(pat.optional[x])\n }\n }\n resetOutliner(q.pat)\n // NextVariable=0;\n return q\n} // saveQuery\n\n// When the user asks for all list of all matching parts of the data\n//\nfunction viewAndSaveQuery (outline, selection) {\n const qs = outline.qs\n UI.log.info('outline.doucment is now ' + outline.document.location)\n const q = saveQuery(selection, qs)\n /*\n if (tabulator.isExtension) {\n // tabulator.drawInBestView(q)\n } else\n */\n\n for (let i = 0; i < qs.listeners.length; i++) {\n qs.listeners[i].getActiveView().view.drawQuery(q)\n qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView())\n }\n}\n\n/**\n * The QuerySource object stores a set of listeners and a set of queries.\n * It keeps the listeners aware of those queries that the source currently\n * contains, and it is then up to the listeners to decide what to do with\n * those queries in terms of displays.\n * Not used 2010-08 -- TimBL\n * @class QuerySource\n * @author jambo\n */\n\nfunction QuerySource () {\n /**\n * stores all of the queries currently held by this source,\n * indexed by ID number.\n */\n this.queries = []\n /**\n * stores the listeners for a query object.\n * @see TabbedContainer\n */\n this.listeners = []\n\n /**\n * add a Query object to the query source--It will be given an ID number\n * and a name, if it doesn't already have one. This subsequently adds the\n * query to all of the listeners the QuerySource knows about.\n */\n this.addQuery = function (q) {\n let i\n if (q.name === null || q.name === '') {\n q.name = 'Query #' + (this.queries.length + 1)\n }\n q.id = this.queries.length\n this.queries.push(q)\n for (i = 0; i < this.listeners.length; i++) {\n if (this.listeners[i] !== null) {\n this.listeners[i].addQuery(q)\n }\n }\n }\n\n /**\n * Remove a Query object from the source. Tells all listeners to also\n * remove the query.\n */\n this.removeQuery = function (q) {\n let i\n for (i = 0; i < this.listeners.length; i++) {\n if (this.listeners[i] !== null) {\n this.listeners[i].removeQuery(q)\n }\n }\n if (this.queries[q.id] !== null) {\n delete this.queries[q.id]\n }\n }\n\n /**\n * adds a \"Listener\" to this QuerySource - that is, an object\n * which is capable of both adding and removing queries.\n * Currently, only the TabbedContainer class is added.\n * also puts all current queries into the listener to be used.\n */\n this.addListener = function (listener) {\n let i\n this.listeners.push(listener)\n for (i = 0; i < this.queries.length; i++) {\n if (this.queries[i] !== null) {\n listener.addQuery(this.queries[i])\n }\n }\n }\n /**\n * removes listener from the array of listeners, if it exists! Also takes\n * all of the queries from this source out of the listener.\n */\n this.removeListener = function (listener) {\n let i\n for (i = 0; i < this.queries.length; i++) {\n if (this.queries[i] !== null) {\n listener.removeQuery(this.queries[i])\n }\n }\n\n for (i = 0; i < this.listeners.length; i++) {\n if (this.listeners[i] === listener) {\n delete this.listeners[i]\n }\n }\n }\n}\n"],"file":"queryByExample.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/outline/queryByExample.js"],"names":["module","exports","makeQueryRow","QuerySource","viewAndSaveQuery","optionalSubqueriesIndex","predParentOf","node","n","getAttribute","previousSibling","nodeName","console","log","q","tr","constraint","inverse","AJAR_inverse","parentVar","level","pat","makeRDFStatement","freeVar","parent","UI","rdf","Statement","st","predicate","optionalSubqueryIndex","parentNode","AJAR_statement","setAttribute","AJAR_variable","predLevel","predtr","opt","removeAttribute","optForm","store","formula","push","length","optional","constraintVar","subject","object","hasParent","isBlank","window","alert","v","variable","utils","newVariableName","vars","label","predicateLabelForXML","pattern","slice","toUpperCase","ConstraintEqualTo","value","describe","varstr","toNT","test","term","sameTerm","constraints","info","AJAR_pattern","debug","statements","saveQuery","selection","qs","Query","i","sel","indexOf","addQuery","resetOutliner","x","outline","document","location","listeners","getActiveView","view","drawQuery","updateQueryControls","queries","name","id","removeQuery","addListener","listener","removeListener"],"mappings":"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","sourcesContent":["/* istanbul ignore file */\n// The query-by-example functionality in the tabulator\n// was the ability to expore a bit of the web in outline mode,\n// select a ceratain set of fields in the tree,\n// then pres \"find all\" which would then generte a SPARQL query\n// to find all other places which had the same pattern.\n// Fields could be optional by pressing th ewhite optoional button\n\nimport { store } from 'solid-logic'\nimport * as UI from 'solid-ui'\n\nmodule.exports = {\n makeQueryRow,\n QuerySource,\n viewAndSaveQuery // Main function to generate and use the query\n}\n\nconst optionalSubqueriesIndex = []\n\nfunction predParentOf (node) {\n let n = node\n while (true) {\n if (n.getAttribute('predTR')) {\n return n\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else {\n console.log('Could not find predParent')\n return node\n }\n }\n}\n\nfunction makeQueryRow (q, tr, constraint) {\n // predtr = predParentOf(tr)\n // var nodes = tr.childNodes\n // var n = tr.childNodes.length\n const inverse = tr.AJAR_inverse\n // var hasVar = 0\n let parentVar, level, pat\n\n function makeRDFStatement (freeVar, parent) {\n if (inverse) {\n return new UI.rdf.Statement(freeVar, st.predicate, parent)\n } else {\n return new UI.rdf.Statement(parent, st.predicate, freeVar)\n }\n }\n\n let optionalSubqueryIndex = null\n\n for (level = tr.parentNode; level; level = level.parentNode) {\n if (typeof level.AJAR_statement !== 'undefined') {\n // level.AJAR_statement\n level.setAttribute('bla', level.AJAR_statement) // @@? -timbl\n // UI.log.debug(\"Parent TR statement=\"+level.AJAR_statement + \", var=\" + level.AJAR_variable)\n /* for(let c=0;c<level.parentNode.childNodes.length;c++) //This makes sure the same variable is used for a subject\n if(level.parentNode.childNodes[c].AJAR_variable)\n level.AJAR_variable = level.parentNode.childNodes[c].AJAR_variable; */\n if (!level.AJAR_variable) {\n makeQueryRow(q, level)\n }\n parentVar = level.AJAR_variable\n const predLevel = predParentOf(level)\n if (predLevel.getAttribute('optionalSubqueriesIndex')) {\n optionalSubqueryIndex = predLevel.getAttribute(\n 'optionalSubqueriesIndex'\n )\n pat = optionalSubqueriesIndex[optionalSubqueryIndex]\n }\n break\n }\n }\n\n if (!pat) {\n pat = q.pat\n }\n\n const predtr = predParentOf(tr)\n // /////OPTIONAL KLUDGE///////////\n const opt = predtr.getAttribute('optional')\n if (!opt) {\n if (optionalSubqueryIndex) {\n predtr.setAttribute('optionalSubqueriesIndex', optionalSubqueryIndex)\n } else {\n predtr.removeAttribute('optionalSubqueriesIndex')\n }\n }\n if (opt) {\n const optForm = store.formula()\n optionalSubqueriesIndex.push(optForm)\n predtr.setAttribute(\n 'optionalSubqueriesIndex',\n optionalSubqueriesIndex.length - 1\n )\n pat.optional.push(optForm)\n pat = optForm\n }\n\n // //////////////////////////////\n\n const st = tr.AJAR_statement\n\n const constraintVar = tr.AJAR_inverse ? st.subject : st.object // this is only used for constraints\n let hasParent = true\n if (constraintVar.isBlank && constraint) {\n window.alert(\n 'You cannot constrain a query with a blank node. No constraint will be added.'\n )\n }\n if (!parentVar) {\n hasParent = false\n parentVar = inverse ? st.object : st.subject // if there is no parents, uses the sub/obj\n }\n // UI.log.debug('Initial variable: '+tr.AJAR_variable)\n const v = tr.AJAR_variable\n ? tr.AJAR_variable\n : store.variable(UI.utils.newVariableName())\n q.vars.push(v)\n v.label = hasParent ? parentVar.label : UI.utils.label(parentVar)\n v.label += ' ' + UI.utils.predicateLabelForXML(st.predicate, inverse)\n const pattern = makeRDFStatement(v, parentVar)\n // alert(pattern)\n v.label = v.label.slice(0, 1).toUpperCase() + v.label.slice(1) // init cap\n\n // See ../rdf/sparql.js\n // This should only work on literals but doesn't.\n function ConstraintEqualTo (value) {\n this.describe = function (varstr) {\n return varstr + ' = ' + value.toNT()\n }\n this.test = function (term) {\n return value.sameTerm(term)\n }\n return this\n }\n\n if (constraint) {\n // binds the constrained variable to its selected value\n pat.constraints[v] = new ConstraintEqualTo(constraintVar)\n }\n UI.log.info('Pattern: ' + pattern)\n pattern.tr = tr\n tr.AJAR_pattern = pattern // Cross-link UI and query line\n tr.AJAR_variable = v\n // UI.log.debug('Final variable: '+tr.AJAR_variable)\n UI.log.debug('Query pattern: ' + pattern)\n pat.statements.push(pattern)\n return v\n} // makeQueryRow\n\nfunction saveQuery (selection, qs) {\n // var qs = outline.qs // @@\n const q = new UI.rdf.Query()\n const n = selection.length\n let i, sel, st, tr\n for (i = 0; i < n; i++) {\n sel = selection[i]\n tr = sel.parentNode\n st = tr.AJAR_statement\n UI.log.debug('Statement ' + st)\n if (sel.getAttribute('class').indexOf('pred') >= 0) {\n UI.log.info(' We have a predicate')\n makeQueryRow(q, tr)\n }\n if (sel.getAttribute('class').indexOf('obj') >= 0) {\n UI.log.info(' We have an object')\n makeQueryRow(q, tr, true)\n }\n }\n qs.addQuery(q)\n\n function resetOutliner (pat) {\n const n = pat.statements.length\n let pattern, tr\n for (let i = 0; i < n; i++) {\n pattern = pat.statements[i]\n tr = pattern.tr\n // UI.log.debug('tr: ' + tr.AJAR_statement);\n if (typeof tr !== 'undefined') {\n tr.AJAR_pattern = null // TODO: is this == to whats in current version?\n tr.AJAR_variable = null\n }\n }\n for (const x in pat.optional) {\n resetOutliner(pat.optional[x])\n }\n }\n resetOutliner(q.pat)\n // NextVariable=0;\n return q\n} // saveQuery\n\n// When the user asks for all list of all matching parts of the data\n//\nfunction viewAndSaveQuery (outline, selection) {\n const qs = outline.qs\n UI.log.info('outline.doucment is now ' + outline.document.location)\n const q = saveQuery(selection, qs)\n /*\n if (tabulator.isExtension) {\n // tabulator.drawInBestView(q)\n } else\n */\n\n for (let i = 0; i < qs.listeners.length; i++) {\n qs.listeners[i].getActiveView().view.drawQuery(q)\n qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView())\n }\n}\n\n/**\n * The QuerySource object stores a set of listeners and a set of queries.\n * It keeps the listeners aware of those queries that the source currently\n * contains, and it is then up to the listeners to decide what to do with\n * those queries in terms of displays.\n * Not used 2010-08 -- TimBL\n * @class QuerySource\n * @author jambo\n */\n\nfunction QuerySource () {\n /**\n * stores all of the queries currently held by this source,\n * indexed by ID number.\n */\n this.queries = []\n /**\n * stores the listeners for a query object.\n * @see TabbedContainer\n */\n this.listeners = []\n\n /**\n * add a Query object to the query source--It will be given an ID number\n * and a name, if it doesn't already have one. This subsequently adds the\n * query to all of the listeners the QuerySource knows about.\n */\n this.addQuery = function (q) {\n let i\n if (q.name === null || q.name === '') {\n q.name = 'Query #' + (this.queries.length + 1)\n }\n q.id = this.queries.length\n this.queries.push(q)\n for (i = 0; i < this.listeners.length; i++) {\n if (this.listeners[i] !== null) {\n this.listeners[i].addQuery(q)\n }\n }\n }\n\n /**\n * Remove a Query object from the source. Tells all listeners to also\n * remove the query.\n */\n this.removeQuery = function (q) {\n let i\n for (i = 0; i < this.listeners.length; i++) {\n if (this.listeners[i] !== null) {\n this.listeners[i].removeQuery(q)\n }\n }\n if (this.queries[q.id] !== null) {\n delete this.queries[q.id]\n }\n }\n\n /**\n * adds a \"Listener\" to this QuerySource - that is, an object\n * which is capable of both adding and removing queries.\n * Currently, only the TabbedContainer class is added.\n * also puts all current queries into the listener to be used.\n */\n this.addListener = function (listener) {\n let i\n this.listeners.push(listener)\n for (i = 0; i < this.queries.length; i++) {\n if (this.queries[i] !== null) {\n listener.addQuery(this.queries[i])\n }\n }\n }\n /**\n * removes listener from the array of listeners, if it exists! Also takes\n * all of the queries from this source out of the listener.\n */\n this.removeListener = function (listener) {\n let i\n for (i = 0; i < this.queries.length; i++) {\n if (this.queries[i] !== null) {\n listener.removeQuery(this.queries[i])\n }\n }\n\n for (i = 0; i < this.listeners.length; i++) {\n if (this.listeners[i] === listener) {\n delete this.listeners[i]\n }\n }\n }\n}\n"],"file":"queryByExample.js"}
|