chat-pane 3.0.0-013148ba → 3.0.0-183c352e
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/longChatPane.js +2 -2
- package/dist/longChatPane.js.map +1 -1
- package/package.json +3 -3
package/dist/longChatPane.js
CHANGED
|
@@ -21,8 +21,8 @@ const CHAT_LOCATION_IN_CONTAINER = 'index.ttl#this';
|
|
|
21
21
|
// const menuIcon = 'noun_897914.svg'
|
|
22
22
|
const SPANNER_ICON = 'noun_344563.svg';
|
|
23
23
|
// resize: horizontal; min-width: 20em;
|
|
24
|
-
const SIDEBAR_COMPONENT_STYLE = UI.style.sidebarComponentStyle || ' padding:
|
|
25
|
-
const SIDEBAR_STYLE = UI.style.sidebarStyle || 'overflow-x: auto; overflow-y: auto; border-radius:
|
|
24
|
+
const SIDEBAR_COMPONENT_STYLE = UI.style.sidebarComponentStyle || ' padding: 0.5em; width: 100%;';
|
|
25
|
+
const SIDEBAR_STYLE = UI.style.sidebarStyle || 'overflow-x: auto; overflow-y: auto; border-radius: 1em; border: 0.1em solid white;';
|
|
26
26
|
// was purple border
|
|
27
27
|
const longChatPane = exports.longChatPane = {
|
|
28
28
|
CHAT_LOCATION_IN_CONTAINER,
|
package/dist/longChatPane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"longChatPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","mainClass","meeting","CHAT_LOCATION_IN_CONTAINER","SPANNER_ICON","SIDEBAR_COMPONENT_STYLE","style","sidebarComponentStyle","SIDEBAR_STYLE","sidebarStyle","longChatPane","exports","icon","icons","iconBase","name","label","subject","context","kb","session","store","holds","rdf","sioc","any","dct","mintClass","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newChatDoc","doc","add","dc","Date","aclBody","resource","AppendWrite","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","then","result","fetcher","webOperation","data","contentType","render","paneOptions","dom","preferencesFormText","preferencesForm","preferencesFormDoc","parse","preferenceProperties","ui","property","map","st","object","renderPreferencesSidebar","noun","preferencesArea","createElement","appendChild","panelCloseButton","minWidth","maxHeight","triptychHeight","menuTable","registrationArea","statusArea","authn","currentUser","login","registrationControl","div","chatChannel","console","log","preferences","renderPreferencesForm","panel","removePanel","parentNode","removeChild","button","widgets","float","margin","backgroundColor","preferencesButtonPressed","_event","paneRight","contains","renderCreationControl","refreshTarget","creationDiv","creationContext","chatPane","paneRegistry","byName","relevantPanes","create","newThingUI","renderInstances","theClass","instancesDiv","registrationList","public","private","type","otherChatsArea","otherChatsHandler","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","newOptions","includeRemoveButton","authorDateOnLeft","newestFirst","innerHTML","chatControl","infiniteMessageArea","resize","overflow","buildPane","prefMap","getPreferencesForClass","err","complain","propuri","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: var(--sui-space-md, 0.5em); width: 100%;'\nconst SIDEBAR_STYLE = UI.style.sidebarStyle || 'overflow-x: auto; overflow-y: auto; border-radius: var(--sui-border-radius, 0.5em); border: 0.1em solid var(--sui-border-color, 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 const updater = kb.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER))\n const 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 const me = authn.currentUser()\n if (me) {\n await UI.login.registrationControl(\n { noun, me, statusArea, dom, div: registrationArea },\n chatChannel,\n mainClass\n )\n // eslint-disable-next-line no-console\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 const creationDiv = dom.createElement('div')\n const me = authn.currentUser()\n const creationContext = {\n // folder: subject,\n div: creationDiv,\n dom,\n noun,\n statusArea: creationDiv,\n me,\n 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 const context = { dom, div: instancesDiv, 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 let 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 let 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 const 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 let chatChannel = subject\n let selectedMessage = null\n let thread = null\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {\n // subject is the chatChannel\n // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\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 const 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 const triptych = div.appendChild(dom.createElement('table'))\n triptych.style.maxHeight = '12\"' // Screen max\n const paneRow = triptych.appendChild(dom.createElement('tr'))\n const paneLeft = paneRow.appendChild(dom.createElement('td'))\n const paneMiddle = paneRow.appendChild(dom.createElement('td'))\n const paneThread = paneRow.appendChild(dom.createElement('td'))\n const paneRight = paneRow.appendChild(dom.createElement('td'))\n const 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 const 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 const 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 let 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 }\n participantsHandlerContext.me = authn.currentUser() // If already logged on\n\n async function showThread (thread, options) {\n // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\n buildPane().then(console.log('async - chat pane built'))\n return div\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"longChatPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","mainClass","meeting","CHAT_LOCATION_IN_CONTAINER","SPANNER_ICON","SIDEBAR_COMPONENT_STYLE","style","sidebarComponentStyle","SIDEBAR_STYLE","sidebarStyle","longChatPane","exports","icon","icons","iconBase","name","label","subject","context","kb","session","store","holds","rdf","sioc","any","dct","mintClass","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newChatDoc","doc","add","dc","Date","aclBody","resource","AppendWrite","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","then","result","fetcher","webOperation","data","contentType","render","paneOptions","dom","preferencesFormText","preferencesForm","preferencesFormDoc","parse","preferenceProperties","ui","property","map","st","object","renderPreferencesSidebar","noun","preferencesArea","createElement","appendChild","panelCloseButton","minWidth","maxHeight","triptychHeight","menuTable","registrationArea","statusArea","authn","currentUser","login","registrationControl","div","chatChannel","console","log","preferences","renderPreferencesForm","panel","removePanel","parentNode","removeChild","button","widgets","float","margin","backgroundColor","preferencesButtonPressed","_event","paneRight","contains","renderCreationControl","refreshTarget","creationDiv","creationContext","chatPane","paneRegistry","byName","relevantPanes","create","newThingUI","renderInstances","theClass","instancesDiv","registrationList","public","private","type","otherChatsArea","otherChatsHandler","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","newOptions","includeRemoveButton","authorDateOnLeft","newestFirst","innerHTML","chatControl","infiniteMessageArea","resize","overflow","buildPane","prefMap","getPreferencesForClass","err","complain","propuri","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 const updater = kb.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER))\n const 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 const me = authn.currentUser()\n if (me) {\n await UI.login.registrationControl(\n { noun, me, statusArea, dom, div: registrationArea },\n chatChannel,\n mainClass\n )\n // eslint-disable-next-line no-console\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 const creationDiv = dom.createElement('div')\n const me = authn.currentUser()\n const creationContext = {\n // folder: subject,\n div: creationDiv,\n dom,\n noun,\n statusArea: creationDiv,\n me,\n 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 const context = { dom, div: instancesDiv, 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 let 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 let 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 const 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 let chatChannel = subject\n let selectedMessage = null\n let thread = null\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('LongChat'))) {\n // subject is the chatChannel\n // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\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 const 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 const triptych = div.appendChild(dom.createElement('table'))\n triptych.style.maxHeight = '12\"' // Screen max\n const paneRow = triptych.appendChild(dom.createElement('tr'))\n const paneLeft = paneRow.appendChild(dom.createElement('td'))\n const paneMiddle = paneRow.appendChild(dom.createElement('td'))\n const paneThread = paneRow.appendChild(dom.createElement('td'))\n const paneRight = paneRow.appendChild(dom.createElement('td'))\n const 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 const 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 const 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 let 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 }\n participantsHandlerContext.me = authn.currentUser() // If already logged on\n\n async function showThread (thread, options) {\n // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\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 // eslint-disable-next-line no-console\n buildPane().then(console.log('async - chat pane built'))\n return div\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chat-pane",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-183c352e",
|
|
4
4
|
"description": "Solid-compatible Panes: Chat",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"files": [
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|
|
28
28
|
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/
|
|
29
|
+
"url": "git+https://github.com/SolidOS/chat-pane.git"
|
|
30
30
|
},
|
|
31
31
|
"keywords": [
|
|
32
32
|
"solid",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"rdflib": "^2.3.0",
|
|
53
53
|
"solid-logic": "^4.0.0",
|
|
54
|
-
"solid-ui": "^3.0.
|
|
54
|
+
"solid-ui": "^3.0.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@babel/cli": "^7.26.4",
|