chat-pane 2.4.24 → 2.4.25-2d4cfceb

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/create.js CHANGED
File without changes
package/lib/create.js.map CHANGED
File without changes
@@ -13,9 +13,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
13
13
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
14
14
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
15
15
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } /* Long Chat Pane
16
- **
17
- ** A long chat consists a of a series of chat files saved by date.
18
- */
16
+ **
17
+ ** A long chat consists a of a series of chat files saved by date.
18
+ */
19
19
  var ns = UI.ns;
20
20
  var mainClass = ns.meeting('LongChat'); // @@ something from SIOC?
21
21
 
@@ -49,7 +49,6 @@ var longChatPane = exports.longChatPane = {
49
49
  }
50
50
  return null; // Suppress pane otherwise
51
51
  },
52
-
53
52
  mintClass: mainClass,
54
53
  mintNew: function mintNew(context, newPaneOptions) {
55
54
  var kb = context.session.store;
@@ -65,8 +64,8 @@ var longChatPane = exports.longChatPane = {
65
64
  if (newPaneOptions.me) {
66
65
  kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc);
67
66
  }
68
- var aclBody = function aclBody(me) {
69
- return "\n @prefix : <#>.\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n @prefix foaf: <http://xmlns.com/foaf/0.1/>.\n @prefix lon: <./>.\n\n :ControlReadWrite\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agent <".concat(me.uri, ">;\n acl:default lon:;\n acl:mode acl:Control, acl:Read, acl:Write.\n :Read\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass foaf:Agent;\n acl:default lon:;\n acl:mode acl:Read.\n :ReadAppend\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass acl:AuthenticatedAgent;\n acl:default lon:;\n acl:mode acl:Read, acl:Append.");
67
+ var aclBody = function aclBody(me, resource, AppendWrite) {
68
+ return "\n @prefix : <#>.\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n @prefix foaf: <http://xmlns.com/foaf/0.1/>.\n @prefix lon: <./".concat(resource, ">.\n\n :ControlReadWrite\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agent <").concat(me.uri, ">;\n acl:default lon:;\n acl:mode acl:Control, acl:Read, acl:Write.\n :Read\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass foaf:Agent;\n acl:default lon:;\n acl:mode acl:Read.\n :Read").concat(AppendWrite, "\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass acl:AuthenticatedAgent;\n acl:default lon:;\n acl:mode acl:Read, acl:").concat(AppendWrite, ".");
70
69
  };
71
70
  return new Promise(function (resolve, reject) {
72
71
  updater.put(newChatDoc, kb.statementsMatching(undefined, undefined, undefined, newChatDoc), 'text/turtle', function (uri2, ok, message) {
@@ -81,7 +80,11 @@ var longChatPane = exports.longChatPane = {
81
80
  return new Promise(function (resolve, reject) {
82
81
  if (newPaneOptions.me) {
83
82
  kb.fetcher.webOperation('PUT', newPaneOptions.newBase + '.acl', {
84
- data: aclBody(newPaneOptions.me),
83
+ data: aclBody(newPaneOptions.me, '', 'Append'),
84
+ contentType: 'text/turtle'
85
+ });
86
+ kb.fetcher.webOperation('PUT', newPaneOptions.newBase + 'index.ttl.acl', {
87
+ data: aclBody(newPaneOptions.me, 'index.ttl', 'Write'),
85
88
  contentType: 'text/turtle'
86
89
  });
87
90
  }
@@ -110,7 +113,6 @@ var longChatPane = exports.longChatPane = {
110
113
  // If not loaded already
111
114
  $rdf.parse(preferencesFormText, kb, preferencesFormDoc.uri, 'text/turtle'); // Load form directly
112
115
  }
113
-
114
116
  var preferenceProperties = kb.statementsMatching(null, ns.ui.property, null, preferencesFormDoc).map(function (st) {
115
117
  return st.object;
116
118
  });
@@ -343,12 +345,12 @@ var longChatPane = exports.longChatPane = {
343
345
  var thread = null;
344
346
  if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {
345
347
  // subject is the chatChannel
346
- console.log('Chat channnel');
348
+ console.log('@@@ Chat channnel');
347
349
 
348
350
  // Looks like a message -- might not havre any class declared
349
351
  } else if (kb.holds(subject, ns.rdf('type'), ns.sioc('Thread'))) {
350
352
  // subject is the chatChannel
351
- console.log('Thread is subject');
353
+ console.log('Thread is subject ' + subject.uri);
352
354
  thread = subject;
353
355
  var rootMessage = kb.the(null, ns.sioc('has_reply'), thread, thread.doc());
354
356
  if (!rootMessage) throw new Error('Thread has no root message ' + thread);
@@ -357,7 +359,7 @@ var longChatPane = exports.longChatPane = {
357
359
  } else if (
358
360
  // Looks like a message -- might not havre any class declared
359
361
  kb.any(subject, ns.sioc('content')) && kb.any(subject, ns.dct('created'))) {
360
- console.log('message');
362
+ console.log('message is subject ' + subject.uri);
361
363
  selectedMessage = subject;
362
364
  chatChannel = kb.any(null, ns.wf('message'), selectedMessage);
363
365
  if (!chatChannel) throw new Error('Message has no link to chatChannel');
@@ -1 +1 @@
1
- {"version":3,"file":"longChatPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_regeneratorRuntime","o","value","Symbol","iterator","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ns","mainClass","meeting","CHAT_LOCATION_IN_CONTAINER","SPANNER_ICON","SIDEBAR_COMPONENT_STYLE","style","sidebarComponentStyle","SIDEBAR_STYLE","sidebarStyle","longChatPane","exports","icon","icons","iconBase","label","subject","context","kb","session","store","holds","rdf","sioc","any","dct","mintClass","mintNew","newPaneOptions","updater","me","uri","newInstance","sym","newBase","newChatDoc","doc","add","dc","Date","aclBody","concat","put","statementsMatching","uri2","ok","message","result","fetcher","webOperation","data","contentType","render","paneOptions","dom","preferencesFormText","preferencesForm","preferencesFormDoc","parse","preferenceProperties","ui","property","map","st","object","renderPreferencesSidebar","_x","_renderPreferencesSidebar","_callee","noun","preferencesArea","menuTable","registrationArea","statusArea","_callee$","_context","createElement","appendChild","panelCloseButton","minWidth","maxHeight","triptychHeight","authn","currentUser","login","registrationControl","div","chatChannel","console","log","preferences","renderPreferencesForm","panel","removePanel","parentNode","removeChild","button","widgets","margin","backgroundColor","preferencesButtonPressed","_x2","_preferencesButtonPressed","_callee2","_event","_callee2$","_context2","paneRight","contains","renderCreationControl","refreshTarget","creationDiv","creationContext","chatPane","paneRegistry","byName","relevantPanes","newThingUI","renderInstances","_x3","_x4","_renderInstances","_callee3","theClass","instancesDiv","_callee3$","_context3","registrationList","otherChatsArea","otherChatsHandler","_x5","_otherChatsHandler","_callee4","_callee4$","_context4","t0","t1","paneLeft","participantsArea","participantsHandler","alert","pad","manageParticipation","selectedMessage","thread","rootMessage","the","wf","triptych","paneRow","paneMiddle","paneThread","paneBottom","paddingRight","paddingLeft","buttonCell","participantsIcon","participantsButton","addEventListener","otherChatsIcon","otherChatsButton","menuButton","setAttribute","options","infinite","participantsHandlerContext","showThread","_x6","_x7","_showThread","_callee5","newOptions","chatControl","_callee5$","_context5","includeRemoveButton","authorDateOnLeft","newestFirst","innerHTML","infiniteMessageArea","resize","overflow","buildPane","_buildPane","_callee6","prefMap","propuri","_callee6$","_context6","getPreferencesForClass","complain","split","solo"],"sources":["../src/longChatPane.js"],"sourcesContent":["/* Long Chat Pane\n **\n ** A long chat consists a of a series of chat files saved by date.\n */\nimport { authn } from 'solid-logic'\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nconst mainClass = ns.meeting('LongChat') // @@ something from SIOC?\n\nconst CHAT_LOCATION_IN_CONTAINER = 'index.ttl#this'\n\n// const menuIcon = 'noun_897914.svg'\nconst SPANNER_ICON = 'noun_344563.svg'\n// resize: horizontal; min-width: 20em;\nconst SIDEBAR_COMPONENT_STYLE = UI.style.sidebarComponentStyle || ' padding: 0.5em; width: 100%;'\nconst SIDEBAR_STYLE = UI.style.sidebarStyle || 'overflow-x: auto; overflow-y: auto; border-radius: 1em; border: 0.1em solid white;'\n// was purple border\nexport const longChatPane = {\n CHAT_LOCATION_IN_CONTAINER,\n\n // noun_704.svg Canoe noun_346319.svg = 1 Chat noun_1689339.svg = three chat\n icon: UI.icons.iconBase + 'noun_1689339.svg',\n\n name: 'long chat',\n\n label: function (subject, context) {\n const kb = context.session.store\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {\n // subject is the object\n return 'Chat channnel'\n }\n if (kb.holds(subject, ns.rdf('type'), ns.sioc('Thread'))) {\n // subject is the object\n return 'Thread'\n }\n\n // Looks like a message -- might not havre any class declared\n if (\n kb.any(subject, ns.sioc('content')) &&\n kb.any(subject, ns.dct('created'))\n ) {\n return 'message'\n }\n return null // Suppress pane otherwise\n },\n\n mintClass: mainClass,\n\n mintNew: function (context, newPaneOptions) {\n const kb = context.session.store\n var updater = kb.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)\n }\n\n var newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER))\n var newChatDoc = newInstance.doc()\n\n kb.add(newInstance, ns.rdf('type'), ns.meeting('LongChat'), newChatDoc)\n kb.add(newInstance, ns.dc('title'), 'Chat channel', newChatDoc)\n kb.add(newInstance, ns.dc('created'), new Date(), newChatDoc)\n if (newPaneOptions.me) {\n kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc)\n }\n\n const aclBody = (me) => `\n @prefix : <#>.\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n @prefix foaf: <http://xmlns.com/foaf/0.1/>.\n @prefix lon: <./>.\n\n :ControlReadWrite\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agent <${me.uri}>;\n acl:default lon:;\n acl:mode acl:Control, acl:Read, acl:Write.\n :Read\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass foaf:Agent;\n acl:default lon:;\n acl:mode acl:Read.\n :ReadAppend\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass acl:AuthenticatedAgent;\n acl:default lon:;\n acl:mode acl:Read, acl:Append.`\n\n return new Promise(function (resolve, reject) {\n updater.put(\n newChatDoc,\n kb.statementsMatching(undefined, undefined, undefined, newChatDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error(\n 'FAILED to save new chat channel at: ' + uri2 + ' : ' + message\n )\n )\n }\n }\n )\n // newChat container authenticated users Append only\n .then((result) => {\n return new Promise((resolve, reject) => {\n if (newPaneOptions.me) {\n kb.fetcher.webOperation('PUT', newPaneOptions.newBase + '.acl', {\n data: aclBody(newPaneOptions.me),\n contentType: 'text/turtle'\n })\n }\n resolve(newPaneOptions)\n })\n })\n })\n },\n\n render: function (subject, context, paneOptions) {\n const dom = context.dom\n const kb = context.session.store\n\n /* Preferences\n **\n ** Things like whether to color text by author webid, to expand image URLs inline,\n ** expanded inline image height. ...\n ** In general, preferences can be set per user, per user/app combo, per instance,\n ** and per instance/user combo. Per instance? not sure about unless it is valuable\n ** for everyone to be seeing the same thing.\n */\n // const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n const preferencesFormText = `\n @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n @prefix solid: <http://www.w3.org/ns/solid/terms#>.\n @prefix ui: <http://www.w3.org/ns/ui#>.\n @prefix : <#>.\n\n :this\n <http://purl.org/dc/elements/1.1/title> \"Chat preferences\" ;\n a ui:Form ;\n ui:parts ( :colorizeByAuthor :expandImagesInline :newestFirst :inlineImageHeightEms\n :shiftEnterSendsMessage :authorDateOnLeft :showDeletedMessages).\n\n :colorizeByAuthor a ui:TristateField; ui:property solid:colorizeByAuthor;\n ui:label \"Color user input by user\".\n\n :expandImagesInline a ui:TristateField; ui:property solid:expandImagesInline;\n ui:label \"Expand image URLs inline\".\n\n :newestFirst a ui:TristateField; ui:property solid:newestFirst;\n ui:label \"Newest messages at the top\".\n\n :inlineImageHeightEms a ui:IntegerField; ui:property solid:inlineImageHeightEms;\n ui:label \"Inline image height (lines)\".\n\n :shiftEnterSendsMessage a ui:TristateField; ui:property solid:shiftEnterSendsMessage;\n ui:label \"Shift-Enter sends message\".\n\n :authorDateOnLeft a ui:TristateField; ui:property solid:authorDateOnLeft;\n ui:label \"Author & date of message on left\".\n\n :showDeletedMessages a ui:TristateField; ui:property solid:showDeletedMessages;\n ui:label \"Show placeholders for deleted messages\".\n`\n const preferencesForm = kb.sym(\n 'https://solid.github.io/solid-panes/longCharPane/preferencesForm.ttl#this'\n )\n const preferencesFormDoc = preferencesForm.doc()\n if (!kb.holds(undefined, undefined, undefined, preferencesFormDoc)) {\n // If not loaded already\n $rdf.parse(preferencesFormText, kb, preferencesFormDoc.uri, 'text/turtle') // Load form directly\n }\n const preferenceProperties = kb\n .statementsMatching(null, ns.ui.property, null, preferencesFormDoc)\n .map(st => st.object)\n\n // Preferences Menu\n //\n // Build a menu a the side (@@ reactive: on top?)\n\n async function renderPreferencesSidebar (context) {\n // const noun = 'chat room'\n const { dom, noun } = context\n const preferencesArea = dom.createElement('div')\n preferencesArea.appendChild(panelCloseButton(preferencesArea))\n // @@ style below fix .. just make it onviious while testing\n preferencesArea.style = SIDEBAR_COMPONENT_STYLE\n preferencesArea.style.minWidth = '25em' // bit bigger\n preferencesArea.style.maxHeight = triptychHeight\n const menuTable = preferencesArea.appendChild(dom.createElement('table'))\n const registrationArea = menuTable.appendChild(dom.createElement('tr'))\n const statusArea = menuTable.appendChild(dom.createElement('tr'))\n\n var me = authn.currentUser()\n if (me) {\n await UI.login.registrationControl(\n { noun, me, statusArea, dom, div: registrationArea },\n chatChannel,\n mainClass\n )\n console.log('Registration control finsished.')\n preferencesArea.appendChild(\n UI.preferences.renderPreferencesForm(\n chatChannel,\n mainClass,\n preferencesForm,\n {\n noun,\n me,\n statusArea,\n div: preferencesArea,\n dom,\n kb\n }\n )\n )\n }\n return preferencesArea\n }\n\n // @@ Split out into solid-ui\n\n function panelCloseButton (panel) {\n function removePanel () {\n panel.parentNode.removeChild(panel)\n }\n const button =\n UI.widgets.button(context.dom, UI.icons.iconBase + 'noun_1180156.svg', 'close', removePanel)\n button.style.float = 'right'\n button.style.margin = '0.7em'\n delete button.style.backgroundColor // do not want white\n return button\n }\n async function preferencesButtonPressed (_event) {\n if (!preferencesArea) {\n // Expand\n preferencesArea = await renderPreferencesSidebar({ dom, noun: 'chat room' })\n }\n if (paneRight.contains(preferencesArea)) {\n // Close menu (hide or delete??)\n preferencesArea.parentNode.removeChild(preferencesArea)\n preferencesArea = null\n } else {\n paneRight.appendChild(preferencesArea)\n }\n } // preferencesButtonPressed\n\n // All my chats\n //\n /* Build a other chats list drawer the side\n */\n\n function renderCreationControl (refreshTarget, noun) {\n var creationDiv = dom.createElement('div')\n var me = authn.currentUser()\n var creationContext = {\n // folder: subject,\n div: creationDiv,\n dom: dom,\n noun: noun,\n statusArea: creationDiv,\n me: me,\n refreshTarget: refreshTarget\n }\n const chatPane = context.session.paneRegistry.byName('chat')\n const relevantPanes = [chatPane]\n UI.create.newThingUI(creationContext, context, relevantPanes) // Have to pass panes down newUI\n return creationDiv\n }\n\n async function renderInstances (theClass, noun) {\n const instancesDiv = dom.createElement('div')\n var context = { dom, div: instancesDiv, noun: noun }\n await UI.login.registrationList(context, { public: true, private: true, type: theClass })\n instancesDiv.appendChild(renderCreationControl(instancesDiv, noun))\n return instancesDiv\n }\n\n var otherChatsArea = null\n async function otherChatsHandler (_event) {\n if (!otherChatsArea) { // Lazy build when needed\n // Expand\n otherChatsArea = dom.createElement('div')\n otherChatsArea.style = SIDEBAR_COMPONENT_STYLE\n otherChatsArea.style.maxHeight = triptychHeight\n otherChatsArea.appendChild(panelCloseButton(otherChatsArea))\n\n otherChatsArea.appendChild(await renderInstances(ns.meeting('LongChat'), 'chat'))\n }\n // Toggle visibility with button clicks\n if (paneLeft.contains(otherChatsArea)) {\n otherChatsArea.parentNode.removeChild(otherChatsArea)\n } else {\n paneLeft.appendChild(otherChatsArea)\n }\n } // otherChatsHandler\n\n // People in the chat\n //\n /* Build a participants list drawer the side\n */\n var participantsArea\n function participantsHandler (_event) {\n if (!participantsArea) {\n // Expand\n participantsArea = dom.createElement('div')\n participantsArea.style = SIDEBAR_COMPONENT_STYLE\n participantsArea.style.maxHeight = triptychHeight\n participantsArea.appendChild(panelCloseButton(participantsArea))\n\n // Record my participation and display participants\n var me = authn.currentUser()\n if (!me) alert('Should be logeed in for partipants panel')\n UI.pad.manageParticipation(\n dom,\n participantsArea,\n chatChannel.doc(),\n chatChannel,\n me,\n {}\n )\n }\n // Toggle appearance in sidebar with clicks\n // Note also it can remove itself using the X button\n if (paneLeft.contains(participantsArea)) {\n // Close participants (hide or delete??)\n participantsArea.parentNode.removeChild(participantsArea)\n participantsArea = null\n } else {\n paneLeft.appendChild(participantsArea)\n }\n } // participantsHandler\n\n var chatChannel = subject\n var selectedMessage = null\n var thread = null\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {\n // subject is the chatChannel\n console.log('Chat channnel')\n\n // Looks like a message -- might not havre any class declared\n } else if (kb.holds(subject, ns.rdf('type'), ns.sioc('Thread'))) {\n // subject is the chatChannel\n console.log('Thread is subject')\n thread = subject\n const rootMessage = kb.the(null, ns.sioc('has_reply'), thread, thread.doc())\n if (!rootMessage) throw new Error('Thread has no root message ' + thread)\n chatChannel = kb.any(null, ns.wf('message'), rootMessage)\n if (!chatChannel) throw new Error('Thread root has no link to chatChannel')\n } else if ( // Looks like a message -- might not havre any class declared\n kb.any(subject, ns.sioc('content')) &&\n kb.any(subject, ns.dct('created'))\n ) {\n console.log('message')\n selectedMessage = subject\n chatChannel = kb.any(null, ns.wf('message'), selectedMessage)\n if (!chatChannel) throw new Error('Message has no link to chatChannel')\n }\n\n var div = dom.createElement('div')\n\n // Three large columns for particpant, chat, Preferences. formula below just as a note\n // const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n const triptychHeight = '20cm' // @@ need to be able to set to window!\n var triptych = div.appendChild(dom.createElement('table'))\n triptych.style.maxHeight = '12\"' // Screen max\n var paneRow = triptych.appendChild(dom.createElement('tr'))\n var paneLeft = paneRow.appendChild(dom.createElement('td'))\n var paneMiddle = paneRow.appendChild(dom.createElement('td'))\n var paneThread = paneRow.appendChild(dom.createElement('td'))\n var paneRight = paneRow.appendChild(dom.createElement('td'))\n var paneBottom = triptych.appendChild(dom.createElement('tr'))\n paneLeft.style = SIDEBAR_STYLE\n paneLeft.style.paddingRight = '1em'\n paneThread.style = SIDEBAR_STYLE\n paneThread.style.paddingLeft = '1em'\n paneRight.style = SIDEBAR_STYLE\n paneRight.style.paddingLeft = '1em'\n\n paneBottom.appendChild(dom.createElement('td'))\n const buttonCell = paneBottom.appendChild(dom.createElement('td'))\n paneBottom.appendChild(dom.createElement('td'))\n\n // Button to bring up participants drawer on left\n const participantsIcon = 'noun_339237.svg'\n var participantsButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + participantsIcon,\n 'participants ...'\n ) // wider var\n buttonCell.appendChild(participantsButton)\n participantsButton.addEventListener('click', participantsHandler)\n\n // Button to bring up otherChats drawer on left\n const otherChatsIcon = 'noun_1689339.svg' // long chat icon -- not ideal for a set of chats @@\n var otherChatsButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + otherChatsIcon,\n 'List of other chats ...'\n ) // wider var\n buttonCell.appendChild(otherChatsButton)\n otherChatsButton.addEventListener('click', otherChatsHandler)\n\n var preferencesArea = null\n const menuButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + SPANNER_ICON,\n 'Setting ...'\n ) // wider var\n buttonCell.appendChild(menuButton)\n menuButton.style.float = 'right'\n menuButton.addEventListener('click', preferencesButtonPressed)\n\n div.setAttribute('class', 'chatPane')\n const options = { infinite: true }\n const participantsHandlerContext = { noun: 'chat room', div, dom: dom }\n participantsHandlerContext.me = authn.currentUser() // If already logged on\n\n async function showThread(thread, options) {\n console.log('@@@@ showThread thread ' + thread)\n const newOptions = {} // @@@ inherit\n newOptions.thread = thread\n newOptions.includeRemoveButton = true\n\n newOptions.authorDateOnLeft = options.authorDateOnLeft\n newOptions.newestFirst = options.newestFirst\n\n paneThread.innerHTML = ''\n console.log('Options for showThread message Area', newOptions)\n\n const chatControl = await UI.infiniteMessageArea(\n dom,\n kb,\n chatChannel,\n newOptions\n )\n chatControl.style.resize = 'both'\n chatControl.style.overflow = 'auto'\n chatControl.style.maxHeight = triptychHeight\n paneThread.appendChild(chatControl)\n }\n\n async function buildPane () {\n let prefMap\n try {\n prefMap = await UI.preferences.getPreferencesForClass(\n chatChannel, mainClass, preferenceProperties, participantsHandlerContext)\n } catch (err) {\n UI.widgets.complain(participantsHandlerContext, err)\n }\n for (const propuri in prefMap) {\n options[propuri.split('#')[1]] = prefMap[propuri]\n }\n if (selectedMessage) {\n options.selectedMessage = selectedMessage\n }\n if (paneOptions.solo) {\n // This is the top pane, title, scrollbar etc are ours\n options.solo = true\n }\n if (thread) { // Rendereing a thread as first class object\n options.thread = thread\n } else { // either show thread *or* allow new threads. Threads don't nest but they could\n options.showThread = showThread\n }\n const chatControl = await UI.infiniteMessageArea(\n dom,\n kb,\n chatChannel,\n options\n )\n chatControl.style.resize = 'both'\n chatControl.style.overflow = 'auto'\n chatControl.style.maxHeight = triptychHeight\n paneMiddle.appendChild(chatControl)\n }\n buildPane().then(console.log('async - chat pane built'))\n return div\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"longChatPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_regeneratorRuntime","o","value","Symbol","iterator","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ns","mainClass","meeting","CHAT_LOCATION_IN_CONTAINER","SPANNER_ICON","SIDEBAR_COMPONENT_STYLE","style","sidebarComponentStyle","SIDEBAR_STYLE","sidebarStyle","longChatPane","exports","icon","icons","iconBase","label","subject","context","kb","session","store","holds","rdf","sioc","any","dct","mintClass","mintNew","newPaneOptions","updater","me","uri","newInstance","sym","newBase","newChatDoc","doc","add","dc","Date","aclBody","resource","AppendWrite","concat","put","statementsMatching","uri2","ok","message","result","fetcher","webOperation","data","contentType","render","paneOptions","dom","preferencesFormText","preferencesForm","preferencesFormDoc","parse","preferenceProperties","ui","property","map","st","object","renderPreferencesSidebar","_x","_renderPreferencesSidebar","_callee","noun","preferencesArea","menuTable","registrationArea","statusArea","_callee$","_context","createElement","appendChild","panelCloseButton","minWidth","maxHeight","triptychHeight","authn","currentUser","login","registrationControl","div","chatChannel","console","log","preferences","renderPreferencesForm","panel","removePanel","parentNode","removeChild","button","widgets","margin","backgroundColor","preferencesButtonPressed","_x2","_preferencesButtonPressed","_callee2","_event","_callee2$","_context2","paneRight","contains","renderCreationControl","refreshTarget","creationDiv","creationContext","chatPane","paneRegistry","byName","relevantPanes","newThingUI","renderInstances","_x3","_x4","_renderInstances","_callee3","theClass","instancesDiv","_callee3$","_context3","registrationList","otherChatsArea","otherChatsHandler","_x5","_otherChatsHandler","_callee4","_callee4$","_context4","t0","t1","paneLeft","participantsArea","participantsHandler","alert","pad","manageParticipation","selectedMessage","thread","rootMessage","the","wf","triptych","paneRow","paneMiddle","paneThread","paneBottom","paddingRight","paddingLeft","buttonCell","participantsIcon","participantsButton","addEventListener","otherChatsIcon","otherChatsButton","menuButton","setAttribute","options","infinite","participantsHandlerContext","showThread","_x6","_x7","_showThread","_callee5","newOptions","chatControl","_callee5$","_context5","includeRemoveButton","authorDateOnLeft","newestFirst","innerHTML","infiniteMessageArea","resize","overflow","buildPane","_buildPane","_callee6","prefMap","propuri","_callee6$","_context6","getPreferencesForClass","complain","split","solo"],"sources":["../src/longChatPane.js"],"sourcesContent":["/* Long Chat Pane\n **\n ** A long chat consists a of a series of chat files saved by date.\n */\nimport { authn } from 'solid-logic'\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nconst mainClass = ns.meeting('LongChat') // @@ something from SIOC?\n\nconst CHAT_LOCATION_IN_CONTAINER = 'index.ttl#this'\n\n// const menuIcon = 'noun_897914.svg'\nconst SPANNER_ICON = 'noun_344563.svg'\n// resize: horizontal; min-width: 20em;\nconst SIDEBAR_COMPONENT_STYLE = UI.style.sidebarComponentStyle || ' padding: 0.5em; width: 100%;'\nconst SIDEBAR_STYLE = UI.style.sidebarStyle || 'overflow-x: auto; overflow-y: auto; border-radius: 1em; border: 0.1em solid white;'\n// was purple border\nexport const longChatPane = {\n CHAT_LOCATION_IN_CONTAINER,\n\n // noun_704.svg Canoe noun_346319.svg = 1 Chat noun_1689339.svg = three chat\n icon: UI.icons.iconBase + 'noun_1689339.svg',\n\n name: 'long chat',\n\n label: function (subject, context) {\n const kb = context.session.store\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {\n // subject is the object\n return 'Chat channnel'\n }\n if (kb.holds(subject, ns.rdf('type'), ns.sioc('Thread'))) {\n // subject is the object\n return 'Thread'\n }\n\n // Looks like a message -- might not havre any class declared\n if (\n kb.any(subject, ns.sioc('content')) &&\n kb.any(subject, ns.dct('created'))\n ) {\n return 'message'\n }\n return null // Suppress pane otherwise\n },\n\n mintClass: mainClass,\n\n mintNew: function (context, newPaneOptions) {\n const kb = context.session.store\n var updater = kb.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)\n }\n\n var newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER))\n var newChatDoc = newInstance.doc()\n\n kb.add(newInstance, ns.rdf('type'), ns.meeting('LongChat'), newChatDoc)\n kb.add(newInstance, ns.dc('title'), 'Chat channel', newChatDoc)\n kb.add(newInstance, ns.dc('created'), new Date(), newChatDoc)\n if (newPaneOptions.me) {\n kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc)\n }\n\n const aclBody = (me, resource, AppendWrite) => `\n @prefix : <#>.\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n @prefix foaf: <http://xmlns.com/foaf/0.1/>.\n @prefix lon: <./${resource}>.\n\n :ControlReadWrite\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agent <${me.uri}>;\n acl:default lon:;\n acl:mode acl:Control, acl:Read, acl:Write.\n :Read\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass foaf:Agent;\n acl:default lon:;\n acl:mode acl:Read.\n :Read${AppendWrite}\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass acl:AuthenticatedAgent;\n acl:default lon:;\n acl:mode acl:Read, acl:${AppendWrite}.`\n\n return new Promise(function (resolve, reject) {\n updater.put(\n newChatDoc,\n kb.statementsMatching(undefined, undefined, undefined, newChatDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error(\n 'FAILED to save new chat channel at: ' + uri2 + ' : ' + message\n )\n )\n }\n }\n )\n // newChat container authenticated users Append only\n .then((result) => {\n return new Promise((resolve, reject) => {\n if (newPaneOptions.me) {\n kb.fetcher.webOperation('PUT', newPaneOptions.newBase + '.acl', {\n data: aclBody(newPaneOptions.me, '', 'Append'),\n contentType: 'text/turtle'\n })\n kb.fetcher.webOperation('PUT', newPaneOptions.newBase + 'index.ttl.acl', {\n data: aclBody(newPaneOptions.me, 'index.ttl', 'Write'),\n contentType: 'text/turtle'\n })\n }\n resolve(newPaneOptions)\n })\n })\n })\n },\n\n render: function (subject, context, paneOptions) {\n const dom = context.dom\n const kb = context.session.store\n\n /* Preferences\n **\n ** Things like whether to color text by author webid, to expand image URLs inline,\n ** expanded inline image height. ...\n ** In general, preferences can be set per user, per user/app combo, per instance,\n ** and per instance/user combo. Per instance? not sure about unless it is valuable\n ** for everyone to be seeing the same thing.\n */\n // const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n const preferencesFormText = `\n @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n @prefix solid: <http://www.w3.org/ns/solid/terms#>.\n @prefix ui: <http://www.w3.org/ns/ui#>.\n @prefix : <#>.\n\n :this\n <http://purl.org/dc/elements/1.1/title> \"Chat preferences\" ;\n a ui:Form ;\n ui:parts ( :colorizeByAuthor :expandImagesInline :newestFirst :inlineImageHeightEms\n :shiftEnterSendsMessage :authorDateOnLeft :showDeletedMessages).\n\n :colorizeByAuthor a ui:TristateField; ui:property solid:colorizeByAuthor;\n ui:label \"Color user input by user\".\n\n :expandImagesInline a ui:TristateField; ui:property solid:expandImagesInline;\n ui:label \"Expand image URLs inline\".\n\n :newestFirst a ui:TristateField; ui:property solid:newestFirst;\n ui:label \"Newest messages at the top\".\n\n :inlineImageHeightEms a ui:IntegerField; ui:property solid:inlineImageHeightEms;\n ui:label \"Inline image height (lines)\".\n\n :shiftEnterSendsMessage a ui:TristateField; ui:property solid:shiftEnterSendsMessage;\n ui:label \"Shift-Enter sends message\".\n\n :authorDateOnLeft a ui:TristateField; ui:property solid:authorDateOnLeft;\n ui:label \"Author & date of message on left\".\n\n :showDeletedMessages a ui:TristateField; ui:property solid:showDeletedMessages;\n ui:label \"Show placeholders for deleted messages\".\n`\n const preferencesForm = kb.sym(\n 'https://solid.github.io/solid-panes/longCharPane/preferencesForm.ttl#this'\n )\n const preferencesFormDoc = preferencesForm.doc()\n if (!kb.holds(undefined, undefined, undefined, preferencesFormDoc)) {\n // If not loaded already\n $rdf.parse(preferencesFormText, kb, preferencesFormDoc.uri, 'text/turtle') // Load form directly\n }\n const preferenceProperties = kb\n .statementsMatching(null, ns.ui.property, null, preferencesFormDoc)\n .map(st => st.object)\n\n // Preferences Menu\n //\n // Build a menu a the side (@@ reactive: on top?)\n\n async function renderPreferencesSidebar (context) {\n // const noun = 'chat room'\n const { dom, noun } = context\n const preferencesArea = dom.createElement('div')\n preferencesArea.appendChild(panelCloseButton(preferencesArea))\n // @@ style below fix .. just make it onviious while testing\n preferencesArea.style = SIDEBAR_COMPONENT_STYLE\n preferencesArea.style.minWidth = '25em' // bit bigger\n preferencesArea.style.maxHeight = triptychHeight\n const menuTable = preferencesArea.appendChild(dom.createElement('table'))\n const registrationArea = menuTable.appendChild(dom.createElement('tr'))\n const statusArea = menuTable.appendChild(dom.createElement('tr'))\n\n var me = authn.currentUser()\n if (me) {\n await UI.login.registrationControl(\n { noun, me, statusArea, dom, div: registrationArea },\n chatChannel,\n mainClass\n )\n console.log('Registration control finsished.')\n preferencesArea.appendChild(\n UI.preferences.renderPreferencesForm(\n chatChannel,\n mainClass,\n preferencesForm,\n {\n noun,\n me,\n statusArea,\n div: preferencesArea,\n dom,\n kb\n }\n )\n )\n }\n return preferencesArea\n }\n\n // @@ Split out into solid-ui\n\n function panelCloseButton (panel) {\n function removePanel () {\n panel.parentNode.removeChild(panel)\n }\n const button =\n UI.widgets.button(context.dom, UI.icons.iconBase + 'noun_1180156.svg', 'close', removePanel)\n button.style.float = 'right'\n button.style.margin = '0.7em'\n delete button.style.backgroundColor // do not want white\n return button\n }\n async function preferencesButtonPressed (_event) {\n if (!preferencesArea) {\n // Expand\n preferencesArea = await renderPreferencesSidebar({ dom, noun: 'chat room' })\n }\n if (paneRight.contains(preferencesArea)) {\n // Close menu (hide or delete??)\n preferencesArea.parentNode.removeChild(preferencesArea)\n preferencesArea = null\n } else {\n paneRight.appendChild(preferencesArea)\n }\n } // preferencesButtonPressed\n\n // All my chats\n //\n /* Build a other chats list drawer the side\n */\n\n function renderCreationControl (refreshTarget, noun) {\n var creationDiv = dom.createElement('div')\n var me = authn.currentUser()\n var creationContext = {\n // folder: subject,\n div: creationDiv,\n dom: dom,\n noun: noun,\n statusArea: creationDiv,\n me: me,\n refreshTarget: refreshTarget\n }\n const chatPane = context.session.paneRegistry.byName('chat')\n const relevantPanes = [chatPane]\n UI.create.newThingUI(creationContext, context, relevantPanes) // Have to pass panes down newUI\n return creationDiv\n }\n\n async function renderInstances (theClass, noun) {\n const instancesDiv = dom.createElement('div')\n var context = { dom, div: instancesDiv, noun: noun }\n await UI.login.registrationList(context, { public: true, private: true, type: theClass })\n instancesDiv.appendChild(renderCreationControl(instancesDiv, noun))\n return instancesDiv\n }\n\n var otherChatsArea = null\n async function otherChatsHandler (_event) {\n if (!otherChatsArea) { // Lazy build when needed\n // Expand\n otherChatsArea = dom.createElement('div')\n otherChatsArea.style = SIDEBAR_COMPONENT_STYLE\n otherChatsArea.style.maxHeight = triptychHeight\n otherChatsArea.appendChild(panelCloseButton(otherChatsArea))\n\n otherChatsArea.appendChild(await renderInstances(ns.meeting('LongChat'), 'chat'))\n }\n // Toggle visibility with button clicks\n if (paneLeft.contains(otherChatsArea)) {\n otherChatsArea.parentNode.removeChild(otherChatsArea)\n } else {\n paneLeft.appendChild(otherChatsArea)\n }\n } // otherChatsHandler\n\n // People in the chat\n //\n /* Build a participants list drawer the side\n */\n var participantsArea\n function participantsHandler (_event) {\n if (!participantsArea) {\n // Expand\n participantsArea = dom.createElement('div')\n participantsArea.style = SIDEBAR_COMPONENT_STYLE\n participantsArea.style.maxHeight = triptychHeight\n participantsArea.appendChild(panelCloseButton(participantsArea))\n\n // Record my participation and display participants\n var me = authn.currentUser()\n if (!me) alert('Should be logeed in for partipants panel')\n UI.pad.manageParticipation(\n dom,\n participantsArea,\n chatChannel.doc(),\n chatChannel,\n me,\n {}\n )\n }\n // Toggle appearance in sidebar with clicks\n // Note also it can remove itself using the X button\n if (paneLeft.contains(participantsArea)) {\n // Close participants (hide or delete??)\n participantsArea.parentNode.removeChild(participantsArea)\n participantsArea = null\n } else {\n paneLeft.appendChild(participantsArea)\n }\n } // participantsHandler\n\n var chatChannel = subject\n var selectedMessage = null\n var thread = null\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {\n // subject is the chatChannel\n console.log('@@@ Chat channnel')\n\n // Looks like a message -- might not havre any class declared\n } else if (kb.holds(subject, ns.rdf('type'), ns.sioc('Thread'))) {\n // subject is the chatChannel\n console.log('Thread is subject ' + subject.uri)\n thread = subject\n const rootMessage = kb.the(null, ns.sioc('has_reply'), thread, thread.doc())\n if (!rootMessage) throw new Error('Thread has no root message ' + thread)\n chatChannel = kb.any(null, ns.wf('message'), rootMessage)\n if (!chatChannel) throw new Error('Thread root has no link to chatChannel')\n } else if ( // Looks like a message -- might not havre any class declared\n kb.any(subject, ns.sioc('content')) &&\n kb.any(subject, ns.dct('created'))\n ) {\n console.log('message is subject ' + subject.uri)\n selectedMessage = subject\n chatChannel = kb.any(null, ns.wf('message'), selectedMessage)\n if (!chatChannel) throw new Error('Message has no link to chatChannel')\n }\n\n var div = dom.createElement('div')\n\n // Three large columns for particpant, chat, Preferences. formula below just as a note\n // const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n const triptychHeight = '20cm' // @@ need to be able to set to window!\n var triptych = div.appendChild(dom.createElement('table'))\n triptych.style.maxHeight = '12\"' // Screen max\n var paneRow = triptych.appendChild(dom.createElement('tr'))\n var paneLeft = paneRow.appendChild(dom.createElement('td'))\n var paneMiddle = paneRow.appendChild(dom.createElement('td'))\n var paneThread = paneRow.appendChild(dom.createElement('td'))\n var paneRight = paneRow.appendChild(dom.createElement('td'))\n var paneBottom = triptych.appendChild(dom.createElement('tr'))\n paneLeft.style = SIDEBAR_STYLE\n paneLeft.style.paddingRight = '1em'\n paneThread.style = SIDEBAR_STYLE\n paneThread.style.paddingLeft = '1em'\n paneRight.style = SIDEBAR_STYLE\n paneRight.style.paddingLeft = '1em'\n\n paneBottom.appendChild(dom.createElement('td'))\n const buttonCell = paneBottom.appendChild(dom.createElement('td'))\n paneBottom.appendChild(dom.createElement('td'))\n\n // Button to bring up participants drawer on left\n const participantsIcon = 'noun_339237.svg'\n var participantsButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + participantsIcon,\n 'participants ...'\n ) // wider var\n buttonCell.appendChild(participantsButton)\n participantsButton.addEventListener('click', participantsHandler)\n\n // Button to bring up otherChats drawer on left\n const otherChatsIcon = 'noun_1689339.svg' // long chat icon -- not ideal for a set of chats @@\n var otherChatsButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + otherChatsIcon,\n 'List of other chats ...'\n ) // wider var\n buttonCell.appendChild(otherChatsButton)\n otherChatsButton.addEventListener('click', otherChatsHandler)\n\n var preferencesArea = null\n const menuButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + SPANNER_ICON,\n 'Setting ...'\n ) // wider var\n buttonCell.appendChild(menuButton)\n menuButton.style.float = 'right'\n menuButton.addEventListener('click', preferencesButtonPressed)\n\n div.setAttribute('class', 'chatPane')\n const options = { infinite: true }\n const participantsHandlerContext = { noun: 'chat room', div, dom: dom }\n participantsHandlerContext.me = authn.currentUser() // If already logged on\n\n async function showThread(thread, options) {\n console.log('@@@@ showThread thread ' + thread)\n const newOptions = {} // @@@ inherit\n newOptions.thread = thread\n newOptions.includeRemoveButton = true\n\n newOptions.authorDateOnLeft = options.authorDateOnLeft\n newOptions.newestFirst = options.newestFirst\n\n paneThread.innerHTML = ''\n console.log('Options for showThread message Area', newOptions)\n\n const chatControl = await UI.infiniteMessageArea(\n dom,\n kb,\n chatChannel,\n newOptions\n )\n chatControl.style.resize = 'both'\n chatControl.style.overflow = 'auto'\n chatControl.style.maxHeight = triptychHeight\n paneThread.appendChild(chatControl)\n }\n\n async function buildPane () {\n let prefMap\n try {\n prefMap = await UI.preferences.getPreferencesForClass(\n chatChannel, mainClass, preferenceProperties, participantsHandlerContext)\n } catch (err) {\n UI.widgets.complain(participantsHandlerContext, err)\n }\n for (const propuri in prefMap) {\n options[propuri.split('#')[1]] = prefMap[propuri]\n }\n if (selectedMessage) {\n options.selectedMessage = selectedMessage\n }\n if (paneOptions.solo) {\n // This is the top pane, title, scrollbar etc are ours\n options.solo = true\n }\n if (thread) { // Rendereing a thread as first class object\n options.thread = thread\n } else { // either show thread *or* allow new threads. Threads don't nest but they could\n options.showThread = showThread\n }\n const chatControl = await UI.infiniteMessageArea(\n dom,\n kb,\n chatChannel,\n options\n )\n chatControl.style.resize = 'both'\n chatControl.style.overflow = 'auto'\n chatControl.style.maxHeight = triptychHeight\n paneMiddle.appendChild(chatControl)\n }\n buildPane().then(console.log('async - chat pane built'))\n return div\n }\n}\n"],"mappings":"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"}
File without changes
File without changes
package/lib/main.js CHANGED
File without changes
package/lib/main.js.map CHANGED
File without changes
@@ -61,10 +61,8 @@ var shortChatPane = exports.shortChatPane = {
61
61
  // subject is the file
62
62
  return 'IRC log'; // contains anything of this type
63
63
  }
64
-
65
64
  return null; // Suppress pane otherwise
66
65
  },
67
-
68
66
  mintClass: ns.meeting('Chat'),
69
67
  mintNew: function mintNew(context, newPaneOptions) {
70
68
  // This deprecates the creation of short Chats after 2023-04-03.
@@ -1 +1 @@
1
- {"version":3,"file":"shortChatPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ns","shortChatPane","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","each","wf","length","holds","rdf","meeting","undefined","foaf","mintClass","mintNew","newPaneOptions","confirm","updater","me","uri","Error","newInstance","sym","newBase","newChatDoc","doc","add","dc","Date","Promise","resolve","reject","put","statementsMatching","uri2","ok","message","render","dom","complain","color","pre","createElement","setAttribute","div","appendChild","createTextNode","options","messageStore","any","ircLogQuery","query","$rdf","Query","v","vv","map","x","vars","push","variable","pat","chan","list","pred","msg","date","creator","content","messageArea","addDownstreamChangeListener","widgets","refreshTree"],"sources":["../src/shortChatPane.js"],"sourcesContent":["/* Chat Pane\n **\n ** Plan is to support a finte number of chat graph shapes\n ** and investigate the interop between them.\n */\n/* global $rdf */\nimport { store } from 'solid-logic'\nimport * as UI from 'solid-ui'\n\nconst ns = UI.ns\n\nexport const shortChatPane = {\n icon: UI.icons.iconBase + 'noun_346319.svg',\n\n name: 'chat',\n\n /*\n * As part of the work on merging the existing chat views (aka panes) into one view\n * https://github.com/solid/chat-pane/issues/17\n * we want to dis-incentivize the use of Small Chat until we've gotten the work done\n * by making it difficult to create new data resources that uses the Small Chat view\n * but we still want existing resources to be viewed by the Small Chat view\n */\n audience: [ns.solid('PowerUser')],\n\n /* AN RRSAgent IRC log:\n\n <irc://localhost:6667/&mit>\n a foaf:ChatChannel\n foaf:chatEventList\n [ rdf:_100\n <#T19-10-58>\n rdf:_101\n <#T19-10-58-1>\n rdf:_102\n ..\n <#T19-28-47-1>\n dc:creator\n [ a wn:Person; foaf:nick \"timbl\" ]\n dc:date\n \"2016-03-15T19:28:47Z\"\n dc:description\n \"timbl has joined &mit\"\n a foaf:chatEvent.\n\n */\n\n label: function (subject, context) {\n const kb = context.session.store\n var n = kb.each(subject, ns.wf('message')).length\n if (n > 0) return 'Chat (' + n + ')' // Show how many in hover text\n\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Chat'))) {\n // subject is the file\n return 'Meeting chat'\n }\n if (kb.holds(undefined, ns.rdf('type'), ns.foaf('ChatChannel'), subject)) {\n // subject is the file\n return 'IRC log' // contains anything of this type\n }\n return null // Suppress pane otherwise\n },\n\n mintClass: ns.meeting('Chat'),\n\n mintNew: function (context, newPaneOptions) {\n // This deprecates the creation of short Chats after 2023-04-03.\n // The mintNew function will be removed/commented out in a few months.\n if (!confirm('short Chat is deprecated in favor of long Chat.'\n + '\\nEmbedded chat for comments and existing short Chats will work.'\n + '\\nYou can report any issues at https://github.com/SolidOS/chat-pane ?'\n + '\\n\\nDo you really want to create a new deprecated short Chat?')) return\n const kb = context.session.store\n var updater = kb.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)\n }\n\n var newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n kb.sym(newPaneOptions.newBase + 'index.ttl#this'))\n var newChatDoc = newInstance.doc()\n\n kb.add(newInstance, ns.rdf('type'), ns.meeting('Chat'), newChatDoc)\n kb.add(newInstance, ns.dc('title'), 'Chat', newChatDoc)\n kb.add(newInstance, ns.dc('created'), new Date(), newChatDoc)\n if (newPaneOptions.me) {\n kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc)\n }\n\n return new Promise(function (resolve, reject) {\n updater.put(\n newChatDoc,\n kb.statementsMatching(undefined, undefined, undefined, newChatDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n var complain = function complain (message, color) {\n var pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n\n var div = dom.createElement('div')\n div.setAttribute('class', 'chatPane')\n const options = {} // Like newestFirst\n var messageStore\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Chat'))) {\n // subject may be the file\n messageStore = subject.doc()\n } else if (kb.any(subject, UI.ns.wf('message'))) {\n messageStore = store.any(subject, UI.ns.wf('message')).doc()\n } else if (\n kb.holds(undefined, ns.rdf('type'), ns.foaf('ChatChannel'), subject) ||\n kb.holds(subject, ns.rdf('type'), ns.foaf('ChatChannel'))\n ) {\n // subject is the file\n var ircLogQuery = function () {\n var query = new $rdf.Query('IRC log entries')\n var v = []\n var vv = ['chan', 'msg', 'date', 'list', 'pred', 'creator', 'content']\n vv.map(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(v.chan, ns.foaf('chatEventList'), v.list) // chatEventList\n query.pat.add(v.list, v.pred, v.msg) //\n query.pat.add(v.msg, ns.dc('date'), v.date)\n query.pat.add(v.msg, ns.dc('creator'), v.creator)\n query.pat.add(v.msg, ns.dc('description'), v.content)\n return query\n }\n messageStore = subject.doc()\n options.query = ircLogQuery()\n } else {\n complain('Unknown chat type')\n }\n\n // var context = {dom, div}\n // UI.authn.logIn(context).then( context => { // The widget itself sees to login\n\n div.appendChild(UI.messageArea(dom, kb, subject, messageStore, options))\n kb.updater.addDownstreamChangeListener(messageStore, function () {\n UI.widgets.refreshTree(div)\n }) // Live update\n // })\n\n return div\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"shortChatPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ns","shortChatPane","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","each","wf","length","holds","rdf","meeting","undefined","foaf","mintClass","mintNew","newPaneOptions","confirm","updater","me","uri","Error","newInstance","sym","newBase","newChatDoc","doc","add","dc","Date","Promise","resolve","reject","put","statementsMatching","uri2","ok","message","render","dom","complain","color","pre","createElement","setAttribute","div","appendChild","createTextNode","options","messageStore","any","ircLogQuery","query","$rdf","Query","v","vv","map","x","vars","push","variable","pat","chan","list","pred","msg","date","creator","content","messageArea","addDownstreamChangeListener","widgets","refreshTree"],"sources":["../src/shortChatPane.js"],"sourcesContent":["/* Chat Pane\n **\n ** Plan is to support a finte number of chat graph shapes\n ** and investigate the interop between them.\n */\n/* global $rdf */\nimport { store } from 'solid-logic'\nimport * as UI from 'solid-ui'\n\nconst ns = UI.ns\n\nexport const shortChatPane = {\n icon: UI.icons.iconBase + 'noun_346319.svg',\n\n name: 'chat',\n\n /*\n * As part of the work on merging the existing chat views (aka panes) into one view\n * https://github.com/solid/chat-pane/issues/17\n * we want to dis-incentivize the use of Small Chat until we've gotten the work done\n * by making it difficult to create new data resources that uses the Small Chat view\n * but we still want existing resources to be viewed by the Small Chat view\n */\n audience: [ns.solid('PowerUser')],\n\n /* AN RRSAgent IRC log:\n\n <irc://localhost:6667/&mit>\n a foaf:ChatChannel\n foaf:chatEventList\n [ rdf:_100\n <#T19-10-58>\n rdf:_101\n <#T19-10-58-1>\n rdf:_102\n ..\n <#T19-28-47-1>\n dc:creator\n [ a wn:Person; foaf:nick \"timbl\" ]\n dc:date\n \"2016-03-15T19:28:47Z\"\n dc:description\n \"timbl has joined &mit\"\n a foaf:chatEvent.\n\n */\n\n label: function (subject, context) {\n const kb = context.session.store\n var n = kb.each(subject, ns.wf('message')).length\n if (n > 0) return 'Chat (' + n + ')' // Show how many in hover text\n\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Chat'))) {\n // subject is the file\n return 'Meeting chat'\n }\n if (kb.holds(undefined, ns.rdf('type'), ns.foaf('ChatChannel'), subject)) {\n // subject is the file\n return 'IRC log' // contains anything of this type\n }\n return null // Suppress pane otherwise\n },\n\n mintClass: ns.meeting('Chat'),\n\n mintNew: function (context, newPaneOptions) {\n // This deprecates the creation of short Chats after 2023-04-03.\n // The mintNew function will be removed/commented out in a few months.\n if (!confirm('short Chat is deprecated in favor of long Chat.'\n + '\\nEmbedded chat for comments and existing short Chats will work.'\n + '\\nYou can report any issues at https://github.com/SolidOS/chat-pane ?'\n + '\\n\\nDo you really want to create a new deprecated short Chat?')) return\n const kb = context.session.store\n var updater = kb.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)\n }\n\n var newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n kb.sym(newPaneOptions.newBase + 'index.ttl#this'))\n var newChatDoc = newInstance.doc()\n\n kb.add(newInstance, ns.rdf('type'), ns.meeting('Chat'), newChatDoc)\n kb.add(newInstance, ns.dc('title'), 'Chat', newChatDoc)\n kb.add(newInstance, ns.dc('created'), new Date(), newChatDoc)\n if (newPaneOptions.me) {\n kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc)\n }\n\n return new Promise(function (resolve, reject) {\n updater.put(\n newChatDoc,\n kb.statementsMatching(undefined, undefined, undefined, newChatDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n var complain = function complain (message, color) {\n var pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n\n var div = dom.createElement('div')\n div.setAttribute('class', 'chatPane')\n const options = {} // Like newestFirst\n var messageStore\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Chat'))) {\n // subject may be the file\n messageStore = subject.doc()\n } else if (kb.any(subject, UI.ns.wf('message'))) {\n messageStore = store.any(subject, UI.ns.wf('message')).doc()\n } else if (\n kb.holds(undefined, ns.rdf('type'), ns.foaf('ChatChannel'), subject) ||\n kb.holds(subject, ns.rdf('type'), ns.foaf('ChatChannel'))\n ) {\n // subject is the file\n var ircLogQuery = function () {\n var query = new $rdf.Query('IRC log entries')\n var v = []\n var vv = ['chan', 'msg', 'date', 'list', 'pred', 'creator', 'content']\n vv.map(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(v.chan, ns.foaf('chatEventList'), v.list) // chatEventList\n query.pat.add(v.list, v.pred, v.msg) //\n query.pat.add(v.msg, ns.dc('date'), v.date)\n query.pat.add(v.msg, ns.dc('creator'), v.creator)\n query.pat.add(v.msg, ns.dc('description'), v.content)\n return query\n }\n messageStore = subject.doc()\n options.query = ircLogQuery()\n } else {\n complain('Unknown chat type')\n }\n\n // var context = {dom, div}\n // UI.authn.logIn(context).then( context => { // The widget itself sees to login\n\n div.appendChild(UI.messageArea(dom, kb, subject, messageStore, options))\n kb.updater.addDownstreamChangeListener(messageStore, function () {\n UI.widgets.refreshTree(div)\n }) // Live update\n // })\n\n return div\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chat-pane",
3
- "version": "2.4.24",
3
+ "version": "2.4.25-2d4cfceb",
4
4
  "description": "Solid-compatible Panes: Chat",
5
5
  "main": "./lib/main.js",
6
6
  "files": [
@@ -15,8 +15,8 @@
15
15
  "test": "npm run lint && jest",
16
16
  "lint": "eslint '*.js'",
17
17
  "lint-fix": "eslint '*.js' --fix",
18
- "prepublishOnly": "npm test && npm run build && npm run build-lib",
19
- "postpublish": "git push origin main --follow-tags",
18
+ "ignore:prepublishOnly": "npm test && npm run build && npm run build-lib",
19
+ "ignore:postpublish": "git push origin main --follow-tags",
20
20
  "watch": "webpack --watch",
21
21
  "start": "webpack serve --open",
22
22
  "dev": "webpack serve --config webpack.dev.config.js --open"
@@ -46,22 +46,22 @@
46
46
  },
47
47
  "homepage": "https://github.com/solid/chat-pane",
48
48
  "dependencies": {
49
- "rdflib": "^2.2.32",
50
- "solid-logic": "^3.0.4",
51
- "solid-ui": "^2.4.29"
49
+ "rdflib": "^2.2.33",
50
+ "solid-logic": "^3.0.6",
51
+ "solid-ui": "^2.4.32"
52
52
  },
53
53
  "devDependencies": {
54
- "@babel/cli": "^7.23.0",
55
- "@babel/core": "^7.23.2",
56
- "@babel/preset-env": "^7.23.2",
57
- "@babel/preset-typescript": "^7.23.2",
54
+ "@babel/cli": "^7.23.4",
55
+ "@babel/core": "^7.23.5",
56
+ "@babel/preset-env": "^7.23.5",
57
+ "@babel/preset-typescript": "^7.23.3",
58
58
  "@testing-library/dom": "^9.3.3",
59
59
  "@testing-library/jest-dom": "^5.17.0",
60
- "@types/jest": "^29.5.7",
60
+ "@types/jest": "^29.5.10",
61
61
  "babel-jest": "^29.7.0",
62
62
  "babel-loader": "^8.3.0",
63
63
  "buffer": "^6.0.3",
64
- "eslint": "^8.52.0",
64
+ "eslint": "^8.55.0",
65
65
  "html-webpack-plugin": "^5.5.3",
66
66
  "husky": "^7.0.4",
67
67
  "jest": "^29.7.0",
package/src/create.ts CHANGED
File without changes
@@ -67,11 +67,11 @@ export const longChatPane = {
67
67
  kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc)
68
68
  }
69
69
 
70
- const aclBody = (me) => `
70
+ const aclBody = (me, resource, AppendWrite) => `
71
71
  @prefix : <#>.
72
72
  @prefix acl: <http://www.w3.org/ns/auth/acl#>.
73
73
  @prefix foaf: <http://xmlns.com/foaf/0.1/>.
74
- @prefix lon: <./>.
74
+ @prefix lon: <./${resource}>.
75
75
 
76
76
  :ControlReadWrite
77
77
  a acl:Authorization;
@@ -85,12 +85,12 @@ export const longChatPane = {
85
85
  acl:agentClass foaf:Agent;
86
86
  acl:default lon:;
87
87
  acl:mode acl:Read.
88
- :ReadAppend
88
+ :Read${AppendWrite}
89
89
  a acl:Authorization;
90
90
  acl:accessTo lon:;
91
91
  acl:agentClass acl:AuthenticatedAgent;
92
92
  acl:default lon:;
93
- acl:mode acl:Read, acl:Append.`
93
+ acl:mode acl:Read, acl:${AppendWrite}.`
94
94
 
95
95
  return new Promise(function (resolve, reject) {
96
96
  updater.put(
@@ -114,7 +114,11 @@ export const longChatPane = {
114
114
  return new Promise((resolve, reject) => {
115
115
  if (newPaneOptions.me) {
116
116
  kb.fetcher.webOperation('PUT', newPaneOptions.newBase + '.acl', {
117
- data: aclBody(newPaneOptions.me),
117
+ data: aclBody(newPaneOptions.me, '', 'Append'),
118
+ contentType: 'text/turtle'
119
+ })
120
+ kb.fetcher.webOperation('PUT', newPaneOptions.newBase + 'index.ttl.acl', {
121
+ data: aclBody(newPaneOptions.me, 'index.ttl', 'Write'),
118
122
  contentType: 'text/turtle'
119
123
  })
120
124
  }
@@ -344,12 +348,12 @@ export const longChatPane = {
344
348
  var thread = null
345
349
  if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {
346
350
  // subject is the chatChannel
347
- console.log('Chat channnel')
351
+ console.log('@@@ Chat channnel')
348
352
 
349
353
  // Looks like a message -- might not havre any class declared
350
354
  } else if (kb.holds(subject, ns.rdf('type'), ns.sioc('Thread'))) {
351
355
  // subject is the chatChannel
352
- console.log('Thread is subject')
356
+ console.log('Thread is subject ' + subject.uri)
353
357
  thread = subject
354
358
  const rootMessage = kb.the(null, ns.sioc('has_reply'), thread, thread.doc())
355
359
  if (!rootMessage) throw new Error('Thread has no root message ' + thread)
@@ -359,7 +363,7 @@ export const longChatPane = {
359
363
  kb.any(subject, ns.sioc('content')) &&
360
364
  kb.any(subject, ns.dct('created'))
361
365
  ) {
362
- console.log('message')
366
+ console.log('message is subject ' + subject.uri)
363
367
  selectedMessage = subject
364
368
  chatChannel = kb.any(null, ns.wf('message'), selectedMessage)
365
369
  if (!chatChannel) throw new Error('Message has no link to chatChannel')
File without changes
package/src/main.js CHANGED
File without changes
File without changes