solid-ui 2.4.22-4f620aea → 2.4.22-580e8bf6
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/dist/main.js +287 -99
- package/dist/main.js.map +1 -1
- package/lib/utils/label.js +1 -1
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/forms.js +285 -97
- package/lib/widgets/forms.js.map +1 -1
- package/package.json +1 -1
package/lib/utils/label.js
CHANGED
|
@@ -120,6 +120,6 @@ function slice(s, suffix) {
|
|
|
120
120
|
|
|
121
121
|
function getWellKnownLabel(thing) {
|
|
122
122
|
return _solidLogic.store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label
|
|
123
|
-
_solidLogic.store.any(thing, UI.ns.link('message')) || _solidLogic.store.any(thing, UI.ns.vcard('fn')) || _solidLogic.store.any(thing, UI.ns.foaf('name')) || _solidLogic.store.any(thing, UI.ns.dct('title')) || _solidLogic.store.any(thing, UI.ns.dc('title')) || _solidLogic.store.any(thing, UI.ns.rss('title')) || _solidLogic.store.any(thing, UI.ns.contact('fullName')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2001/04/roadmap/org#name')) || _solidLogic.store.any(thing, UI.ns.cal('summary')) || _solidLogic.store.any(thing, UI.ns.foaf('nick')) || _solidLogic.store.any(thing, UI.ns.as('name')) || _solidLogic.store.any(thing, UI.ns.schema('name')) || _solidLogic.store.any(thing, UI.ns.rdfs('label'));
|
|
123
|
+
_solidLogic.store.any(thing, UI.ns.link('message')) || _solidLogic.store.any(thing, UI.ns.vcard('fn')) || _solidLogic.store.any(thing, UI.ns.foaf('name')) || _solidLogic.store.any(thing, UI.ns.dct('title')) || _solidLogic.store.any(thing, UI.ns.dc('title')) || _solidLogic.store.any(thing, UI.ns.rss('title')) || _solidLogic.store.any(thing, UI.ns.contact('fullName')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2001/04/roadmap/org#name')) || _solidLogic.store.any(thing, UI.ns.cal('summary')) || _solidLogic.store.any(thing, UI.ns.foaf('nick')) || _solidLogic.store.any(thing, UI.ns.as('name')) || _solidLogic.store.any(thing, UI.ns.schema('name')) || _solidLogic.store.any(thing, UI.ns.rdfs('label')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'));
|
|
124
124
|
}
|
|
125
125
|
//# sourceMappingURL=label.js.map
|
package/lib/utils/label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/label.ts"],"names":["UI","log","ns","rdf","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","store","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/utils/label.ts"],"names":["UI","log","ns","rdf","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","store","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs"],"mappings":"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","sourcesContent":["import * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label')) ||\n store.any(thing, store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'))\n}\n"],"file":"label.js"}
|
package/lib/versionInfo.js
CHANGED
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.versionInfo = void 0;
|
|
7
7
|
var versionInfo = {
|
|
8
|
-
buildTime: '2022-05-
|
|
9
|
-
commit: '
|
|
8
|
+
buildTime: '2022-05-19T17:29:45Z',
|
|
9
|
+
commit: '580e8bf6997815d2b72b0898141a77e3a759185c',
|
|
10
10
|
npmInfo: {
|
|
11
11
|
'solid-ui': '2.4.22',
|
|
12
12
|
npm: '6.14.17',
|
package/lib/versionInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/versionInfo.ts"],"names":["versionInfo","buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,SAAS,EAAE,sBADc;AAEzBC,EAAAA,MAAM,EAAE,0CAFiB;AAGzBC,EAAAA,OAAO,EACT;AACE,gBAAY,QADd;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,QAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJ2B,CAApB","sourcesContent":["export const versionInfo = {\n buildTime: '2022-05-
|
|
1
|
+
{"version":3,"sources":["../src/versionInfo.ts"],"names":["versionInfo","buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,SAAS,EAAE,sBADc;AAEzBC,EAAAA,MAAM,EAAE,0CAFiB;AAGzBC,EAAAA,OAAO,EACT;AACE,gBAAY,QADd;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,QAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJ2B,CAApB","sourcesContent":["export const versionInfo = {\n buildTime: '2022-05-19T17:29:45Z',\n commit: '580e8bf6997815d2b72b0898141a77e3a759185c',\n npmInfo:\n{\n 'solid-ui': '2.4.22',\n npm: '6.14.17',\n ares: '1.18.1',\n brotli: '1.0.9',\n cldr: '40.0',\n icu: '70.1',\n llhttp: '2.1.4',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.19.2',\n openssl: '1.1.1n',\n tz: '2021a3',\n unicode: '14.0',\n uv: '1.42.0',\n v8: '8.4.371.23-node.87',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
|
package/lib/widgets/forms.js
CHANGED
|
@@ -44,6 +44,7 @@ exports.findClosest = findClosest;
|
|
|
44
44
|
exports.formsFor = formsFor;
|
|
45
45
|
exports.makeDescription = makeDescription;
|
|
46
46
|
exports.makeSelectForCategory = makeSelectForCategory;
|
|
47
|
+
exports.makeSelectForChoice = makeSelectForChoice;
|
|
47
48
|
exports.makeSelectForNestedCategory = makeSelectForNestedCategory;
|
|
48
49
|
exports.makeSelectForOptions = makeSelectForOptions;
|
|
49
50
|
exports.newButton = newButton;
|
|
@@ -155,6 +156,7 @@ _fieldFunction.field[ns.ui('Form').uri] = _fieldFunction.field[ns.ui('Group').ur
|
|
|
155
156
|
var ui = ns.ui;
|
|
156
157
|
if (container) container.appendChild(box); // Prevent loops
|
|
157
158
|
|
|
159
|
+
if (!form) return;
|
|
158
160
|
var key = subject.toNT() + '|' + form.toNT();
|
|
159
161
|
|
|
160
162
|
if (already[key]) {
|
|
@@ -1042,8 +1044,6 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
|
|
|
1042
1044
|
var kb = _solidLogic.store;
|
|
1043
1045
|
var formDoc = form.doc ? form.doc() : null; // @@ if blank no way to know
|
|
1044
1046
|
|
|
1045
|
-
var uiMultipleInUse = false; // this signals to ui:choice that it is part of a ui:multiple
|
|
1046
|
-
|
|
1047
1047
|
var multiSelect = false;
|
|
1048
1048
|
var p;
|
|
1049
1049
|
var box = dom.createElement('div');
|
|
@@ -1073,91 +1073,77 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
|
|
|
1073
1073
|
|
|
1074
1074
|
var follow = kb.anyJS(form, ui('follow'), null, formDoc); // data doc moves to new subject?
|
|
1075
1075
|
|
|
1076
|
-
var possible = [];
|
|
1077
|
-
var possibleProperties;
|
|
1078
|
-
var firstSelectOptionText = '* Select for ' + utils.label(subject, true) + ' *'; // if we do NOT have a container it means it is a ui:Multiple
|
|
1079
|
-
// only important for the first option text in select
|
|
1080
|
-
|
|
1081
|
-
if (!container) {
|
|
1082
|
-
uiMultipleInUse = true;
|
|
1083
|
-
firstSelectOptionText = utils.label(subject, true);
|
|
1084
|
-
}
|
|
1085
|
-
|
|
1086
|
-
if (subject.termType === 'BlankNode') {
|
|
1087
|
-
firstSelectOptionText = '* Select for ' + utils.label(property) + ' *';
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
1076
|
var opts = {
|
|
1091
1077
|
form: form,
|
|
1092
1078
|
subForm: subForm,
|
|
1093
1079
|
multiSelect: multiSelect,
|
|
1094
|
-
firstSelectOptionText: firstSelectOptionText,
|
|
1095
|
-
uiMultipleInUse: uiMultipleInUse,
|
|
1096
1080
|
disambiguate: false
|
|
1097
1081
|
};
|
|
1098
|
-
possible = kb.each(undefined, ns.rdf('type'), uiFrom, formDoc);
|
|
1099
1082
|
|
|
1100
|
-
|
|
1101
|
-
possible
|
|
1102
|
-
|
|
1083
|
+
function getSelectorOptions() {
|
|
1084
|
+
var possible = [];
|
|
1085
|
+
var possibleProperties;
|
|
1086
|
+
possible = kb.each(undefined, ns.rdf('type'), uiFrom, formDoc);
|
|
1103
1087
|
|
|
1088
|
+
for (var x in kb.findMembersNT(uiFrom)) {
|
|
1089
|
+
possible.push(kb.fromNT(x));
|
|
1090
|
+
} // Use rdfs
|
|
1104
1091
|
|
|
1105
|
-
if (uiFrom.sameTerm(ns.rdfs('Class'))) {
|
|
1106
|
-
for (p in buttons.allClassURIs()) {
|
|
1107
|
-
possible.push(kb.sym(p));
|
|
1108
|
-
} // log.debug("%%% Choice field: possible.length 2 = "+possible.length)
|
|
1109
1092
|
|
|
1110
|
-
|
|
1111
|
-
|
|
1093
|
+
if (uiFrom.sameTerm(ns.rdfs('Class'))) {
|
|
1094
|
+
for (p in buttons.allClassURIs()) {
|
|
1095
|
+
possible.push(kb.sym(p));
|
|
1096
|
+
} // log.debug("%%% Choice field: possible.length 2 = "+possible.length)
|
|
1112
1097
|
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
}
|
|
1098
|
+
} else if (uiFrom.sameTerm(ns.rdf('Property'))) {
|
|
1099
|
+
possibleProperties = buttons.propertyTriage(kb);
|
|
1116
1100
|
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1101
|
+
for (p in possibleProperties.op) {
|
|
1102
|
+
possible.push(kb.fromNT(p));
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
for (p in possibleProperties.dp) {
|
|
1106
|
+
possible.push(kb.fromNT(p));
|
|
1107
|
+
}
|
|
1120
1108
|
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1109
|
+
opts.disambiguate = true; // This is a big class, and the labels won't be enough.
|
|
1110
|
+
} else if (uiFrom.sameTerm(ns.owl('ObjectProperty'))) {
|
|
1111
|
+
possibleProperties = buttons.propertyTriage(kb);
|
|
1124
1112
|
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1113
|
+
for (p in possibleProperties.op) {
|
|
1114
|
+
possible.push(kb.fromNT(p));
|
|
1115
|
+
}
|
|
1128
1116
|
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1117
|
+
opts.disambiguate = true;
|
|
1118
|
+
} else if (uiFrom.sameTerm(ns.owl('DatatypeProperty'))) {
|
|
1119
|
+
possibleProperties = buttons.propertyTriage(kb);
|
|
1132
1120
|
|
|
1133
|
-
|
|
1134
|
-
|
|
1121
|
+
for (p in possibleProperties.dp) {
|
|
1122
|
+
possible.push(kb.fromNT(p));
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
opts.disambiguate = true;
|
|
1135
1126
|
}
|
|
1136
1127
|
|
|
1137
|
-
|
|
1138
|
-
}
|
|
1128
|
+
return sortByLabel(possible);
|
|
1129
|
+
} // TODO: this checks for any occurrence, regardless of true or false setting
|
|
1139
1130
|
|
|
1140
|
-
var sortedPossible = sortByLabel(possible); // TODO: this checks for any occurrence, regardless of true or false setting
|
|
1141
1131
|
|
|
1142
1132
|
if (kb.any(form, ui('canMintNew'))) {
|
|
1143
1133
|
opts.mint = '* Create new *'; // @@ could be better
|
|
1144
1134
|
}
|
|
1145
1135
|
|
|
1146
|
-
var selector
|
|
1147
|
-
rhs.appendChild(selector);
|
|
1148
|
-
var object;
|
|
1149
|
-
|
|
1150
|
-
if (selector.currentURI) {
|
|
1151
|
-
object = $rdf.sym(selector.currentURI);
|
|
1152
|
-
} else {
|
|
1153
|
-
object = kb.any(subject, property);
|
|
1154
|
-
}
|
|
1136
|
+
var selector;
|
|
1155
1137
|
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1138
|
+
rhs.refresh = function () {
|
|
1139
|
+
var selectorOptions = getSelectorOptions();
|
|
1140
|
+
selector = makeSelectForChoice(dom, rhs, kb, subject, property, selectorOptions, uiFrom, opts, dataDoc, callbackFunction);
|
|
1141
|
+
rhs.innerHTML = '';
|
|
1142
|
+
rhs.appendChild(selector);
|
|
1143
|
+
};
|
|
1160
1144
|
|
|
1145
|
+
rhs.refresh();
|
|
1146
|
+
if (selector && selector.refresh) selector.refresh();
|
|
1161
1147
|
return box;
|
|
1162
1148
|
};
|
|
1163
1149
|
/**
|
|
@@ -1514,10 +1500,9 @@ function makeDescription(dom, kb, subject, predicate, dataDoc, callbackFunction)
|
|
|
1514
1500
|
// @param subject - a term, the subject of the statement(s) being edited.
|
|
1515
1501
|
// @param predicate - a term, the predicate of the statement(s) being edited
|
|
1516
1502
|
// @param possible - a list of terms, the possible value the object can take
|
|
1517
|
-
// @param options.
|
|
1518
|
-
// @param options.
|
|
1519
|
-
// option for none selected (for non
|
|
1520
|
-
// @param options.uiMultipleInUse - signals that the ui:choise is used with a ui:multiple
|
|
1503
|
+
// @param options.multiple - Boolean - Whether more than one at a time is allowed
|
|
1504
|
+
// @param options.nullLabel - a string to be displayed as the
|
|
1505
|
+
// option for none selected (for non multiple)
|
|
1521
1506
|
// @param options.mint - User may create thing if this sent to the prompt string eg "New foo"
|
|
1522
1507
|
// @param options.subForm - If mint, then the form to be used for minting the new thing
|
|
1523
1508
|
// @param dataDoc - The web document being edited
|
|
@@ -1525,7 +1510,7 @@ function makeDescription(dom, kb, subject, predicate, dataDoc, callbackFunction)
|
|
|
1525
1510
|
*/
|
|
1526
1511
|
|
|
1527
1512
|
|
|
1528
|
-
function makeSelectForOptions(dom, kb, subject, predicate, possible,
|
|
1513
|
+
function makeSelectForOptions(dom, kb, subject, predicate, possible, options, dataDoc, callbackFunction) {
|
|
1529
1514
|
log.debug('Select list length now ' + possible.length);
|
|
1530
1515
|
var n = 0;
|
|
1531
1516
|
var uris = {}; // Count them
|
|
@@ -1568,6 +1553,8 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1568
1553
|
actual = getActual();
|
|
1569
1554
|
|
|
1570
1555
|
var onChange = function onChange(_e) {
|
|
1556
|
+
select.disabled = true; // until data written back - gives user feedback too
|
|
1557
|
+
|
|
1571
1558
|
var ds = [];
|
|
1572
1559
|
var is = [];
|
|
1573
1560
|
|
|
@@ -1598,14 +1585,11 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1598
1585
|
newObject = newThing(dataDoc);
|
|
1599
1586
|
}
|
|
1600
1587
|
|
|
1601
|
-
is.push($rdf.st(subject, predicate,
|
|
1602
|
-
if (uiFrom) is.push($rdf.st(newObject, ns.rdf('type'), kb.sym(uiFrom), dataDoc)); // not sure if this 'if' is used because I cannot find mintStatementsFun
|
|
1588
|
+
is.push($rdf.st(subject, predicate, newObject, dataDoc)); // not sure if this 'if' is used because I cannot find mintStatementsFun
|
|
1603
1589
|
|
|
1604
1590
|
if (options.mintStatementsFun) {
|
|
1605
1591
|
is = is.concat(options.mintStatementsFun(newObject));
|
|
1606
1592
|
}
|
|
1607
|
-
|
|
1608
|
-
select.currentURI = newObject;
|
|
1609
1593
|
}
|
|
1610
1594
|
|
|
1611
1595
|
if (!opt.AJAR_uri) continue; // a prompt or mint
|
|
@@ -1613,7 +1597,11 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1613
1597
|
if (opt.selected && !(opt.AJAR_uri in actual)) {
|
|
1614
1598
|
// new class
|
|
1615
1599
|
is.push($rdf.st(subject, predicate, kb.sym(opt.AJAR_uri), dataDoc));
|
|
1616
|
-
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
if (!opt.selected && opt.AJAR_uri in actual) {
|
|
1603
|
+
// old class
|
|
1604
|
+
removeValue(kb.sym(opt.AJAR_uri));
|
|
1617
1605
|
}
|
|
1618
1606
|
|
|
1619
1607
|
if (opt.selected) select.currentURI = opt.AJAR_uri;
|
|
@@ -1633,29 +1621,38 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1633
1621
|
sel = sel.superSelect;
|
|
1634
1622
|
}
|
|
1635
1623
|
|
|
1636
|
-
|
|
1624
|
+
function doneNew(ok, _body) {
|
|
1625
|
+
callbackFunction(ok, {
|
|
1626
|
+
widget: 'select',
|
|
1627
|
+
event: 'new'
|
|
1628
|
+
});
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
log.info('selectForOptions: data doc = ' + dataDoc);
|
|
1632
|
+
kb.updater.update(ds, is, function (uri, ok, body) {
|
|
1633
|
+
actual = getActual(); // refresh
|
|
1637
1634
|
|
|
1638
|
-
removeNextSiblingsAfterElement(select);
|
|
1639
|
-
addSubFormChoice(dom, select.parentNode, {}, $rdf.sym(select.currentURI), options.subForm, dataDoc, function (ok, body) {
|
|
1640
1635
|
if (ok) {
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
widget: 'select',
|
|
1648
|
-
event: 'new'
|
|
1649
|
-
});
|
|
1636
|
+
select.disabled = false; // data written back
|
|
1637
|
+
|
|
1638
|
+
if (newObject) {
|
|
1639
|
+
var fn = (0, _fieldFunction.fieldFunction)(dom, options.subForm);
|
|
1640
|
+
fn(dom, select.parentNode, {}, newObject, options.subForm, dataDoc, doneNew);
|
|
1641
|
+
}
|
|
1650
1642
|
} else {
|
|
1651
|
-
select.parentNode.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating data in
|
|
1643
|
+
return select.parentNode.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating data in select: ' + body));
|
|
1652
1644
|
}
|
|
1645
|
+
|
|
1646
|
+
if (callbackFunction) callbackFunction(ok, {
|
|
1647
|
+
widget: 'select',
|
|
1648
|
+
event: 'change'
|
|
1649
|
+
});
|
|
1653
1650
|
});
|
|
1654
1651
|
};
|
|
1655
1652
|
|
|
1656
1653
|
var select = dom.createElement('select');
|
|
1657
1654
|
select.setAttribute('style', style.formSelectSTyle);
|
|
1658
|
-
if (options.
|
|
1655
|
+
if (options.multiple) select.setAttribute('multiple', 'true');
|
|
1659
1656
|
select.currentURI = null;
|
|
1660
1657
|
|
|
1661
1658
|
select.refresh = function () {
|
|
@@ -1706,14 +1703,11 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1706
1703
|
select.insertBefore(mint, select.firstChild);
|
|
1707
1704
|
}
|
|
1708
1705
|
|
|
1709
|
-
if (
|
|
1706
|
+
if (select.currentURI == null && !options.multiple) {
|
|
1710
1707
|
var prompt = dom.createElement('option');
|
|
1711
|
-
prompt.appendChild(dom.createTextNode(options.
|
|
1712
|
-
prompt.disabled = true;
|
|
1713
|
-
prompt.value = true;
|
|
1714
|
-
prompt.hidden = true;
|
|
1715
|
-
prompt.selected = true;
|
|
1708
|
+
prompt.appendChild(dom.createTextNode(options.nullLabel));
|
|
1716
1709
|
select.insertBefore(prompt, select.firstChild);
|
|
1710
|
+
prompt.selected = true;
|
|
1717
1711
|
}
|
|
1718
1712
|
|
|
1719
1713
|
if (editable) {
|
|
@@ -1732,11 +1726,11 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1732
1726
|
function makeSelectForCategory(dom, kb, subject, category, dataDoc, callbackFunction) {
|
|
1733
1727
|
var du = kb.any(category, ns.owl('disjointUnionOf'));
|
|
1734
1728
|
var subs;
|
|
1735
|
-
var
|
|
1729
|
+
var multiple = false;
|
|
1736
1730
|
|
|
1737
1731
|
if (!du) {
|
|
1738
1732
|
subs = kb.each(undefined, ns.rdfs('subClassOf'), category);
|
|
1739
|
-
|
|
1733
|
+
multiple = true;
|
|
1740
1734
|
} else {
|
|
1741
1735
|
subs = du.elements;
|
|
1742
1736
|
}
|
|
@@ -1744,15 +1738,16 @@ function makeSelectForCategory(dom, kb, subject, category, dataDoc, callbackFunc
|
|
|
1744
1738
|
log.debug('Select list length ' + subs.length);
|
|
1745
1739
|
|
|
1746
1740
|
if (subs.length === 0) {
|
|
1747
|
-
return (0, _error.errorMessageBlock)(dom, "Can't do " + (
|
|
1741
|
+
return (0, _error.errorMessageBlock)(dom, "Can't do " + (multiple ? 'multiple ' : '') + 'selector with no subclasses of category: ' + category);
|
|
1748
1742
|
}
|
|
1749
1743
|
|
|
1750
1744
|
if (subs.length === 1) {
|
|
1751
|
-
return (0, _error.errorMessageBlock)(dom, "Can't do " + (
|
|
1745
|
+
return (0, _error.errorMessageBlock)(dom, "Can't do " + (multiple ? 'multiple ' : '') + 'selector with only 1 subclass of category: ' + category + ':' + subs[1]);
|
|
1752
1746
|
}
|
|
1753
1747
|
|
|
1754
|
-
return makeSelectForOptions(dom, kb, subject, ns.rdf('type'), subs,
|
|
1755
|
-
|
|
1748
|
+
return makeSelectForOptions(dom, kb, subject, ns.rdf('type'), subs, {
|
|
1749
|
+
multiple: multiple,
|
|
1750
|
+
nullPrompt: '--classify--'
|
|
1756
1751
|
}, dataDoc, callbackFunction);
|
|
1757
1752
|
}
|
|
1758
1753
|
/** Make SELECT element to select subclasses recurively
|
|
@@ -1942,4 +1937,197 @@ function newThing(doc) {
|
|
|
1942
1937
|
var now = new Date();
|
|
1943
1938
|
return $rdf.sym(doc.uri + '#' + 'id' + ('' + now.getTime()));
|
|
1944
1939
|
}
|
|
1940
|
+
/** Make SELECT element to select options
|
|
1941
|
+
//
|
|
1942
|
+
// @param subject - a term, the subject of the statement(s) being edited.
|
|
1943
|
+
// @param predicate - a term, the predicate of the statement(s) being edited
|
|
1944
|
+
// @param possible - a list of terms, the possible value the object can take
|
|
1945
|
+
// @param options.multiSelect - Boolean - Whether more than one at a time is allowed
|
|
1946
|
+
// @param options.uiMultipleInUse - signals that the ui:choise is used with a ui:multiple
|
|
1947
|
+
// @param options.mint - User may create thing if this sent to the prompt string eg "New foo"
|
|
1948
|
+
// @param options.subForm - If mint, then the form to be used for minting the new thing
|
|
1949
|
+
// @param dataDoc - The web document being edited
|
|
1950
|
+
// @param callbackFunction - takes (boolean ok, string errorBody)
|
|
1951
|
+
*/
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
function makeSelectForChoice(dom, container, kb, subject, predicate, possible, uiFrom, options, dataDoc, callbackFunction) {
|
|
1955
|
+
var n = 0;
|
|
1956
|
+
var uris = {}; // Count them
|
|
1957
|
+
|
|
1958
|
+
var editable = kb.updater.editable(dataDoc.uri);
|
|
1959
|
+
|
|
1960
|
+
for (var i = 0; i < possible.length; i++) {
|
|
1961
|
+
var sub = possible[i]; // @@ Maybe; make this so it works with blank nodes too
|
|
1962
|
+
|
|
1963
|
+
if (!sub.uri) debug.warn("makeSelectForOptions: option does not have an uri: ".concat(sub, ", with predicate: ").concat(predicate));
|
|
1964
|
+
if (!sub.uri || sub.uri in uris) continue;
|
|
1965
|
+
uris[sub.uri] = true;
|
|
1966
|
+
n++;
|
|
1967
|
+
} // uris is now the set of possible options
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
if (n === 0 && !options.mint) {
|
|
1971
|
+
return (0, _error.errorMessageBlock)(dom, "Can't do selector with no options, subject= " + subject + ' property = ' + predicate + '.');
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1974
|
+
log.debug('makeSelectForOptions: dataDoc=' + dataDoc);
|
|
1975
|
+
|
|
1976
|
+
function determinFirstSelectOption() {
|
|
1977
|
+
var firstSelectOptionText = '--- classify ---';
|
|
1978
|
+
var option = dom.createElement('option');
|
|
1979
|
+
|
|
1980
|
+
if (predicate && !(predicate.termType === 'BlankNode')) {
|
|
1981
|
+
firstSelectOptionText = '* Select for property: ' + utils.label(predicate) + ' *';
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
if (subject && !(subject.termType === 'BlankNode')) {
|
|
1985
|
+
firstSelectOptionText = '* Select for ' + utils.label(subject, true) + ' *';
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
option.appendChild(dom.createTextNode(firstSelectOptionText));
|
|
1989
|
+
option.disabled = true;
|
|
1990
|
+
option.value = true;
|
|
1991
|
+
option.hidden = true;
|
|
1992
|
+
option.selected = true;
|
|
1993
|
+
return option;
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
var onChange = function onChange(_e) {
|
|
1997
|
+
select.refresh();
|
|
1998
|
+
};
|
|
1999
|
+
|
|
2000
|
+
var select = dom.createElement('select');
|
|
2001
|
+
select.setAttribute('style', style.formSelectSTyle);
|
|
2002
|
+
if (options.multiSelect) select.setAttribute('multiSelect', 'true');
|
|
2003
|
+
select.currentURI = null;
|
|
2004
|
+
var object = kb.any(subject, predicate);
|
|
2005
|
+
if (object) select.currentURI = object;
|
|
2006
|
+
|
|
2007
|
+
for (var uri in uris) {
|
|
2008
|
+
select.appendChild(createOption(uri));
|
|
2009
|
+
}
|
|
2010
|
+
|
|
2011
|
+
if (editable && options.mint) {
|
|
2012
|
+
var mint = dom.createElement('option');
|
|
2013
|
+
mint.appendChild(dom.createTextNode(options.mint));
|
|
2014
|
+
mint.AJAR_mint = true; // Flag it
|
|
2015
|
+
|
|
2016
|
+
select.insertBefore(mint, select.firstChild);
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
if (select.children.length === 0) select.insertBefore(determinFirstSelectOption(), select.firstChild);
|
|
2020
|
+
|
|
2021
|
+
select.refresh = function () {
|
|
2022
|
+
select.disabled = true; // unlocked any conflict we had got into
|
|
2023
|
+
|
|
2024
|
+
var ds = [];
|
|
2025
|
+
var is = [];
|
|
2026
|
+
|
|
2027
|
+
var removeValue = function removeValue(t) {
|
|
2028
|
+
if (kb.holds(subject, predicate, t, dataDoc)) {
|
|
2029
|
+
ds.push($rdf.st(subject, predicate, t, dataDoc));
|
|
2030
|
+
}
|
|
2031
|
+
};
|
|
2032
|
+
|
|
2033
|
+
var newObject;
|
|
2034
|
+
|
|
2035
|
+
for (var _i3 = 0; _i3 < select.options.length; _i3++) {
|
|
2036
|
+
var opt = select.options[_i3];
|
|
2037
|
+
|
|
2038
|
+
if (opt.selected && opt.AJAR_mint) {
|
|
2039
|
+
// not sure if this 'if' is used because I cannot find mintClass
|
|
2040
|
+
if (options.mintClass) {
|
|
2041
|
+
var thisForm = promptForNew(dom, kb, subject, predicate, options.mintClass, null, dataDoc, function (ok, body) {
|
|
2042
|
+
if (!ok) {
|
|
2043
|
+
callbackFunction(ok, body, {
|
|
2044
|
+
change: 'new'
|
|
2045
|
+
}); // @@ if ok, need some form of refresh of the select for the new thing
|
|
2046
|
+
}
|
|
2047
|
+
});
|
|
2048
|
+
select.parentNode.appendChild(thisForm);
|
|
2049
|
+
newObject = thisForm.AJAR_subject;
|
|
2050
|
+
} else {
|
|
2051
|
+
newObject = newThing(dataDoc);
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
is.push($rdf.st(subject, predicate, kb.sym(newObject), dataDoc));
|
|
2055
|
+
if (uiFrom) is.push($rdf.st(newObject, ns.rdf('type'), kb.sym(uiFrom), dataDoc)); // not sure if this 'if' is used because I cannot find mintStatementsFun
|
|
2056
|
+
|
|
2057
|
+
if (options.mintStatementsFun) {
|
|
2058
|
+
is = is.concat(options.mintStatementsFun(newObject));
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
select.currentURI = newObject;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
if (!opt.AJAR_uri) continue; // a prompt or mint
|
|
2065
|
+
|
|
2066
|
+
if (opt.selected) select.currentURI = opt.AJAR_uri;
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
var sel = select.subSelect; // All subclasses must also go
|
|
2070
|
+
|
|
2071
|
+
while (sel && sel.currentURI) {
|
|
2072
|
+
removeValue(kb.sym(sel.currentURI));
|
|
2073
|
+
sel = sel.subSelect;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
sel = select.superSelect; // All superclasses are redundant
|
|
2077
|
+
|
|
2078
|
+
while (sel && sel.currentURI) {
|
|
2079
|
+
removeValue(kb.sym(sel.currentURI));
|
|
2080
|
+
sel = sel.superSelect;
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
log.info('selectForOptions: data doc = ' + dataDoc);
|
|
2084
|
+
|
|
2085
|
+
if (select.currentURI) {
|
|
2086
|
+
removeNextSiblingsAfterElement(select);
|
|
2087
|
+
addSubFormChoice(dom, container, {}, $rdf.sym(select.currentURI), options.subForm, dataDoc, function (ok, body) {
|
|
2088
|
+
if (ok) {
|
|
2089
|
+
kb.updater.update(ds, is, function (uri, success, errorBody) {
|
|
2090
|
+
if (!success) container.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating select: ' + errorBody));
|
|
2091
|
+
});
|
|
2092
|
+
if (callbackFunction) callbackFunction(ok, {
|
|
2093
|
+
widget: 'select',
|
|
2094
|
+
event: 'new'
|
|
2095
|
+
}); // widgets.refreshTree(container)
|
|
2096
|
+
} else {
|
|
2097
|
+
container.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating data in field of select: ' + body));
|
|
2098
|
+
}
|
|
2099
|
+
});
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
select.disabled = false;
|
|
2103
|
+
};
|
|
2104
|
+
|
|
2105
|
+
function createOption(uri) {
|
|
2106
|
+
var option = dom.createElement('option');
|
|
2107
|
+
var c = kb.sym(uri);
|
|
2108
|
+
|
|
2109
|
+
if (options.disambiguate) {
|
|
2110
|
+
option.appendChild(dom.createTextNode(utils.labelWithOntology(c, true))); // Init. cap
|
|
2111
|
+
} else {
|
|
2112
|
+
option.appendChild(dom.createTextNode(utils.label(c, true))); // Init.
|
|
2113
|
+
}
|
|
2114
|
+
|
|
2115
|
+
var backgroundColor = kb.any(c, kb.sym('http://www.w3.org/ns/ui#backgroundColor'));
|
|
2116
|
+
|
|
2117
|
+
if (backgroundColor) {
|
|
2118
|
+
option.setAttribute('style', 'background-color: ' + backgroundColor.value + '; ');
|
|
2119
|
+
}
|
|
2120
|
+
|
|
2121
|
+
option.AJAR_uri = uri;
|
|
2122
|
+
if (c.toString() === '' + select.currentURI) option.selected = true;
|
|
2123
|
+
return option;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
if (editable) {
|
|
2127
|
+
select.addEventListener('change', onChange, false);
|
|
2128
|
+
}
|
|
2129
|
+
|
|
2130
|
+
select.refresh();
|
|
2131
|
+
return select;
|
|
2132
|
+
} // makeSelectForChoice
|
|
1945
2133
|
//# sourceMappingURL=forms.js.map
|