solid-ui 2.4.22-b483f37e → 2.4.22-b82de984

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.
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.versionInfo = void 0;
7
7
  var versionInfo = {
8
- buildTime: '2022-05-05T15:06:47Z',
9
- commit: 'b483f37ed01c63f3a8c78fe6c10958236e1deade',
8
+ buildTime: '2022-05-10T08:32:21Z',
9
+ commit: 'b82de9840c3fb6ddbe51c92da3546f27520525ce',
10
10
  npmInfo: {
11
11
  'solid-ui': '2.4.22',
12
12
  npm: '6.14.16',
@@ -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-05T15:06:47Z',\n commit: 'b483f37ed01c63f3a8c78fe6c10958236e1deade',\n npmInfo:\n{\n 'solid-ui': '2.4.22',\n npm: '6.14.16',\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.1',\n openssl: '1.1.1n',\n tz: '2021a3',\n unicode: '14.0',\n uv: '1.42.0',\n v8: '8.4.371.23-node.85',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
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-10T08:32:21Z',\n commit: 'b82de9840c3fb6ddbe51c92da3546f27520525ce',\n npmInfo:\n{\n 'solid-ui': '2.4.22',\n npm: '6.14.16',\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.1',\n openssl: '1.1.1n',\n tz: '2021a3',\n unicode: '14.0',\n uv: '1.42.0',\n v8: '8.4.371.23-node.85',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
@@ -1017,6 +1017,14 @@ _fieldFunction.field[ns.ui('Classifier').uri] = function (dom, container, alread
1017
1017
  **
1018
1018
  ** Not nested. Generates a link to something from a given class.
1019
1019
  ** Optional subform for the thing selected.
1020
+ ** Generates a subForm based on a ui:use form
1021
+ ** Will look like:
1022
+ ** <div id=dropDownDiv>
1023
+ ** <div id=labelOfDropDown>
1024
+ ** <div id=selectDiv>
1025
+ ** <select id=dropDownSelect>
1026
+ ** <option> ....
1027
+ ** <subForm>
1020
1028
  ** Alternative implementatons caould be:
1021
1029
  ** -- pop-up menu (as here)
1022
1030
  ** -- radio buttons
@@ -1033,12 +1041,15 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
1033
1041
  var formDoc = form.doc ? form.doc() : null; // @@ if blank no way to know
1034
1042
 
1035
1043
  var p;
1036
- var box = dom.createElement('div'); // Set flexDirection column?
1044
+ var box = dom.createElement('div');
1045
+ box.setAttribute('class', 'choiceBox'); // Set flexDirection column?
1037
1046
 
1038
1047
  if (container) container.appendChild(box);
1039
1048
  var lhs = dom.createElement('div');
1049
+ lhs.setAttribute('class', 'formFieldName choiceBox-label');
1040
1050
  box.appendChild(lhs);
1041
1051
  var rhs = dom.createElement('div');
1052
+ rhs.setAttribute('class', 'formFieldValue choiceBox-selectBox');
1042
1053
  box.appendChild(rhs);
1043
1054
  var property = kb.any(form, ui('property'));
1044
1055
 
@@ -1047,9 +1058,9 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
1047
1058
  }
1048
1059
 
1049
1060
  lhs.appendChild((0, _basic.fieldLabel)(dom, property, form));
1050
- var from = kb.any(form, ui('from'));
1061
+ var uiFrom = kb.any(form, ui('from'));
1051
1062
 
1052
- if (!from) {
1063
+ if (!uiFrom) {
1053
1064
  return (0, _error.errorMessageBlock)(dom, "No 'from' for Choice: " + form);
1054
1065
  }
1055
1066
 
@@ -1059,26 +1070,27 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
1059
1070
 
1060
1071
  var possible = [];
1061
1072
  var possibleProperties;
1062
- var nullLabel = '--' + utils.label(property) + '-?';
1073
+ var firstSelectOptionText = '* Select from ' + utils.label(subject, true) + ' *';
1063
1074
  var opts = {
1064
1075
  form: form,
1076
+ subForm: subForm,
1065
1077
  multiple: multiple,
1066
- nullLabel: nullLabel,
1078
+ firstSelectOptionText: firstSelectOptionText,
1067
1079
  disambiguate: false
1068
1080
  };
1069
- possible = kb.each(undefined, ns.rdf('type'), from, formDoc);
1081
+ possible = kb.each(undefined, ns.rdf('type'), uiFrom, formDoc);
1070
1082
 
1071
- for (var x in kb.findMembersNT(from)) {
1083
+ for (var x in kb.findMembersNT(uiFrom)) {
1072
1084
  possible.push(kb.fromNT(x));
1073
1085
  } // Use rdfs
1074
1086
 
1075
1087
 
1076
- if (from.sameTerm(ns.rdfs('Class'))) {
1088
+ if (uiFrom.sameTerm(ns.rdfs('Class'))) {
1077
1089
  for (p in buttons.allClassURIs()) {
1078
1090
  possible.push(kb.sym(p));
1079
1091
  } // log.debug("%%% Choice field: possible.length 2 = "+possible.length)
1080
1092
 
1081
- } else if (from.sameTerm(ns.rdf('Property'))) {
1093
+ } else if (uiFrom.sameTerm(ns.rdf('Property'))) {
1082
1094
  possibleProperties = buttons.propertyTriage(kb);
1083
1095
 
1084
1096
  for (p in possibleProperties.op) {
@@ -1090,7 +1102,7 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
1090
1102
  }
1091
1103
 
1092
1104
  opts.disambiguate = true; // This is a big class, and the labels won't be enough.
1093
- } else if (from.sameTerm(ns.owl('ObjectProperty'))) {
1105
+ } else if (uiFrom.sameTerm(ns.owl('ObjectProperty'))) {
1094
1106
  possibleProperties = buttons.propertyTriage(kb);
1095
1107
 
1096
1108
  for (p in possibleProperties.op) {
@@ -1098,7 +1110,7 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
1098
1110
  }
1099
1111
 
1100
1112
  opts.disambiguate = true;
1101
- } else if (from.sameTerm(ns.owl('DatatypeProperty'))) {
1113
+ } else if (uiFrom.sameTerm(ns.owl('DatatypeProperty'))) {
1102
1114
  possibleProperties = buttons.propertyTriage(kb);
1103
1115
 
1104
1116
  for (p in possibleProperties.dp) {
@@ -1108,26 +1120,45 @@ _fieldFunction.field[ns.ui('Choice').uri] = function (dom, container, already, s
1108
1120
  opts.disambiguate = true;
1109
1121
  }
1110
1122
 
1111
- var object = kb.any(subject, property);
1123
+ var sortedPossible = sortByLabel(possible); // TODO: this checks for any occurrence, regardless of true or false setting
1112
1124
 
1113
- function addSubForm() {
1114
- object = kb.any(subject, property);
1115
- (0, _fieldFunction.fieldFunction)(dom, subForm)(dom, rhs, already, object, subForm, follow ? object.doc() : dataDoc, callbackFunction);
1125
+ if (kb.any(form, ui('canMintNew'))) {
1126
+ opts.mint = '* Create new *'; // @@ could be better
1116
1127
  }
1117
1128
 
1118
- var possible2 = sortByLabel(possible);
1129
+ var selector = makeSelectForOptions(dom, kb, subject, property, sortedPossible, uiFrom, opts, dataDoc, callbackFunction);
1130
+ rhs.appendChild(selector);
1131
+ var object;
1119
1132
 
1120
- if (kb.any(form, ui('canMintNew'))) {
1121
- opts.mint = '* New *'; // @@ could be better
1133
+ if (selector.currentURI) {
1134
+ object = $rdf.sym(selector.currentURI);
1135
+ } else {
1136
+ object = kb.any(subject, property);
1137
+ }
1122
1138
 
1123
- opts.subForm = subForm;
1139
+ if (object && subForm) {
1140
+ removeNextSiblingsAfterElement(selector);
1141
+ addSubFormChoice(dom, rhs, already, object, subForm, follow ? object.doc() : dataDoc, callbackFunction);
1124
1142
  }
1125
1143
 
1126
- var selector = makeSelectForOptions(dom, kb, subject, property, possible2, opts, dataDoc, callbackFunction);
1127
- rhs.appendChild(selector);
1128
- if (object && subForm) addSubForm();
1129
1144
  return box;
1130
- }; // Documentation - non-interactive fields
1145
+ };
1146
+ /**
1147
+ * Removes all sibling elements after specified
1148
+ * @param {HTMLElement} currentElement
1149
+ * @private
1150
+ */
1151
+
1152
+
1153
+ function removeNextSiblingsAfterElement(currentElement) {
1154
+ while (currentElement.nextElementSibling) {
1155
+ currentElement.nextElementSibling.remove();
1156
+ }
1157
+ }
1158
+
1159
+ function addSubFormChoice(dom, selectDiv, already, subject, subForm, dataDoc, callbackFunction) {
1160
+ (0, _fieldFunction.fieldFunction)(dom, subForm)(dom, selectDiv, already, subject, subForm, dataDoc, callbackFunction);
1161
+ } // Documentation - non-interactive fields
1131
1162
  //
1132
1163
 
1133
1164
 
@@ -1466,7 +1497,7 @@ function makeDescription(dom, kb, subject, predicate, dataDoc, callbackFunction)
1466
1497
  // @param predicate - a term, the predicate of the statement(s) being edited
1467
1498
  // @param possible - a list of terms, the possible value the object can take
1468
1499
  // @param options.multiple - Boolean - Whether more than one at a time is allowed
1469
- // @param options.nullLabel - a string to be displayed as the
1500
+ // @param options.firstSelectOptionText - a string to be displayed as the
1470
1501
  // option for none selected (for non multiple)
1471
1502
  // @param options.mint - User may create thing if this sent to the prompt string eg "New foo"
1472
1503
  // @param options.subForm - If mint, then the form to be used for minting the new thing
@@ -1475,7 +1506,7 @@ function makeDescription(dom, kb, subject, predicate, dataDoc, callbackFunction)
1475
1506
  */
1476
1507
 
1477
1508
 
1478
- function makeSelectForOptions(dom, kb, subject, predicate, possible, options, dataDoc, callbackFunction) {
1509
+ function makeSelectForOptions(dom, kb, subject, predicate, possible, uiFrom, options, dataDoc, callbackFunction) {
1479
1510
  log.debug('Select list length now ' + possible.length);
1480
1511
  var n = 0;
1481
1512
  var uris = {}; // Count them
@@ -1506,7 +1537,9 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1506
1537
  actual = kb.findTypeURIs(subject);
1507
1538
  } else {
1508
1539
  kb.each(subject, predicate, null, dataDoc).forEach(function (x) {
1509
- actual[x.uri] = true;
1540
+ if (x.uri) {
1541
+ actual[x.uri] = true;
1542
+ }
1510
1543
  });
1511
1544
  }
1512
1545
 
@@ -1516,8 +1549,6 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1516
1549
  actual = getActual();
1517
1550
 
1518
1551
  var onChange = function onChange(_e) {
1519
- select.disabled = true; // until data written back - gives user feedback too
1520
-
1521
1552
  var ds = [];
1522
1553
  var is = [];
1523
1554
 
@@ -1533,6 +1564,7 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1533
1564
  var opt = select.options[_i];
1534
1565
 
1535
1566
  if (opt.selected && opt.AJAR_mint) {
1567
+ // not sure if this 'if' is used because I cannot find mintClass
1536
1568
  if (options.mintClass) {
1537
1569
  var thisForm = promptForNew(dom, kb, subject, predicate, options.mintClass, null, dataDoc, function (ok, body) {
1538
1570
  if (!ok) {
@@ -1547,11 +1579,14 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1547
1579
  newObject = newThing(dataDoc);
1548
1580
  }
1549
1581
 
1550
- is.push($rdf.st(subject, predicate, newObject, dataDoc));
1582
+ is.push($rdf.st(subject, predicate, kb.sym(newObject), dataDoc));
1583
+ 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
1551
1584
 
1552
1585
  if (options.mintStatementsFun) {
1553
1586
  is = is.concat(options.mintStatementsFun(newObject));
1554
1587
  }
1588
+
1589
+ select.currentURI = newObject;
1555
1590
  }
1556
1591
 
1557
1592
  if (!opt.AJAR_uri) continue; // a prompt or mint
@@ -1559,11 +1594,7 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1559
1594
  if (opt.selected && !(opt.AJAR_uri in actual)) {
1560
1595
  // new class
1561
1596
  is.push($rdf.st(subject, predicate, kb.sym(opt.AJAR_uri), dataDoc));
1562
- }
1563
-
1564
- if (!opt.selected && opt.AJAR_uri in actual) {
1565
- // old class
1566
- removeValue(kb.sym(opt.AJAR_uri));
1597
+ select.currentURI = opt.AJAR_uri;
1567
1598
  }
1568
1599
 
1569
1600
  if (opt.selected) select.currentURI = opt.AJAR_uri;
@@ -1583,32 +1614,23 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1583
1614
  sel = sel.superSelect;
1584
1615
  }
1585
1616
 
1586
- function doneNew(ok, _body) {
1587
- callbackFunction(ok, {
1588
- widget: 'select',
1589
- event: 'new'
1590
- });
1591
- }
1592
-
1593
- log.info('selectForOptions: data doc = ' + dataDoc);
1594
- kb.updater.update(ds, is, function (uri, ok, body) {
1595
- actual = getActual(); // refresh
1617
+ log.info('selectForOptions: data doc = ' + dataDoc); // refresh subForm
1596
1618
 
1619
+ removeNextSiblingsAfterElement(select);
1620
+ addSubFormChoice(dom, select.parentNode, {}, $rdf.sym(select.currentURI), options.subForm, dataDoc, function (ok, body) {
1597
1621
  if (ok) {
1598
- select.disabled = false; // data written back
1599
-
1600
- if (newObject) {
1601
- var fn = (0, _fieldFunction.fieldFunction)(dom, options.subForm);
1602
- fn(dom, select.parentNode, {}, newObject, options.subForm, dataDoc, doneNew);
1603
- }
1622
+ kb.updater.update(ds, is, function (uri, success, errorBody) {
1623
+ actual = getActual(); // refresh
1624
+
1625
+ if (!success) select.parentNode.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating select: ' + errorBody));
1626
+ });
1627
+ if (callbackFunction) callbackFunction(ok, {
1628
+ widget: 'select',
1629
+ event: 'new'
1630
+ });
1604
1631
  } else {
1605
- return select.parentNode.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating data in select: ' + body));
1632
+ select.parentNode.appendChild((0, _error.errorMessageBlock)(dom, 'Error updating data in field of select: ' + body));
1606
1633
  }
1607
-
1608
- if (callbackFunction) callbackFunction(ok, {
1609
- widget: 'select',
1610
- event: 'change'
1611
- });
1612
1634
  });
1613
1635
  };
1614
1636
 
@@ -1665,11 +1687,14 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
1665
1687
  select.insertBefore(mint, select.firstChild);
1666
1688
  }
1667
1689
 
1668
- if (select.currentURI == null && !options.multiple) {
1690
+ if (!select.currentURI && !options.multiple) {
1669
1691
  var prompt = dom.createElement('option');
1670
- prompt.appendChild(dom.createTextNode(options.nullLabel));
1671
- select.insertBefore(prompt, select.firstChild);
1692
+ prompt.appendChild(dom.createTextNode(options.firstSelectOptionText));
1693
+ prompt.disabled = true;
1694
+ prompt.value = true;
1695
+ prompt.hidden = true;
1672
1696
  prompt.selected = true;
1697
+ select.insertBefore(prompt, select.firstChild);
1673
1698
  }
1674
1699
 
1675
1700
  if (editable) {
@@ -1707,9 +1732,8 @@ function makeSelectForCategory(dom, kb, subject, category, dataDoc, callbackFunc
1707
1732
  return (0, _error.errorMessageBlock)(dom, "Can't do " + (multiple ? 'multiple ' : '') + 'selector with only 1 subclass of category: ' + category + ':' + subs[1]);
1708
1733
  }
1709
1734
 
1710
- return makeSelectForOptions(dom, kb, subject, ns.rdf('type'), subs, {
1711
- multiple: multiple,
1712
- nullPrompt: '--classify--'
1735
+ return makeSelectForOptions(dom, kb, subject, ns.rdf('type'), subs, null, {
1736
+ multiple: multiple
1713
1737
  }, dataDoc, callbackFunction);
1714
1738
  }
1715
1739
  /** Make SELECT element to select subclasses recurively