solid-ui 2.4.33 → 2.4.34-bd841bfc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/841.solid-ui.min.js +1 -1
- package/dist/841.solid-ui.min.js.map +1 -1
- package/dist/solid-ui.js +4463 -1872
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.LICENSE.txt +7 -0
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/acl/access-controller.js +4 -4
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +3 -3
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +2 -2
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +14 -14
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +6 -6
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/chat/bookmarks.js +5 -5
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +6 -6
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +5 -5
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +18 -18
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/keys.js +3 -3
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +13 -13
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +10 -10
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +8 -8
- package/lib/chat/thread.js.map +1 -1
- package/lib/footer/index.js +2 -2
- package/lib/footer/index.js.map +1 -1
- package/lib/header/index.js +4 -4
- package/lib/header/index.js.map +1 -1
- package/lib/login/login.js +14 -14
- package/lib/login/login.js.map +1 -1
- package/lib/media/media-capture.js +1 -1
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js.map +1 -1
- package/lib/pad.js +16 -16
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +4 -4
- package/lib/participation.js.map +1 -1
- package/lib/tabs.js +3 -3
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js +1 -1
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.js +3 -3
- package/lib/utils/keyHelpers/accessData.js.map +1 -1
- package/lib/utils/keyHelpers/acl.js +1 -1
- package/lib/utils/keyHelpers/acl.js.map +1 -1
- package/lib/versionInfo.js +19 -19
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +9 -9
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +11 -11
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +2 -2
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +9 -9
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms.js +12 -12
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/package.json +2 -2
package/lib/messageArea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageArea.js","names":["_iconBase","require","login","_interopRequireWildcard","_solidLogic","ns","rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","UI","icons","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","sts","now","Date","timestamp","getTime","dateStamp","sym","push","Statement","wf","sioc","literal","value","foaf","sendComplete","success","body","errorMessageBlock","bindings","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","nick","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","deleteMessage","deletions","statementsMatching","concat","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","query","Query","v","vs","x","vars","variable","pat","add","msg","dct","doneQuery","refresh"],"sources":["../src/messageArea.js"],"sourcesContent":["// Common code for a discussion are a of messages about something\n//\n\nimport { icons } from './iconBase'\nimport * as login from './login/login'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as utils from './utils'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function messageArea (dom, kb, subject, messageStore, options) {\n kb = kb || solidLogicSingleton.store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = solidLogicSingleton.store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n // Form for a new message\n //\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = kb.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n sts.push(\n new rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n sts.push(\n new rdf.Statement(\n message,\n ns.sioc('content'),\n kb.literal(field.value),\n messageStore\n )\n )\n sts.push(\n new rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': kb.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n function nick (person) {\n const s = solidLogicSingleton.store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n solidLogicSingleton.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = kb.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const deleteMessage = function (message) {\n const deletions = kb\n .statementsMatching(message)\n .concat(kb.statementsMatching(undefined, undefined, message))\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': kb.any(message, ns.foaf('maker')),\n '?date': kb.any(message, DCT('created')),\n '?content': kb.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n deleteMessage(message)\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n kb.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"messageArea.js","names":["_iconBase","require","login","_interopRequireWildcard","_solidLogic","ns","rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","UI","icons","messageArea","dom","kb","subject","messageStore","options","solidLogicSingleton","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","sts","now","Date","timestamp","getTime","dateStamp","sym","push","Statement","wf","sioc","literal","value","foaf","sendComplete","success","body","errorMessageBlock","bindings","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","nick","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","deleteMessage","deletions","statementsMatching","concat","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","query","Query","v","vs","x","vars","variable","pat","add","msg","dct","doneQuery","refresh"],"sources":["../src/messageArea.js"],"sourcesContent":["// Common code for a discussion are a of messages about something\n//\n\nimport { icons } from './iconBase'\nimport * as login from './login/login'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as ns from './ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from './style'\nimport * as utils from './utils'\nimport * as widgets from './widgets'\n\nconst UI = { icons, ns, rdf, style, widgets }\n\nexport function messageArea (dom, kb, subject, messageStore, options) {\n kb = kb || solidLogicSingleton.store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = solidLogicSingleton.store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n // Form for a new message\n //\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = kb.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n sts.push(\n new rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n sts.push(\n new rdf.Statement(\n message,\n ns.sioc('content'),\n kb.literal(field.value),\n messageStore\n )\n )\n sts.push(\n new rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': kb.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n function nick (person) {\n const s = solidLogicSingleton.store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n solidLogicSingleton.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = kb.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const deleteMessage = function (message) {\n const deletions = kb\n .statementsMatching(message)\n .concat(kb.statementsMatching(undefined, undefined, message))\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': kb.any(message, ns.foaf('maker')),\n '?date': kb.any(message, DCT('created')),\n '?content': kb.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n deleteMessage(message)\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n kb.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/pad.js
CHANGED
|
@@ -74,7 +74,7 @@ var NotepadElement = /*#__PURE__*/function (_HTMLElement) {
|
|
|
74
74
|
}
|
|
75
75
|
(0, _inherits2["default"])(NotepadElement, _HTMLElement);
|
|
76
76
|
return (0, _createClass2["default"])(NotepadElement);
|
|
77
|
-
}(
|
|
77
|
+
}(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
78
78
|
/**
|
|
79
79
|
* @ignore
|
|
80
80
|
*/
|
|
@@ -94,7 +94,7 @@ var NotepadPart = /*#__PURE__*/function (_HTMLElement2) {
|
|
|
94
94
|
}
|
|
95
95
|
(0, _inherits2["default"])(NotepadPart, _HTMLElement2);
|
|
96
96
|
return (0, _createClass2["default"])(NotepadPart);
|
|
97
|
-
}(
|
|
97
|
+
}(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
98
98
|
/** Figure out a random color from my webid
|
|
99
99
|
*
|
|
100
100
|
* @param {NamedNode} author - The author of text being displayed
|
|
@@ -283,7 +283,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
283
283
|
return;
|
|
284
284
|
}
|
|
285
285
|
(0, _debug.log)(' go ahead line before ' + queue[queueProperty]);
|
|
286
|
-
|
|
286
|
+
_newChunk(part, before); // was document.activeElement
|
|
287
287
|
break;
|
|
288
288
|
}
|
|
289
289
|
case 8:
|
|
@@ -343,7 +343,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
343
343
|
default:
|
|
344
344
|
}
|
|
345
345
|
});
|
|
346
|
-
var
|
|
346
|
+
var _updateStore = function updateStore(part) {
|
|
347
347
|
var chunk = part.subject;
|
|
348
348
|
setPartStyle(part, undefined, true);
|
|
349
349
|
var old = kb.any(chunk, ns.sioc('content')).value;
|
|
@@ -406,7 +406,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
406
406
|
// pass
|
|
407
407
|
} else if (part.state === 2) {
|
|
408
408
|
part.state = 1; // pending: lock
|
|
409
|
-
|
|
409
|
+
_updateStore(part);
|
|
410
410
|
} else {
|
|
411
411
|
part.state = 0; // clear lock
|
|
412
412
|
}
|
|
@@ -433,7 +433,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
433
433
|
case 0:
|
|
434
434
|
case undefined:
|
|
435
435
|
part.state = 1; // being upadted
|
|
436
|
-
|
|
436
|
+
_updateStore(part);
|
|
437
437
|
}
|
|
438
438
|
}); // listener
|
|
439
439
|
}; // addlisteners
|
|
@@ -470,7 +470,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
470
470
|
|
|
471
471
|
/* @@ TODO we need to look at indent, it can be a Number or an Object this doesn't seem correct.
|
|
472
472
|
*/
|
|
473
|
-
var
|
|
473
|
+
var _newChunk = function newChunk(ele, before) {
|
|
474
474
|
// element of chunk being split
|
|
475
475
|
var kb = store;
|
|
476
476
|
var indent = 0;
|
|
@@ -525,7 +525,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
525
525
|
queue[queueProperty] -= 1;
|
|
526
526
|
if (queue[queueProperty] > 0) {
|
|
527
527
|
(0, _debug.log)(' Implementing queued newlines = ' + next.newLinesBefore);
|
|
528
|
-
|
|
528
|
+
_newChunk(newPart, before);
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
531
|
}
|
|
@@ -645,13 +645,13 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
645
645
|
|
|
646
646
|
// Refresh the DOM tree
|
|
647
647
|
|
|
648
|
-
var
|
|
648
|
+
var _refreshTree = function refreshTree(root) {
|
|
649
649
|
if (root.refresh) {
|
|
650
650
|
root.refresh();
|
|
651
651
|
return;
|
|
652
652
|
}
|
|
653
653
|
for (var i = 0; i < root.children.length; i++) {
|
|
654
|
-
|
|
654
|
+
_refreshTree(root.children[i]);
|
|
655
655
|
}
|
|
656
656
|
};
|
|
657
657
|
var reloading = false;
|
|
@@ -661,7 +661,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
661
661
|
if (!consistencyCheck()) {
|
|
662
662
|
complain('CONSISTENCY CHECK FAILED');
|
|
663
663
|
} else {
|
|
664
|
-
|
|
664
|
+
_refreshTree(table);
|
|
665
665
|
}
|
|
666
666
|
};
|
|
667
667
|
var reloadAndSync = function reloadAndSync() {
|
|
@@ -671,7 +671,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
671
671
|
}
|
|
672
672
|
reloading = true;
|
|
673
673
|
var retryTimeout = 1000; // ms
|
|
674
|
-
var
|
|
674
|
+
var _tryReload = function tryReload() {
|
|
675
675
|
(0, _debug.log)('try reload - timeout = ' + retryTimeout);
|
|
676
676
|
if (!updater) {
|
|
677
677
|
throw new Error('no updater');
|
|
@@ -685,14 +685,14 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
685
685
|
complain('Network error refreshing the pad. Retrying in ' + retryTimeout / 1000);
|
|
686
686
|
reloading = true;
|
|
687
687
|
retryTimeout = retryTimeout * 2;
|
|
688
|
-
setTimeout(
|
|
688
|
+
setTimeout(_tryReload, retryTimeout);
|
|
689
689
|
} else {
|
|
690
690
|
complain('Error ' + xhr.status + 'refreshing the pad:' + message + '. Stopped. ' + padDoc);
|
|
691
691
|
}
|
|
692
692
|
}
|
|
693
693
|
});
|
|
694
694
|
};
|
|
695
|
-
|
|
695
|
+
_tryReload();
|
|
696
696
|
};
|
|
697
697
|
table.refresh = sync; // Catch downward propagating refresh events
|
|
698
698
|
table.reloadAndSync = reloadAndSync;
|
|
@@ -703,7 +703,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
703
703
|
sync();
|
|
704
704
|
if (kb.holds(subject, PAD('next'), subject)) {
|
|
705
705
|
// Empty list untenable
|
|
706
|
-
|
|
706
|
+
_newChunk(); // require at least one line
|
|
707
707
|
}
|
|
708
708
|
} else {
|
|
709
709
|
(0, _debug.log)(table.textContent = 'Inconsistent data. Abort');
|
|
@@ -720,7 +720,7 @@ function notepad(dom, padDoc, subject, me, options) {
|
|
|
720
720
|
complain(errorBody || '');
|
|
721
721
|
} else {
|
|
722
722
|
(0, _debug.log)('Initial pad created');
|
|
723
|
-
|
|
723
|
+
_newChunk(); // Add a first chunck
|
|
724
724
|
// getResults();
|
|
725
725
|
}
|
|
726
726
|
});
|
package/lib/pad.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pad.js","names":["ns","_interopRequireWildcard","require","_rdflib","_widgets","_utils","_debug","_solidLogic","style","_participation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","store","solidLogicSingleton","PAD","Namespace","NotepadElement","_HTMLElement","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","_inherits2","_createClass2","_wrapNativeSuper2","HTMLElement","NotepadPart","_HTMLElement2","_this2","_len2","_key2","lightColorHash","author","hash","x","split","reduce","b","charCodeAt","uri","toString","notepad","dom","padDoc","subject","me","options","exists","table","createElement","kb","Error","updater","setAttribute","notepadStyle","upstreamStatus","downstreamStatus","statusArea","appendChild","tr","complain","message","upstream","undefined","log","errorMessageBlock","clearStatus","_upsteam","innerHTML","setPartStyle","part","colors","pending","chunk","baseStyle","headingCore","headingStyle","any","dc","bgcolor","indent","value","localStyle","removePart","prev","next","sameTerm","del","statementsMatching","ins","st","NamedNode","label","slice","update","ok","errorMessage","response","row","parentNode","before","previousSibling","removeChild","firstChild","focus","status","state","beep","setTimeout","reloadAndSync","res","changeIndent","delta","current","Number","object","newIndent","errorBody","requestDownstreamAction","addListeners","addEventListener","event","queueProperty","queue","keyCode","shiftKey","newChunk","preventDefault","nextSibling","updateStore","old","sioc","newOne","lastSent","xhr","inputChangeListener","_event","newPartAfter","tr1","text","insertBefore","ele","here","tagName","toLowerCase","newThing","push","_xhr","newPart","newLinesBefore","consistencyCheck","found","failed","complain2","msg","the","k","each","sts","forEach","sync","textContent","manif","children","refreshTree","root","refresh","reloading","checkAndSync","retryTimeout","tryReload","reload","holds","insertables","rdf","Date","getChunks","chunks","xmlEncode","str","replace","notepadToHTML","pad","html","title","anyValue","dct","level","increaseLevel","decreaseLevel","anyJS","rawContent","content","h"],"sources":["../src/pad.ts"],"sourcesContent":["/** **************\n * Notepad Widget\n */\n\n/** @module pad\n */\nimport * as ns from './ns'\nimport { Namespace, NamedNode, st, IndexedFormula } from 'rdflib'\nimport { newThing, errorMessageBlock } from './widgets'\nimport { beep } from './utils'\nimport { log } from './debug'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as style from './style'\nexport { renderParticipants, participationObject, manageParticipation, recordParticipation } from './participation'\n\nconst store = solidLogicSingleton.store\n\nconst PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\ntype notepadOptions = {\n statusArea?: HTMLDivElement\n exists?: boolean\n}\n/**\n * @ignore\n */\nclass NotepadElement extends HTMLElement {\n subject?: NamedNode\n}\n/**\n * @ignore\n */\nclass NotepadPart extends HTMLElement {\n subject?: NamedNode | string\n value?: string\n state?: Number\n lastSent?: String\n}\n/** Figure out a random color from my webid\n *\n * @param {NamedNode} author - The author of text being displayed\n * @returns {String} The CSS color generated, constrained to be light for a background color\n */\nexport function lightColorHash (author?: NamedNode): string {\n const hash = function (x) {\n return x.split('').reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n }\n return author && author.uri\n ? '#' + ((hash(author.uri) & 0xffffff) | 0xc0c0c0).toString(16)\n : '#ffffff' // c0c0c0 forces pale\n} // no id -> white\n\n/** notepad\n *\n * @param {HTMLDocument} dom - the web page of the browser\n * @param {NamedNode} padDoc - the document in which the participation should be shown\n * @param {NamedNode} subject - the thing in which participation is happening\n * @param {NamedNode} me - person who is logged into the pod\n * @param {notepadOptions} options - the options that can be passed in consist of statusArea, exists\n */\nexport function notepad (dom: HTMLDocument, padDoc: NamedNode, subject: NamedNode, me: NamedNode, options?: notepadOptions) {\n options = options || {}\n const exists = options.exists\n const table: any = dom.createElement('table')\n const kb = store\n\n if (me && !me.uri) throw new Error('UI.pad.notepad: Invalid userid')\n\n const updater = store.updater\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n table.setAttribute('style', style.notepadStyle)\n\n let upstreamStatus: HTMLElement | null = null\n let downstreamStatus: HTMLElement | null = null\n\n if (options.statusArea) {\n const t = options.statusArea.appendChild(dom.createElement('table'))\n const tr = t.appendChild(dom.createElement('tr'))\n upstreamStatus = tr.appendChild(dom.createElement('td'))\n downstreamStatus = tr.appendChild(dom.createElement('td'))\n\n if (upstreamStatus) {\n upstreamStatus.setAttribute('style', style.upstreamStatus)\n }\n if (downstreamStatus) {\n downstreamStatus.setAttribute('style', style.downstreamStatus)\n }\n }\n /* @@ TODO want to look into this, it seems upstream should be a boolean and default to false ?\n *\n */\n const complain = function (message: string, upstream: boolean = false) {\n log(message)\n if ((options as notepadOptions).statusArea) {\n ; (upstream ? upstreamStatus as HTMLElement : downstreamStatus as HTMLElement).appendChild(errorMessageBlock(dom, message, 'pink'))\n }\n }\n // @@ TODO need to refactor so that we don't have to type cast\n const clearStatus = function (_upsteam?: any) {\n if ((options as notepadOptions).statusArea) {\n ((options as notepadOptions).statusArea as HTMLElement).innerHTML = ''\n }\n }\n\n const setPartStyle = function (part: NotepadPart, colors?: string, pending?: any) {\n const chunk = part.subject\n colors = colors || ''\n const baseStyle = style.baseStyle\n const headingCore = style.headingCore\n const headingStyle = style.headingStyle\n\n const author = kb.any(chunk as any, ns.dc('author'))\n if (!colors && author) {\n // Hash the user webid for now -- later allow user selection!\n const bgcolor = lightColorHash(author as any)\n colors =\n 'color: ' +\n (pending ? '#888' : 'black') +\n '; background-color: ' +\n bgcolor +\n ';'\n }\n\n // @@ TODO Need to research when this can be an object with the indent stored in value\n // and when the indent is stored as a Number itself, not in an object.\n let indent: any = kb.any(chunk as any, PAD('indent'))\n\n indent = indent ? indent.value : 0\n const localStyle =\n indent >= 0\n ? baseStyle + 'text-indent: ' + indent * 3 + 'em;'\n : headingCore + headingStyle[-1 - indent]\n // ? baseStyle + 'padding-left: ' + (indent * 3) + 'em;'\n part.setAttribute('style', localStyle + colors)\n }\n\n const removePart = function (part: NotepadPart) {\n const chunk = part.subject\n if (!chunk) throw new Error('No chunk for line to be deleted!') // just in case\n const prev: any = kb.any(undefined, PAD('next'), chunk as any)\n const next: any = kb.any(chunk as any, PAD('next'))\n if (prev.sameTerm(subject) && next.sameTerm(subject)) {\n // Last one\n log(\"You can't delete the only line.\")\n return\n }\n\n const del = kb\n .statementsMatching(chunk as any, undefined, undefined, padDoc)\n .concat(kb.statementsMatching(undefined, undefined, chunk as any, padDoc))\n const ins = [st(prev, PAD('next'), next, padDoc)]\n\n // @@ TODO what should we do if chunk is not a NamedNode should we\n // assume then it is a string?\n if (chunk instanceof NamedNode) {\n const label = chunk.uri.slice(-4)\n\n log('Deleting line ' + label)\n }\n if (!updater) {\n throw new Error('have no updater')\n }\n // @@ TODO below you can see that before is redefined and not a boolean\n updater.update(del, ins, function (uri, ok, errorMessage, response) {\n if (ok) {\n const row = part.parentNode\n if (row) {\n const before: any = row.previousSibling\n if (row.parentNode) {\n row.parentNode.removeChild(row)\n }\n // console.log(' deleted line ' + label + ' ok ' + part.value)\n if (before && before.firstChild) {\n // @@ TODO IMPORTANT FOCUS ISN'T A PROPERTY ON A CHILDNODE\n before.firstChild.focus()\n }\n }\n } else if (response && (response as any).status === 409) {\n // Conflict\n setPartStyle(part, 'color: black; background-color: #ffd;') // yellow\n part.state = 0 // Needs downstream refresh\n beep(0.5, 512) // Ooops clash with other person\n setTimeout(function () {\n // Ideally, beep! @@\n reloadAndSync() // Throw away our changes and\n // updater.requestDownstreamAction(padDoc, reloadAndSync)\n }, 1000)\n } else {\n log(' removePart FAILED ' + chunk + ': ' + errorMessage)\n log(\" removePart was deleteing :'\" + del)\n setPartStyle(part, 'color: black; background-color: #fdd;') // failed\n const res = response ? (response as any).status : ' [no response field] '\n complain('Error ' + res + ' saving changes: ' + (errorMessage as any).true) // upstream,\n // updater.requestDownstreamAction(padDoc, reloadAndSync);\n }\n })\n } // removePart\n\n const changeIndent = function (part: NotepadPart, chunk: string, delta) {\n const del = kb.statementsMatching(chunk as any, PAD('indent'))\n const current = del.length ? Number(del[0].object.value) : 0\n if (current + delta < -3) return // limit negative indent\n const newIndent = current + delta\n const ins = st(chunk as any, PAD('indent'), newIndent, padDoc)\n if (!updater) {\n throw new Error('no updater')\n }\n updater.update(del, ins as any, function (uri, ok, errorBody) {\n if (!ok) {\n log(\n \"Indent change FAILED '\" +\n newIndent +\n \"' for \" +\n padDoc +\n ': ' +\n errorBody\n )\n setPartStyle(part, 'color: black; background-color: #fdd;') // failed\n updater.requestDownstreamAction(padDoc, reloadAndSync)\n } else {\n setPartStyle(part) // Implement the indent\n }\n })\n }\n\n const addListeners = function (part: any, chunk: any) {\n part.addEventListener('keydown', function (event) {\n if (!updater) {\n throw new Error('no updater')\n }\n\n let queueProperty, queue\n // up 38; down 40; left 37; right 39 tab 9; shift 16; escape 27\n switch (event.keyCode) {\n case 13: // Return\n {\n const before: NotepadElement = event.shiftKey\n log('enter') // Shift-return inserts before -- only way to add to top of pad.\n if (before) {\n queue = kb.any(undefined, PAD('next'), chunk)\n queueProperty = 'newlinesAfter'\n } else {\n queue = kb.any(chunk, PAD('next'))\n queueProperty = 'newlinesBefore'\n }\n queue[queueProperty] = queue[queueProperty] || 0\n queue[queueProperty] += 1\n if (queue[queueProperty] > 1) {\n log(' queueing newline queue = ' + queue[queueProperty])\n return\n }\n log(' go ahead line before ' + queue[queueProperty])\n newChunk(part, before) // was document.activeElement\n break\n }\n case 8: // Delete\n if (part.value.length === 0) {\n log(\n 'Delete key line ' + chunk.uri.slice(-4) + ' state ' + part.state\n )\n\n switch (part.state) {\n case 1: // contents being sent\n case 2: // contents need to be sent again\n part.state = 4 // delete me\n return\n case 3: // already being deleted\n case 4: // already deleted state\n return\n case undefined:\n case 0:\n part.state = 3 // being deleted\n removePart(part)\n event.preventDefault()\n break // continue\n default:\n throw new Error('pad: Unexpected state ' + part)\n }\n }\n break\n case 9: // Tab\n {\n const delta = event.shiftKey ? -1 : 1\n changeIndent(part, chunk, delta)\n event.preventDefault() // default is to highlight next field\n break\n }\n case 27: // ESC\n log('escape')\n updater.requestDownstreamAction(padDoc, reloadAndSync)\n event.preventDefault()\n break\n\n case 38: // Up\n if (part.parentNode.previousSibling) {\n part.parentNode.previousSibling.firstChild.focus()\n event.preventDefault()\n }\n break\n\n case 40: // Down\n if (part.parentNode.nextSibling) {\n part.parentNode.nextSibling.firstChild.focus()\n event.preventDefault()\n }\n break\n\n default:\n }\n })\n\n const updateStore = function (part: NotepadPart) {\n const chunk: any = part.subject\n setPartStyle(part, undefined, true)\n const old = (kb.any(chunk, ns.sioc('content')) as any).value\n const del = [st(chunk, ns.sioc('content'), old, padDoc)]\n let ins\n if (part.value) {\n ins = [st(chunk, ns.sioc('content'), part.value as any, padDoc)]\n }\n const newOne = part.value\n\n // DEBUGGING ONLY\n if (part.lastSent) {\n if (old !== part.lastSent) {\n throw new Error(\n \"Out of order, last sent expected '\" +\n old +\n \"' but found '\" +\n part.lastSent +\n \"'\"\n )\n }\n }\n part.lastSent = newOne\n\n /* console.log(\n ' Patch proposed to ' +\n chunk.uri.slice(-4) +\n \" '\" +\n old +\n \"' -> '\" +\n newOne +\n \"' \"\n ) */\n if (!updater) {\n throw new Error('no updater')\n }\n\n updater.update(del, ins, function (uri, ok, errorBody, xhr) {\n if (!ok) {\n // alert(\"clash \" + errorBody);\n log(\n ' patch FAILED ' +\n (xhr as any).status +\n \" for '\" +\n old +\n \"' -> '\" +\n newOne +\n \"': \" +\n errorBody\n )\n if ((xhr as any).status === 409) {\n // Conflict - @@ we assume someone else\n setPartStyle(part, 'color: black; background-color: #fdd;')\n part.state = 0 // Needs downstream refresh\n beep(0.5, 512) // Ooops clash with other person\n setTimeout(function () {\n updater.requestDownstreamAction(padDoc, reloadAndSync)\n }, 1000)\n } else {\n setPartStyle(part, 'color: black; background-color: #fdd;') // failed pink\n part.state = 0\n complain(\n ' Error ' + (xhr as any).status + ' sending data: ' + errorBody,\n true\n )\n beep(1.0, 128) // Other\n // @@@ Do soemthing more serious with other errors eg auth, etc\n }\n } else {\n clearStatus(true) // upstream\n setPartStyle(part) // synced\n log(\" Patch ok '\" + old + \"' -> '\" + newOne + \"' \")\n\n if (part.state === 4) {\n // delete me\n part.state = 3\n removePart(part)\n } else if (part.state === 3) {\n // being deleted\n // pass\n } else if (part.state === 2) {\n part.state = 1 // pending: lock\n updateStore(part)\n } else {\n part.state = 0 // clear lock\n }\n }\n })\n }\n\n part.addEventListener('input', function inputChangeListener (_event) {\n // debug.log(\"input changed \"+part.value);\n setPartStyle(part, undefined, true) // grey out - not synced\n log(\n 'Input event state ' + part.state + \" value '\" + part.value + \"'\"\n )\n switch (part.state) {\n case 3: // being deleted\n return\n case 4: // needs to be deleted\n return\n case 2: // needs content updating, we know\n return\n case 1:\n part.state = 2 // lag we need another patch\n return\n case 0:\n case undefined:\n part.state = 1 // being upadted\n updateStore(part)\n }\n }) // listener\n } // addlisteners\n\n // @@ TODO Need to research before as it appears to be used as an Element and a boolean\n const newPartAfter = function (tr1: HTMLTableElement, chunk: String, before?: NotepadElement | boolean) {\n // @@ take chunk and add listeners\n let text: any = kb.any(chunk as any, ns.sioc('content'))\n text = text ? text.value : ''\n const tr = dom.createElement('tr')\n if (before) {\n table.insertBefore(tr, tr1)\n } else {\n // after\n if (tr1 && tr1.nextSibling) {\n table.insertBefore(tr, tr1.nextSibling)\n } else {\n table.appendChild(tr)\n }\n }\n const part: any = tr.appendChild(dom.createElement('input'))\n part.subject = chunk\n part.setAttribute('type', 'text')\n part.value = text\n if (me) {\n setPartStyle(part, '')\n addListeners(part, chunk)\n } else {\n setPartStyle(part, 'color: #222; background-color: #fff')\n log(\"Note can't add listeners - not logged in\")\n }\n return part\n }\n\n /* @@ TODO we need to look at indent, it can be a Number or an Object this doesn't seem correct.\n */\n const newChunk = function (ele?: NotepadElement, before?: NotepadElement) {\n // element of chunk being split\n const kb = store\n let indent: any = 0\n let queueProperty: string | null = null\n let here, prev, next, queue, tr1: any\n\n if (ele) {\n if (ele.tagName.toLowerCase() !== 'input') {\n log('return pressed when current document is: ' + ele.tagName)\n }\n here = ele.subject\n indent = kb.any(here, PAD('indent'))\n indent = indent ? Number(indent.value) : 0\n if (before) {\n prev = kb.any(undefined, PAD('next'), here)\n next = here\n queue = prev\n queueProperty = 'newlinesAfter'\n } else {\n prev = here\n next = kb.any(here, PAD('next'))\n queue = next\n queueProperty = 'newlinesBefore'\n }\n tr1 = ele.parentNode\n } else {\n prev = subject\n next = subject\n tr1 = undefined\n }\n\n const chunk = newThing(padDoc)\n const label = chunk.uri.slice(-4)\n\n const del = [st(prev, PAD('next'), next, padDoc)]\n const ins = [\n st(prev, PAD('next'), chunk, padDoc),\n st(chunk, PAD('next'), next, padDoc),\n st(chunk, ns.dc('author'), me, padDoc),\n st(chunk, ns.sioc('content'), '' as any, padDoc)\n ]\n if (indent > 0) {\n // Do not inherit\n ins.push(st(chunk, PAD('indent'), indent, padDoc))\n }\n\n log(' Fresh chunk ' + label + ' proposed')\n if (!updater) {\n throw new Error('no updater')\n }\n updater.update(del, ins, function (uri, ok, errorBody, _xhr) {\n if (!ok) {\n // alert(\"Error writing new line \" + label + \": \" + errorBody);\n log(' ERROR writing new line ' + label + ': ' + errorBody)\n } else {\n const newPart = newPartAfter(tr1, chunk, before)\n setPartStyle(newPart)\n newPart.focus() // Note this is delayed\n if (queueProperty) {\n log(\n ' Fresh chunk ' +\n label +\n ' updated, queue = ' +\n queue[queueProperty]\n )\n queue[queueProperty] -= 1\n if (queue[queueProperty] > 0) {\n log(\n ' Implementing queued newlines = ' + next.newLinesBefore\n )\n newChunk(newPart, before)\n }\n }\n }\n })\n }\n\n const consistencyCheck = function () {\n const found: { [uri: string]: boolean } = {}\n let failed = 0\n function complain2 (msg) {\n complain(msg)\n failed++\n }\n\n if (!kb.the(subject, PAD('next'))) {\n complain2('No initial next pointer')\n return false // can't do linked list\n }\n // var chunk = kb.the(subject, PAD('next'))\n let prev = subject\n let chunk\n for (; ;) {\n chunk = kb.the(prev, PAD('next'))\n if (!chunk) {\n complain2('No next pointer from ' + prev)\n }\n if (chunk.sameTerm(subject)) {\n break\n }\n prev = chunk\n const label = chunk.uri.split('#')[1]\n if (found[chunk.uri]) {\n complain2('Loop!')\n return false\n }\n\n found[chunk.uri] = true\n let k = kb.each(chunk, PAD('next')).length\n if (k !== 1) {\n complain2('Should be 1 not ' + k + ' next pointer for ' + label)\n }\n\n k = kb.each(chunk, PAD('indent')).length\n if (k > 1) {\n complain2('Should be 0 or 1 not ' + k + ' indent for ' + label)\n }\n\n k = kb.each(chunk, ns.sioc('content')).length\n if (k !== 1) {\n complain2('Should be 1 not ' + k + ' contents for ' + label)\n }\n\n k = kb.each(chunk, ns.dc('author')).length\n if (k !== 1) {\n complain2('Should be 1 not ' + k + ' author for ' + label)\n }\n\n const sts = kb.statementsMatching(undefined, ns.sioc('contents'))\n sts.forEach(function (st) {\n if (!found[st.subject.value]) {\n complain2('Loose chunk! ' + st.subject.value)\n }\n })\n }\n return !failed\n }\n\n // Ensure that the display matches the current state of the\n // @@ TODO really need to refactor this so that we don't need to cast types\n const sync = function () {\n // var first = kb.the(subject, PAD('next'))\n if (kb.each(subject, PAD('next')).length !== 1) {\n const msg =\n 'Pad: Inconsistent data - NEXT pointers: ' +\n kb.each(subject, PAD('next')).length\n log(msg)\n if ((options as notepadOptions).statusArea) {\n ((options as notepadOptions).statusArea as HTMLElement).textContent += msg\n }\n return\n }\n let row\n\n // First see which of the logical chunks have existing physical manifestations\n const manif: any = []\n // Find which lines correspond to existing chunks\n\n for (\n let chunk = kb.the(subject, PAD('next')) as unknown as any;\n !chunk.sameTerm(subject);\n chunk = kb.the(chunk, PAD('next'))\n ) {\n for (let i = 0; i < table.children.length; i++) {\n const tr: any = table.children[i]\n if (tr.firstChild) {\n if (tr.firstChild.subject.sameTerm(chunk)) {\n manif[chunk.uri] = tr.firstChild\n }\n }\n }\n }\n\n // Remove any deleted lines\n for (let i = table.children.length - 1; i >= 0; i--) {\n row = table.children[i]\n if (!manif[row.firstChild.subject.uri]) {\n table.removeChild(row)\n }\n }\n // Insert any new lines and update old ones\n row = table.firstChild // might be null\n for (\n let chunk = kb.the(subject, PAD('next')) as unknown as any;\n !chunk.sameTerm(subject);\n chunk = kb.the(chunk, PAD('next'))\n ) {\n const text = (kb.any(chunk, ns.sioc('content')) as any).value\n // superstitious -- don't mess with unchanged input fields\n // which may be selected by the user\n if (row && manif[chunk.uri]) {\n const part = row.firstChild\n if (text !== part.value) {\n part.value = text\n }\n setPartStyle(part)\n part.state = 0 // Clear the state machine\n delete part.lastSent // DEBUG ONLY\n row = row.nextSibling\n } else {\n newPartAfter(row, chunk, true) // actually before\n }\n }\n }\n\n // Refresh the DOM tree\n\n const refreshTree = function (root) {\n if (root.refresh) {\n root.refresh()\n return\n }\n for (let i = 0; i < root.children.length; i++) {\n refreshTree(root.children[i])\n }\n }\n\n let reloading = false\n\n const checkAndSync = function () {\n log(' reloaded OK')\n clearStatus()\n if (!consistencyCheck()) {\n complain('CONSISTENCY CHECK FAILED')\n } else {\n refreshTree(table)\n }\n }\n\n const reloadAndSync = function () {\n if (reloading) {\n log(' Already reloading - stop')\n return // once only needed\n }\n reloading = true\n let retryTimeout = 1000 // ms\n const tryReload = function () {\n log('try reload - timeout = ' + retryTimeout)\n if (!updater) {\n throw new Error('no updater')\n }\n updater.reload(updater.store, padDoc, function (ok, message, xhr) {\n reloading = false\n if (ok) {\n checkAndSync()\n } else {\n if ((xhr as any).status === 0) {\n complain(\n 'Network error refreshing the pad. Retrying in ' +\n retryTimeout / 1000\n )\n reloading = true\n retryTimeout = retryTimeout * 2\n setTimeout(tryReload, retryTimeout)\n } else {\n complain(\n 'Error ' +\n (xhr as any).status +\n 'refreshing the pad:' +\n message +\n '. Stopped. ' +\n padDoc\n )\n }\n }\n })\n }\n tryReload()\n }\n\n table.refresh = sync // Catch downward propagating refresh events\n table.reloadAndSync = reloadAndSync\n\n if (!me) log('Warning: must be logged in for pad to be edited')\n\n if (exists) {\n log('Existing pad.')\n if (consistencyCheck()) {\n sync()\n if (kb.holds(subject, PAD('next'), subject)) {\n // Empty list untenable\n newChunk() // require at least one line\n }\n } else {\n log((table.textContent = 'Inconsistent data. Abort'))\n }\n } else {\n // Make new pad\n log('No pad exists - making new one.')\n const insertables = [\n st(subject, ns.rdf('type'), PAD('Notepad'), padDoc),\n st(subject, ns.dc('author'), me, padDoc),\n st(subject, ns.dc('created'), new Date() as any, padDoc),\n st(subject, PAD('next'), subject, padDoc)\n ]\n\n if (!updater) {\n throw new Error('no updater')\n }\n updater.update([], insertables, function (uri: string | null | undefined, ok: boolean, errorBody?: string) {\n if (!ok) {\n complain(errorBody || '')\n } else {\n log('Initial pad created')\n newChunk() // Add a first chunck\n // getResults();\n }\n })\n }\n return table\n}\n\n/**\n * Get the chunks of the notepad\n * They are stored in a RDF linked list\n */\n\n// @ignore exporting this only for the unit test\nexport function getChunks (subject: NamedNode, kb: IndexedFormula) {\n const chunks: any[] = []\n for (\n let chunk: any = kb.the(subject, PAD('next'));\n !chunk.sameTerm(subject);\n chunk = kb.the(chunk, PAD('next'))\n ) {\n chunks.push(chunk)\n }\n return chunks\n}\n\n/**\n * Encode content to be put in XML or HTML elements\n */\n// @ignore exporting this only for the unit test\nexport function xmlEncode (str) {\n return str.replace('&', '&').replace('<', '<').replace('>', '>')\n}\n\n/**\n * Convert a notepad to HTML\n * @param { } pad - the notepad\n * @param {store} pad - the data store\n */\nexport function notepadToHTML (pad: any, kb: IndexedFormula) {\n const chunks = getChunks(pad, kb)\n let html = '<html>\\n <head>\\n'\n const title = kb.anyValue(pad, ns.dct('title'))\n if (title) {\n html += ` <title>${xmlEncode(title)}</title>\\n`\n }\n html += ' </head>\\n <body>\\n'\n let level = 0\n\n function increaseLevel (indent) {\n for (; level < indent; level++) {\n html += '<ul>\\n'\n }\n }\n\n function decreaseLevel (indent) {\n for (; level > indent; level--) {\n html += '</ul>\\n'\n }\n }\n chunks.forEach(chunk => {\n const indent = kb.anyJS(chunk, PAD('indent'))\n const rawContent = kb.anyJS(chunk, ns.sioc('content'))\n if (!rawContent) return // seed chunk is dummy\n const content = xmlEncode(rawContent)\n if (indent < 0) { // negative indent levels represent heading levels\n decreaseLevel(0)\n const h = indent >= -3 ? 4 + indent : 1 // -1 -> h4, -2 -> h3\n html += `\\n<h${h}>${content}</h${h}>\\n`\n } else { // >= 0\n if (indent > 0) { // Lists\n decreaseLevel(indent)\n increaseLevel(indent)\n html += `<li>${content}</li>\\n`\n } else { // indent 0\n decreaseLevel(indent)\n html += `<p>${content}</p>\\n`\n }\n }\n }) // foreach chunk\n // At the end decreaseLevel any open ULs\n decreaseLevel(0)\n html += ' </body>\\n</html>\\n'\n return html\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"pad.js","names":["ns","_interopRequireWildcard","require","_rdflib","_widgets","_utils","_debug","_solidLogic","style","_participation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","store","solidLogicSingleton","PAD","Namespace","NotepadElement","_HTMLElement","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","_inherits2","_createClass2","_wrapNativeSuper2","HTMLElement","NotepadPart","_HTMLElement2","_this2","_len2","_key2","lightColorHash","author","hash","x","split","reduce","b","charCodeAt","uri","toString","notepad","dom","padDoc","subject","me","options","exists","table","createElement","kb","Error","updater","setAttribute","notepadStyle","upstreamStatus","downstreamStatus","statusArea","appendChild","tr","complain","message","upstream","undefined","log","errorMessageBlock","clearStatus","_upsteam","innerHTML","setPartStyle","part","colors","pending","chunk","baseStyle","headingCore","headingStyle","any","dc","bgcolor","indent","value","localStyle","removePart","prev","next","sameTerm","del","statementsMatching","ins","st","NamedNode","label","slice","update","ok","errorMessage","response","row","parentNode","before","previousSibling","removeChild","firstChild","focus","status","state","beep","setTimeout","reloadAndSync","res","changeIndent","delta","current","Number","object","newIndent","errorBody","requestDownstreamAction","addListeners","addEventListener","event","queueProperty","queue","keyCode","shiftKey","newChunk","preventDefault","nextSibling","updateStore","old","sioc","newOne","lastSent","xhr","inputChangeListener","_event","newPartAfter","tr1","text","insertBefore","ele","here","tagName","toLowerCase","newThing","push","_xhr","newPart","newLinesBefore","consistencyCheck","found","failed","complain2","msg","the","k","each","sts","forEach","sync","textContent","manif","children","refreshTree","root","refresh","reloading","checkAndSync","retryTimeout","tryReload","reload","holds","insertables","rdf","Date","getChunks","chunks","xmlEncode","str","replace","notepadToHTML","pad","html","title","anyValue","dct","level","increaseLevel","decreaseLevel","anyJS","rawContent","content","h"],"sources":["../src/pad.ts"],"sourcesContent":["/** **************\n * Notepad Widget\n */\n\n/** @module pad\n */\nimport * as ns from './ns'\nimport { Namespace, NamedNode, st, IndexedFormula } from 'rdflib'\nimport { newThing, errorMessageBlock } from './widgets'\nimport { beep } from './utils'\nimport { log } from './debug'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as style from './style'\nexport { renderParticipants, participationObject, manageParticipation, recordParticipation } from './participation'\n\nconst store = solidLogicSingleton.store\n\nconst PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\ntype notepadOptions = {\n statusArea?: HTMLDivElement\n exists?: boolean\n}\n/**\n * @ignore\n */\nclass NotepadElement extends HTMLElement {\n subject?: NamedNode\n}\n/**\n * @ignore\n */\nclass NotepadPart extends HTMLElement {\n subject?: NamedNode | string\n value?: string\n state?: Number\n lastSent?: String\n}\n/** Figure out a random color from my webid\n *\n * @param {NamedNode} author - The author of text being displayed\n * @returns {String} The CSS color generated, constrained to be light for a background color\n */\nexport function lightColorHash (author?: NamedNode): string {\n const hash = function (x) {\n return x.split('').reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n }\n return author && author.uri\n ? '#' + ((hash(author.uri) & 0xffffff) | 0xc0c0c0).toString(16)\n : '#ffffff' // c0c0c0 forces pale\n} // no id -> white\n\n/** notepad\n *\n * @param {HTMLDocument} dom - the web page of the browser\n * @param {NamedNode} padDoc - the document in which the participation should be shown\n * @param {NamedNode} subject - the thing in which participation is happening\n * @param {NamedNode} me - person who is logged into the pod\n * @param {notepadOptions} options - the options that can be passed in consist of statusArea, exists\n */\nexport function notepad (dom: HTMLDocument, padDoc: NamedNode, subject: NamedNode, me: NamedNode, options?: notepadOptions) {\n options = options || {}\n const exists = options.exists\n const table: any = dom.createElement('table')\n const kb = store\n\n if (me && !me.uri) throw new Error('UI.pad.notepad: Invalid userid')\n\n const updater = store.updater\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n table.setAttribute('style', style.notepadStyle)\n\n let upstreamStatus: HTMLElement | null = null\n let downstreamStatus: HTMLElement | null = null\n\n if (options.statusArea) {\n const t = options.statusArea.appendChild(dom.createElement('table'))\n const tr = t.appendChild(dom.createElement('tr'))\n upstreamStatus = tr.appendChild(dom.createElement('td'))\n downstreamStatus = tr.appendChild(dom.createElement('td'))\n\n if (upstreamStatus) {\n upstreamStatus.setAttribute('style', style.upstreamStatus)\n }\n if (downstreamStatus) {\n downstreamStatus.setAttribute('style', style.downstreamStatus)\n }\n }\n /* @@ TODO want to look into this, it seems upstream should be a boolean and default to false ?\n *\n */\n const complain = function (message: string, upstream: boolean = false) {\n log(message)\n if ((options as notepadOptions).statusArea) {\n ; (upstream ? upstreamStatus as HTMLElement : downstreamStatus as HTMLElement).appendChild(errorMessageBlock(dom, message, 'pink'))\n }\n }\n // @@ TODO need to refactor so that we don't have to type cast\n const clearStatus = function (_upsteam?: any) {\n if ((options as notepadOptions).statusArea) {\n ((options as notepadOptions).statusArea as HTMLElement).innerHTML = ''\n }\n }\n\n const setPartStyle = function (part: NotepadPart, colors?: string, pending?: any) {\n const chunk = part.subject\n colors = colors || ''\n const baseStyle = style.baseStyle\n const headingCore = style.headingCore\n const headingStyle = style.headingStyle\n\n const author = kb.any(chunk as any, ns.dc('author'))\n if (!colors && author) {\n // Hash the user webid for now -- later allow user selection!\n const bgcolor = lightColorHash(author as any)\n colors =\n 'color: ' +\n (pending ? '#888' : 'black') +\n '; background-color: ' +\n bgcolor +\n ';'\n }\n\n // @@ TODO Need to research when this can be an object with the indent stored in value\n // and when the indent is stored as a Number itself, not in an object.\n let indent: any = kb.any(chunk as any, PAD('indent'))\n\n indent = indent ? indent.value : 0\n const localStyle =\n indent >= 0\n ? baseStyle + 'text-indent: ' + indent * 3 + 'em;'\n : headingCore + headingStyle[-1 - indent]\n // ? baseStyle + 'padding-left: ' + (indent * 3) + 'em;'\n part.setAttribute('style', localStyle + colors)\n }\n\n const removePart = function (part: NotepadPart) {\n const chunk = part.subject\n if (!chunk) throw new Error('No chunk for line to be deleted!') // just in case\n const prev: any = kb.any(undefined, PAD('next'), chunk as any)\n const next: any = kb.any(chunk as any, PAD('next'))\n if (prev.sameTerm(subject) && next.sameTerm(subject)) {\n // Last one\n log(\"You can't delete the only line.\")\n return\n }\n\n const del = kb\n .statementsMatching(chunk as any, undefined, undefined, padDoc)\n .concat(kb.statementsMatching(undefined, undefined, chunk as any, padDoc))\n const ins = [st(prev, PAD('next'), next, padDoc)]\n\n // @@ TODO what should we do if chunk is not a NamedNode should we\n // assume then it is a string?\n if (chunk instanceof NamedNode) {\n const label = chunk.uri.slice(-4)\n\n log('Deleting line ' + label)\n }\n if (!updater) {\n throw new Error('have no updater')\n }\n // @@ TODO below you can see that before is redefined and not a boolean\n updater.update(del, ins, function (uri, ok, errorMessage, response) {\n if (ok) {\n const row = part.parentNode\n if (row) {\n const before: any = row.previousSibling\n if (row.parentNode) {\n row.parentNode.removeChild(row)\n }\n // console.log(' deleted line ' + label + ' ok ' + part.value)\n if (before && before.firstChild) {\n // @@ TODO IMPORTANT FOCUS ISN'T A PROPERTY ON A CHILDNODE\n before.firstChild.focus()\n }\n }\n } else if (response && (response as any).status === 409) {\n // Conflict\n setPartStyle(part, 'color: black; background-color: #ffd;') // yellow\n part.state = 0 // Needs downstream refresh\n beep(0.5, 512) // Ooops clash with other person\n setTimeout(function () {\n // Ideally, beep! @@\n reloadAndSync() // Throw away our changes and\n // updater.requestDownstreamAction(padDoc, reloadAndSync)\n }, 1000)\n } else {\n log(' removePart FAILED ' + chunk + ': ' + errorMessage)\n log(\" removePart was deleteing :'\" + del)\n setPartStyle(part, 'color: black; background-color: #fdd;') // failed\n const res = response ? (response as any).status : ' [no response field] '\n complain('Error ' + res + ' saving changes: ' + (errorMessage as any).true) // upstream,\n // updater.requestDownstreamAction(padDoc, reloadAndSync);\n }\n })\n } // removePart\n\n const changeIndent = function (part: NotepadPart, chunk: string, delta) {\n const del = kb.statementsMatching(chunk as any, PAD('indent'))\n const current = del.length ? Number(del[0].object.value) : 0\n if (current + delta < -3) return // limit negative indent\n const newIndent = current + delta\n const ins = st(chunk as any, PAD('indent'), newIndent, padDoc)\n if (!updater) {\n throw new Error('no updater')\n }\n updater.update(del, ins as any, function (uri, ok, errorBody) {\n if (!ok) {\n log(\n \"Indent change FAILED '\" +\n newIndent +\n \"' for \" +\n padDoc +\n ': ' +\n errorBody\n )\n setPartStyle(part, 'color: black; background-color: #fdd;') // failed\n updater.requestDownstreamAction(padDoc, reloadAndSync)\n } else {\n setPartStyle(part) // Implement the indent\n }\n })\n }\n\n const addListeners = function (part: any, chunk: any) {\n part.addEventListener('keydown', function (event) {\n if (!updater) {\n throw new Error('no updater')\n }\n\n let queueProperty, queue\n // up 38; down 40; left 37; right 39 tab 9; shift 16; escape 27\n switch (event.keyCode) {\n case 13: // Return\n {\n const before: NotepadElement = event.shiftKey\n log('enter') // Shift-return inserts before -- only way to add to top of pad.\n if (before) {\n queue = kb.any(undefined, PAD('next'), chunk)\n queueProperty = 'newlinesAfter'\n } else {\n queue = kb.any(chunk, PAD('next'))\n queueProperty = 'newlinesBefore'\n }\n queue[queueProperty] = queue[queueProperty] || 0\n queue[queueProperty] += 1\n if (queue[queueProperty] > 1) {\n log(' queueing newline queue = ' + queue[queueProperty])\n return\n }\n log(' go ahead line before ' + queue[queueProperty])\n newChunk(part, before) // was document.activeElement\n break\n }\n case 8: // Delete\n if (part.value.length === 0) {\n log(\n 'Delete key line ' + chunk.uri.slice(-4) + ' state ' + part.state\n )\n\n switch (part.state) {\n case 1: // contents being sent\n case 2: // contents need to be sent again\n part.state = 4 // delete me\n return\n case 3: // already being deleted\n case 4: // already deleted state\n return\n case undefined:\n case 0:\n part.state = 3 // being deleted\n removePart(part)\n event.preventDefault()\n break // continue\n default:\n throw new Error('pad: Unexpected state ' + part)\n }\n }\n break\n case 9: // Tab\n {\n const delta = event.shiftKey ? -1 : 1\n changeIndent(part, chunk, delta)\n event.preventDefault() // default is to highlight next field\n break\n }\n case 27: // ESC\n log('escape')\n updater.requestDownstreamAction(padDoc, reloadAndSync)\n event.preventDefault()\n break\n\n case 38: // Up\n if (part.parentNode.previousSibling) {\n part.parentNode.previousSibling.firstChild.focus()\n event.preventDefault()\n }\n break\n\n case 40: // Down\n if (part.parentNode.nextSibling) {\n part.parentNode.nextSibling.firstChild.focus()\n event.preventDefault()\n }\n break\n\n default:\n }\n })\n\n const updateStore = function (part: NotepadPart) {\n const chunk: any = part.subject\n setPartStyle(part, undefined, true)\n const old = (kb.any(chunk, ns.sioc('content')) as any).value\n const del = [st(chunk, ns.sioc('content'), old, padDoc)]\n let ins\n if (part.value) {\n ins = [st(chunk, ns.sioc('content'), part.value as any, padDoc)]\n }\n const newOne = part.value\n\n // DEBUGGING ONLY\n if (part.lastSent) {\n if (old !== part.lastSent) {\n throw new Error(\n \"Out of order, last sent expected '\" +\n old +\n \"' but found '\" +\n part.lastSent +\n \"'\"\n )\n }\n }\n part.lastSent = newOne\n\n /* console.log(\n ' Patch proposed to ' +\n chunk.uri.slice(-4) +\n \" '\" +\n old +\n \"' -> '\" +\n newOne +\n \"' \"\n ) */\n if (!updater) {\n throw new Error('no updater')\n }\n\n updater.update(del, ins, function (uri, ok, errorBody, xhr) {\n if (!ok) {\n // alert(\"clash \" + errorBody);\n log(\n ' patch FAILED ' +\n (xhr as any).status +\n \" for '\" +\n old +\n \"' -> '\" +\n newOne +\n \"': \" +\n errorBody\n )\n if ((xhr as any).status === 409) {\n // Conflict - @@ we assume someone else\n setPartStyle(part, 'color: black; background-color: #fdd;')\n part.state = 0 // Needs downstream refresh\n beep(0.5, 512) // Ooops clash with other person\n setTimeout(function () {\n updater.requestDownstreamAction(padDoc, reloadAndSync)\n }, 1000)\n } else {\n setPartStyle(part, 'color: black; background-color: #fdd;') // failed pink\n part.state = 0\n complain(\n ' Error ' + (xhr as any).status + ' sending data: ' + errorBody,\n true\n )\n beep(1.0, 128) // Other\n // @@@ Do soemthing more serious with other errors eg auth, etc\n }\n } else {\n clearStatus(true) // upstream\n setPartStyle(part) // synced\n log(\" Patch ok '\" + old + \"' -> '\" + newOne + \"' \")\n\n if (part.state === 4) {\n // delete me\n part.state = 3\n removePart(part)\n } else if (part.state === 3) {\n // being deleted\n // pass\n } else if (part.state === 2) {\n part.state = 1 // pending: lock\n updateStore(part)\n } else {\n part.state = 0 // clear lock\n }\n }\n })\n }\n\n part.addEventListener('input', function inputChangeListener (_event) {\n // debug.log(\"input changed \"+part.value);\n setPartStyle(part, undefined, true) // grey out - not synced\n log(\n 'Input event state ' + part.state + \" value '\" + part.value + \"'\"\n )\n switch (part.state) {\n case 3: // being deleted\n return\n case 4: // needs to be deleted\n return\n case 2: // needs content updating, we know\n return\n case 1:\n part.state = 2 // lag we need another patch\n return\n case 0:\n case undefined:\n part.state = 1 // being upadted\n updateStore(part)\n }\n }) // listener\n } // addlisteners\n\n // @@ TODO Need to research before as it appears to be used as an Element and a boolean\n const newPartAfter = function (tr1: HTMLTableElement, chunk: String, before?: NotepadElement | boolean) {\n // @@ take chunk and add listeners\n let text: any = kb.any(chunk as any, ns.sioc('content'))\n text = text ? text.value : ''\n const tr = dom.createElement('tr')\n if (before) {\n table.insertBefore(tr, tr1)\n } else {\n // after\n if (tr1 && tr1.nextSibling) {\n table.insertBefore(tr, tr1.nextSibling)\n } else {\n table.appendChild(tr)\n }\n }\n const part: any = tr.appendChild(dom.createElement('input'))\n part.subject = chunk\n part.setAttribute('type', 'text')\n part.value = text\n if (me) {\n setPartStyle(part, '')\n addListeners(part, chunk)\n } else {\n setPartStyle(part, 'color: #222; background-color: #fff')\n log(\"Note can't add listeners - not logged in\")\n }\n return part\n }\n\n /* @@ TODO we need to look at indent, it can be a Number or an Object this doesn't seem correct.\n */\n const newChunk = function (ele?: NotepadElement, before?: NotepadElement) {\n // element of chunk being split\n const kb = store\n let indent: any = 0\n let queueProperty: string | null = null\n let here, prev, next, queue, tr1: any\n\n if (ele) {\n if (ele.tagName.toLowerCase() !== 'input') {\n log('return pressed when current document is: ' + ele.tagName)\n }\n here = ele.subject\n indent = kb.any(here, PAD('indent'))\n indent = indent ? Number(indent.value) : 0\n if (before) {\n prev = kb.any(undefined, PAD('next'), here)\n next = here\n queue = prev\n queueProperty = 'newlinesAfter'\n } else {\n prev = here\n next = kb.any(here, PAD('next'))\n queue = next\n queueProperty = 'newlinesBefore'\n }\n tr1 = ele.parentNode\n } else {\n prev = subject\n next = subject\n tr1 = undefined\n }\n\n const chunk = newThing(padDoc)\n const label = chunk.uri.slice(-4)\n\n const del = [st(prev, PAD('next'), next, padDoc)]\n const ins = [\n st(prev, PAD('next'), chunk, padDoc),\n st(chunk, PAD('next'), next, padDoc),\n st(chunk, ns.dc('author'), me, padDoc),\n st(chunk, ns.sioc('content'), '' as any, padDoc)\n ]\n if (indent > 0) {\n // Do not inherit\n ins.push(st(chunk, PAD('indent'), indent, padDoc))\n }\n\n log(' Fresh chunk ' + label + ' proposed')\n if (!updater) {\n throw new Error('no updater')\n }\n updater.update(del, ins, function (uri, ok, errorBody, _xhr) {\n if (!ok) {\n // alert(\"Error writing new line \" + label + \": \" + errorBody);\n log(' ERROR writing new line ' + label + ': ' + errorBody)\n } else {\n const newPart = newPartAfter(tr1, chunk, before)\n setPartStyle(newPart)\n newPart.focus() // Note this is delayed\n if (queueProperty) {\n log(\n ' Fresh chunk ' +\n label +\n ' updated, queue = ' +\n queue[queueProperty]\n )\n queue[queueProperty] -= 1\n if (queue[queueProperty] > 0) {\n log(\n ' Implementing queued newlines = ' + next.newLinesBefore\n )\n newChunk(newPart, before)\n }\n }\n }\n })\n }\n\n const consistencyCheck = function () {\n const found: { [uri: string]: boolean } = {}\n let failed = 0\n function complain2 (msg) {\n complain(msg)\n failed++\n }\n\n if (!kb.the(subject, PAD('next'))) {\n complain2('No initial next pointer')\n return false // can't do linked list\n }\n // var chunk = kb.the(subject, PAD('next'))\n let prev = subject\n let chunk\n for (; ;) {\n chunk = kb.the(prev, PAD('next'))\n if (!chunk) {\n complain2('No next pointer from ' + prev)\n }\n if (chunk.sameTerm(subject)) {\n break\n }\n prev = chunk\n const label = chunk.uri.split('#')[1]\n if (found[chunk.uri]) {\n complain2('Loop!')\n return false\n }\n\n found[chunk.uri] = true\n let k = kb.each(chunk, PAD('next')).length\n if (k !== 1) {\n complain2('Should be 1 not ' + k + ' next pointer for ' + label)\n }\n\n k = kb.each(chunk, PAD('indent')).length\n if (k > 1) {\n complain2('Should be 0 or 1 not ' + k + ' indent for ' + label)\n }\n\n k = kb.each(chunk, ns.sioc('content')).length\n if (k !== 1) {\n complain2('Should be 1 not ' + k + ' contents for ' + label)\n }\n\n k = kb.each(chunk, ns.dc('author')).length\n if (k !== 1) {\n complain2('Should be 1 not ' + k + ' author for ' + label)\n }\n\n const sts = kb.statementsMatching(undefined, ns.sioc('contents'))\n sts.forEach(function (st) {\n if (!found[st.subject.value]) {\n complain2('Loose chunk! ' + st.subject.value)\n }\n })\n }\n return !failed\n }\n\n // Ensure that the display matches the current state of the\n // @@ TODO really need to refactor this so that we don't need to cast types\n const sync = function () {\n // var first = kb.the(subject, PAD('next'))\n if (kb.each(subject, PAD('next')).length !== 1) {\n const msg =\n 'Pad: Inconsistent data - NEXT pointers: ' +\n kb.each(subject, PAD('next')).length\n log(msg)\n if ((options as notepadOptions).statusArea) {\n ((options as notepadOptions).statusArea as HTMLElement).textContent += msg\n }\n return\n }\n let row\n\n // First see which of the logical chunks have existing physical manifestations\n const manif: any = []\n // Find which lines correspond to existing chunks\n\n for (\n let chunk = kb.the(subject, PAD('next')) as unknown as any;\n !chunk.sameTerm(subject);\n chunk = kb.the(chunk, PAD('next'))\n ) {\n for (let i = 0; i < table.children.length; i++) {\n const tr: any = table.children[i]\n if (tr.firstChild) {\n if (tr.firstChild.subject.sameTerm(chunk)) {\n manif[chunk.uri] = tr.firstChild\n }\n }\n }\n }\n\n // Remove any deleted lines\n for (let i = table.children.length - 1; i >= 0; i--) {\n row = table.children[i]\n if (!manif[row.firstChild.subject.uri]) {\n table.removeChild(row)\n }\n }\n // Insert any new lines and update old ones\n row = table.firstChild // might be null\n for (\n let chunk = kb.the(subject, PAD('next')) as unknown as any;\n !chunk.sameTerm(subject);\n chunk = kb.the(chunk, PAD('next'))\n ) {\n const text = (kb.any(chunk, ns.sioc('content')) as any).value\n // superstitious -- don't mess with unchanged input fields\n // which may be selected by the user\n if (row && manif[chunk.uri]) {\n const part = row.firstChild\n if (text !== part.value) {\n part.value = text\n }\n setPartStyle(part)\n part.state = 0 // Clear the state machine\n delete part.lastSent // DEBUG ONLY\n row = row.nextSibling\n } else {\n newPartAfter(row, chunk, true) // actually before\n }\n }\n }\n\n // Refresh the DOM tree\n\n const refreshTree = function (root) {\n if (root.refresh) {\n root.refresh()\n return\n }\n for (let i = 0; i < root.children.length; i++) {\n refreshTree(root.children[i])\n }\n }\n\n let reloading = false\n\n const checkAndSync = function () {\n log(' reloaded OK')\n clearStatus()\n if (!consistencyCheck()) {\n complain('CONSISTENCY CHECK FAILED')\n } else {\n refreshTree(table)\n }\n }\n\n const reloadAndSync = function () {\n if (reloading) {\n log(' Already reloading - stop')\n return // once only needed\n }\n reloading = true\n let retryTimeout = 1000 // ms\n const tryReload = function () {\n log('try reload - timeout = ' + retryTimeout)\n if (!updater) {\n throw new Error('no updater')\n }\n updater.reload(updater.store, padDoc, function (ok, message, xhr) {\n reloading = false\n if (ok) {\n checkAndSync()\n } else {\n if ((xhr as any).status === 0) {\n complain(\n 'Network error refreshing the pad. Retrying in ' +\n retryTimeout / 1000\n )\n reloading = true\n retryTimeout = retryTimeout * 2\n setTimeout(tryReload, retryTimeout)\n } else {\n complain(\n 'Error ' +\n (xhr as any).status +\n 'refreshing the pad:' +\n message +\n '. Stopped. ' +\n padDoc\n )\n }\n }\n })\n }\n tryReload()\n }\n\n table.refresh = sync // Catch downward propagating refresh events\n table.reloadAndSync = reloadAndSync\n\n if (!me) log('Warning: must be logged in for pad to be edited')\n\n if (exists) {\n log('Existing pad.')\n if (consistencyCheck()) {\n sync()\n if (kb.holds(subject, PAD('next'), subject)) {\n // Empty list untenable\n newChunk() // require at least one line\n }\n } else {\n log((table.textContent = 'Inconsistent data. Abort'))\n }\n } else {\n // Make new pad\n log('No pad exists - making new one.')\n const insertables = [\n st(subject, ns.rdf('type'), PAD('Notepad'), padDoc),\n st(subject, ns.dc('author'), me, padDoc),\n st(subject, ns.dc('created'), new Date() as any, padDoc),\n st(subject, PAD('next'), subject, padDoc)\n ]\n\n if (!updater) {\n throw new Error('no updater')\n }\n updater.update([], insertables, function (uri: string | null | undefined, ok: boolean, errorBody?: string) {\n if (!ok) {\n complain(errorBody || '')\n } else {\n log('Initial pad created')\n newChunk() // Add a first chunck\n // getResults();\n }\n })\n }\n return table\n}\n\n/**\n * Get the chunks of the notepad\n * They are stored in a RDF linked list\n */\n\n// @ignore exporting this only for the unit test\nexport function getChunks (subject: NamedNode, kb: IndexedFormula) {\n const chunks: any[] = []\n for (\n let chunk: any = kb.the(subject, PAD('next'));\n !chunk.sameTerm(subject);\n chunk = kb.the(chunk, PAD('next'))\n ) {\n chunks.push(chunk)\n }\n return chunks\n}\n\n/**\n * Encode content to be put in XML or HTML elements\n */\n// @ignore exporting this only for the unit test\nexport function xmlEncode (str) {\n return str.replace('&', '&').replace('<', '<').replace('>', '>')\n}\n\n/**\n * Convert a notepad to HTML\n * @param { } pad - the notepad\n * @param {store} pad - the data store\n */\nexport function notepadToHTML (pad: any, kb: IndexedFormula) {\n const chunks = getChunks(pad, kb)\n let html = '<html>\\n <head>\\n'\n const title = kb.anyValue(pad, ns.dct('title'))\n if (title) {\n html += ` <title>${xmlEncode(title)}</title>\\n`\n }\n html += ' </head>\\n <body>\\n'\n let level = 0\n\n function increaseLevel (indent) {\n for (; level < indent; level++) {\n html += '<ul>\\n'\n }\n }\n\n function decreaseLevel (indent) {\n for (; level > indent; level--) {\n html += '</ul>\\n'\n }\n }\n chunks.forEach(chunk => {\n const indent = kb.anyJS(chunk, PAD('indent'))\n const rawContent = kb.anyJS(chunk, ns.sioc('content'))\n if (!rawContent) return // seed chunk is dummy\n const content = xmlEncode(rawContent)\n if (indent < 0) { // negative indent levels represent heading levels\n decreaseLevel(0)\n const h = indent >= -3 ? 4 + indent : 1 // -1 -> h4, -2 -> h3\n html += `\\n<h${h}>${content}</h${h}>\\n`\n } else { // >= 0\n if (indent > 0) { // Lists\n decreaseLevel(indent)\n increaseLevel(indent)\n html += `<li>${content}</li>\\n`\n } else { // indent 0\n decreaseLevel(indent)\n html += `<p>${content}</p>\\n`\n }\n }\n }) // foreach chunk\n // At the end decreaseLevel any open ULs\n decreaseLevel(0)\n html += ' </body>\\n</html>\\n'\n return html\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/participation.js
CHANGED
|
@@ -28,9 +28,9 @@ var _styleConstants = _interopRequireDefault(require("./styleConstants"));
|
|
|
28
28
|
var _solidLogic = require("solid-logic");
|
|
29
29
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
30
30
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
31
|
-
function _createForOfIteratorHelper(
|
|
32
|
-
function _unsupportedIterableToArray(
|
|
33
|
-
function _arrayLikeToArray(
|
|
31
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
32
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
33
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
34
34
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
35
35
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* Manage a UI for the participation of a person in any thing
|
|
36
36
|
*/ // import { currentUser } from './authn/authn'
|
|
@@ -47,7 +47,7 @@ var ParticipationTableElement = /*#__PURE__*/function (_HTMLTableElement) {
|
|
|
47
47
|
}
|
|
48
48
|
(0, _inherits2["default"])(ParticipationTableElement, _HTMLTableElement);
|
|
49
49
|
return (0, _createClass2["default"])(ParticipationTableElement);
|
|
50
|
-
}(
|
|
50
|
+
}(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLTableElement));
|
|
51
51
|
var store = _solidLogic.solidLogicSingleton.store;
|
|
52
52
|
|
|
53
53
|
/** Manage participation in this session
|