solid-panes 3.5.6-beta.0 → 3.5.6-beta.1
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/lib/index.js +8 -8
- package/lib/outline/licenseOptions.js +2 -1
- package/lib/outline/licenseOptions.js.map +1 -1
- package/lib/schedule/formsForSchedule.js +1 -1
- package/lib/schedule/formsForSchedule.js.map +1 -1
- package/lib/schedule/schedulePane.js +5 -5
- package/lib/schedule/schedulePane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.utils.js +2 -2
- package/lib/versionInfo.js +3 -3
- package/lib/versionInfo.js.map +1 -1
- package/package.json +3 -2
- package/src/schedule/formsForSchedule.js +55 -21
- package/src/schedule/formsForSchedule.ttl +12 -7
- package/src/schedule/schedulePane.js +3 -3
- package/src/versionInfo.ts +3 -3
package/lib/index.js
CHANGED
|
@@ -5,19 +5,20 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
9
|
-
Object.defineProperty(exports, "versionInfo", {
|
|
8
|
+
Object.defineProperty(exports, "OutlineManager", {
|
|
10
9
|
enumerable: true,
|
|
11
10
|
get: function get() {
|
|
12
|
-
return
|
|
11
|
+
return _manager["default"];
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
|
-
|
|
14
|
+
exports.UI = void 0;
|
|
15
|
+
Object.defineProperty(exports, "byName", {
|
|
16
16
|
enumerable: true,
|
|
17
17
|
get: function get() {
|
|
18
|
-
return
|
|
18
|
+
return _paneRegistry.byName;
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
+
exports.getOutliner = getOutliner;
|
|
21
22
|
Object.defineProperty(exports, "list", {
|
|
22
23
|
enumerable: true,
|
|
23
24
|
get: function get() {
|
|
@@ -42,13 +43,12 @@ Object.defineProperty(exports, "register", {
|
|
|
42
43
|
return _paneRegistry.register;
|
|
43
44
|
}
|
|
44
45
|
});
|
|
45
|
-
Object.defineProperty(exports, "
|
|
46
|
+
Object.defineProperty(exports, "versionInfo", {
|
|
46
47
|
enumerable: true,
|
|
47
48
|
get: function get() {
|
|
48
|
-
return
|
|
49
|
+
return _versionInfo["default"];
|
|
49
50
|
}
|
|
50
51
|
});
|
|
51
|
-
exports.UI = void 0;
|
|
52
52
|
|
|
53
53
|
var _versionInfo = _interopRequireDefault(require("./versionInfo"));
|
|
54
54
|
|
|
@@ -24,7 +24,8 @@ module.exports = function licenseOptions() {
|
|
|
24
24
|
var lics = this.checkedLicenses;
|
|
25
25
|
|
|
26
26
|
for (var kk = 0; kk < lics.length; kk++) {
|
|
27
|
-
message += "<input type='checkbox' name = 'n" + kk + "' onClick = 'tabulator.options.submit()'" + (
|
|
27
|
+
message += "<input type='checkbox' name = 'n" + kk + "' onClick = 'tabulator.options.submit()'" + ( // @@ FIXME
|
|
28
|
+
lics[kk] ? 'CHECKED' : '') + ' />CC: ' + names[kk] + '<br />';
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
message += "<br /> <a onclick='tabulator.options.selectAll()'>[Select All] </a>"; // @@ FIXME
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/outline/licenseOptions.js"],"names":["licenseURI","names","UI","require","kb","store","module","exports","licenseOptions","options","references","checkedLicenses","openCheckBoxWindow","display","window","open","message","lics","kk","length","document","write","close","i","checkboxes","elements","selectAll","checked","deselectAll","submit","checkLicence","checkLicense","statement","licenses","each","why","sym","log","info","j","uri"],"mappings":";;AAAA;AACA;AAEA;AACA;AAEA,IAAMA,UAAU,GAAG,CACjB,mDADiB,EAEjB,mDAFiB,EAGjB,gDAHiB,EAIjB,gDAJiB,EAKjB,gDALiB,EAMjB,6CANiB,CAAnB;AASA,IAAMC,KAAK,GAAG,CAAC,UAAD,EAAa,UAAb,EAAyB,OAAzB,EAAkC,OAAlC,EAA2C,OAA3C,EAAoD,IAApD,CAAd;;AAEA,IAAMC,EAAE,GAAGC,OAAO,CAAC,UAAD,CAAlB;;AACA,IAAMC,EAAE,GAAGF,EAAE,CAACG,KAAd;;AAEAC,MAAM,CAACC,OAAP,GAAiB,SAASC,cAAT,GAA2B;AAC1C,OAAKC,OAAL,GAAe,EAAf;AACA,OAAKC,UAAL,GAAkB,EAAlB;AACA,OAAKC,eAAL,GAAuB,EAAvB;;AAEA,OAAKC,kBAAL,GAA0B,YAAY;AACpC,iBAAUC,OAAV,GAAoBC,MAAM,CAACC,IAAP,CAClB,GADkB,EAElB,QAFkB,EAGlB,+FAHkB,CAApB;AAKD,GAND;;AAOA,MAAIC,OAAO,GAAG,uDAAd;AACA,MAAMC,IAAI,GAAG,KAAKN,eAAlB;;AACA,OAAK,IAAIO,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGD,IAAI,CAACE,MAA3B,EAAmCD,EAAE,EAArC,EAAyC;AACvCF,IAAAA,OAAO,IACL,qCACAE,EADA,GAEA,0CAFA,
|
|
1
|
+
{"version":3,"sources":["../../src/outline/licenseOptions.js"],"names":["licenseURI","names","UI","require","kb","store","module","exports","licenseOptions","options","references","checkedLicenses","openCheckBoxWindow","display","window","open","message","lics","kk","length","document","write","close","i","checkboxes","elements","selectAll","checked","deselectAll","submit","checkLicence","checkLicense","statement","licenses","each","why","sym","log","info","j","uri"],"mappings":"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","sourcesContent":["// This was a student project to\n// allow the user to chose favoite CC licence terms and have them highlighted\n\n// tabulator.options becaome UI.licenseOptions\n// Possible future alternative directoons: Store licence preferences in a solid preferences file\n\nconst licenseURI = [\n 'http://creativecommons.org/licenses/by-nc-nd/3.0/',\n 'http://creativecommons.org/licenses/by-nc-sa/3.0/',\n 'http://creativecommons.org/licenses/by-nc/3.0/',\n 'http://creativecommons.org/licenses/by-nd/3.0/',\n 'http://creativecommons.org/licenses/by-sa/3.0/',\n 'http://creativecommons.org/licenses/by/3.0/'\n]\n\nconst names = ['BY-NC-ND', 'BY-NC-SA', 'BY-NC', 'BY-ND', 'BY-SA', 'BY']\n\nconst UI = require('solid-ui')\nconst kb = UI.store\n\nmodule.exports = function licenseOptions () {\n this.options = {}\n this.references = []\n this.checkedLicenses = []\n\n this.openCheckBoxWindow = function () {\n this.this.display = window.open(\n ' ',\n 'NewWin',\n 'menubar=0,location=no,status=no,directories=no,toolbar=no,scrollbars=yes,height=200,width=200'\n )\n }\n let message = \"<font face='arial' size='2'><form name ='checkboxes'>\"\n const lics = this.checkedLicenses\n for (let kk = 0; kk < lics.length; kk++) {\n message +=\n \"<input type='checkbox' name = 'n\" +\n kk +\n \"' onClick = 'tabulator.options.submit()'\" + // @@ FIXME\n (lics[kk] ? 'CHECKED' : '') +\n ' />CC: ' +\n names[kk] +\n '<br />'\n }\n\n message +=\n \"<br /> <a onclick='tabulator.options.selectAll()'>[Select All] </a>\" // @@ FIXME\n message += \"<a onclick='tabulator.options.deselectAll()'> [Deselect All]</a>\" // @@ FIXME\n message += '</form></font>'\n\n this.display.document.write(message)\n\n this.display.document.close()\n\n let i\n for (i = 0; i < 6; i++) {\n this.references[i] = this.this.display.document.checkboxes.elements[i]\n }\n\n this.selectAll = function () {\n let i\n for (i = 0; i < 6; i++) {\n this.display.document.checkboxes.elements[i].checked = true\n this.references[i].checked = true\n this.checkedLicenses[i] = true\n }\n }\n\n this.deselectAll = function () {\n let i\n for (i = 0; i < 6; i++) {\n this.display.document.checkboxes.elements[i].checked = false\n this.references[i].checked = false\n this.checkedLicenses[i] = false\n }\n }\n\n this.submit = function () {\n // alert('this.submit: checked=' + this.references[0].checked)\n for (let i = 0; i < 6; i++) {\n this.checkedLicenses[i] = !!this.references[i].checked\n }\n }\n\n this.checkLicence = function checkLicense (statement) {\n const licenses = kb.each(\n statement.why,\n kb.sym('http://creativecommons.org/ns#license')\n )\n UI.log.info('licenses:' + statement.why + ': ' + licenses)\n for (let i = 0; i < licenses.length; i++) {\n for (let j = 0; j < this.checkedLicenses.length; j++) {\n if (this.checkedLicenses[j] && licenses[i].uri === licenseURI[j]) {\n return true\n // theClass += ' licOkay' // icon_expand\n // break\n }\n }\n }\n return false\n }\n return this\n}\n\n// ends\n"],"file":"licenseOptions.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = "\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix
|
|
3
|
+
module.exports = "\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n \"Schedule event (single form).\";\n a ui:Group;\n ui:parts ( <#form1> <#form2> <#form3> ).\n\n<#form1>\n dc:title\n \"Schedule an event (wizard)\";\n a ui:Form;\n ui:parts (\n <#form1header>\n <#eventTitle>\n <#eventLocation>\n <#eventType>\n <#eventSwitch>\n <#eventComment>\n <#eventAuthor> ).\n\n<#form1header> a ui:Heading; ui:contents \"Schedule an event\" .\n\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n \"128\";\n ui:property\n cal:summary;\n ui:size\n \"40\".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n \"512\";\n ui:property\n cal:location;\n ui:size\n \"40\".\n\n<#eventType> a ui:BooleanField;\n ui:property sched:allDay;\n ui:default true . # Used to be the only way\n\n<#eventSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm> ].\n\n <#AllDayForm> a ui:IntegerField ;\n ui:property sched:durationInDays;\n ui:label \"How many days?\";\n ui:min 1;\n ui:default 1 .\n\n <#NotAllDayForm> a ui:IntegerField ;\n ui:property sched:durationInMinutes;\n ui:label \"Duration (mins)\";\n ui:min 5;\n ui:default 55 .\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# \"1048\";\n# ui:size\n# \"40\".\n ui:property\n cal:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title \"Select possible days or times\"; a ui:Form;\n ui:parts ( <#id1118132113134> <#possibleSwitch> ).\n\n <#id1118132113134> a ui:Heading; ui:contents \"Time proposals\" .\n\n <#possibleSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm2> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].\n\n <#AllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.\n <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label \"date\".\n\n <#NotAllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.\n <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label \"date and time\".\n\n ##################################\n\n <#form3> dc:title \"Select invited people\"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n <#id1118132113135> a ui:Heading; ui:contents \"Who to invite\" .\n\n# ENDS\n";
|
|
4
4
|
//# sourceMappingURL=formsForSchedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schedule/formsForSchedule.js"],"names":["module","exports"],"mappings":";;AAAAA,MAAM,CAACC,OAAP","sourcesContent":["module.exports = `\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix
|
|
1
|
+
{"version":3,"sources":["../../src/schedule/formsForSchedule.js"],"names":["module","exports"],"mappings":";;AAAAA,MAAM,CAACC,OAAP","sourcesContent":["module.exports = `\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n \"Schedule event (single form).\";\n a ui:Group;\n ui:parts ( <#form1> <#form2> <#form3> ).\n\n<#form1>\n dc:title\n \"Schedule an event (wizard)\";\n a ui:Form;\n ui:parts (\n <#form1header>\n <#eventTitle>\n <#eventLocation>\n <#eventType>\n <#eventSwitch>\n <#eventComment>\n <#eventAuthor> ).\n\n<#form1header> a ui:Heading; ui:contents \"Schedule an event\" .\n\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n \"128\";\n ui:property\n cal:summary;\n ui:size\n \"40\".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n \"512\";\n ui:property\n cal:location;\n ui:size\n \"40\".\n\n<#eventType> a ui:BooleanField;\n ui:property sched:allDay;\n ui:default true . # Used to be the only way\n\n<#eventSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm> ].\n\n <#AllDayForm> a ui:IntegerField ;\n ui:property sched:durationInDays;\n ui:label \"How many days?\";\n ui:min 1;\n ui:default 1 .\n\n <#NotAllDayForm> a ui:IntegerField ;\n ui:property sched:durationInMinutes;\n ui:label \"Duration (mins)\";\n ui:min 5;\n ui:default 55 .\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# \"1048\";\n# ui:size\n# \"40\".\n ui:property\n cal:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title \"Select possible days or times\"; a ui:Form;\n ui:parts ( <#id1118132113134> <#possibleSwitch> ).\n\n <#id1118132113134> a ui:Heading; ui:contents \"Time proposals\" .\n\n <#possibleSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm2> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].\n\n <#AllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.\n <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label \"date\".\n\n <#NotAllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.\n <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label \"date and time\".\n\n ##################################\n\n <#form3> dc:title \"Select invited people\"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n <#id1118132113135> a ui:Heading; ui:contents \"Who to invite\" .\n\n# ENDS\n`\n"],"file":"formsForSchedule.js"}
|
|
@@ -691,7 +691,7 @@ module.exports = {
|
|
|
691
691
|
// Read or create empty results file
|
|
692
692
|
|
|
693
693
|
|
|
694
|
-
|
|
694
|
+
function getResults() {
|
|
695
695
|
fetcher.nowOrWhenFetched(resultsDoc.uri, function (ok, body, response) {
|
|
696
696
|
if (!ok) {
|
|
697
697
|
if (response.status === 404) {
|
|
@@ -716,9 +716,9 @@ module.exports = {
|
|
|
716
716
|
showResults();
|
|
717
717
|
}
|
|
718
718
|
});
|
|
719
|
-
}
|
|
719
|
+
}
|
|
720
720
|
|
|
721
|
-
|
|
721
|
+
function showResults() {
|
|
722
722
|
// Now the form for responsing to the poll
|
|
723
723
|
//
|
|
724
724
|
// div.appendChild(dom.createElement('hr'))
|
|
@@ -751,7 +751,7 @@ module.exports = {
|
|
|
751
751
|
var v = {};
|
|
752
752
|
var vs = ['time', 'author', 'value', 'resp', 'cell'];
|
|
753
753
|
vs.forEach(function (x) {
|
|
754
|
-
query.vars.push(v[x] = $rdf.
|
|
754
|
+
query.vars.push(v[x] = $rdf.variable(x));
|
|
755
755
|
});
|
|
756
756
|
query.pat.add(invitation, ns.sched('response'), v.resp);
|
|
757
757
|
query.pat.add(v.resp, ns.dc('author'), v.author);
|
|
@@ -905,7 +905,7 @@ module.exports = {
|
|
|
905
905
|
|
|
906
906
|
clearElement(naviRight);
|
|
907
907
|
naviRight.appendChild(newInstanceButton());
|
|
908
|
-
}
|
|
908
|
+
} // showResults
|
|
909
909
|
|
|
910
910
|
|
|
911
911
|
var div = dom.createElement('div');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schedule/schedulePane.js"],"names":["UI","require","$rdf","rdf","ns","possibleAvailabilities","sched","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","mintClass","mintNew","options","Promise","resolve","reject","newBase","thisInstance","useExisting","sym","complainIfBad","ok","body","console","log","Error","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","doc","add","me","foaf","serialize","setACL2","callbackFunction","aclDoc","any","aclText","uri","fetcher","webOperation","data","contentType","then","_result","err","message","load","updater","authn","currentUser","alert","base","dir","newDetailsDoc","newInstance","newResultsDoc","toBeCopied","noIndexHTML","local","agenda","f","length","item","fun","copyItem","push","newURI","setThatACL","shift","webCopy","checkUser","webId","createDetailsFile","dc","Date","put","statementsMatching","undefined","uri2","render","dom","invitation","appPathSegment","waitingForLogin","detailsDoc","baseDir","resultsDoc","formsURI","form1","form2","form3","formText","parse","inputStyle","buttonIconStyle","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","refreshCellColor","cell","value","bg","ui","setAttribute","logInOutButton","refresh","showAppropriateDisplay","newInstanceButton","b","newAppInstance","noun","initializeNewInstanceInWorkspace","ws","space","split","slice","error","now","getTime","initializeNewInstanceAtBase","p","createElement","innerHTML","getForms","getDetails","nowOrWhenFetched","showSignon","editable","holds","wf","showBootstrap","ready","showForms","getResults","naviMain","signonContext","logIn","textContent","baseField","size","autocomplete","button","addEventListener","_e","doneButton","naviCenter","wizard","currentSlide","gotDoneButton","forms","slides","slide","appendForm","document","b1","removeAttribute","b2","emailButton","naviLeft","naviRight","table","insertables","st","update","success","errorBody","emailIcon","title","anyValue","cal","mailto","each","map","who","mbox","replace","join","encodeURIComponent","window","location","href","response","status","showResults","comment","author","authorName","query","Query","v","vs","forEach","x","vars","constiable","pat","resp","time","set_x","opt","set_y","possibleTimes","displayTheMatrix","matrix","matrixForQuery","refreshButton","refreshIcon","disabled","dataPointForNT","loginContext","filter","z","sameTerm","cellFunction","y","_error","selectOptions","predicate","cellSubject","toNT","selector","makeSelectForOptions","utils","responses","myResponse","r","id","newThing","dps","dataPoint","j","instanceCreator","editButton","editIcon","structure","naviLoginoutTR","naviTop","naviMenu"],"mappings":";;AAAA;AACA;AACA;AACA;;AACA;AAEA,IAAMA,EAAE,GAAGC,OAAO,CAAC,UAAD,CAAlB;;AACA,IAAMC,IAAI,GAAGF,EAAE,CAACG,GAAhB;AACA,IAAMC,EAAE,GAAGJ,EAAE,CAACI,EAAd,C,CAEA;;AACA,IAAMC,sBAAsB,GAAG,CAC7BD,EAAE,CAACE,KAAH,CAAS,IAAT,CAD6B,EAE7BF,EAAE,CAACE,KAAH,CAAS,OAAT,CAF6B,EAG7BF,EAAE,CAACE,KAAH,CAAS,KAAT,CAH6B,CAA/B;AAMAC,MAAM,CAACC,OAAP,GAAiB;AACfC,EAAAA,IAAI,EAAET,EAAE,CAACU,KAAH,CAASC,QAAT,GAAoB,iBADX;AAC8B;AAE7CC,EAAAA,IAAI,EAAE,UAHS;AAKfC,EAAAA,QAAQ,EAAE,CAACT,EAAE,CAACU,KAAH,CAAS,WAAT,CAAD,CALK;AAOf;AACAC,EAAAA,KAAK,EAAE,eAAUC,OAAV,EAAmBC,OAAnB,EAA4B;AACjC,QAAMC,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AACA,QAAMC,CAAC,GAAGH,EAAE,CAACI,YAAH,CAAgBN,OAAhB,CAAV;;AACA,QAAIK,CAAC,CAAC,oDAAD,CAAL,EAA6D;AAC3D,aAAO,iBAAP;AACD;;AACD,WAAO,IAAP,CANiC,CAMrB;AACb,GAfc;AAiBf;AACAE,EAAAA,SAAS,EAAEnB,EAAE,CAACE,KAAH,CAAS,kBAAT,CAlBI;AAoBfkB,EAAAA,OAAO,EAAE,iBAAUP,OAAV,EAAmBQ,OAAnB,EAA4B;AACnC,WAAO,IAAIC,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;AAC5C,UAAMxB,EAAE,GAAGJ,EAAE,CAACI,EAAd;AACA,UAAMc,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AACA,UAAIS,OAAO,GAAGJ,OAAO,CAACI,OAAtB;AACA,UAAMC,YAAY,GAChBL,OAAO,CAACM,WAAR,IAAuB7B,IAAI,CAAC8B,GAAL,CAASP,OAAO,CAACI,OAAR,GAAkB,gBAA3B,CADzB;;AAGA,UAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,EAAV,EAAcC,IAAd,EAAoB;AACxC,YAAID,EAAJ,EAAQ;AACRE,QAAAA,OAAO,CAACC,GAAR,CACE,+DAA+DF,IADjE;AAGAP,QAAAA,MAAM,CAAC,IAAIU,KAAJ,CAAUH,IAAV,CAAD,CAAN;AACD,OAND,CAP4C,CAe5C;AAEA;AACA;;;AAEA,UAAMI,UAAU,GAAG,SAAbA,UAAa,CAAUC,MAAV,EAAkBC,MAAlB,EAA0BC,QAA1B,EAAoC;AACrD,YAAMC,CAAC,GAAGzC,IAAI,CAAC0C,KAAL,EAAV;AACA,YAAMC,IAAI,GAAG3C,IAAI,CAAC4C,SAAL,CAAe,gCAAf,CAAb;AACA,YAAIC,CAAC,GAAGJ,CAAC,CAACX,GAAF,CAAMS,MAAM,GAAG,KAAf,CAAR;AACA,YAAMO,GAAG,GAAGL,CAAC,CAACX,GAAF,CAAMS,MAAN,CAAZ;AACA,YAAMQ,GAAG,GAAGN,CAAC,CAACX,GAAF,CAAMQ,MAAN,CAAZ;AACAG,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAAS/C,EAAE,CAACI,EAAH,CAAMD,GAAN,CAAU,MAAV,CAAT,EAA4B0C,IAAI,CAAC,eAAD,CAAhC,EAAmDG,GAAnD;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,UAAD,CAAb,EAA2BI,GAA3B,EAAgCD,GAAhC;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,OAAD,CAAb,EAAwBM,EAAxB,EAA4BH,GAA5B;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,MAAD,CAAb,EAAuBA,IAAI,CAAC,MAAD,CAA3B,EAAqCG,GAArC;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,MAAD,CAAb,EAAuBA,IAAI,CAAC,OAAD,CAA3B,EAAsCG,GAAtC;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,MAAD,CAAb,EAAuBA,IAAI,CAAC,SAAD,CAA3B,EAAwCG,GAAxC;AAEAD,QAAAA,CAAC,GAAGJ,CAAC,CAACX,GAAF,CAAMS,MAAM,GAAG,KAAf,CAAJ;AACAE,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAAS/C,EAAE,CAACI,EAAH,CAAMD,GAAN,CAAU,MAAV,CAAT,EAA4B0C,IAAI,CAAC,eAAD,CAAhC,EAAmDG,GAAnD;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,UAAD,CAAb,EAA2BI,GAA3B,EAAgCD,GAAhC;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,YAAD,CAAb,EAA6BzC,EAAE,CAACgD,IAAH,CAAQ,OAAR,CAA7B,EAA+CJ,GAA/C;AACAL,QAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,MAAD,CAAb,EAAuBA,IAAI,CAAC,MAAD,CAA3B,EAAqCG,GAArC;;AACA,YAAIN,QAAJ,EAAc;AACZC,UAAAA,CAAC,CAACO,GAAF,CAAMH,CAAN,EAASF,IAAI,CAAC,MAAD,CAAb,EAAuBA,IAAI,CAAC,OAAD,CAA3B,EAAsCG,GAAtC;AACD;;AACD,eAAO9C,IAAI,CAACmD,SAAL,CAAeL,GAAf,EAAoBL,CAApB,EAAuBF,MAAvB,EAA+B,aAA/B,CAAP;AACD,OAtBD;AAwBA;AACN;AACA;AACA;AACA;AACA;;;AAEM,UAAMa,OAAO,GAAG,SAASA,OAAT,CAAkBd,MAAlB,EAA0BE,QAA1B,EAAoCa,gBAApC,EAAsD;AACpE,YAAMC,MAAM,GAAGtC,EAAE,CAACuC,GAAH,CACbvC,EAAE,CAACc,GAAH,CAAOQ,MAAP,CADa,EAEbtB,EAAE,CAACc,GAAH,CAAO,oDAAP,CAFa,CAAf,CADoE,CAIlE;;AAEF,YAAIwB,MAAJ,EAAY;AACV;AACA,cAAME,OAAO,GAAGnB,UAAU,CAACC,MAAD,EAASgB,MAAM,CAACG,GAAhB,EAAqBjB,QAArB,CAA1B;AAEA,iBAAOkB,OAAO,CACXC,YADI,CACS,KADT,EACgBL,MAAM,CAACG,GADvB,EAC4B;AAC/BG,YAAAA,IAAI,EAAEJ,OADyB;AAE/BK,YAAAA,WAAW,EAAE;AAFkB,WAD5B,EAKJC,IALI,CAKC,UAAAC,OAAO;AAAA,mBAAIV,gBAAgB,CAAC,IAAD,CAApB;AAAA,WALR,WAME,UAAAW,GAAG,EAAI;AACZX,YAAAA,gBAAgB,CAAC,KAAD,EAAQW,GAAG,CAACC,OAAZ,CAAhB;AACD,WARI,CAAP;AASD,SAbD,MAaO;AACL,iBAAOP,OAAO,CACXQ,IADI,CACC5B,MADD,WAEE,UAAA0B,GAAG,EAAI;AACZX,YAAAA,gBAAgB,CAAC,KAAD,EAAQ,8BAA8BW,GAAtC,CAAhB;AACD,WAJI,EAKJF,IALI,CAKC,YAAM;AACV,gBAAMR,MAAM,GAAGtC,EAAE,CAACuC,GAAH,CACbvC,EAAE,CAACc,GAAH,CAAOQ,MAAP,CADa,EAEbtB,EAAE,CAACc,GAAH,CAAO,oDAAP,CAFa,CAAf;;AAKA,gBAAI,CAACwB,MAAL,EAAa;AACX;AACA,oBAAM,IAAIlB,KAAJ,CAAU,gCAAgCE,MAA1C,CAAN;AACD;;AAED,gBAAMkB,OAAO,GAAGnB,UAAU,CAACC,MAAD,EAASgB,MAAM,CAACG,GAAhB,EAAqBjB,QAArB,CAA1B;AAEA,mBAAOkB,OAAO,CAACC,YAAR,CAAqB,KAArB,EAA4BL,MAAM,CAACG,GAAnC,EAAwC;AAC7CG,cAAAA,IAAI,EAAEJ,OADuC;AAE7CK,cAAAA,WAAW,EAAE;AAFgC,aAAxC,CAAP;AAID,WAtBI,EAuBJC,IAvBI,CAuBC,UAAAC,OAAO;AAAA,mBAAIV,gBAAgB,CAAC,IAAD,CAApB;AAAA,WAvBR,WAwBE,UAAAW,GAAG,EAAI;AACZX,YAAAA,gBAAgB,CAAC,KAAD,EAAQW,GAAG,CAACC,OAAZ,CAAhB;AACD,WA1BI,CAAP;AA2BD;AACF,OAhDD,CAnD4C,CAqG5C;;;AACA,UAAMP,OAAO,GAAG1C,EAAE,CAAC0C,OAAnB;AACA,UAAMS,OAAO,GAAGnD,EAAE,CAACmD,OAAnB;AAEA,UAAIlB,EAAE,GAAG1B,OAAO,CAAC0B,EAAR,IAAcnD,EAAE,CAACsE,KAAH,CAASC,WAAT,EAAvB;;AACA,UAAI,CAACpB,EAAL,EAAS;AACPf,QAAAA,OAAO,CAACC,GAAR,CAAY,mBAAZ;AACAmC,QAAAA,KAAK,CAAC,eAAD,CAAL;AACA;AACD;;AAED,UAAMC,IAAI,GAAG3C,YAAY,CAAC4C,GAAb,GAAmBf,GAAhC;AACA,UAAIgB,aAAJ,EAAmBC,WAAnB,CAjH4C,CAiHb;;AAE/B,UAAInD,OAAO,CAACM,WAAZ,EAAyB;AACvB6C,QAAAA,WAAW,GAAGnD,OAAO,CAACM,WAAtB;AACAF,QAAAA,OAAO,GAAGC,YAAY,CAAC4C,GAAb,GAAmBf,GAA7B;AACAgB,QAAAA,aAAa,GAAGC,WAAW,CAAC3B,GAAZ,EAAhB,CAHuB,CAIvB;;AACA,YAAIxB,OAAO,CAACI,OAAZ,EAAqB;AACnB,gBAAM,IAAIS,KAAJ,CACJ,qEADI,CAAN;AAGD;AACF,OAVD,MAUO;AACLqC,QAAAA,aAAa,GAAGzD,EAAE,CAACc,GAAH,CAAOH,OAAO,GAAG,aAAjB,CAAhB,CADK,CAEL;;AACA+C,QAAAA,WAAW,GAAG1D,EAAE,CAACc,GAAH,CAAO2C,aAAa,CAAChB,GAAd,GAAoB,QAA3B,CAAd;AACD;;AAED,UAAMkB,aAAa,GAAG3D,EAAE,CAACc,GAAH,CAAOH,OAAO,GAAG,aAAjB,CAAtB;AAEA,UAAMiD,UAAU,GAAGrD,OAAO,CAACsD,WAAR,GACf,EADe,GAEf,CAAC;AAAEC,QAAAA,KAAK,EAAE,YAAT;AAAuBjB,QAAAA,WAAW,EAAE;AAApC,OAAD,CAFJ;AAIA,UAAMkB,MAAM,GAAG,EAAf,CAzI4C,CA2I5C;;AACA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,UAAU,CAACK,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;AAC1C,YAAME,IAAI,GAAGN,UAAU,CAACI,CAAD,CAAvB;;AACA,YAAMG,GAAG,GAAG,SAASC,QAAT,CAAmBF,IAAnB,EAAyB;AACnCH,UAAAA,MAAM,CAACM,IAAP,CAAY,YAAY;AACtB,gBAAMC,MAAM,GAAG3D,OAAO,GAAGuD,IAAI,CAACJ,KAA9B;AACA5C,YAAAA,OAAO,CAACC,GAAR,CAAY,aAAaoC,IAAb,GAAoBW,IAAI,CAACJ,KAAzB,GAAiC,MAAjC,GAA0CQ,MAAtD;;AAEA,gBAAMC,UAAU,GAAG,SAAbA,UAAa,GAAY;AAC7BnC,cAAAA,OAAO,CAACkC,MAAD,EAAS,KAAT,EAAgB,UAAUtD,EAAV,EAAciC,OAAd,EAAuB;AAC5C,oBAAI,CAACjC,EAAL,EAAS;AACPD,kBAAAA,aAAa,CACXC,EADW,EAEX,uBAAuBsD,MAAvB,GAAgC,KAAhC,GAAwCrB,OAF7B,CAAb;AAIA/B,kBAAAA,OAAO,CAACC,GAAR,CAAY,uBAAuBmD,MAAvB,GAAgC,KAAhC,GAAwCrB,OAApD;AACD,iBAND,MAMO;AACLc,kBAAAA,MAAM,CAACS,KAAP,KADK,CACY;AAClB;AACF,eAVM,CAAP;AAWD,aAZD;;AAcAxE,YAAAA,EAAE,CAAC0C,OAAH,CACG+B,OADH,CAEIlB,IAAI,GAAGW,IAAI,CAACJ,KAFhB,EAGInD,OAAO,GAAGuD,IAAI,CAACJ,KAHnB,EAIII,IAAI,CAACrB,WAJT,EAMGC,IANH,CAMQ;AAAA,qBAAMhE,EAAE,CAACsE,KAAH,CAASsB,SAAT,EAAN;AAAA,aANR,EAOG5B,IAPH,CAOQ,UAAA6B,KAAK,EAAI;AACb1C,cAAAA,EAAE,GAAG0C,KAAL;AAEAJ,cAAAA,UAAU;AACX,aAXH,WAYS,UAAAvB,GAAG,EAAI;AACZ9B,cAAAA,OAAO,CAACC,GAAR,CACE,oBAAoBoC,IAApB,GAA2BW,IAAI,CAACJ,KAAhC,GAAwC,KAAxC,GAAgDd,GAAG,CAACC,OADtD;AAGAlC,cAAAA,aAAa,CACX,KADW,EAEX,oBAAoBwC,IAApB,GAA2BW,IAAI,CAACJ,KAAhC,GAAwC,KAAxC,GAAgDd,GAAG,CAACC,OAFzC,CAAb;AAID,aApBH;AAqBD,WAvCD;AAwCD,SAzCD;;AA0CAkB,QAAAA,GAAG,CAACD,IAAD,CAAH;AACD;;AAEDH,MAAAA,MAAM,CAACM,IAAP,CAAY,SAASO,iBAAT,GAA8B;AACxC5E,QAAAA,EAAE,CAACgC,GAAH,CACE0B,WADF,EAEExE,EAAE,CAACD,GAAH,CAAO,MAAP,CAFF,EAGEC,EAAE,CAACE,KAAH,CAAS,kBAAT,CAHF,EAIEqE,aAJF;;AAMA,YAAIxB,EAAJ,EAAQ;AACNjC,UAAAA,EAAE,CAACgC,GAAH,CAAO0B,WAAP,EAAoBxE,EAAE,CAAC2F,EAAH,CAAM,QAAN,CAApB,EAAqC5C,EAArC,EAAyCwB,aAAzC,EADM,CACkD;;AACxDzD,UAAAA,EAAE,CAACgC,GAAH,CAAO0B,WAAP,EAAoBxE,EAAE,CAACgD,IAAH,CAAQ,OAAR,CAApB,EAAsCD,EAAtC,EAA0CwB,aAA1C,EAFM,CAEmD;AAC1D;;AAEDzD,QAAAA,EAAE,CAACgC,GAAH,CAAO0B,WAAP,EAAoBxE,EAAE,CAAC2F,EAAH,CAAM,SAAN,CAApB,EAAsC,IAAIC,IAAJ,EAAtC,EAAkDrB,aAAlD;AACAzD,QAAAA,EAAE,CAACgC,GAAH,CAAO0B,WAAP,EAAoBxE,EAAE,CAACE,KAAH,CAAS,iBAAT,CAApB,EAAiDqE,aAAjD;AAEAN,QAAAA,OAAO,CAAC4B,GAAR,CACEtB,aADF,EAEEzD,EAAE,CAACgF,kBAAH,CAAsBC,SAAtB,EAAiCA,SAAjC,EAA4CA,SAA5C,EAAuDxB,aAAvD,CAFF,EAGE,aAHF,EAIE,UAAUyB,IAAV,EAAgBlE,EAAhB,EAAoBiC,OAApB,EAA6B;AAC3B,cAAIjC,EAAJ,EAAQ;AACN+C,YAAAA,MAAM,CAACS,KAAP;AACD,WAFD,MAEO;AACLzD,YAAAA,aAAa,CACXC,EADW,EAEX,sCACEyC,aADF,GAEE,KAFF,GAGER,OALS,CAAb;AAOA/B,YAAAA,OAAO,CAACC,GAAR,CACE,sCACEsC,aADF,GAEE,KAFF,GAGER,OAJJ;AAMD;AACF,SAtBH;AAwBD,OAvCD;AAyCAc,MAAAA,MAAM,CAACM,IAAP,CAAY,YAAY;AACtBrE,QAAAA,EAAE,CAAC0C,OAAH,CACGC,YADH,CACgB,KADhB,EACuBgB,aAAa,CAAClB,GADrC,EAC0C;AACtCG,UAAAA,IAAI,EAAE,EADgC;AAEtCC,UAAAA,WAAW,EAAE;AAFyB,SAD1C,EAKGC,IALH,CAKQ,YAAM;AACViB,UAAAA,MAAM,CAACS,KAAP;AACD,SAPH,WAQS,UAAAxB,GAAG,EAAI;AACZjC,UAAAA,aAAa,CACX,KADW,EAEX,8CAA8CiC,GAAG,CAACC,OAFvC,CAAb;AAID,SAbH;AAcD,OAfD;AAiBAc,MAAAA,MAAM,CAACM,IAAP,CAAY,YAAY;AACtBjC,QAAAA,OAAO,CAACuB,aAAa,CAAClB,GAAf,EAAoB,IAApB,EAA0B,UAAUzB,EAAV,EAAcC,IAAd,EAAoB;AACnDF,UAAAA,aAAa,CACXC,EADW,EAEX,mDAAmDC,IAFxC,CAAb;AAIA,cAAID,EAAJ,EAAQ+C,MAAM,CAACS,KAAP;AACT,SANM,CAAP;AAOD,OARD;AAUAT,MAAAA,MAAM,CAACM,IAAP,CAAY,YAAY;AACtBjC,QAAAA,OAAO,CAACqB,aAAa,CAAChB,GAAf,EAAoB,KAApB,EAA2B,UAAUzB,EAAV,EAAcC,IAAd,EAAoB;AACpDF,UAAAA,aAAa,CACXC,EADW,EAEX,mDAAmDC,IAFxC,CAAb;AAIA,cAAID,EAAJ,EAAQ+C,MAAM,CAACS,KAAP;AACT,SANM,CAAP;AAOD,OARD;AAUAT,MAAAA,MAAM,CAACM,IAAP,CAAY,YAAY;AACtB;AACAnD,QAAAA,OAAO,CAACC,GAAR,CAAY,gCAAZ;AACAZ,QAAAA,OAAO,CAACmD,WAAR,GAAsBA,WAAtB;AACAjD,QAAAA,OAAO,CAACF,OAAD,CAAP;AACD,OALD;AAOAwD,MAAAA,MAAM,CAACS,KAAP,KAhR4C,CAiR5C;AACD,KAlRM,CAAP,CADmC,CAmRhC;AACJ,GAxSc;AAwSZ;AAEH;AACAW,EAAAA,MAAM,EAAE,gBAAUrF,OAAV,EAAmBC,OAAnB,EAA4B;AAClC,QAAMqF,GAAG,GAAGrF,OAAO,CAACqF,GAApB;AACA,QAAMpF,EAAE,GAAGD,OAAO,CAACE,OAAR,CAAgBC,KAA3B;AACA,QAAMhB,EAAE,GAAGJ,EAAE,CAACI,EAAd;AACA,QAAMmG,UAAU,GAAGvF,OAAnB;AACA,QAAMwF,cAAc,GAAG,wBAAvB,CALkC,CAKc;AAEhD;;AAEA,QAAM5C,OAAO,GAAG1C,EAAE,CAAC0C,OAAnB;AACA,QAAMS,OAAO,GAAGnD,EAAE,CAACmD,OAAnB;AACA,QAAIoC,eAAe,GAAG,KAAtB;AAEA,QAAM3E,YAAY,GAAGd,OAArB;AACA,QAAM0F,UAAU,GAAG1F,OAAO,CAACiC,GAAR,EAAnB;AACA,QAAM0D,OAAO,GAAGD,UAAU,CAAChC,GAAX,EAAhB;AACA,QAAMD,IAAI,GAAGkC,OAAO,CAAChD,GAArB;AAEA,QAAMiD,UAAU,GAAG1G,IAAI,CAAC8B,GAAL,CAASyC,IAAI,GAAG,aAAhB,CAAnB,CAlBkC,CAmBlC;AACA;;AACA,QAAMoC,QAAQ,GACZ,mEADF;AAGA,QAAMC,KAAK,GAAG5F,EAAE,CAACc,GAAH,CAAO6E,QAAQ,GAAG,QAAlB,CAAd;AACA,QAAME,KAAK,GAAG7F,EAAE,CAACc,GAAH,CAAO6E,QAAQ,GAAG,QAAlB,CAAd;AACA,QAAMG,KAAK,GAAG9F,EAAE,CAACc,GAAH,CAAO6E,QAAQ,GAAG,QAAlB,CAAd;;AAEA,QAAMI,QAAQ,GAAGhH,OAAO,CAAC,uBAAD,CAAxB;;AACAC,IAAAA,IAAI,CAACgH,KAAL,CAAWD,QAAX,EAAqB/F,EAArB,EAAyB2F,QAAzB,EAAmC,aAAnC,EA7BkC,CA6BgB;;AAElD,QAAMM,UAAU,GACd,oFADF,CA/BkC,CAgCqD;;AACvF,QAAMC,eAAe,GAAG,8BAAxB,CAjCkC,CAmClC;;AAEA,QAAMnF,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,EAAV,EAAciC,OAAd,EAAuB;AAC3C,UAAI,CAACjC,EAAL,EAAS;AACPmF,QAAAA,GAAG,CAACC,WAAJ,CAAgBtH,EAAE,CAACuH,OAAH,CAAWC,iBAAX,CAA6BlB,GAA7B,EAAkCnC,OAAlC,EAA2C,MAA3C,CAAhB;AACD;AACF,KAJD;;AAMA,QAAMsD,YAAY,GAAG,SAAfA,YAAe,CAAUC,GAAV,EAAe;AAClC,aAAOA,GAAG,CAACC,UAAX,EAAuB;AACrBD,QAAAA,GAAG,CAACE,WAAJ,CAAgBF,GAAG,CAACC,UAApB;AACD;;AACD,aAAOD,GAAP;AACD,KALD;;AAOA,QAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAUC,IAAV,EAAgBC,KAAhB,EAAuB;AAC9C,UAAMC,EAAE,GAAG9G,EAAE,CAACuC,GAAH,CAAOsE,KAAP,EAAc/H,EAAE,CAACI,EAAH,CAAM6H,EAAN,CAAS,iBAAT,CAAd,CAAX;;AACA,UAAID,EAAJ,EAAQ;AACNF,QAAAA,IAAI,CAACI,YAAL,CACE,OADF,EAEE,2DAA2DF,EAA3D,GAAgE,GAFlE;AAID;AACF,KARD;;AAUA,QAAI7E,EAAJ;AAEAnD,IAAAA,EAAE,CAACsE,KAAH,CAASsB,SAAT,GAAqB5B,IAArB,CAA0B,UAAA6B,KAAK,EAAI;AACjC1C,MAAAA,EAAE,GAAG0C,KAAL;;AAEA,UAAIsC,cAAJ,EAAoB;AAClBA,QAAAA,cAAc,CAACC,OAAf;AACD;;AACD,UAAIvC,KAAK,IAAIY,eAAb,EAA8B;AAC5BA,QAAAA,eAAe,GAAG,KAAlB;AACA4B,QAAAA,sBAAsB;AACvB;AACF,KAVD;AAWAjG,IAAAA,OAAO,CAACC,GAAR,CAAY,SAASc,EAArB,EAzEkC,CAyET;AAEzB;AACA;AACA;AACA;;AAEA,QAAMmF,iBAAiB,GAAG,SAApBA,iBAAoB,GAAY;AACpC,UAAMC,CAAC,GAAGvI,EAAE,CAACsE,KAAH,CAASkE,cAAT,CACRlC,GADQ,EAER;AAAEmC,QAAAA,IAAI,EAAE;AAAR,OAFQ,EAGRC,gCAHQ,CAAV;AAKAH,MAAAA,CAAC,CAACZ,UAAF,CAAaO,YAAb,CAA0B,OAA1B,EAAmCf,UAAnC;AACA,aAAOoB,CAAP;AACD,KARD,CAhFkC,CAwFhC;AAEF;;;AAEA,QAAMG,gCAAgC,GAAG,SAAnCA,gCAAmC,CAAUC,EAAV,EAAc;AACrD,UAAI9G,OAAO,GAAGX,EAAE,CAACuC,GAAH,CAAOkF,EAAP,EAAWvI,EAAE,CAACwI,KAAH,CAAS,WAAT,CAAX,CAAd;;AACA,UAAI,CAAC/G,OAAL,EAAc;AACZA,QAAAA,OAAO,GAAG8G,EAAE,CAAChF,GAAH,CAAOkF,KAAP,CAAa,GAAb,EAAkB,CAAlB,CAAV;AACD,OAFD,MAEO;AACLhH,QAAAA,OAAO,GAAGA,OAAO,CAACkG,KAAlB;AACD;;AACD,UAAIlG,OAAO,CAACiH,KAAR,CAAc,CAAC,CAAf,MAAsB,GAA1B,EAA+B;AAC7B5I,QAAAA,IAAI,CAACmC,GAAL,CAAS0G,KAAT,CAAevC,cAAc,GAAG,6BAAjB,GAAiD3E,OAAhE,EAD6B,CAC4C;;AACzEA,QAAAA,OAAO,GAAGA,OAAO,GAAG,GAApB;AACD;;AACD,UAAMmH,GAAG,GAAG,IAAIhD,IAAJ,EAAZ;AACAnE,MAAAA,OAAO,IAAI2E,cAAc,GAAG,KAAjB,GAAyBwC,GAAG,CAACC,OAAJ,EAAzB,GAAyC,GAApD,CAZqD,CAYG;;AAExDC,MAAAA,2BAA2B,CAACpH,YAAD,EAAeD,OAAf,CAA3B;AACD,KAfD;;AAiBA,QAAMqH,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAUpH,YAAV,EAAwBD,OAAxB,EAAiC;AACnE,UAAMJ,OAAO,GAAG;AAAEK,QAAAA,YAAY,EAAEA,YAAhB;AAA8BD,QAAAA,OAAO,EAAEA;AAAvC,OAAhB;AACA,WAAKL,OAAL,CAAaP,OAAb,EAAsBQ,OAAtB,EACGuC,IADH,CACQ,UAAUvC,OAAV,EAAmB;AACvB,YAAM0H,CAAC,GAAG9B,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,GAAlB,CAAhB,CAAV;AACAD,QAAAA,CAAC,CAACjB,YAAF,CAAe,OAAf,EAAwB,kBAAxB;AACAiB,QAAAA,CAAC,CAACE,SAAF,GACE,mBACA5H,OAAO,CAACmD,WAAR,CAAoBjB,GADpB,GAEA,oDAFA,GAGA,qBAHA,GAIAlC,OAAO,CAACmD,WAAR,CAAoBjB,GAJpB,GAKA,4CANF;AAOD,OAXH,WAYS,UAAUoF,KAAV,EAAiB;AACtB9G,QAAAA,aAAa,CACX,KADW,EAEX,sCACER,OAAO,CAACmD,WADV,GAEE,IAFF,GAGEmE,KALS,CAAb;AAOD,OApBH;AAqBD,KAvBD,CA7GkC,CAsIlC;;;AAEA,QAAMO,QAAQ,GAAG,SAAXA,QAAW,GAAY;AAC3BlH,MAAAA,OAAO,CAACC,GAAR,CAAY,YAAZ;AACAkH,MAAAA,UAAU;AACV;AACN;AACA;AACA;AACA;AACA;AACA;AACK,KAVD;;AAYA,QAAMA,UAAU,GAAG,SAAbA,UAAa,GAAY;AAC7BnH,MAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ,EAD6B,CACD;;AAC5BuB,MAAAA,OAAO,CAAC4F,gBAAR,CAAyB9C,UAAU,CAAC/C,GAApC,EAAyCwC,SAAzC,EAAoD,UAAUjE,EAAV,EAAcC,IAAd,EAAoB;AACtEC,QAAAA,OAAO,CAACC,GAAR,CAAY,sBAAsBH,EAAlC;AACA,YAAI,CAACA,EAAL,EAAS,OAAOD,aAAa,CAACC,EAAD,EAAKC,IAAL,CAApB;AACTkG,QAAAA,sBAAsB;AACvB,OAJD;AAKD,KAPD;;AASA,QAAMA,sBAAsB,GAAG,SAASA,sBAAT,GAAmC;AAChEjG,MAAAA,OAAO,CAACC,GAAR,CAAY,0BAAZ;AAEArC,MAAAA,EAAE,CAACsE,KAAH,CAASsB,SAAT,GAAqB5B,IAArB,CAA0B,UAAA6B,KAAK,EAAI;AACjC,YAAI,CAACA,KAAL,EAAY;AACV,iBAAO4D,UAAU,EAAjB;AACD,SAHgC,CAKjC;AACA;;;AAEA,YACE,CAACvI,EAAE,CAACmD,OAAH,CAAWqF,QAAX,CAAoBhD,UAAU,CAAC/C,GAA/B,EAAoCzC,EAApC,CAAD,IACAA,EAAE,CAACyI,KAAH,CAAS3I,OAAT,EAAkBZ,EAAE,CAACD,GAAH,CAAO,MAAP,CAAlB,EAAkCC,EAAE,CAACwJ,EAAH,CAAM,kBAAN,CAAlC,CAFF,EAGE;AACA;AACAC,UAAAA,aAAa,CAACxC,GAAD,CAAb;AACA;AACD;;AAED,YAAMyC,KAAK,GAAG5I,EAAE,CAACuC,GAAH,CAAOzC,OAAP,EAAgBZ,EAAE,CAACE,KAAH,CAAS,OAAT,CAAhB,CAAd;;AAEA,YAAI,CAACwJ,KAAL,EAAY;AACVC,UAAAA,SAAS;AACV,SAFD,MAEO;AACL;AACAC,UAAAA,UAAU;AACX;AACF,OAzBD;AA0BD,KA7BD;;AA+BA,QAAMP,UAAU,GAAG,SAASA,UAAT,GAAuB;AACxChC,MAAAA,YAAY,CAACwC,QAAD,CAAZ;AACA,UAAMC,aAAa,GAAG;AAAE7C,QAAAA,GAAG,EAAEA,GAAP;AAAYf,QAAAA,GAAG,EAAEA;AAAjB,OAAtB;AACAtG,MAAAA,EAAE,CAACsE,KAAH,CAAS6F,KAAT,CAAeD,aAAf,EAA8BlG,IAA9B,CAAmC,UAAA/C,OAAO,EAAI;AAC5CkC,QAAAA,EAAE,GAAGlC,OAAO,CAACkC,EAAb;AACAsD,QAAAA,eAAe,GAAG,KAAlB,CAF4C,CAEpB;;AACxB4B,QAAAA,sBAAsB;AACvB,OAJD;AAKD,KARD;;AAUA,QAAMwB,aAAa,GAAG,SAASA,aAAT,GAA0B;AAC9C,UAAMxC,GAAG,GAAGI,YAAY,CAACwC,QAAD,CAAxB;AACA5C,MAAAA,GAAG,CAACC,WAAJ,CACEtH,EAAE,CAACsE,KAAH,CAASkE,cAAT,CACElC,GADF,EAEE;AAAEmC,QAAAA,IAAI,EAAE;AAAR,OAFF,EAGEC,gCAHF,CADF;AAQArB,MAAAA,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,IAAlB,CAAhB,EAV8C,CAUL;;AAEzC,UAAMD,CAAC,GAAG9B,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,GAAlB,CAAhB,CAAV;AACAD,MAAAA,CAAC,CAACiB,WAAF,GACE,2DACA,qEAFF;AAGA,UAAMC,SAAS,GAAGhD,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,OAAlB,CAAhB,CAAlB;AACAiB,MAAAA,SAAS,CAACnC,YAAV,CAAuB,MAAvB,EAA+B,MAA/B;AACAmC,MAAAA,SAAS,CAACC,IAAV,GAAiB,EAAjB,CAlB8C,CAkB1B;;AACpBD,MAAAA,SAAS,CAACtJ,KAAV,GAAkB,UAAlB;AACAsJ,MAAAA,SAAS,CAACE,YAAV,GAAyB,IAAzB;AAEAlD,MAAAA,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,IAAlB,CAAhB,EAtB8C,CAsBL;;AAEzC,UAAMoB,MAAM,GAAGnD,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,QAAlB,CAAhB,CAAf;AACAoB,MAAAA,MAAM,CAACtC,YAAP,CAAoB,OAApB,EAA6Bf,UAA7B;AACAqD,MAAAA,MAAM,CAACJ,WAAP,GAAqB,4BAArB;AACAI,MAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,UAAUC,EAAV,EAAc;AAC7C,YAAI7I,OAAO,GAAGwI,SAAS,CAACtC,KAAxB;;AACA,YAAIlG,OAAO,CAACiH,KAAR,CAAc,CAAC,CAAf,MAAsB,GAA1B,EAA+B;AAC7BjH,UAAAA,OAAO,IAAI,GAAX;AACD;;AACDqH,QAAAA,2BAA2B,CAACpH,YAAD,EAAeD,OAAf,CAA3B;AACD,OAND;AAOD,KAlCD,CAtMkC,CA0OlC;;;AAEA,QAAM8I,UAAU,GAAGrE,GAAG,CAAC8C,aAAJ,CAAkB,QAAlB,CAAnB;;AAEA,QAAMW,SAAS,GAAG,SAAZA,SAAY,GAAY;AAC5BtC,MAAAA,YAAY,CAACmD,UAAD,CAAZ,CAD4B,CACH;;AACzB,UAAMvD,GAAG,GAAG4C,QAAZ;AACA,UAAMY,MAAM,GAAG,IAAf;AACA,UAAIC,YAAY,GAAG,CAAnB;AACA,UAAIC,aAAa,GAAG,KAApB;;AACA,UAAIF,MAAJ,EAAY;AACV,YAAMG,KAAK,GAAG,CAAClE,KAAD,EAAQC,KAAR,EAAeC,KAAf,CAAd;AACA,YAAMiE,MAAM,GAAG,EAAf;AACAH,QAAAA,YAAY,GAAG,CAAf;;AACA,aAAK,IAAI5F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8F,KAAK,CAAC7F,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,cAAMgG,KAAK,GAAG5E,GAAG,CAAC8C,aAAJ,CAAkB,KAAlB,CAAd;AACApJ,UAAAA,EAAE,CAACuH,OAAH,CAAW4D,UAAX,CACEC,QADF,EAEEF,KAFF,EAGE,EAHF,EAIElK,OAJF,EAKEgK,KAAK,CAAC9F,CAAD,CALP,EAMEwB,UANF,EAOEzE,aAPF;AASAgJ,UAAAA,MAAM,CAAC1F,IAAP,CAAY2F,KAAZ;AACD;;AAED,YAAM9C,OAAO,GAAG,SAAVA,OAAU,GAAY;AAC1BX,UAAAA,YAAY,CAACwC,QAAD,CAAZ,CAAuB3C,WAAvB,CAAmC2D,MAAM,CAACH,YAAD,CAAzC;;AAEA,cAAIA,YAAY,KAAK,CAArB,EAAwB;AACtBO,YAAAA,EAAE,CAACnD,YAAH,CAAgB,UAAhB,EAA4B,EAA5B;AACD,WAFD,MAEO;AACLmD,YAAAA,EAAE,CAACC,eAAH,CAAmB,UAAnB;AACD;;AACD,cAAIR,YAAY,KAAKG,MAAM,CAAC9F,MAAP,GAAgB,CAArC,EAAwC;AACtCoG,YAAAA,EAAE,CAACrD,YAAH,CAAgB,UAAhB,EAA4B,EAA5B;;AACA,gBAAI,CAAC6C,aAAL,EAAoB;AAClB;AACAH,cAAAA,UAAU,CAACtD,WAAX,CAAuBkE,WAAvB,EAFkB,CAEkB;;AACpCZ,cAAAA,UAAU,CAACtD,WAAX,CAAuBqD,UAAvB,EAHkB,CAGiB;;AACnCI,cAAAA,aAAa,GAAG,IAAhB;AACD;AACF,WARD,MAQO;AACLQ,YAAAA,EAAE,CAACD,eAAH,CAAmB,UAAnB;AACD;AACF,SAnBD;;AAoBA,YAAMD,EAAE,GAAG5D,YAAY,CAACgE,QAAD,CAAZ,CAAuBnE,WAAvB,CAAmChB,GAAG,CAAC8C,aAAJ,CAAkB,QAAlB,CAAnC,CAAX;AACAiC,QAAAA,EAAE,CAACnD,YAAH,CAAgB,OAAhB,EAAyBf,UAAzB;AACAkE,QAAAA,EAAE,CAACjB,WAAH,GAAiB,YAAjB;AACAiB,QAAAA,EAAE,CAACZ,gBAAH,CACE,OADF,EAEE,UAAUC,EAAV,EAAc;AACZ,cAAII,YAAY,GAAG,CAAnB,EAAsB;AACpBA,YAAAA,YAAY,IAAI,CAAhB;AACA1C,YAAAA,OAAO;AACR;AACF,SAPH,EAQE,KARF;AAWA,YAAMmD,EAAE,GAAG9D,YAAY,CAACiE,SAAD,CAAZ,CAAwBpE,WAAxB,CACThB,GAAG,CAAC8C,aAAJ,CAAkB,QAAlB,CADS,CAAX;AAGAmC,QAAAA,EAAE,CAACrD,YAAH,CAAgB,OAAhB,EAAyBf,UAAzB;AACAoE,QAAAA,EAAE,CAACnB,WAAH,GAAiB,aAAjB;AACAmB,QAAAA,EAAE,CAACd,gBAAH,CACE,OADF,EAEE,UAAUC,EAAV,EAAc;AACZ,cAAII,YAAY,GAAGG,MAAM,CAAC9F,MAAP,GAAgB,CAAnC,EAAsC;AACpC2F,YAAAA,YAAY,IAAI,CAAhB;AACA1C,YAAAA,OAAO;AACR;AACF,SAPH,EAQE,KARF;AAWAA,QAAAA,OAAO;AACR,OArED,MAqEO;AACL;AACA;AACA,YAAMuD,KAAK,GAAGtE,GAAG,CAACC,WAAJ,CAAgBhB,GAAG,CAAC8C,aAAJ,CAAkB,OAAlB,CAAhB,CAAd;AACApJ,QAAAA,EAAE,CAACuH,OAAH,CAAW4D,UAAX,CACEC,QADF,EAEEO,KAFF,EAGE,EAHF,EAIE3K,OAJF,EAKE8F,KALF,EAMEJ,UANF,EAOEzE,aAPF;AASAjC,QAAAA,EAAE,CAACuH,OAAH,CAAW4D,UAAX,CACEC,QADF,EAEEO,KAFF,EAGE,EAHF,EAIE3K,OAJF,EAKE+F,KALF,EAMEL,UANF,EAOEzE,aAPF;AASAjC,QAAAA,EAAE,CAACuH,OAAH,CAAW4D,UAAX,CACEC,QADF,EAEEO,KAFF,EAGE,EAHF,EAIE3K,OAJF,EAKEgG,KALF,EAMEN,UANF,EAOEzE,aAPF;AASA2I,QAAAA,UAAU,CAACtD,WAAX,CAAuBqD,UAAvB,EA/BK,CA+B8B;AACpC,OA3G2B,CA4G5B;;;AAEA,UAAMiB,WAAW,GAAG,EAApB;AACAA,MAAAA,WAAW,CAACrG,IAAZ,CACErF,IAAI,CAAC2L,EAAL,CACE7K,OADF,EAEEZ,EAAE,CAACE,KAAH,CAAS,qBAAT,CAFF,EAGEF,EAAE,CAACE,KAAH,CAAS,YAAT,CAHF,EAIEoG,UAJF,CADF;AAQAkF,MAAAA,WAAW,CAACrG,IAAZ,CACErF,IAAI,CAAC2L,EAAL,CAAQ7K,OAAR,EAAiBZ,EAAE,CAACE,KAAH,CAAS,OAAT,CAAjB,EAAoC,IAAI0F,IAAJ,EAApC,EAAgDU,UAAhD,CADF;AAGAkF,MAAAA,WAAW,CAACrG,IAAZ,CACErF,IAAI,CAAC2L,EAAL,CAAQ7K,OAAR,EAAiBZ,EAAE,CAACE,KAAH,CAAS,SAAT,CAAjB,EAAsCsG,UAAtC,EAAkDF,UAAlD,CADF,EA1H4B,CA4H1B;;AAEFiE,MAAAA,UAAU,CAACzC,YAAX,CAAwB,OAAxB,EAAiCf,UAAjC;AACAwD,MAAAA,UAAU,CAACP,WAAX,GAAyB,YAAzB;AACAO,MAAAA,UAAU,CAACF,gBAAX,CACE,OADF,EAEE,UAAUC,EAAV,EAAc;AACZ,YAAIxJ,EAAE,CAACuC,GAAH,CAAOzC,OAAP,EAAgBZ,EAAE,CAACE,KAAH,CAAS,OAAT,CAAhB,CAAJ,EAAwC;AACtC;AACA0J,UAAAA,UAAU;AACV0B,UAAAA,SAAS,CAACpE,WAAV,CAAsBkE,WAAtB;AACD,SAJD,MAIO;AACLE,UAAAA,SAAS,CAACpE,WAAV,CAAsBkE,WAAtB;AACAtK,UAAAA,EAAE,CAACmD,OAAH,CAAWyH,MAAX,CAAkB,EAAlB,EAAsBF,WAAtB,EAAmC,UACjCjI,GADiC,EAEjCoI,OAFiC,EAGjCC,SAHiC,EAIjC;AACA,gBAAI,CAACD,OAAL,EAAc;AACZ9J,cAAAA,aAAa,CAAC8J,OAAD,EAAUC,SAAV,CAAb;AACD,aAFD,MAEO;AACL;AACAhC,cAAAA,UAAU;AACX;AACF,WAXD;AAYD;AACF,OAtBH,EAuBE,KAvBF;AA0BA,UAAMwB,WAAW,GAAGlF,GAAG,CAAC8C,aAAJ,CAAkB,QAAlB,CAApB;AACAoC,MAAAA,WAAW,CAACtD,YAAZ,CAAyB,OAAzB,EAAkCf,UAAlC;AACA,UAAM8E,SAAS,GAAGT,WAAW,CAAClE,WAAZ,CAAwBhB,GAAG,CAAC8C,aAAJ,CAAkB,KAAlB,CAAxB,CAAlB;AACA6C,MAAAA,SAAS,CAAC/D,YAAV,CAAuB,KAAvB,EAA8BlI,EAAE,CAACU,KAAH,CAASC,QAAT,GAAoB,iBAAlD,EA7J4B,CA6JyC;;AACrEsL,MAAAA,SAAS,CAAC/D,YAAV,CAAuB,OAAvB,EAAgCd,eAAhC,EA9J4B,CA+J5B;;AACAoE,MAAAA,WAAW,CAACf,gBAAZ,CACE,OADF,EAEE,UAAUC,EAAV,EAAc;AACZ,YAAMwB,KAAK,GACThL,EAAE,CAACiL,QAAH,CAAYnL,OAAZ,EAAqBZ,EAAE,CAACgM,GAAH,CAAO,SAAP,CAArB,KACAlL,EAAE,CAACiL,QAAH,CAAYnL,OAAZ,EAAqBZ,EAAE,CAAC2F,EAAH,CAAM,OAAN,CAArB,CADA,IAEA,EAHF;AAIA,YAAMsG,MAAM,GACV,YACAnL,EAAE,CACCoL,IADH,CACQtL,OADR,EACiBZ,EAAE,CAACE,KAAH,CAAS,SAAT,CADjB,EAEGiM,GAFH,CAEO,UAAUC,GAAV,EAAe;AAClB,cAAMC,IAAI,GAAGvL,EAAE,CAACuC,GAAH,CAAO+I,GAAP,EAAYpM,EAAE,CAACgD,IAAH,CAAQ,MAAR,CAAZ,CAAb;AACA,iBAAOqJ,IAAI,GAAGA,IAAI,CAAC9I,GAAL,CAAS+I,OAAT,CAAiB,SAAjB,EAA4B,EAA5B,CAAH,GAAqC,EAAhD;AACD,SALH,EAMGC,IANH,CAMQ,GANR,CADA,GAQA,WARA,GASAC,kBAAkB,CAACV,KAAK,GAAG,sBAAT,CATlB,GAUA,QAVA,GAWAU,kBAAkB,CAChBV,KAAK,GAAG,2BAAR,GAAsClL,OAAtC,GAAgD,IADhC,CAZpB,CALY,CAoBZ;;AAEAoB,QAAAA,OAAO,CAACC,GAAR,CAAY,WAAWgK,MAAvB;AACAQ,QAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuBV,MAAvB;AACD,OA1BH,EA2BE,KA3BF;AA6BD,KA7LD,CA9OkC,CA2ahC;AAEF;;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBI;AAEA;;;AACA,QAAMrC,U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","sourcesContent":["/* Scheduler Pane\n **\n **\n */\n/* global alert */\n\nconst UI = require('solid-ui')\nconst $rdf = UI.rdf\nconst ns = UI.ns\n\n// @@ Give other combos too-- see schedule ontology\nconst possibleAvailabilities = [\n ns.sched('No'),\n ns.sched('Maybe'),\n ns.sched('Yes')\n]\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_346777.svg', // @@ better?\n\n name: 'schedule',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an Scheduler pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/schedule#SchedulableEvent']) {\n return 'Scheduling poll'\n }\n return null // No under other circumstances\n },\n\n // Mint a new Schedule poll\n mintClass: ns.sched('SchedulableEvent'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n const ns = UI.ns\n const kb = context.session.store\n let newBase = options.newBase\n const thisInstance =\n options.useExisting || $rdf.sym(options.newBase + 'index.ttl#this')\n\n const complainIfBad = function (ok, body) {\n if (ok) return\n console.log(\n 'Error in Schedule Pane: Error constructing new scheduler: ' + body\n )\n reject(new Error(body))\n }\n\n // ////////////////////// Accesss control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n\n const genACLtext = function (docURI, aclURI, allWrite) {\n const g = $rdf.graph()\n const auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n return $rdf.serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /*\n const setACL3 = function (docURI, allWrite, callbackFunction) {\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return UI.acl.setACL(docURI, aclText, callbackFunction)\n }\n */\n\n const setACL2 = function setACL2 (docURI, allWrite, callbackFunction) {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n ) // @@ check that this get set by web.js\n\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch(err => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n )\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Body of mintNew\n const fetcher = kb.fetcher\n const updater = kb.updater\n\n let me = options.me || UI.authn.currentUser()\n if (!me) {\n console.log('MUST BE LOGGED IN')\n alert('NOT LOGGED IN')\n return\n }\n\n const base = thisInstance.dir().uri\n let newDetailsDoc, newInstance // , newIndexDoc\n\n if (options.useExisting) {\n newInstance = options.useExisting\n newBase = thisInstance.dir().uri\n newDetailsDoc = newInstance.doc()\n // newIndexDoc = null\n if (options.newBase) {\n throw new Error(\n 'mint new scheduler: Illegal - have both new base and existing event'\n )\n }\n } else {\n newDetailsDoc = kb.sym(newBase + 'details.ttl')\n // newIndexDoc = kb.sym(newBase + 'index.html')\n newInstance = kb.sym(newDetailsDoc.uri + '#event')\n }\n\n const newResultsDoc = kb.sym(newBase + 'results.ttl')\n\n const toBeCopied = options.noIndexHTML\n ? {}\n : [{ local: 'index.html', contentType: 'text/html' }]\n\n const agenda = []\n\n // @@ This needs some form of visible progress bar\n for (let f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL2(newURI, false, function (ok, message) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()() // beware too much nesting\n }\n })\n }\n\n kb.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => UI.authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createDetailsFile () {\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.sched('SchedulableEvent'),\n newDetailsDoc\n )\n if (me) {\n kb.add(newInstance, ns.dc('author'), me, newDetailsDoc) // Who is sending the invitation?\n kb.add(newInstance, ns.foaf('maker'), me, newDetailsDoc) // Uneditable - wh is allowed to edit this?\n }\n\n kb.add(newInstance, ns.dc('created'), new Date(), newDetailsDoc)\n kb.add(newInstance, ns.sched('resultsDocument'), newDetailsDoc)\n\n updater.put(\n newDetailsDoc,\n kb.statementsMatching(undefined, undefined, undefined, newDetailsDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n agenda.shift()()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n kb.fetcher\n .webOperation('PUT', newResultsDoc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(() => {\n agenda.shift()()\n })\n .catch(err => {\n complainIfBad(\n false,\n 'Failed to initialize empty results file: ' + err.message\n )\n })\n })\n\n agenda.push(function () {\n setACL2(newResultsDoc.uri, true, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on results file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n setACL2(newDetailsDoc.uri, false, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set read ACL on configuration file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n console.log('Finished minting new scheduler')\n options.newInstance = newInstance\n resolve(options)\n })\n\n agenda.shift()()\n // Created new data files.\n }) // promise\n }, // mintNew\n\n // Render one meeting schedule poll\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n const invitation = subject\n const appPathSegment = 'app-when-can-we.w3.org' // how to allocate this string and connect to\n\n // ////////////////////////////////////////////\n\n const fetcher = kb.fetcher\n const updater = kb.updater\n let waitingForLogin = false\n\n const thisInstance = subject\n const detailsDoc = subject.doc()\n const baseDir = detailsDoc.dir()\n const base = baseDir.uri\n\n const resultsDoc = $rdf.sym(base + 'results.ttl')\n // const formsURI = base + 'forms.ttl'\n // We can't in fact host stuff from there because of CORS\n const formsURI =\n 'https://solid.github.io/solid-panes/schedule/formsForSchedule.ttl'\n\n const form1 = kb.sym(formsURI + '#form1')\n const form2 = kb.sym(formsURI + '#form2')\n const form3 = kb.sym(formsURI + '#form3')\n\n const formText = require('./formsForSchedule.js')\n $rdf.parse(formText, kb, formsURI, 'text/turtle') // Load forms directly\n\n const inputStyle =\n 'background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%' // font-size: 120%\n const buttonIconStyle = 'width: 1.8em; height: 1.8em;'\n\n // Utility functions\n\n const complainIfBad = function (ok, message) {\n if (!ok) {\n div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n const refreshCellColor = function (cell, value) {\n const bg = kb.any(value, UI.ns.ui('backgroundColor'))\n if (bg) {\n cell.setAttribute(\n 'style',\n 'padding: 0.3em; text-align: center; background-color: ' + bg + ';'\n )\n }\n }\n\n let me\n\n UI.authn.checkUser().then(webId => {\n me = webId\n\n if (logInOutButton) {\n logInOutButton.refresh()\n }\n if (webId && waitingForLogin) {\n waitingForLogin = false\n showAppropriateDisplay()\n }\n })\n console.log('me: ' + me) // @@ curently not actually used elsewhere\n\n // ////////////////////////////// Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n //\n\n const newInstanceButton = function () {\n const b = UI.authn.newAppInstance(\n dom,\n { noun: 'scheduler' },\n initializeNewInstanceInWorkspace\n )\n b.firstChild.setAttribute('style', inputStyle)\n return b\n } // newInstanceButton\n\n // /////////////////////// Create new document files for new instance of app\n\n const initializeNewInstanceInWorkspace = function (ws) {\n let newBase = kb.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n $rdf.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (thisInstance, newBase) {\n const options = { thisInstance: thisInstance, newBase: newBase }\n this.mintNew(context, options)\n .then(function (options) {\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n options.newInstance.uri +\n \"'><b>new scheduler</b></a> is ready to be set up. \" +\n \"<br/><br/><a href='\" +\n options.newInstance.uri +\n \"'>Say when you what days work for you.</a>\"\n })\n .catch(function (error) {\n complainIfBad(\n false,\n 'Error createing new scheduler at ' +\n options.newInstance +\n ': ' +\n error\n )\n })\n }\n\n // ///////////////////////\n\n const getForms = function () {\n console.log('getforms()')\n getDetails()\n /*\n fetcher.nowOrWhenFetched(formsURI, undefined, function (ok, body) {\n console.log('getforms() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n getDetails()\n })\n */\n }\n\n const getDetails = function () {\n console.log('getDetails()') // Looking for blank screen hang-up\n fetcher.nowOrWhenFetched(detailsDoc.uri, undefined, function (ok, body) {\n console.log('getDetails() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n showAppropriateDisplay()\n })\n }\n\n const showAppropriateDisplay = function showAppropriateDisplay () {\n console.log('showAppropriateDisplay()')\n\n UI.authn.checkUser().then(webId => {\n if (!webId) {\n return showSignon()\n }\n\n // On gh-pages, the turtle will not load properly (bad mime type)\n // but we can trap it as being a non-editable server.\n\n if (\n !kb.updater.editable(detailsDoc.uri, kb) ||\n kb.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))\n ) {\n // This is read-only example e.g. on github pages, etc\n showBootstrap(div)\n return\n }\n\n const ready = kb.any(subject, ns.sched('ready'))\n\n if (!ready) {\n showForms()\n } else {\n // no editing not author\n getResults()\n }\n })\n }\n\n const showSignon = function showSignon () {\n clearElement(naviMain)\n const signonContext = { div: div, dom: dom }\n UI.authn.logIn(signonContext).then(context => {\n me = context.me\n waitingForLogin = false // untested\n showAppropriateDisplay()\n })\n }\n\n const showBootstrap = function showBootstrap () {\n const div = clearElement(naviMain)\n div.appendChild(\n UI.authn.newAppInstance(\n dom,\n { noun: 'poll' },\n initializeNewInstanceInWorkspace\n )\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the poll? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n baseField.label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.setAttribute('style', inputStyle)\n button.textContent = 'Start new poll at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // ///////////// The forms to configure the poll\n\n const doneButton = dom.createElement('button')\n\n const showForms = function () {\n clearElement(naviCenter) // Remove refresh button if nec\n const div = naviMain\n const wizard = true\n let currentSlide = 0\n let gotDoneButton = false\n if (wizard) {\n const forms = [form1, form2, form3]\n const slides = []\n currentSlide = 0\n for (let f = 0; f < forms.length; f++) {\n const slide = dom.createElement('div')\n UI.widgets.appendForm(\n document,\n slide,\n {},\n subject,\n forms[f],\n detailsDoc,\n complainIfBad\n )\n slides.push(slide)\n }\n\n const refresh = function () {\n clearElement(naviMain).appendChild(slides[currentSlide])\n\n if (currentSlide === 0) {\n b1.setAttribute('disabled', '')\n } else {\n b1.removeAttribute('disabled')\n }\n if (currentSlide === slides.length - 1) {\n b2.setAttribute('disabled', '')\n if (!gotDoneButton) {\n // Only expose at last slide seen\n naviCenter.appendChild(emailButton) // could also check data shape\n naviCenter.appendChild(doneButton) // could also check data shape\n gotDoneButton = true\n }\n } else {\n b2.removeAttribute('disabled')\n }\n }\n const b1 = clearElement(naviLeft).appendChild(dom.createElement('button'))\n b1.setAttribute('style', inputStyle)\n b1.textContent = '<- go back'\n b1.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide > 0) {\n currentSlide -= 1\n refresh()\n }\n },\n false\n )\n\n const b2 = clearElement(naviRight).appendChild(\n dom.createElement('button')\n )\n b2.setAttribute('style', inputStyle)\n b2.textContent = 'continue ->'\n b2.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide < slides.length - 1) {\n currentSlide += 1\n refresh()\n }\n },\n false\n )\n\n refresh()\n } else {\n // not wizard one big form\n // @@@ create the initial config doc if not exist\n const table = div.appendChild(dom.createElement('table'))\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form1,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form2,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form3,\n detailsDoc,\n complainIfBad\n )\n naviCenter.appendChild(doneButton) // could also check data shape\n }\n // @@@ link config to results\n\n const insertables = []\n insertables.push(\n $rdf.st(\n subject,\n ns.sched('availabilityOptions'),\n ns.sched('YesNoMaybe'),\n detailsDoc\n )\n )\n insertables.push(\n $rdf.st(subject, ns.sched('ready'), new Date(), detailsDoc)\n )\n insertables.push(\n $rdf.st(subject, ns.sched('results'), resultsDoc, detailsDoc)\n ) // @@ also link in results\n\n doneButton.setAttribute('style', inputStyle)\n doneButton.textContent = 'Go to poll'\n doneButton.addEventListener(\n 'click',\n function (_e) {\n if (kb.any(subject, ns.sched('ready'))) {\n // already done\n getResults()\n naviRight.appendChild(emailButton)\n } else {\n naviRight.appendChild(emailButton)\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n // naviRight.appendChild(emailButton)\n getResults()\n }\n })\n }\n },\n false\n )\n\n const emailButton = dom.createElement('button')\n emailButton.setAttribute('style', inputStyle)\n const emailIcon = emailButton.appendChild(dom.createElement('img'))\n emailIcon.setAttribute('src', UI.icons.iconBase + 'noun_480183.svg') // noun_480183.svg\n emailIcon.setAttribute('style', buttonIconStyle)\n // emailButton.textContent = 'email invitations'\n emailButton.addEventListener(\n 'click',\n function (_e) {\n const title =\n kb.anyValue(subject, ns.cal('summary')) ||\n kb.anyValue(subject, ns.dc('title')) ||\n ''\n const mailto =\n 'mailto:' +\n kb\n .each(subject, ns.sched('invitee'))\n .map(function (who) {\n const mbox = kb.any(who, ns.foaf('mbox'))\n return mbox ? mbox.uri.replace('mailto:', '') : ''\n })\n .join(',') +\n '?subject=' +\n encodeURIComponent(title + '-- When can we meet?') +\n '&body=' +\n encodeURIComponent(\n title + '\\n\\nWhen can you?\\n\\nSee ' + subject + '\\n'\n )\n // @@ assumed there is a data browser\n\n console.log('Mail: ' + mailto)\n window.location.href = mailto\n },\n false\n )\n } // showForms\n\n // Ask for each day, what times .. @@ to be added some time\n /*\n const setTimesOfDay = function () {\n const i, j, x, y, slot, cell, day\n const insertables = []\n const possibleDays = kb.each(invitation, ns.sched('option'))\n .map(function (opt) {return kb.any(opt, ns.cal('dtstart'))})\n const cellLookup = []\n const slots = kb.each(invitation, ns.sched('slot'))\n if (slots.length === 0) {\n for (i = 0; i < 2; i++) {\n slot = UI.widgets.newThing(detailsDoc)\n insertables.push($rdf.st(invitation, ns.sched('slot'), slot))\n insertables.push($rdf.st(slot, ns.rdfs('label'), 'slot ' + (i + 1)))\n for (j = 0; j < possibleDays.length; j++) {\n day - possibleDays[j]\n x = kb.any(slot, ns.rdfs('label'))\n y = kb.any(day, ns.cal('dtstart'))\n cell = UI.widgets.newThing(detailsDoc)\n cellLookup[x.toNT() + y.toNT()] = cell\n insertables.push($rdf.st(slot, ns.sched('cell'), cell))\n insertables.push($rdf.st(cell, ns.sched('day'), possibleDays[j]))\n }\n }\n }\n\n const query = new $rdf.Query('TimesOfDay')\n const v = {}['day', 'label', 'value', 'slot', 'cell'].map(function (x) {\n query.consts.push(v[x] = $rdf.constiable(x)) })\n query.pat.add(invitation, ns.sched('slot'), v.slot)\n query.pat.add(v.slot, ns.rdfs('label'), v.label)\n query.pat.add(v.slot, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('timeOfDay'), v.value)\n query.pat.add(v.cell, ns.sched('day'), v.day)\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('slot')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) { return kb.any(opt, ns.rdfs('label')) })\n\n options.set_y = kb.each(subject, ns.sched('option')); // @@@@@ option -> dtstart in future\n options.set_y = options.set_y.map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const possibleTimes = kb.each(invitation, ns.sched('option'))\n .map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(UI.matrix.matrixForQuery(\n dom, query, v.time, v.author, v.value, options, function () {}))\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n refreshButton.textContent = 'refresh'\n refreshButton.addEventListener('click', function (e) {\n refreshButton.disabled = true\n UI.store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n }, false)\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n const dataPointForNT = []\n\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) { return (! z.sameTerm(me)) })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n // const point = cellLookup[x.toNT() + y.toNT()]\n\n if (y.sameTerm(me)) {\n const callbackFunction = function () { refreshCellColor(cell, value); }; // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('timeOfDay')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(dom, kb, cellSubject, predicate,\n possibleAvailabilities, selectOptions, resultsDoc, callbackFunction)\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n const myResponse = null\n responses.map(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push($rdf.st(invitation, ns.sched('response'), myResponse, doc))\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.map(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push($rdf.st(myResponse, ns.sched('cell'), dataPoint, doc))\n insertables.push($rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n UI.store.updater.update([], insertables, function (uri, success, errorBody) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else { // no insertables\n displayTheMatrix()\n }\n }\n */\n // end setTimesOfDay\n\n // Read or create empty results file\n const getResults = function () {\n fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing details file ' + resultsDoc)\n updater.put(resultsDoc, [], 'text/turtle', function (\n uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults()\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n showResults()\n }\n })\n }\n\n const showResults = function () {\n // Now the form for responsing to the poll\n //\n\n // div.appendChild(dom.createElement('hr'))\n\n // const invitation = subject\n const title = kb.any(invitation, ns.cal('summary'))\n const comment = kb.any(invitation, ns.cal('comment'))\n const location = kb.any(invitation, ns.cal('location'))\n const div = naviMain\n if (title) div.appendChild(dom.createElement('h3')).textContent = title\n if (location) {\n div.appendChild(dom.createElement('address')).textContent =\n location.value\n }\n if (comment) {\n div.appendChild(dom.createElement('p')).textContent = comment.value\n }\n const author = kb.any(invitation, ns.dc('author'))\n if (author) {\n const authorName = kb.any(author, ns.foaf('name'))\n if (authorName) {\n div.appendChild(dom.createElement('p')).textContent = authorName\n }\n }\n\n const query = new $rdf.Query('Responses')\n const v = {}\n const vs = ['time', 'author', 'value', 'resp', 'cell']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.constiable(x)))\n })\n query.pat.add(invitation, ns.sched('response'), v.resp)\n query.pat.add(v.resp, ns.dc('author'), v.author)\n query.pat.add(v.resp, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('availabilty'), v.value)\n query.pat.add(v.cell, ns.cal('dtstart'), v.time)\n\n // Sort by by person @@@\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('option')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n options.set_y = kb.each(subject, ns.sched('response'))\n options.set_y = options.set_y.map(function (resp) {\n return kb.any(resp, ns.dc('author'))\n })\n\n const possibleTimes = kb\n .each(invitation, ns.sched('option'))\n .map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(\n UI.matrix.matrixForQuery(\n dom,\n query,\n v.time,\n v.author,\n v.value,\n options,\n function () {}\n )\n )\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n // refreshButton.textContent = 'refresh' // noun_479395.svg\n const refreshIcon = dom.createElement('img')\n refreshIcon.setAttribute('src', UI.icons.iconBase + 'noun_479395.svg')\n refreshIcon.setAttribute('style', buttonIconStyle)\n refreshButton.appendChild(refreshIcon)\n refreshButton.addEventListener(\n 'click',\n function (_e) {\n refreshButton.disabled = true\n kb.fetcher.refresh(resultsDoc, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n },\n false\n )\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n // @@ Give other combos too-- see schedule ontology\n // const possibleAvailabilities = [ SCHED('No'), SCHED('Maybe'), SCHED('Yes') ]\n\n // const me = UI.authn.currentUser()\n\n const dataPointForNT = []\n\n const loginContext = { div: naviCenter, dom: dom }\n UI.authn.logIn(loginContext).then(context => {\n const me = context.me\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) {\n return !z.sameTerm(me)\n })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n if (value !== null) {\n kb.fetcher.nowOrWhenFetched(\n value.uri.split('#')[0],\n undefined,\n function (ok, _error) {\n if (ok) refreshCellColor(cell, value)\n }\n )\n }\n if (y.sameTerm(me)) {\n const callbackFunction = function () {\n refreshCellColor(cell, value)\n } // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('availabilty')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(\n dom,\n kb,\n cellSubject,\n predicate,\n possibleAvailabilities,\n selectOptions,\n resultsDoc,\n callbackFunction\n )\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n let myResponse = null\n responses.forEach(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const insertables = [] // list of statements to be stored\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push(\n $rdf.st(invitation, ns.sched('response'), myResponse, doc)\n )\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.forEach(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push(\n $rdf.st(myResponse, ns.sched('cell'), dataPoint, doc)\n )\n insertables.push(\n $rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)\n ) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else {\n // no insertables\n displayTheMatrix()\n }\n })\n\n // If I made this in the first place, allow me to edit it.\n // @@ optionally -- allows others to if according to original\n const instanceCreator = kb.any(subject, ns.foaf('maker')) // owner?\n if (!instanceCreator || instanceCreator.sameTerm(me)) {\n const editButton = dom.createElement('button')\n editButton.setAttribute('style', inputStyle)\n // editButton.textContent = '(Modify the poll)' // noun_344563.svg\n const editIcon = dom.createElement('img')\n editIcon.setAttribute('src', UI.icons.iconBase + 'noun_344563.svg')\n editIcon.setAttribute('style', buttonIconStyle)\n editButton.appendChild(editIcon)\n editButton.addEventListener(\n 'click',\n function (_e) {\n clearElement(div)\n showForms()\n },\n false\n )\n clearElement(naviLeft)\n naviLeft.appendChild(editButton)\n }\n\n // div.appendChild(editButton)\n\n clearElement(naviRight)\n naviRight.appendChild(newInstanceButton())\n } // showResults\n\n const div = dom.createElement('div')\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 40em; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const logInOutButton = null\n /*\n const logInOutButton = UI.authn.loginStatusBox(dom, setUser)\n // floating divs lead to a mess\n // logInOutButton.setAttribute('style', 'float: right') // float the beginning of the end\n naviLoginout3.appendChild(logInOutButton)\n logInOutButton.setAttribute('style', 'margin-right: 0em;')\n */\n\n const naviTop = structure.appendChild(dom.createElement('tr'))\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n naviMenu.setAttribute(\n 'style',\n ' text-align: middle; vertical-align: middle; padding-top: 4em; '\n )\n // naviMenu.setAttribute('style', 'margin-top: 3em;')\n const naviLeft = naviMenu.appendChild(dom.createElement('td'))\n const naviCenter = naviMenu.appendChild(dom.createElement('td'))\n const naviRight = naviMenu.appendChild(dom.createElement('td'))\n\n getForms()\n\n return div\n } // render\n} // property list\n// ends\n"],"file":"schedulePane.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/schedule/schedulePane.js"],"names":["UI","require","$rdf","rdf","ns","possibleAvailabilities","sched","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","mintClass","mintNew","options","Promise","resolve","reject","newBase","thisInstance","useExisting","sym","complainIfBad","ok","body","console","log","Error","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","doc","add","me","foaf","serialize","setACL2","callbackFunction","aclDoc","any","aclText","uri","fetcher","webOperation","data","contentType","then","_result","err","message","load","updater","authn","currentUser","alert","base","dir","newDetailsDoc","newInstance","newResultsDoc","toBeCopied","noIndexHTML","local","agenda","f","length","item","fun","copyItem","push","newURI","setThatACL","shift","webCopy","checkUser","webId","createDetailsFile","dc","Date","put","statementsMatching","undefined","uri2","render","dom","invitation","appPathSegment","waitingForLogin","detailsDoc","baseDir","resultsDoc","formsURI","form1","form2","form3","formText","parse","inputStyle","buttonIconStyle","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","refreshCellColor","cell","value","bg","ui","setAttribute","logInOutButton","refresh","showAppropriateDisplay","newInstanceButton","b","newAppInstance","noun","initializeNewInstanceInWorkspace","ws","space","split","slice","error","now","getTime","initializeNewInstanceAtBase","p","createElement","innerHTML","getForms","getDetails","nowOrWhenFetched","showSignon","editable","holds","wf","showBootstrap","ready","showForms","getResults","naviMain","signonContext","logIn","textContent","baseField","size","autocomplete","button","addEventListener","_e","doneButton","naviCenter","wizard","currentSlide","gotDoneButton","forms","slides","slide","appendForm","document","b1","removeAttribute","b2","emailButton","naviLeft","naviRight","table","insertables","st","update","success","errorBody","emailIcon","title","anyValue","cal","mailto","each","map","who","mbox","replace","join","encodeURIComponent","window","location","href","response","status","showResults","comment","author","authorName","query","Query","v","vs","forEach","x","vars","variable","pat","resp","time","set_x","opt","set_y","possibleTimes","displayTheMatrix","matrix","matrixForQuery","refreshButton","refreshIcon","disabled","dataPointForNT","loginContext","filter","z","sameTerm","cellFunction","y","_error","selectOptions","predicate","cellSubject","toNT","selector","makeSelectForOptions","utils","responses","myResponse","r","id","newThing","dps","dataPoint","j","instanceCreator","editButton","editIcon","structure","naviLoginoutTR","naviTop","naviMenu"],"mappings":"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EAAE,CAACE,KAAH,CAAS,SAAT,CADjB,EAEGiM,GAFH,CAEO,UAAUC,GAAV,EAAe;AAClB,cAAMC,IAAI,GAAGvL,EAAE,CAACuC,GAAH,CAAO+I,GAAP,EAAYpM,EAAE,CAACgD,IAAH,CAAQ,MAAR,CAAZ,CAAb;AACA,iBAAOqJ,IAAI,GAAGA,IAAI,CAAC9I,GAAL,CAAS+I,OAAT,CAAiB,SAAjB,EAA4B,EAA5B,CAAH,GAAqC,EAAhD;AACD,SALH,EAMGC,IANH,CAMQ,GANR,CADA,GAQA,WARA,GASAC,kBAAkB,CAACV,KAAK,GAAG,sBAAT,CATlB,GAUA,QAVA,GAWAU,kBAAkB,CAChBV,KAAK,GAAG,2BAAR,GAAsClL,OAAtC,GAAgD,IADhC,CAZpB,CALY,CAoBZ;;AAEAoB,QAAAA,OAAO,CAACC,GAAR,CAAY,WAAWgK,MAAvB;AACAQ,QAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuBV,MAAvB;AACD,OA1BH,EA2BE,KA3BF;AA6BD,KA7LD,CA9OkC,CA2ahC;AAEF;;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBI;AAEA;;;AACA,aAASrC,U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","sourcesContent":["/* Scheduler Pane\n **\n **\n */\n/* global alert */\n\nconst UI = require('solid-ui')\nconst $rdf = UI.rdf\nconst ns = UI.ns\n\n// @@ Give other combos too-- see schedule ontology\nconst possibleAvailabilities = [\n ns.sched('No'),\n ns.sched('Maybe'),\n ns.sched('Yes')\n]\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_346777.svg', // @@ better?\n\n name: 'schedule',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an Scheduler pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/schedule#SchedulableEvent']) {\n return 'Scheduling poll'\n }\n return null // No under other circumstances\n },\n\n // Mint a new Schedule poll\n mintClass: ns.sched('SchedulableEvent'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n const ns = UI.ns\n const kb = context.session.store\n let newBase = options.newBase\n const thisInstance =\n options.useExisting || $rdf.sym(options.newBase + 'index.ttl#this')\n\n const complainIfBad = function (ok, body) {\n if (ok) return\n console.log(\n 'Error in Schedule Pane: Error constructing new scheduler: ' + body\n )\n reject(new Error(body))\n }\n\n // ////////////////////// Accesss control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n\n const genACLtext = function (docURI, aclURI, allWrite) {\n const g = $rdf.graph()\n const auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n return $rdf.serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /*\n const setACL3 = function (docURI, allWrite, callbackFunction) {\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return UI.acl.setACL(docURI, aclText, callbackFunction)\n }\n */\n\n const setACL2 = function setACL2 (docURI, allWrite, callbackFunction) {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n ) // @@ check that this get set by web.js\n\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch(err => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n )\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Body of mintNew\n const fetcher = kb.fetcher\n const updater = kb.updater\n\n let me = options.me || UI.authn.currentUser()\n if (!me) {\n console.log('MUST BE LOGGED IN')\n alert('NOT LOGGED IN')\n return\n }\n\n const base = thisInstance.dir().uri\n let newDetailsDoc, newInstance // , newIndexDoc\n\n if (options.useExisting) {\n newInstance = options.useExisting\n newBase = thisInstance.dir().uri\n newDetailsDoc = newInstance.doc()\n // newIndexDoc = null\n if (options.newBase) {\n throw new Error(\n 'mint new scheduler: Illegal - have both new base and existing event'\n )\n }\n } else {\n newDetailsDoc = kb.sym(newBase + 'details.ttl')\n // newIndexDoc = kb.sym(newBase + 'index.html')\n newInstance = kb.sym(newDetailsDoc.uri + '#event')\n }\n\n const newResultsDoc = kb.sym(newBase + 'results.ttl')\n\n const toBeCopied = options.noIndexHTML\n ? {}\n : [{ local: 'index.html', contentType: 'text/html' }]\n\n const agenda = []\n\n // @@ This needs some form of visible progress bar\n for (let f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL2(newURI, false, function (ok, message) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()() // beware too much nesting\n }\n })\n }\n\n kb.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => UI.authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createDetailsFile () {\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.sched('SchedulableEvent'),\n newDetailsDoc\n )\n if (me) {\n kb.add(newInstance, ns.dc('author'), me, newDetailsDoc) // Who is sending the invitation?\n kb.add(newInstance, ns.foaf('maker'), me, newDetailsDoc) // Uneditable - wh is allowed to edit this?\n }\n\n kb.add(newInstance, ns.dc('created'), new Date(), newDetailsDoc)\n kb.add(newInstance, ns.sched('resultsDocument'), newDetailsDoc)\n\n updater.put(\n newDetailsDoc,\n kb.statementsMatching(undefined, undefined, undefined, newDetailsDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n agenda.shift()()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n kb.fetcher\n .webOperation('PUT', newResultsDoc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(() => {\n agenda.shift()()\n })\n .catch(err => {\n complainIfBad(\n false,\n 'Failed to initialize empty results file: ' + err.message\n )\n })\n })\n\n agenda.push(function () {\n setACL2(newResultsDoc.uri, true, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on results file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n setACL2(newDetailsDoc.uri, false, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set read ACL on configuration file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n console.log('Finished minting new scheduler')\n options.newInstance = newInstance\n resolve(options)\n })\n\n agenda.shift()()\n // Created new data files.\n }) // promise\n }, // mintNew\n\n // Render one meeting schedule poll\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n const invitation = subject\n const appPathSegment = 'app-when-can-we.w3.org' // how to allocate this string and connect to\n\n // ////////////////////////////////////////////\n\n const fetcher = kb.fetcher\n const updater = kb.updater\n let waitingForLogin = false\n\n const thisInstance = subject\n const detailsDoc = subject.doc()\n const baseDir = detailsDoc.dir()\n const base = baseDir.uri\n\n const resultsDoc = $rdf.sym(base + 'results.ttl')\n // const formsURI = base + 'forms.ttl'\n // We can't in fact host stuff from there because of CORS\n const formsURI =\n 'https://solid.github.io/solid-panes/schedule/formsForSchedule.ttl'\n\n const form1 = kb.sym(formsURI + '#form1')\n const form2 = kb.sym(formsURI + '#form2')\n const form3 = kb.sym(formsURI + '#form3')\n\n const formText = require('./formsForSchedule.js')\n $rdf.parse(formText, kb, formsURI, 'text/turtle') // Load forms directly\n\n const inputStyle =\n 'background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%' // font-size: 120%\n const buttonIconStyle = 'width: 1.8em; height: 1.8em;'\n\n // Utility functions\n\n const complainIfBad = function (ok, message) {\n if (!ok) {\n div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n const refreshCellColor = function (cell, value) {\n const bg = kb.any(value, UI.ns.ui('backgroundColor'))\n if (bg) {\n cell.setAttribute(\n 'style',\n 'padding: 0.3em; text-align: center; background-color: ' + bg + ';'\n )\n }\n }\n\n let me\n\n UI.authn.checkUser().then(webId => {\n me = webId\n\n if (logInOutButton) {\n logInOutButton.refresh()\n }\n if (webId && waitingForLogin) {\n waitingForLogin = false\n showAppropriateDisplay()\n }\n })\n console.log('me: ' + me) // @@ curently not actually used elsewhere\n\n // ////////////////////////////// Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n //\n\n const newInstanceButton = function () {\n const b = UI.authn.newAppInstance(\n dom,\n { noun: 'scheduler' },\n initializeNewInstanceInWorkspace\n )\n b.firstChild.setAttribute('style', inputStyle)\n return b\n } // newInstanceButton\n\n // /////////////////////// Create new document files for new instance of app\n\n const initializeNewInstanceInWorkspace = function (ws) {\n let newBase = kb.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n $rdf.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (thisInstance, newBase) {\n const options = { thisInstance: thisInstance, newBase: newBase }\n this.mintNew(context, options)\n .then(function (options) {\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n options.newInstance.uri +\n \"'><b>new scheduler</b></a> is ready to be set up. \" +\n \"<br/><br/><a href='\" +\n options.newInstance.uri +\n \"'>Say when you what days work for you.</a>\"\n })\n .catch(function (error) {\n complainIfBad(\n false,\n 'Error createing new scheduler at ' +\n options.newInstance +\n ': ' +\n error\n )\n })\n }\n\n // ///////////////////////\n\n const getForms = function () {\n console.log('getforms()')\n getDetails()\n /*\n fetcher.nowOrWhenFetched(formsURI, undefined, function (ok, body) {\n console.log('getforms() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n getDetails()\n })\n */\n }\n\n const getDetails = function () {\n console.log('getDetails()') // Looking for blank screen hang-up\n fetcher.nowOrWhenFetched(detailsDoc.uri, undefined, function (ok, body) {\n console.log('getDetails() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n showAppropriateDisplay()\n })\n }\n\n const showAppropriateDisplay = function showAppropriateDisplay () {\n console.log('showAppropriateDisplay()')\n\n UI.authn.checkUser().then(webId => {\n if (!webId) {\n return showSignon()\n }\n\n // On gh-pages, the turtle will not load properly (bad mime type)\n // but we can trap it as being a non-editable server.\n\n if (\n !kb.updater.editable(detailsDoc.uri, kb) ||\n kb.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))\n ) {\n // This is read-only example e.g. on github pages, etc\n showBootstrap(div)\n return\n }\n\n const ready = kb.any(subject, ns.sched('ready'))\n\n if (!ready) {\n showForms()\n } else {\n // no editing not author\n getResults()\n }\n })\n }\n\n const showSignon = function showSignon () {\n clearElement(naviMain)\n const signonContext = { div: div, dom: dom }\n UI.authn.logIn(signonContext).then(context => {\n me = context.me\n waitingForLogin = false // untested\n showAppropriateDisplay()\n })\n }\n\n const showBootstrap = function showBootstrap () {\n const div = clearElement(naviMain)\n div.appendChild(\n UI.authn.newAppInstance(\n dom,\n { noun: 'poll' },\n initializeNewInstanceInWorkspace\n )\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the poll? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n baseField.label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.setAttribute('style', inputStyle)\n button.textContent = 'Start new poll at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // ///////////// The forms to configure the poll\n\n const doneButton = dom.createElement('button')\n\n const showForms = function () {\n clearElement(naviCenter) // Remove refresh button if nec\n const div = naviMain\n const wizard = true\n let currentSlide = 0\n let gotDoneButton = false\n if (wizard) {\n const forms = [form1, form2, form3]\n const slides = []\n currentSlide = 0\n for (let f = 0; f < forms.length; f++) {\n const slide = dom.createElement('div')\n UI.widgets.appendForm(\n document,\n slide,\n {},\n subject,\n forms[f],\n detailsDoc,\n complainIfBad\n )\n slides.push(slide)\n }\n\n const refresh = function () {\n clearElement(naviMain).appendChild(slides[currentSlide])\n\n if (currentSlide === 0) {\n b1.setAttribute('disabled', '')\n } else {\n b1.removeAttribute('disabled')\n }\n if (currentSlide === slides.length - 1) {\n b2.setAttribute('disabled', '')\n if (!gotDoneButton) {\n // Only expose at last slide seen\n naviCenter.appendChild(emailButton) // could also check data shape\n naviCenter.appendChild(doneButton) // could also check data shape\n gotDoneButton = true\n }\n } else {\n b2.removeAttribute('disabled')\n }\n }\n const b1 = clearElement(naviLeft).appendChild(dom.createElement('button'))\n b1.setAttribute('style', inputStyle)\n b1.textContent = '<- go back'\n b1.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide > 0) {\n currentSlide -= 1\n refresh()\n }\n },\n false\n )\n\n const b2 = clearElement(naviRight).appendChild(\n dom.createElement('button')\n )\n b2.setAttribute('style', inputStyle)\n b2.textContent = 'continue ->'\n b2.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide < slides.length - 1) {\n currentSlide += 1\n refresh()\n }\n },\n false\n )\n\n refresh()\n } else {\n // not wizard one big form\n // @@@ create the initial config doc if not exist\n const table = div.appendChild(dom.createElement('table'))\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form1,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form2,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form3,\n detailsDoc,\n complainIfBad\n )\n naviCenter.appendChild(doneButton) // could also check data shape\n }\n // @@@ link config to results\n\n const insertables = []\n insertables.push(\n $rdf.st(\n subject,\n ns.sched('availabilityOptions'),\n ns.sched('YesNoMaybe'),\n detailsDoc\n )\n )\n insertables.push(\n $rdf.st(subject, ns.sched('ready'), new Date(), detailsDoc)\n )\n insertables.push(\n $rdf.st(subject, ns.sched('results'), resultsDoc, detailsDoc)\n ) // @@ also link in results\n\n doneButton.setAttribute('style', inputStyle)\n doneButton.textContent = 'Go to poll'\n doneButton.addEventListener(\n 'click',\n function (_e) {\n if (kb.any(subject, ns.sched('ready'))) {\n // already done\n getResults()\n naviRight.appendChild(emailButton)\n } else {\n naviRight.appendChild(emailButton)\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n // naviRight.appendChild(emailButton)\n getResults()\n }\n })\n }\n },\n false\n )\n\n const emailButton = dom.createElement('button')\n emailButton.setAttribute('style', inputStyle)\n const emailIcon = emailButton.appendChild(dom.createElement('img'))\n emailIcon.setAttribute('src', UI.icons.iconBase + 'noun_480183.svg') // noun_480183.svg\n emailIcon.setAttribute('style', buttonIconStyle)\n // emailButton.textContent = 'email invitations'\n emailButton.addEventListener(\n 'click',\n function (_e) {\n const title =\n kb.anyValue(subject, ns.cal('summary')) ||\n kb.anyValue(subject, ns.dc('title')) ||\n ''\n const mailto =\n 'mailto:' +\n kb\n .each(subject, ns.sched('invitee'))\n .map(function (who) {\n const mbox = kb.any(who, ns.foaf('mbox'))\n return mbox ? mbox.uri.replace('mailto:', '') : ''\n })\n .join(',') +\n '?subject=' +\n encodeURIComponent(title + '-- When can we meet?') +\n '&body=' +\n encodeURIComponent(\n title + '\\n\\nWhen can you?\\n\\nSee ' + subject + '\\n'\n )\n // @@ assumed there is a data browser\n\n console.log('Mail: ' + mailto)\n window.location.href = mailto\n },\n false\n )\n } // showForms\n\n // Ask for each day, what times .. @@ to be added some time\n /*\n const setTimesOfDay = function () {\n const i, j, x, y, slot, cell, day\n const insertables = []\n const possibleDays = kb.each(invitation, ns.sched('option'))\n .map(function (opt) {return kb.any(opt, ns.cal('dtstart'))})\n const cellLookup = []\n const slots = kb.each(invitation, ns.sched('slot'))\n if (slots.length === 0) {\n for (i = 0; i < 2; i++) {\n slot = UI.widgets.newThing(detailsDoc)\n insertables.push($rdf.st(invitation, ns.sched('slot'), slot))\n insertables.push($rdf.st(slot, ns.rdfs('label'), 'slot ' + (i + 1)))\n for (j = 0; j < possibleDays.length; j++) {\n day - possibleDays[j]\n x = kb.any(slot, ns.rdfs('label'))\n y = kb.any(day, ns.cal('dtstart'))\n cell = UI.widgets.newThing(detailsDoc)\n cellLookup[x.toNT() + y.toNT()] = cell\n insertables.push($rdf.st(slot, ns.sched('cell'), cell))\n insertables.push($rdf.st(cell, ns.sched('day'), possibleDays[j]))\n }\n }\n }\n\n const query = new $rdf.Query('TimesOfDay')\n const v = {}['day', 'label', 'value', 'slot', 'cell'].map(function (x) {\n query.consts.push(v[x] = $rdf.constiable(x)) })\n query.pat.add(invitation, ns.sched('slot'), v.slot)\n query.pat.add(v.slot, ns.rdfs('label'), v.label)\n query.pat.add(v.slot, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('timeOfDay'), v.value)\n query.pat.add(v.cell, ns.sched('day'), v.day)\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('slot')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) { return kb.any(opt, ns.rdfs('label')) })\n\n options.set_y = kb.each(subject, ns.sched('option')); // @@@@@ option -> dtstart in future\n options.set_y = options.set_y.map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const possibleTimes = kb.each(invitation, ns.sched('option'))\n .map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(UI.matrix.matrixForQuery(\n dom, query, v.time, v.author, v.value, options, function () {}))\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n refreshButton.textContent = 'refresh'\n refreshButton.addEventListener('click', function (e) {\n refreshButton.disabled = true\n UI.store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n }, false)\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n const dataPointForNT = []\n\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) { return (! z.sameTerm(me)) })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n // const point = cellLookup[x.toNT() + y.toNT()]\n\n if (y.sameTerm(me)) {\n const callbackFunction = function () { refreshCellColor(cell, value); }; // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('timeOfDay')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(dom, kb, cellSubject, predicate,\n possibleAvailabilities, selectOptions, resultsDoc, callbackFunction)\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n const myResponse = null\n responses.map(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push($rdf.st(invitation, ns.sched('response'), myResponse, doc))\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.map(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push($rdf.st(myResponse, ns.sched('cell'), dataPoint, doc))\n insertables.push($rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n UI.store.updater.update([], insertables, function (uri, success, errorBody) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else { // no insertables\n displayTheMatrix()\n }\n }\n */\n // end setTimesOfDay\n\n // Read or create empty results file\n function getResults () {\n fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing details file ' + resultsDoc)\n updater.put(resultsDoc, [], 'text/turtle', function (\n uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults()\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n showResults()\n }\n })\n }\n\n function showResults () {\n // Now the form for responsing to the poll\n //\n\n // div.appendChild(dom.createElement('hr'))\n\n // const invitation = subject\n const title = kb.any(invitation, ns.cal('summary'))\n const comment = kb.any(invitation, ns.cal('comment'))\n const location = kb.any(invitation, ns.cal('location'))\n const div = naviMain\n if (title) div.appendChild(dom.createElement('h3')).textContent = title\n if (location) {\n div.appendChild(dom.createElement('address')).textContent =\n location.value\n }\n if (comment) {\n div.appendChild(dom.createElement('p')).textContent = comment.value\n }\n const author = kb.any(invitation, ns.dc('author'))\n if (author) {\n const authorName = kb.any(author, ns.foaf('name'))\n if (authorName) {\n div.appendChild(dom.createElement('p')).textContent = authorName\n }\n }\n\n const query = new $rdf.Query('Responses')\n const v = {}\n const vs = ['time', 'author', 'value', 'resp', 'cell']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(invitation, ns.sched('response'), v.resp)\n query.pat.add(v.resp, ns.dc('author'), v.author)\n query.pat.add(v.resp, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('availabilty'), v.value)\n query.pat.add(v.cell, ns.cal('dtstart'), v.time)\n\n // Sort by by person @@@\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('option')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n options.set_y = kb.each(subject, ns.sched('response'))\n options.set_y = options.set_y.map(function (resp) {\n return kb.any(resp, ns.dc('author'))\n })\n\n const possibleTimes = kb\n .each(invitation, ns.sched('option'))\n .map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(\n UI.matrix.matrixForQuery(\n dom,\n query,\n v.time,\n v.author,\n v.value,\n options,\n function () {}\n )\n )\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n // refreshButton.textContent = 'refresh' // noun_479395.svg\n const refreshIcon = dom.createElement('img')\n refreshIcon.setAttribute('src', UI.icons.iconBase + 'noun_479395.svg')\n refreshIcon.setAttribute('style', buttonIconStyle)\n refreshButton.appendChild(refreshIcon)\n refreshButton.addEventListener(\n 'click',\n function (_e) {\n refreshButton.disabled = true\n kb.fetcher.refresh(resultsDoc, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n },\n false\n )\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n // @@ Give other combos too-- see schedule ontology\n // const possibleAvailabilities = [ SCHED('No'), SCHED('Maybe'), SCHED('Yes') ]\n\n // const me = UI.authn.currentUser()\n\n const dataPointForNT = []\n\n const loginContext = { div: naviCenter, dom: dom }\n UI.authn.logIn(loginContext).then(context => {\n const me = context.me\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) {\n return !z.sameTerm(me)\n })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n if (value !== null) {\n kb.fetcher.nowOrWhenFetched(\n value.uri.split('#')[0],\n undefined,\n function (ok, _error) {\n if (ok) refreshCellColor(cell, value)\n }\n )\n }\n if (y.sameTerm(me)) {\n const callbackFunction = function () {\n refreshCellColor(cell, value)\n } // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('availabilty')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(\n dom,\n kb,\n cellSubject,\n predicate,\n possibleAvailabilities,\n selectOptions,\n resultsDoc,\n callbackFunction\n )\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n let myResponse = null\n responses.forEach(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const insertables = [] // list of statements to be stored\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push(\n $rdf.st(invitation, ns.sched('response'), myResponse, doc)\n )\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.forEach(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push(\n $rdf.st(myResponse, ns.sched('cell'), dataPoint, doc)\n )\n insertables.push(\n $rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)\n ) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else {\n // no insertables\n displayTheMatrix()\n }\n })\n\n // If I made this in the first place, allow me to edit it.\n // @@ optionally -- allows others to if according to original\n const instanceCreator = kb.any(subject, ns.foaf('maker')) // owner?\n if (!instanceCreator || instanceCreator.sameTerm(me)) {\n const editButton = dom.createElement('button')\n editButton.setAttribute('style', inputStyle)\n // editButton.textContent = '(Modify the poll)' // noun_344563.svg\n const editIcon = dom.createElement('img')\n editIcon.setAttribute('src', UI.icons.iconBase + 'noun_344563.svg')\n editIcon.setAttribute('style', buttonIconStyle)\n editButton.appendChild(editIcon)\n editButton.addEventListener(\n 'click',\n function (_e) {\n clearElement(div)\n showForms()\n },\n false\n )\n clearElement(naviLeft)\n naviLeft.appendChild(editButton)\n }\n\n // div.appendChild(editButton)\n\n clearElement(naviRight)\n naviRight.appendChild(newInstanceButton())\n } // showResults\n\n const div = dom.createElement('div')\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 40em; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const logInOutButton = null\n /*\n const logInOutButton = UI.authn.loginStatusBox(dom, setUser)\n // floating divs lead to a mess\n // logInOutButton.setAttribute('style', 'float: right') // float the beginning of the end\n naviLoginout3.appendChild(logInOutButton)\n logInOutButton.setAttribute('style', 'margin-right: 0em;')\n */\n\n const naviTop = structure.appendChild(dom.createElement('tr'))\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n naviMenu.setAttribute(\n 'style',\n ' text-align: middle; vertical-align: middle; padding-top: 4em; '\n )\n // naviMenu.setAttribute('style', 'margin-top: 3em;')\n const naviLeft = naviMenu.appendChild(dom.createElement('td'))\n const naviCenter = naviMenu.appendChild(dom.createElement('td'))\n const naviRight = naviMenu.appendChild(dom.createElement('td'))\n\n getForms()\n\n return div\n } // render\n} // property list\n// ends\n"],"file":"schedulePane.js"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getStatementsToDelete = getStatementsToDelete;
|
|
7
|
-
exports.getStatementsToAdd = getStatementsToAdd;
|
|
8
6
|
exports.generateRandomString = generateRandomString;
|
|
7
|
+
exports.getStatementsToAdd = getStatementsToAdd;
|
|
8
|
+
exports.getStatementsToDelete = getStatementsToDelete;
|
|
9
9
|
|
|
10
10
|
var _rdflib = require("rdflib");
|
|
11
11
|
|
package/lib/versionInfo.js
CHANGED
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
var _default = {
|
|
8
|
-
buildTime: '2021-10-
|
|
9
|
-
commit: '
|
|
8
|
+
buildTime: '2021-10-09T09:28:13Z',
|
|
9
|
+
commit: 'b0efd3a68ddc241e87eebeb37a86ed03e4d9d912',
|
|
10
10
|
npmInfo: {
|
|
11
|
-
'solid-panes': '3.5.6-beta.
|
|
11
|
+
'solid-panes': '3.5.6-beta.1',
|
|
12
12
|
npm: '6.14.13',
|
|
13
13
|
ares: '1.17.1',
|
|
14
14
|
brotli: '1.0.9',
|
package/lib/versionInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACbA,EAAAA,SAAS,EAAE,sBADE;AAEbC,EAAAA,MAAM,EAAE,0CAFK;AAGbC,EAAAA,OAAO,EACT;AACE,mBAAe,cADjB;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,OAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\n buildTime: '2021-10-
|
|
1
|
+
{"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACbA,EAAAA,SAAS,EAAE,sBADE;AAEbC,EAAAA,MAAM,EAAE,0CAFK;AAGbC,EAAAA,OAAO,EACT;AACE,mBAAe,cADjB;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,OAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\n buildTime: '2021-10-09T09:28:13Z',\n commit: 'b0efd3a68ddc241e87eebeb37a86ed03e4d9d912',\n npmInfo:\n{\n 'solid-panes': '3.5.6-beta.1',\n npm: '6.14.13',\n ares: '1.17.1',\n brotli: '1.0.9',\n cldr: '39.0',\n icu: '69.1',\n llhttp: '2.1.3',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.17.3',\n openssl: '1.1.1k',\n tz: '2021a',\n unicode: '13.0',\n uv: '1.41.0',\n v8: '8.4.371.23-node.67',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-panes",
|
|
3
|
-
"version": "3.5.6-beta.
|
|
3
|
+
"version": "3.5.6-beta.1",
|
|
4
4
|
"description": "Solid-compatible Panes: applets and views for the mashlib and databrowser",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "npm run clean && npm run build-version && npm run build-lib && npm run build-types",
|
|
9
|
-
"build-
|
|
9
|
+
"build-form": "(cd src/schedule/ && make)",
|
|
10
|
+
"build-lib": "npm run build-form && babel src -d lib --source-maps --extensions '.ts,.js'",
|
|
10
11
|
"build-dev": "webpack --progress --colors --mode=development",
|
|
11
12
|
"build-types": "tsc --emitDeclarationOnly",
|
|
12
13
|
"build-version": "./timestamp.sh > src/versionInfo.ts && eslint 'src/versionInfo.ts' --fix",
|
|
@@ -1,36 +1,40 @@
|
|
|
1
1
|
module.exports = `
|
|
2
2
|
@prefix dc: <http://purl.org/dc/elements/1.1/>.
|
|
3
3
|
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
|
|
4
|
-
@prefix
|
|
4
|
+
@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.
|
|
5
5
|
@prefix ui: <http://www.w3.org/ns/ui#>.
|
|
6
6
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
|
|
7
7
|
@prefix sched: <http://www.w3.org/ns/pim/schedule#>.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .
|
|
10
10
|
|
|
11
11
|
<#bigForm>
|
|
12
12
|
dc:title
|
|
13
13
|
"Schedule event (single form).";
|
|
14
14
|
a ui:Group;
|
|
15
|
-
ui:
|
|
16
|
-
<#form1>, <#form2>, <#form3>.
|
|
15
|
+
ui:parts ( <#form1> <#form2> <#form3> ).
|
|
17
16
|
|
|
18
17
|
<#form1>
|
|
19
18
|
dc:title
|
|
20
19
|
"Schedule an event (wizard)";
|
|
21
20
|
a ui:Form;
|
|
22
|
-
ui:
|
|
23
|
-
<#form1header
|
|
24
|
-
<#eventTitle
|
|
25
|
-
<#eventLocation
|
|
26
|
-
<#
|
|
27
|
-
<#
|
|
21
|
+
ui:parts (
|
|
22
|
+
<#form1header>
|
|
23
|
+
<#eventTitle>
|
|
24
|
+
<#eventLocation>
|
|
25
|
+
<#eventType>
|
|
26
|
+
<#eventSwitch>
|
|
27
|
+
<#eventComment>
|
|
28
|
+
<#eventAuthor> ).
|
|
29
|
+
|
|
30
|
+
<#form1header> a ui:Heading; ui:contents "Schedule an event" .
|
|
31
|
+
|
|
28
32
|
<#eventTitle>
|
|
29
33
|
a ui:SingleLineTextField;
|
|
30
34
|
ui:maxLength
|
|
31
35
|
"128";
|
|
32
36
|
ui:property
|
|
33
|
-
|
|
37
|
+
cal:summary;
|
|
34
38
|
ui:size
|
|
35
39
|
"40".
|
|
36
40
|
|
|
@@ -39,10 +43,31 @@ module.exports = `
|
|
|
39
43
|
ui:maxLength
|
|
40
44
|
"512";
|
|
41
45
|
ui:property
|
|
42
|
-
|
|
46
|
+
cal:location;
|
|
43
47
|
ui:size
|
|
44
48
|
"40".
|
|
45
49
|
|
|
50
|
+
<#eventType> a ui:BooleanField;
|
|
51
|
+
ui:property sched:allDay;
|
|
52
|
+
ui:default true . # Used to be the only way
|
|
53
|
+
|
|
54
|
+
<#eventSwitch> a ui:Options;
|
|
55
|
+
ui:dependingOn sched:allDay;
|
|
56
|
+
ui:case [ ui:for true; ui:use <#AllDayForm> ];
|
|
57
|
+
ui:case [ ui:for false; ui:use <#NotAllDayForm> ].
|
|
58
|
+
|
|
59
|
+
<#AllDayForm> a ui:IntegerField ;
|
|
60
|
+
ui:property sched:durationInDays;
|
|
61
|
+
ui:label "How many days?";
|
|
62
|
+
ui:min 1;
|
|
63
|
+
ui:default 1 .
|
|
64
|
+
|
|
65
|
+
<#NotAllDayForm> a ui:IntegerField ;
|
|
66
|
+
ui:property sched:durationInMinutes;
|
|
67
|
+
ui:label "Duration (mins)";
|
|
68
|
+
ui:min 5;
|
|
69
|
+
ui:default 55 .
|
|
70
|
+
|
|
46
71
|
<#eventComment>
|
|
47
72
|
a ui:MultiLineTextField;
|
|
48
73
|
# ui:maxLength
|
|
@@ -50,34 +75,43 @@ module.exports = `
|
|
|
50
75
|
# ui:size
|
|
51
76
|
# "40".
|
|
52
77
|
ui:property
|
|
53
|
-
|
|
78
|
+
cal:comment.
|
|
54
79
|
|
|
55
80
|
<#eventAuthor>
|
|
56
81
|
a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.
|
|
57
82
|
|
|
58
|
-
<#eventAuthorGroup> a ui:Group; ui:
|
|
83
|
+
<#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .
|
|
59
84
|
<#authorName> a ui:SingleLineTextField; ui:property foaf:name .
|
|
60
85
|
<#authorEmail> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .
|
|
61
86
|
|
|
62
87
|
|
|
63
88
|
#####################
|
|
64
89
|
|
|
65
|
-
<#form2> dc:title "Select possible days"; a ui:Form;
|
|
66
|
-
ui:
|
|
90
|
+
<#form2> dc:title "Select possible days or times"; a ui:Form;
|
|
91
|
+
ui:parts ( <#id1118132113134> <#possibleSwitch> ).
|
|
67
92
|
|
|
68
93
|
<#id1118132113134> a ui:Heading; ui:contents "Time proposals" .
|
|
69
94
|
|
|
70
|
-
<#
|
|
71
|
-
|
|
95
|
+
<#possibleSwitch> a ui:Options;
|
|
96
|
+
ui:dependingOn sched:allDay;
|
|
97
|
+
ui:case [ ui:for true; ui:use <#AllDayForm2> ];
|
|
98
|
+
ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].
|
|
72
99
|
|
|
73
|
-
|
|
100
|
+
<#AllDayForm2>
|
|
101
|
+
a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.
|
|
102
|
+
<#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label "date".
|
|
103
|
+
|
|
104
|
+
<#NotAllDayForm2>
|
|
105
|
+
a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.
|
|
106
|
+
<#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label "date and time".
|
|
74
107
|
|
|
75
108
|
##################################
|
|
76
109
|
|
|
77
|
-
<#form3> dc:title "Select invited people"; a ui:Form; ui:
|
|
110
|
+
<#form3> dc:title "Select invited people"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .
|
|
78
111
|
<#id1417314641301b>
|
|
79
112
|
a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.
|
|
80
113
|
<#id1417314674292b> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .
|
|
81
|
-
<#form1header> a ui:Heading; ui:contents "Schedule an event" .
|
|
82
114
|
<#id1118132113135> a ui:Heading; ui:contents "Who to invite" .
|
|
115
|
+
|
|
116
|
+
# ENDS
|
|
83
117
|
`
|
|
@@ -22,8 +22,12 @@
|
|
|
22
22
|
<#eventTitle>
|
|
23
23
|
<#eventLocation>
|
|
24
24
|
<#eventType>
|
|
25
|
+
<#eventSwitch>
|
|
25
26
|
<#eventComment>
|
|
26
27
|
<#eventAuthor> ).
|
|
28
|
+
|
|
29
|
+
<#form1header> a ui:Heading; ui:contents "Schedule an event" .
|
|
30
|
+
|
|
27
31
|
<#eventTitle>
|
|
28
32
|
a ui:SingleLineTextField;
|
|
29
33
|
ui:maxLength
|
|
@@ -48,16 +52,18 @@
|
|
|
48
52
|
|
|
49
53
|
<#eventSwitch> a ui:Options;
|
|
50
54
|
ui:dependingOn sched:allDay;
|
|
51
|
-
ui:case [ ui:for
|
|
52
|
-
ui:case [ ui:for
|
|
55
|
+
ui:case [ ui:for true; ui:use <#AllDayForm> ];
|
|
56
|
+
ui:case [ ui:for false; ui:use <#NotAllDayForm> ].
|
|
53
57
|
|
|
54
|
-
<#AllDayForm> a ui:
|
|
58
|
+
<#AllDayForm> a ui:IntegerField ;
|
|
55
59
|
ui:property sched:durationInDays;
|
|
60
|
+
ui:label "How many days?";
|
|
56
61
|
ui:min 1;
|
|
57
62
|
ui:default 1 .
|
|
58
63
|
|
|
59
|
-
<#
|
|
64
|
+
<#NotAllDayForm> a ui:IntegerField ;
|
|
60
65
|
ui:property sched:durationInMinutes;
|
|
66
|
+
ui:label "Duration (mins)";
|
|
61
67
|
ui:min 5;
|
|
62
68
|
ui:default 55 .
|
|
63
69
|
|
|
@@ -87,8 +93,8 @@
|
|
|
87
93
|
|
|
88
94
|
<#possibleSwitch> a ui:Options;
|
|
89
95
|
ui:dependingOn sched:allDay;
|
|
90
|
-
ui:case [ ui:for
|
|
91
|
-
ui:case [ ui:for
|
|
96
|
+
ui:case [ ui:for true; ui:use <#AllDayForm2> ];
|
|
97
|
+
ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].
|
|
92
98
|
|
|
93
99
|
<#AllDayForm2>
|
|
94
100
|
a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.
|
|
@@ -104,7 +110,6 @@
|
|
|
104
110
|
<#id1417314641301b>
|
|
105
111
|
a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.
|
|
106
112
|
<#id1417314674292b> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .
|
|
107
|
-
<#form1header> a ui:Heading; ui:contents "Schedule an event" .
|
|
108
113
|
<#id1118132113135> a ui:Heading; ui:contents "Who to invite" .
|
|
109
114
|
|
|
110
115
|
# ENDS
|
|
@@ -879,7 +879,7 @@ module.exports = {
|
|
|
879
879
|
// end setTimesOfDay
|
|
880
880
|
|
|
881
881
|
// Read or create empty results file
|
|
882
|
-
|
|
882
|
+
function getResults () {
|
|
883
883
|
fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {
|
|
884
884
|
if (!ok) {
|
|
885
885
|
if (response.status === 404) {
|
|
@@ -921,7 +921,7 @@ module.exports = {
|
|
|
921
921
|
})
|
|
922
922
|
}
|
|
923
923
|
|
|
924
|
-
|
|
924
|
+
function showResults () {
|
|
925
925
|
// Now the form for responsing to the poll
|
|
926
926
|
//
|
|
927
927
|
|
|
@@ -952,7 +952,7 @@ module.exports = {
|
|
|
952
952
|
const v = {}
|
|
953
953
|
const vs = ['time', 'author', 'value', 'resp', 'cell']
|
|
954
954
|
vs.forEach(function (x) {
|
|
955
|
-
query.vars.push((v[x] = $rdf.
|
|
955
|
+
query.vars.push((v[x] = $rdf.variable(x)))
|
|
956
956
|
})
|
|
957
957
|
query.pat.add(invitation, ns.sched('response'), v.resp)
|
|
958
958
|
query.pat.add(v.resp, ns.dc('author'), v.author)
|
package/src/versionInfo.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
buildTime: '2021-10-
|
|
3
|
-
commit: '
|
|
2
|
+
buildTime: '2021-10-09T09:28:13Z',
|
|
3
|
+
commit: 'b0efd3a68ddc241e87eebeb37a86ed03e4d9d912',
|
|
4
4
|
npmInfo:
|
|
5
5
|
{
|
|
6
|
-
'solid-panes': '3.5.6-beta.
|
|
6
|
+
'solid-panes': '3.5.6-beta.1',
|
|
7
7
|
npm: '6.14.13',
|
|
8
8
|
ares: '1.17.1',
|
|
9
9
|
brotli: '1.0.9',
|