solid-panes 3.5.27 → 3.5.28-59efa615
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/.babelrc +0 -0
- package/.eslintignore +0 -0
- package/.eslintrc +0 -0
- package/.github/workflows/ci.yml +0 -0
- package/.nvmrc +0 -0
- package/Documentation/VisualLanguage.html +0 -0
- package/Documentation/conventions.md +0 -0
- package/LICENSE.md +0 -0
- package/README.md +0 -2
- package/dev/index.html +0 -0
- package/dev/loader.ts +0 -0
- package/dev/pane/index.ts +0 -0
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +0 -0
- package/jest.config.js +0 -0
- package/jest.setup.ts +0 -0
- package/lib/RDFXMLPane.js +15 -9
- package/lib/RDFXMLPane.js.map +1 -1
- package/lib/argument/argumentPane.js +12 -11
- package/lib/argument/argumentPane.js.map +1 -1
- package/lib/attach/attachPane.js +58 -90
- package/lib/attach/attachPane.js.map +1 -1
- package/lib/audio/audioPane.js +19 -37
- package/lib/audio/audioPane.js.map +1 -1
- package/lib/classInstancePane.js +21 -22
- package/lib/classInstancePane.js.map +1 -1
- package/lib/dashboard/basicPreferences.d.ts +0 -0
- package/lib/dashboard/basicPreferences.d.ts.map +0 -0
- package/lib/dashboard/basicPreferences.js +96 -154
- package/lib/dashboard/basicPreferences.js.map +1 -1
- package/lib/dashboard/dashboardPane.d.ts +0 -0
- package/lib/dashboard/dashboardPane.d.ts.map +0 -0
- package/lib/dashboard/dashboardPane.js +2 -18
- package/lib/dashboard/dashboardPane.js.map +1 -1
- package/lib/dashboard/homepage.d.ts +0 -0
- package/lib/dashboard/homepage.d.ts.map +0 -0
- package/lib/dashboard/homepage.js +27 -49
- package/lib/dashboard/homepage.js.map +1 -1
- package/lib/dataContentPane.js +26 -61
- package/lib/dataContentPane.js.map +1 -1
- package/lib/defaultPane.js +23 -23
- package/lib/defaultPane.js.map +1 -1
- package/lib/dokieli/dokieliPane.js +29 -34
- package/lib/dokieli/dokieliPane.js.map +1 -1
- package/lib/dokieli/new.js +6 -1
- package/lib/dokieli/new.js.map +1 -1
- package/lib/form/pane.js +34 -45
- package/lib/form/pane.js.map +1 -1
- package/lib/global.d.js +0 -0
- package/lib/global.d.js.map +0 -0
- package/lib/home/homePane.d.ts +0 -0
- package/lib/home/homePane.d.ts.map +0 -0
- package/lib/home/homePane.js +49 -67
- package/lib/home/homePane.js.map +1 -1
- package/lib/humanReadablePane.js +14 -28
- package/lib/humanReadablePane.js.map +1 -1
- package/lib/imagePane.js +19 -14
- package/lib/imagePane.js.map +1 -1
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +6 -20
- package/lib/index.js.map +1 -1
- package/lib/internal/internalPane.d.ts +0 -0
- package/lib/internal/internalPane.d.ts.map +0 -0
- package/lib/internal/internalPane.js +10 -41
- package/lib/internal/internalPane.js.map +1 -1
- package/lib/mainPage/footer.d.ts +0 -0
- package/lib/mainPage/footer.d.ts.map +0 -0
- package/lib/mainPage/footer.js +0 -4
- package/lib/mainPage/footer.js.map +1 -1
- package/lib/mainPage/header.d.ts +0 -0
- package/lib/mainPage/header.d.ts.map +0 -0
- package/lib/mainPage/header.js +66 -100
- package/lib/mainPage/header.js.map +1 -1
- package/lib/mainPage/index.d.ts +0 -0
- package/lib/mainPage/index.d.ts.map +0 -0
- package/lib/mainPage/index.js +17 -30
- package/lib/mainPage/index.js.map +1 -1
- package/lib/microblogPane/microblogPane.js +182 -321
- package/lib/microblogPane/microblogPane.js.map +1 -1
- package/lib/n3Pane.js +12 -8
- package/lib/n3Pane.js.map +1 -1
- package/lib/outline/context.d.ts +0 -0
- package/lib/outline/context.d.ts.map +0 -0
- package/lib/outline/context.js +0 -2
- package/lib/outline/context.js.map +1 -1
- package/lib/outline/licenseOptions.js +21 -35
- package/lib/outline/licenseOptions.js.map +1 -1
- package/lib/outline/manager.js +740 -1176
- package/lib/outline/manager.js.map +1 -1
- package/lib/outline/manager.test.js +16 -25
- package/lib/outline/manager.test.js.map +1 -1
- package/lib/outline/outlineIcons.js +39 -26
- package/lib/outline/outlineIcons.js.map +1 -1
- package/lib/outline/propertyViews.d.ts +3 -2
- package/lib/outline/propertyViews.d.ts.map +1 -1
- package/lib/outline/propertyViews.js +7 -15
- package/lib/outline/propertyViews.js.map +1 -1
- package/lib/outline/propertyViews.test.js +7 -7
- package/lib/outline/propertyViews.test.js.map +1 -1
- package/lib/outline/queryByExample.js +28 -80
- package/lib/outline/queryByExample.js.map +1 -1
- package/lib/outline/userInput.js +221 -459
- package/lib/outline/userInput.js.map +1 -1
- package/lib/outline/viewAsImage.d.ts +0 -0
- package/lib/outline/viewAsImage.d.ts.map +0 -0
- package/lib/outline/viewAsImage.js +0 -6
- package/lib/outline/viewAsImage.js.map +1 -1
- package/lib/outline/viewAsMbox.d.ts +0 -0
- package/lib/outline/viewAsMbox.d.ts.map +0 -0
- package/lib/outline/viewAsMbox.js +3 -4
- package/lib/outline/viewAsMbox.js.map +1 -1
- package/lib/pad/padPane.d.ts +0 -0
- package/lib/pad/padPane.d.ts.map +0 -0
- package/lib/pad/padPane.js +45 -93
- package/lib/pad/padPane.js.map +1 -1
- package/lib/playlist/playlistPane.js +11 -21
- package/lib/playlist/playlistPane.js.map +1 -1
- package/lib/profile/editProfile.view.d.ts +0 -0
- package/lib/profile/editProfile.view.d.ts.map +1 -1
- package/lib/profile/editProfile.view.js +22 -23
- package/lib/profile/editProfile.view.js.map +1 -1
- package/lib/profile/profile.dom.d.ts +0 -0
- package/lib/profile/profile.dom.d.ts.map +0 -0
- package/lib/profile/profile.dom.js +0 -3
- package/lib/profile/profile.dom.js.map +1 -1
- package/lib/registerPanes.js +99 -54
- package/lib/registerPanes.js.map +1 -1
- package/lib/schedule/formsForSchedule.js +6 -1
- package/lib/schedule/formsForSchedule.js.map +1 -1
- package/lib/schedule/schedulePane.js +71 -126
- package/lib/schedule/schedulePane.js.map +1 -1
- package/lib/sharing/sharingPane.d.ts +0 -0
- package/lib/sharing/sharingPane.d.ts.map +0 -0
- package/lib/sharing/sharingPane.js +2 -10
- package/lib/sharing/sharingPane.js.map +1 -1
- package/lib/slideshow/slideshowPane.js +21 -21
- package/lib/slideshow/slideshowPane.js.map +1 -1
- package/lib/socialPane.js +58 -135
- package/lib/socialPane.js.map +1 -1
- package/lib/tabbed/tabbedPane.d.ts +0 -0
- package/lib/tabbed/tabbedPane.d.ts.map +0 -0
- package/lib/tabbed/tabbedPane.js +32 -48
- package/lib/tabbed/tabbedPane.js.map +1 -1
- package/lib/tableViewPane.js +15 -9
- package/lib/tableViewPane.js.map +1 -1
- package/lib/test-import-export/common.js +8 -3
- package/lib/test-import-export/common.js.map +1 -1
- package/lib/test-import-export/edit-importer.js +10 -14
- package/lib/test-import-export/edit-importer.js.map +1 -1
- package/lib/test-import-export/testImportExport.js +0 -0
- package/lib/test-import-export/testImportExport.js.map +0 -0
- package/lib/transaction/pane.js +38 -91
- package/lib/transaction/pane.js.map +1 -1
- package/lib/transaction/period.js +27 -71
- package/lib/transaction/period.js.map +1 -1
- package/lib/trip/tripPane.js +38 -35
- package/lib/trip/tripPane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
- package/lib/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- package/lib/trustedApplications/trustedApplications.dom.js +12 -35
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.test.js +6 -8
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
- package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- package/lib/trustedApplications/trustedApplications.utils.js +1 -11
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
- package/lib/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- package/lib/trustedApplications/trustedApplications.view.js +38 -61
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
- package/lib/types.d.ts +0 -0
- package/lib/types.d.ts.map +0 -0
- package/lib/types.js +0 -0
- package/lib/types.js.map +0 -0
- package/lib/ui/pane.js +30 -29
- package/lib/ui/pane.js.map +1 -1
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +14 -14
- package/lib/versionInfo.js.map +1 -1
- package/lib/video/videoPane.js +11 -7
- package/lib/video/videoPane.js.map +1 -1
- package/package.json +26 -26
- package/src/RDFXMLPane.js +2 -2
- package/src/argument/argumentPane.js +1 -1
- package/src/argument/argument_icon_v04.jpg +0 -0
- package/src/argument/icon_argument.png +0 -0
- package/src/argument/transparentyingyang.png +0 -0
- package/src/attach/attachPane.js +3 -3
- package/src/attach/tbl-paperclip-128.png +0 -0
- package/src/attach/tbl-paperclip-22.png +0 -0
- package/src/attach/tbl-paperclip-22a.png +0 -0
- package/src/audio/audioPane.js +3 -3
- package/src/chatPreferencesForm.ttl +0 -0
- package/src/classInstancePane.js +3 -3
- package/src/dashboard/basicPreferences.ts +0 -0
- package/src/dashboard/dashboardPane.ts +0 -0
- package/src/dashboard/homepage.ts +0 -0
- package/src/dashboard/languages/codes.html +0 -0
- package/src/dashboard/languages/codes.xml +0 -0
- package/src/dashboard/languages/codes2.txt +0 -0
- package/src/dashboard/languages/foo +0 -0
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +0 -0
- package/src/dashboard/ontologyData.ttl +0 -0
- package/src/dashboard/preferencesFormText.ttl +0 -0
- package/src/dataContentPane.js +3 -4
- package/src/defaultPane.js +3 -3
- package/src/dokieli/Makefile +0 -0
- package/src/dokieli/dokieliPane.js +5 -5
- package/src/dokieli/new.html +0 -0
- package/src/dokieli/new.js +1 -1
- package/src/form/form-22.png +0 -0
- package/src/form/form-b-22.png +0 -0
- package/src/form/form.graffle +0 -0
- package/src/form/form.png +0 -0
- package/src/form/pane.js +2 -2
- package/src/form/psuedocode-notes.txt +0 -0
- package/src/global.d.ts +0 -0
- package/src/home/homePane.ts +0 -0
- package/src/humanReadablePane.js +0 -0
- package/src/imagePane.js +2 -2
- package/src/index.ts +1 -1
- package/src/internal/internalPane.ts +0 -0
- package/src/mainPage/footer.ts +0 -0
- package/src/mainPage/header.ts +0 -0
- package/src/mainPage/index.ts +0 -0
- package/src/meeting/Makefile +0 -0
- package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
- package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
- package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
- package/src/meeting/test/meeting1/Schedule/index.html +0 -0
- package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
- package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
- package/src/meeting/test/meeting1/details.ttl +0 -0
- package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
- package/src/microblogPane/mbStyle.css +0 -0
- package/src/microblogPane/microblogPane.js +1 -1
- package/src/n3Pane.js +2 -2
- package/src/outline/context.ts +0 -0
- package/src/outline/licenseOptions.js +9 -8
- package/src/outline/manager.js +18 -20
- package/src/outline/manager.test.ts +6 -0
- package/src/outline/outlineIcons.js +4 -2
- package/src/outline/propertyViews.test.ts +7 -1
- package/src/outline/propertyViews.ts +3 -3
- package/src/outline/queryByExample.js +3 -9
- package/src/outline/userInput.js +1 -1
- package/src/outline/viewAsImage.ts +0 -0
- package/src/outline/viewAsMbox.ts +0 -0
- package/src/pad/images/ColourOff.ai +0 -0
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +0 -0
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +0 -0
- package/src/playlist/playlistPane.js +3 -3
- package/src/profile/editProfile.view.ts +20 -0
- package/src/profile/profile.dom.ts +0 -0
- package/src/profile/profileFormText.ttl +0 -0
- package/src/registerPanes.js +92 -52
- package/src/schedule/Makefile +0 -0
- package/src/schedule/formsForSchedule.js +1 -1
- package/src/schedule/formsForSchedule.ttl +0 -0
- package/src/schedule/schedulePane.js +6 -2
- package/src/sharing/sharingPane.ts +0 -0
- package/src/slideshow/slideshowPane.js +3 -6
- package/src/socialPane.js +4 -5
- package/src/style/tabbedtab.css +0 -0
- package/src/tabbed/tabbedPane.ts +0 -0
- package/src/tableViewPane.js +3 -3
- package/src/test-import-export/common.js +1 -1
- package/src/test-import-export/edit-importer.js +5 -10
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +3 -3
- package/src/transaction/period.js +2 -2
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +3 -3
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
- package/src/trustedApplications/trustedApplications.dom.ts +0 -0
- package/src/trustedApplications/trustedApplications.test.ts +4 -0
- package/src/trustedApplications/trustedApplications.utils.ts +0 -0
- package/src/trustedApplications/trustedApplications.view.ts +0 -0
- package/src/types.ts +0 -0
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +3 -3
- package/src/versionInfo.ts +14 -14
- package/src/video/videoPane.js +3 -3
- package/timestamp.sh +0 -0
- package/travis/bumpversion.js +0 -0
- package/tsconfig.json +0 -0
- package/typings/raw-loader.d.ts +0 -0
- package/typings/solid-namespace/index.d.ts +0 -0
- package/webpack.config.js +0 -0
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
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
|
-
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.QuerySource = QuerySource;
|
|
8
|
+
exports.makeQueryRow = makeQueryRow;
|
|
9
|
+
exports.viewAndSaveQuery = viewAndSaveQuery;
|
|
5
10
|
var _solidLogic = require("solid-logic");
|
|
6
|
-
|
|
7
11
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
8
|
-
|
|
9
12
|
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
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
-
|
|
13
14
|
/* istanbul ignore file */
|
|
14
15
|
// The query-by-example functionality in the tabulator
|
|
15
16
|
// was the ability to expore a bit of the web in outline mode,
|
|
@@ -17,17 +18,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
17
18
|
// then pres "find all" which would then generte a SPARQL query
|
|
18
19
|
// to find all other places which had the same pattern.
|
|
19
20
|
// Fields could be optional by pressing th ewhite optoional button
|
|
20
|
-
module.exports = {
|
|
21
|
-
makeQueryRow: makeQueryRow,
|
|
22
|
-
QuerySource: QuerySource,
|
|
23
|
-
viewAndSaveQuery: viewAndSaveQuery // Main function to generate and use the query
|
|
24
21
|
|
|
25
|
-
};
|
|
26
22
|
var optionalSubqueriesIndex = [];
|
|
27
|
-
|
|
28
23
|
function predParentOf(node) {
|
|
29
24
|
var n = node;
|
|
30
|
-
|
|
31
25
|
while (true) {
|
|
32
26
|
if (n.getAttribute('predTR')) {
|
|
33
27
|
return n;
|
|
@@ -39,15 +33,13 @@ function predParentOf(node) {
|
|
|
39
33
|
}
|
|
40
34
|
}
|
|
41
35
|
}
|
|
42
|
-
|
|
43
36
|
function makeQueryRow(q, tr, constraint) {
|
|
44
37
|
// predtr = predParentOf(tr)
|
|
45
38
|
// var nodes = tr.childNodes
|
|
46
39
|
// var n = tr.childNodes.length
|
|
47
|
-
var inverse = tr.AJAR_inverse;
|
|
48
|
-
|
|
40
|
+
var inverse = tr.AJAR_inverse;
|
|
41
|
+
// var hasVar = 0
|
|
49
42
|
var parentVar, level, pat;
|
|
50
|
-
|
|
51
43
|
function makeRDFStatement(freeVar, parent) {
|
|
52
44
|
if (inverse) {
|
|
53
45
|
return new UI.rdf.Statement(freeVar, st.predicate, parent);
|
|
@@ -55,43 +47,33 @@ function makeQueryRow(q, tr, constraint) {
|
|
|
55
47
|
return new UI.rdf.Statement(parent, st.predicate, freeVar);
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
|
-
|
|
59
50
|
var optionalSubqueryIndex = null;
|
|
60
|
-
|
|
61
51
|
for (level = tr.parentNode; level; level = level.parentNode) {
|
|
62
52
|
if (typeof level.AJAR_statement !== 'undefined') {
|
|
63
53
|
// level.AJAR_statement
|
|
64
54
|
level.setAttribute('bla', level.AJAR_statement); // @@? -timbl
|
|
65
55
|
// UI.log.debug("Parent TR statement="+level.AJAR_statement + ", var=" + level.AJAR_variable)
|
|
66
|
-
|
|
67
56
|
/* for(let c=0;c<level.parentNode.childNodes.length;c++) //This makes sure the same variable is used for a subject
|
|
68
57
|
if(level.parentNode.childNodes[c].AJAR_variable)
|
|
69
58
|
level.AJAR_variable = level.parentNode.childNodes[c].AJAR_variable; */
|
|
70
|
-
|
|
71
59
|
if (!level.AJAR_variable) {
|
|
72
60
|
makeQueryRow(q, level);
|
|
73
61
|
}
|
|
74
|
-
|
|
75
62
|
parentVar = level.AJAR_variable;
|
|
76
63
|
var predLevel = predParentOf(level);
|
|
77
|
-
|
|
78
64
|
if (predLevel.getAttribute('optionalSubqueriesIndex')) {
|
|
79
65
|
optionalSubqueryIndex = predLevel.getAttribute('optionalSubqueriesIndex');
|
|
80
66
|
pat = optionalSubqueriesIndex[optionalSubqueryIndex];
|
|
81
67
|
}
|
|
82
|
-
|
|
83
68
|
break;
|
|
84
69
|
}
|
|
85
70
|
}
|
|
86
|
-
|
|
87
71
|
if (!pat) {
|
|
88
72
|
pat = q.pat;
|
|
89
73
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
74
|
+
var predtr = predParentOf(tr);
|
|
75
|
+
// /////OPTIONAL KLUDGE///////////
|
|
93
76
|
var opt = predtr.getAttribute('optional');
|
|
94
|
-
|
|
95
77
|
if (!opt) {
|
|
96
78
|
if (optionalSubqueryIndex) {
|
|
97
79
|
predtr.setAttribute('optionalSubqueriesIndex', optionalSubqueryIndex);
|
|
@@ -99,124 +81,103 @@ function makeQueryRow(q, tr, constraint) {
|
|
|
99
81
|
predtr.removeAttribute('optionalSubqueriesIndex');
|
|
100
82
|
}
|
|
101
83
|
}
|
|
102
|
-
|
|
103
84
|
if (opt) {
|
|
104
85
|
var optForm = _solidLogic.store.formula();
|
|
105
|
-
|
|
106
86
|
optionalSubqueriesIndex.push(optForm);
|
|
107
87
|
predtr.setAttribute('optionalSubqueriesIndex', optionalSubqueriesIndex.length - 1);
|
|
108
88
|
pat.optional.push(optForm);
|
|
109
89
|
pat = optForm;
|
|
110
|
-
}
|
|
90
|
+
}
|
|
111
91
|
|
|
92
|
+
// //////////////////////////////
|
|
112
93
|
|
|
113
94
|
var st = tr.AJAR_statement;
|
|
114
95
|
var constraintVar = tr.AJAR_inverse ? st.subject : st.object; // this is only used for constraints
|
|
115
|
-
|
|
116
96
|
var hasParent = true;
|
|
117
|
-
|
|
118
97
|
if (constraintVar.isBlank && constraint) {
|
|
119
98
|
window.alert('You cannot constrain a query with a blank node. No constraint will be added.');
|
|
120
99
|
}
|
|
121
|
-
|
|
122
100
|
if (!parentVar) {
|
|
123
101
|
hasParent = false;
|
|
124
102
|
parentVar = inverse ? st.object : st.subject; // if there is no parents, uses the sub/obj
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
103
|
+
}
|
|
104
|
+
// UI.log.debug('Initial variable: '+tr.AJAR_variable)
|
|
128
105
|
var v = tr.AJAR_variable ? tr.AJAR_variable : _solidLogic.store.variable(UI.utils.newVariableName());
|
|
129
106
|
q.vars.push(v);
|
|
130
107
|
v.label = hasParent ? parentVar.label : UI.utils.label(parentVar);
|
|
131
108
|
v.label += ' ' + UI.utils.predicateLabelForXML(st.predicate, inverse);
|
|
132
|
-
var pattern = makeRDFStatement(v, parentVar);
|
|
133
|
-
|
|
109
|
+
var pattern = makeRDFStatement(v, parentVar);
|
|
110
|
+
// alert(pattern)
|
|
134
111
|
v.label = v.label.slice(0, 1).toUpperCase() + v.label.slice(1); // init cap
|
|
112
|
+
|
|
135
113
|
// See ../rdf/sparql.js
|
|
136
114
|
// This should only work on literals but doesn't.
|
|
137
|
-
|
|
138
115
|
function ConstraintEqualTo(value) {
|
|
139
116
|
this.describe = function (varstr) {
|
|
140
117
|
return varstr + ' = ' + value.toNT();
|
|
141
118
|
};
|
|
142
|
-
|
|
143
119
|
this.test = function (term) {
|
|
144
120
|
return value.sameTerm(term);
|
|
145
121
|
};
|
|
146
|
-
|
|
147
122
|
return this;
|
|
148
123
|
}
|
|
149
|
-
|
|
150
124
|
if (constraint) {
|
|
151
125
|
// binds the constrained variable to its selected value
|
|
152
126
|
pat.constraints[v] = new ConstraintEqualTo(constraintVar);
|
|
153
127
|
}
|
|
154
|
-
|
|
155
128
|
UI.log.info('Pattern: ' + pattern);
|
|
156
129
|
pattern.tr = tr;
|
|
157
130
|
tr.AJAR_pattern = pattern; // Cross-link UI and query line
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
131
|
+
tr.AJAR_variable = v;
|
|
132
|
+
// UI.log.debug('Final variable: '+tr.AJAR_variable)
|
|
161
133
|
UI.log.debug('Query pattern: ' + pattern);
|
|
162
134
|
pat.statements.push(pattern);
|
|
163
135
|
return v;
|
|
164
136
|
} // makeQueryRow
|
|
165
137
|
|
|
166
|
-
|
|
167
138
|
function saveQuery(selection, qs) {
|
|
168
139
|
// var qs = outline.qs // @@
|
|
169
140
|
var q = new UI.rdf.Query();
|
|
170
141
|
var n = selection.length;
|
|
171
142
|
var i, sel, st, tr;
|
|
172
|
-
|
|
173
143
|
for (i = 0; i < n; i++) {
|
|
174
144
|
sel = selection[i];
|
|
175
145
|
tr = sel.parentNode;
|
|
176
146
|
st = tr.AJAR_statement;
|
|
177
147
|
UI.log.debug('Statement ' + st);
|
|
178
|
-
|
|
179
148
|
if (sel.getAttribute('class').indexOf('pred') >= 0) {
|
|
180
149
|
UI.log.info(' We have a predicate');
|
|
181
150
|
makeQueryRow(q, tr);
|
|
182
151
|
}
|
|
183
|
-
|
|
184
152
|
if (sel.getAttribute('class').indexOf('obj') >= 0) {
|
|
185
153
|
UI.log.info(' We have an object');
|
|
186
154
|
makeQueryRow(q, tr, true);
|
|
187
155
|
}
|
|
188
156
|
}
|
|
189
|
-
|
|
190
157
|
qs.addQuery(q);
|
|
191
|
-
|
|
192
158
|
function resetOutliner(pat) {
|
|
193
159
|
var n = pat.statements.length;
|
|
194
160
|
var pattern, tr;
|
|
195
|
-
|
|
196
161
|
for (var _i = 0; _i < n; _i++) {
|
|
197
162
|
pattern = pat.statements[_i];
|
|
198
|
-
tr = pattern.tr;
|
|
199
|
-
|
|
163
|
+
tr = pattern.tr;
|
|
164
|
+
// UI.log.debug('tr: ' + tr.AJAR_statement);
|
|
200
165
|
if (typeof tr !== 'undefined') {
|
|
201
166
|
tr.AJAR_pattern = null; // TODO: is this == to whats in current version?
|
|
202
|
-
|
|
203
167
|
tr.AJAR_variable = null;
|
|
204
168
|
}
|
|
205
169
|
}
|
|
206
|
-
|
|
207
170
|
for (var x in pat.optional) {
|
|
208
171
|
resetOutliner(pat.optional[x]);
|
|
209
172
|
}
|
|
210
173
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
174
|
+
resetOutliner(q.pat);
|
|
175
|
+
// NextVariable=0;
|
|
214
176
|
return q;
|
|
215
177
|
} // saveQuery
|
|
178
|
+
|
|
216
179
|
// When the user asks for all list of all matching parts of the data
|
|
217
180
|
//
|
|
218
|
-
|
|
219
|
-
|
|
220
181
|
function viewAndSaveQuery(outline, selection) {
|
|
221
182
|
var qs = outline.qs;
|
|
222
183
|
UI.log.info('outline.doucment is now ' + outline.document.location);
|
|
@@ -232,6 +193,7 @@ function viewAndSaveQuery(outline, selection) {
|
|
|
232
193
|
qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView());
|
|
233
194
|
}
|
|
234
195
|
}
|
|
196
|
+
|
|
235
197
|
/**
|
|
236
198
|
* The QuerySource object stores a set of listeners and a set of queries.
|
|
237
199
|
* It keeps the listeners aware of those queries that the source currently
|
|
@@ -242,7 +204,6 @@ function viewAndSaveQuery(outline, selection) {
|
|
|
242
204
|
* @author jambo
|
|
243
205
|
*/
|
|
244
206
|
|
|
245
|
-
|
|
246
207
|
function QuerySource() {
|
|
247
208
|
/**
|
|
248
209
|
* stores all of the queries currently held by this source,
|
|
@@ -253,61 +214,52 @@ function QuerySource() {
|
|
|
253
214
|
* stores the listeners for a query object.
|
|
254
215
|
* @see TabbedContainer
|
|
255
216
|
*/
|
|
256
|
-
|
|
257
217
|
this.listeners = [];
|
|
218
|
+
|
|
258
219
|
/**
|
|
259
220
|
* add a Query object to the query source--It will be given an ID number
|
|
260
221
|
* and a name, if it doesn't already have one. This subsequently adds the
|
|
261
222
|
* query to all of the listeners the QuerySource knows about.
|
|
262
223
|
*/
|
|
263
|
-
|
|
264
224
|
this.addQuery = function (q) {
|
|
265
225
|
var i;
|
|
266
|
-
|
|
267
226
|
if (q.name === null || q.name === '') {
|
|
268
227
|
q.name = 'Query #' + (this.queries.length + 1);
|
|
269
228
|
}
|
|
270
|
-
|
|
271
229
|
q.id = this.queries.length;
|
|
272
230
|
this.queries.push(q);
|
|
273
|
-
|
|
274
231
|
for (i = 0; i < this.listeners.length; i++) {
|
|
275
232
|
if (this.listeners[i] !== null) {
|
|
276
233
|
this.listeners[i].addQuery(q);
|
|
277
234
|
}
|
|
278
235
|
}
|
|
279
236
|
};
|
|
237
|
+
|
|
280
238
|
/**
|
|
281
239
|
* Remove a Query object from the source. Tells all listeners to also
|
|
282
240
|
* remove the query.
|
|
283
241
|
*/
|
|
284
|
-
|
|
285
|
-
|
|
286
242
|
this.removeQuery = function (q) {
|
|
287
243
|
var i;
|
|
288
|
-
|
|
289
244
|
for (i = 0; i < this.listeners.length; i++) {
|
|
290
245
|
if (this.listeners[i] !== null) {
|
|
291
246
|
this.listeners[i].removeQuery(q);
|
|
292
247
|
}
|
|
293
248
|
}
|
|
294
|
-
|
|
295
249
|
if (this.queries[q.id] !== null) {
|
|
296
250
|
delete this.queries[q.id];
|
|
297
251
|
}
|
|
298
252
|
};
|
|
253
|
+
|
|
299
254
|
/**
|
|
300
255
|
* adds a "Listener" to this QuerySource - that is, an object
|
|
301
256
|
* which is capable of both adding and removing queries.
|
|
302
257
|
* Currently, only the TabbedContainer class is added.
|
|
303
258
|
* also puts all current queries into the listener to be used.
|
|
304
259
|
*/
|
|
305
|
-
|
|
306
|
-
|
|
307
260
|
this.addListener = function (listener) {
|
|
308
261
|
var i;
|
|
309
262
|
this.listeners.push(listener);
|
|
310
|
-
|
|
311
263
|
for (i = 0; i < this.queries.length; i++) {
|
|
312
264
|
if (this.queries[i] !== null) {
|
|
313
265
|
listener.addQuery(this.queries[i]);
|
|
@@ -318,17 +270,13 @@ function QuerySource() {
|
|
|
318
270
|
* removes listener from the array of listeners, if it exists! Also takes
|
|
319
271
|
* all of the queries from this source out of the listener.
|
|
320
272
|
*/
|
|
321
|
-
|
|
322
|
-
|
|
323
273
|
this.removeListener = function (listener) {
|
|
324
274
|
var i;
|
|
325
|
-
|
|
326
275
|
for (i = 0; i < this.queries.length; i++) {
|
|
327
276
|
if (this.queries[i] !== null) {
|
|
328
277
|
listener.removeQuery(this.queries[i]);
|
|
329
278
|
}
|
|
330
279
|
}
|
|
331
|
-
|
|
332
280
|
for (i = 0; i < this.listeners.length; i++) {
|
|
333
281
|
if (this.listeners[i] === listener) {
|
|
334
282
|
delete this.listeners[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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"],"sources":["../../src/outline/queryByExample.js"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queryByExample.js","names":["optionalSubqueriesIndex","predParentOf","node","n","getAttribute","previousSibling","nodeName","console","log","makeQueryRow","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","viewAndSaveQuery","outline","document","location","listeners","getActiveView","view","drawQuery","updateQueryControls","QuerySource","queries","name","id","removeQuery","addListener","listener","removeListener"],"sources":["../../src/outline/queryByExample.js"],"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\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\nexport function 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//\nexport function 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\nexport function 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"],"mappings":"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"}
|