solid-ui 2.4.22-b82de984 → 2.4.22-bfd29386
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 +46 -25
- package/dist/main.js.map +1 -1
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +2 -0
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/forms.js +42 -23
- package/lib/widgets/forms.js.map +1 -1
- package/package.json +1 -1
package/lib/widgets/forms.js
CHANGED
|
@@ -159,10 +159,11 @@ _fieldFunction.field[ns.ui('Form').uri] = _fieldFunction.field[ns.ui('Group').ur
|
|
|
159
159
|
|
|
160
160
|
if (already[key]) {
|
|
161
161
|
// been there done that
|
|
162
|
-
box.appendChild(dom.createTextNode('Group: see above ' + key));
|
|
163
|
-
|
|
162
|
+
box.appendChild(dom.createTextNode('Group: see above ' + key)); // TODO fix dependency cycle to solid-panes by calling outlineManager
|
|
163
|
+
// const plist = [$rdf.st(subject, ns.owl('sameAs'), subject)] // @@ need prev subject
|
|
164
|
+
// dom.outlineManager.appendPropertyTRs(box, plist)
|
|
165
|
+
// dom.appendChild(plist)
|
|
164
166
|
|
|
165
|
-
dom.outlineManager.appendPropertyTRs(box, plist);
|
|
166
167
|
return box;
|
|
167
168
|
}
|
|
168
169
|
|
|
@@ -591,7 +592,7 @@ _fieldFunction.field[ns.ui('Multiple').uri] = function (dom, container, already,
|
|
|
591
592
|
// delete button and move buttons
|
|
592
593
|
|
|
593
594
|
if (kb.updater.editable(dataDoc.uri)) {
|
|
594
|
-
buttons.deleteButtonWithCheck(dom, subField,
|
|
595
|
+
buttons.deleteButtonWithCheck(dom, subField, multipleUIlabel, deleteThisItem);
|
|
595
596
|
|
|
596
597
|
if (ordered) {
|
|
597
598
|
// Add controsl in a frame
|
|
@@ -642,7 +643,7 @@ _fieldFunction.field[ns.ui('Multiple').uri] = function (dom, container, already,
|
|
|
642
643
|
|
|
643
644
|
var _shim = dom.createElement('div');
|
|
644
645
|
|
|
645
|
-
_shim.appendChild(subField); // Subfield has its own
|
|
646
|
+
_shim.appendChild(subField); // Subfield has its own layout
|
|
646
647
|
|
|
647
648
|
|
|
648
649
|
frame.appendChild(_shim);
|
|
@@ -691,6 +692,8 @@ _fieldFunction.field[ns.ui('Multiple').uri] = function (dom, container, already,
|
|
|
691
692
|
return shim;
|
|
692
693
|
}
|
|
693
694
|
|
|
695
|
+
var multipleUIlabel = kb.any(form, ui('label'));
|
|
696
|
+
if (!multipleUIlabel) multipleUIlabel = utils.label(property);
|
|
694
697
|
var min = kb.any(form, ui('min')); // This is the minimum number -- default 0
|
|
695
698
|
|
|
696
699
|
min = min ? 0 + min.value : 0;
|
|
@@ -731,10 +734,9 @@ _fieldFunction.field[ns.ui('Multiple').uri] = function (dom, container, already,
|
|
|
731
734
|
img.setAttribute('src', plusIconURI); // plus sign
|
|
732
735
|
|
|
733
736
|
img.setAttribute('style', 'margin: 0.2em; width: 1.5em; height:1.5em');
|
|
734
|
-
img.title = 'Click to add
|
|
735
|
-
var prompt =
|
|
736
|
-
prompt.textContent = (values.length === 0 ? 'Add
|
|
737
|
-
|
|
737
|
+
img.title = 'Click to add another ' + multipleUIlabel;
|
|
738
|
+
var prompt = dom.createElement('span');
|
|
739
|
+
prompt.textContent = (values.length === 0 ? 'Add another ' : 'Add ') + multipleUIlabel;
|
|
738
740
|
tail.addEventListener('click', /*#__PURE__*/function () {
|
|
739
741
|
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(_eventNotUsed) {
|
|
740
742
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
@@ -756,6 +758,7 @@ _fieldFunction.field[ns.ui('Multiple').uri] = function (dom, container, already,
|
|
|
756
758
|
return _ref3.apply(this, arguments);
|
|
757
759
|
};
|
|
758
760
|
}(), true);
|
|
761
|
+
tail.appendChild(prompt);
|
|
759
762
|
}
|
|
760
763
|
|
|
761
764
|
function createListIfNecessary() {
|
|
@@ -1030,16 +1033,18 @@ _fieldFunction.field[ns.ui('Classifier').uri] = function (dom, container, alread
|
|
|
1030
1033
|
** -- radio buttons
|
|
1031
1034
|
** -- auto-complete typing
|
|
1032
1035
|
**
|
|
1033
|
-
**
|
|
1036
|
+
** TODO: according to ontology ui:choice can also have ns.ui('default') - this is not implemented yet
|
|
1034
1037
|
*/
|
|
1035
1038
|
|
|
1036
1039
|
|
|
1037
1040
|
_fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, subject, form, dataDoc, callbackFunction) {
|
|
1038
1041
|
var ui = ns.ui;
|
|
1039
1042
|
var kb = _solidLogic.store;
|
|
1040
|
-
var multiple = false;
|
|
1041
1043
|
var formDoc = form.doc ? form.doc() : null; // @@ if blank no way to know
|
|
1042
1044
|
|
|
1045
|
+
var uiMultipleInUse = false; // this signals to ui:choice that it is part of a ui:multiple
|
|
1046
|
+
|
|
1047
|
+
var multiSelect = false;
|
|
1043
1048
|
var p;
|
|
1044
1049
|
var box = dom.createElement('div');
|
|
1045
1050
|
box.setAttribute('class', 'choiceBox'); // Set flexDirection column?
|
|
@@ -1070,12 +1075,24 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
|
|
|
1070
1075
|
|
|
1071
1076
|
var possible = [];
|
|
1072
1077
|
var possibleProperties;
|
|
1073
|
-
var firstSelectOptionText = '* Select
|
|
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
|
+
|
|
1074
1090
|
var opts = {
|
|
1075
1091
|
form: form,
|
|
1076
1092
|
subForm: subForm,
|
|
1077
|
-
|
|
1093
|
+
multiSelect: multiSelect,
|
|
1078
1094
|
firstSelectOptionText: firstSelectOptionText,
|
|
1095
|
+
uiMultipleInUse: uiMultipleInUse,
|
|
1079
1096
|
disambiguate: false
|
|
1080
1097
|
};
|
|
1081
1098
|
possible = kb.each(undefined, ns.rdf('type'), uiFrom, formDoc);
|
|
@@ -1361,7 +1378,8 @@ function promptForNew(dom, kb, subject, predicate, theClass, form, dataDoc, call
|
|
|
1361
1378
|
b.setAttribute('type', 'button');
|
|
1362
1379
|
b.setAttribute('style', 'float: right;');
|
|
1363
1380
|
b.innerHTML = 'Goto ' + utils.label(theClass);
|
|
1364
|
-
b.addEventListener('click',
|
|
1381
|
+
b.addEventListener('click', // TODO fix dependency cycle to solid-panes by calling outlineManager
|
|
1382
|
+
function (_e) {
|
|
1365
1383
|
dom.outlineManager.GotoSubject(theClass, true, undefined, true, undefined);
|
|
1366
1384
|
}, false);
|
|
1367
1385
|
return box;
|
|
@@ -1496,9 +1514,10 @@ function makeDescription(dom, kb, subject, predicate, dataDoc, callbackFunction)
|
|
|
1496
1514
|
// @param subject - a term, the subject of the statement(s) being edited.
|
|
1497
1515
|
// @param predicate - a term, the predicate of the statement(s) being edited
|
|
1498
1516
|
// @param possible - a list of terms, the possible value the object can take
|
|
1499
|
-
// @param options.
|
|
1517
|
+
// @param options.multiSelect - Boolean - Whether more than one at a time is allowed
|
|
1500
1518
|
// @param options.firstSelectOptionText - a string to be displayed as the
|
|
1501
|
-
// option for none selected (for non
|
|
1519
|
+
// option for none selected (for non multiSelect)
|
|
1520
|
+
// @param options.uiMultipleInUse - signals that the ui:choise is used with a ui:multiple
|
|
1502
1521
|
// @param options.mint - User may create thing if this sent to the prompt string eg "New foo"
|
|
1503
1522
|
// @param options.subForm - If mint, then the form to be used for minting the new thing
|
|
1504
1523
|
// @param dataDoc - The web document being edited
|
|
@@ -1636,7 +1655,7 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1636
1655
|
|
|
1637
1656
|
var select = dom.createElement('select');
|
|
1638
1657
|
select.setAttribute('style', style.formSelectSTyle);
|
|
1639
|
-
if (options.
|
|
1658
|
+
if (options.multiSelect) select.setAttribute('multiSelect', 'true');
|
|
1640
1659
|
select.currentURI = null;
|
|
1641
1660
|
|
|
1642
1661
|
select.refresh = function () {
|
|
@@ -1687,7 +1706,7 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1687
1706
|
select.insertBefore(mint, select.firstChild);
|
|
1688
1707
|
}
|
|
1689
1708
|
|
|
1690
|
-
if (!select.currentURI &&
|
|
1709
|
+
if (!select.currentURI && options.uiMultipleInUse) {
|
|
1691
1710
|
var prompt = dom.createElement('option');
|
|
1692
1711
|
prompt.appendChild(dom.createTextNode(options.firstSelectOptionText));
|
|
1693
1712
|
prompt.disabled = true;
|
|
@@ -1713,11 +1732,11 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, opt
|
|
|
1713
1732
|
function makeSelectForCategory(dom, kb, subject, category, dataDoc, callbackFunction) {
|
|
1714
1733
|
var du = kb.any(category, ns.owl('disjointUnionOf'));
|
|
1715
1734
|
var subs;
|
|
1716
|
-
var
|
|
1735
|
+
var multiSelect = false;
|
|
1717
1736
|
|
|
1718
1737
|
if (!du) {
|
|
1719
1738
|
subs = kb.each(undefined, ns.rdfs('subClassOf'), category);
|
|
1720
|
-
|
|
1739
|
+
multiSelect = true;
|
|
1721
1740
|
} else {
|
|
1722
1741
|
subs = du.elements;
|
|
1723
1742
|
}
|
|
@@ -1725,15 +1744,15 @@ function makeSelectForCategory(dom, kb, subject, category, dataDoc, callbackFunc
|
|
|
1725
1744
|
log.debug('Select list length ' + subs.length);
|
|
1726
1745
|
|
|
1727
1746
|
if (subs.length === 0) {
|
|
1728
|
-
return (0, _error.errorMessageBlock)(dom, "Can't do " + (
|
|
1747
|
+
return (0, _error.errorMessageBlock)(dom, "Can't do " + (multiSelect ? 'multiple ' : '') + 'selector with no subclasses of category: ' + category);
|
|
1729
1748
|
}
|
|
1730
1749
|
|
|
1731
1750
|
if (subs.length === 1) {
|
|
1732
|
-
return (0, _error.errorMessageBlock)(dom, "Can't do " + (
|
|
1751
|
+
return (0, _error.errorMessageBlock)(dom, "Can't do " + (multiSelect ? 'multiple ' : '') + 'selector with only 1 subclass of category: ' + category + ':' + subs[1]);
|
|
1733
1752
|
}
|
|
1734
1753
|
|
|
1735
1754
|
return makeSelectForOptions(dom, kb, subject, ns.rdf('type'), subs, null, {
|
|
1736
|
-
|
|
1755
|
+
multiSelect: multiSelect
|
|
1737
1756
|
}, dataDoc, callbackFunction);
|
|
1738
1757
|
}
|
|
1739
1758
|
/** Make SELECT element to select subclasses recurively
|