solid-ui 2.5.1-f1fa48a2 → 2.6.0-157bdf24

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.
Files changed (79) hide show
  1. package/README.md +4 -0
  2. package/dist/solid-ui.js +426 -312
  3. package/dist/solid-ui.js.map +1 -1
  4. package/dist/solid-ui.min.js +1 -1
  5. package/dist/solid-ui.min.js.map +1 -1
  6. package/lib/acl/access-groups.js +2 -2
  7. package/lib/acl/access-groups.js.map +1 -1
  8. package/lib/acl/acl.js +2 -2
  9. package/lib/acl/acl.js.map +1 -1
  10. package/lib/chat/infinite.js +0 -1
  11. package/lib/chat/infinite.js.map +1 -1
  12. package/lib/chat/message.js +3 -4
  13. package/lib/chat/message.js.map +1 -1
  14. package/lib/chat/signature.d.ts.map +1 -1
  15. package/lib/chat/signature.js +0 -1
  16. package/lib/chat/signature.js.map +1 -1
  17. package/lib/chat/thread.js +3 -6
  18. package/lib/chat/thread.js.map +1 -1
  19. package/lib/folders.js +0 -2
  20. package/lib/folders.js.map +1 -1
  21. package/lib/footer/index.d.ts.map +1 -1
  22. package/lib/footer/index.js +3 -4
  23. package/lib/footer/index.js.map +1 -1
  24. package/lib/header/index.js +11 -12
  25. package/lib/header/index.js.map +1 -1
  26. package/lib/iconBase.d.ts.map +1 -1
  27. package/lib/iconBase.js +0 -1
  28. package/lib/iconBase.js.map +1 -1
  29. package/lib/index.d.ts +1 -1
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js +4 -3
  32. package/lib/index.js.map +1 -1
  33. package/lib/log.d.ts +7 -7
  34. package/lib/log.d.ts.map +1 -1
  35. package/lib/log.js +2 -2
  36. package/lib/log.js.map +1 -1
  37. package/lib/login/login.js +35 -38
  38. package/lib/login/login.js.map +1 -1
  39. package/lib/matrix/types.js.map +1 -1
  40. package/lib/messageArea.js +0 -2
  41. package/lib/messageArea.js.map +1 -1
  42. package/lib/tabs.d.ts.map +1 -1
  43. package/lib/tabs.js.map +1 -1
  44. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  45. package/lib/utils/headerFooterHelpers.js.map +1 -1
  46. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  47. package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
  48. package/lib/utils/keyHelpers/acl.js +1 -1
  49. package/lib/utils/keyHelpers/acl.js.map +1 -1
  50. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  51. package/lib/versionInfo.d.ts +4 -2
  52. package/lib/versionInfo.d.ts.map +1 -1
  53. package/lib/versionInfo.js +30 -29
  54. package/lib/versionInfo.js.map +1 -1
  55. package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
  56. package/lib/widgets/buttons/iconLinks.js +2 -2
  57. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  58. package/lib/widgets/buttons.d.ts.map +1 -1
  59. package/lib/widgets/buttons.js +0 -1
  60. package/lib/widgets/buttons.js.map +1 -1
  61. package/lib/widgets/forms/autocomplete/autocompleteBar.js +6 -7
  62. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  63. package/lib/widgets/forms/autocomplete/autocompleteField.js +1 -1
  64. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  65. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  66. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  67. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  68. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  69. package/lib/widgets/forms/autocomplete/publicData.js +0 -1
  70. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  71. package/lib/widgets/forms/basic.js +1 -1
  72. package/lib/widgets/forms/basic.js.map +1 -1
  73. package/lib/widgets/forms.js +1 -2
  74. package/lib/widgets/forms.js.map +1 -1
  75. package/lib/widgets/index.js.map +1 -1
  76. package/lib/widgets/widgetHelpers.d.ts.map +1 -1
  77. package/lib/widgets/widgetHelpers.js +3 -3
  78. package/lib/widgets/widgetHelpers.js.map +1 -1
  79. package/package.json +57 -57
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","names":["_infinite","require","_messageTools","_bookmarks","_chatLogic","debug","_interopRequireWildcard","_iconBase","_solidLogic","_login","_index","ns","pad","style","utils","widgets","_signature","_keys","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t9","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","done","value","TypeError","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","dom","window","document","messageBodyStyle","label","elementForImageURI","imageUri","options","img","createElement","height","inlineImageHeightEms","trim","setAttribute","anchor","appendChild","makeDraggable","$rdf","sym","text","term","uri","addEventListener","openHrefInOutlineMode","textContent","nickname","person","store","any","foaf","creatorAndDate","td1","creator","date","message","nickAnchor","fetcher","nowOrWhenFetched","doc","undefined","_ok","_body","creatorAndDateHorizontal","dateBit","fontSize","marginLeft","renderMessageRow","_x","_x2","_x3","_x4","_x5","_renderMessageRow","_asyncToGenerator2","_regenerator","mark","_callee9","channelObject","fresh","userContext","unsignedMessage","colorizeByAuthor","latestVersion","latestVersionCreator","msgId","content","versions","replies","thread","straightReplies","_iterator2","_step2","reply","signature","msg","originalMessage","edited","sortDate","messageRow","bothDates","td2","isURI","para","isImage","_img","anc","bgcolor","getBgColor","strip","td3","toolsButton","wrap","_context0","prev","_getBgColor","dct","mostRecentVersion","sent","sioc","allVersions","log","join","map","version","each","flat","holds","rdf","err","concat","SEC","getBlankMsg","id","created","maker","warn","getPublicKey","then","publicKey","regex","match","verifySignature","originalVersion","sameTerm","the","AJAR_date","AJAR_subject","authorDateOnLeft","setImage","shortDate","expandImagesInline","href","lightColorHash","sentimentStripLinked","children","button","icons","iconBase","_ref4","_callee8","_event","toolsTR","tools","toolsTD","_context9","toolTR","parentNode","removeChild","abrupt","messageToolbar","chatOptions","nextSibling","parentElement","insertBefore","stop","_x18","showThread","_e","switchToEditor","_x6","_x7","_x8","_x9","_switchToEditor","_callee0","messageTable","editRow","_t3","_t4","_t5","_t6","_t7","_t8","_context1","renderMessageEditor","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","_x0","_handleFieldInput","_callee5","_context6","sendMessage","field","_x1","_x10","_sendMessage","_callee7","fromMainField","sendComplete","_sendComplete","statusArea","_t2","_context8","_sendComplete3","_callee6","_text2","oldRow","_context7","insertMessageIntoTable","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","_sendComplete2","_x16","_x17","updateMessage","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","_ref","_callee","theFile","destURI","_context2","_x11","_x12","droppedURIHandler","_ref2","_callee2","uris","_iterator","_step","_t","_context3","finish","_x13","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","_x14","_tookPicture","_callee4","_context5","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","_ref3","_callee3","_context4","code","shiftKey","shiftEnterSendsMessage","_x15","makeDropTarget","sendButton","sendIcon","cancelButton","dateFolder","leafDocumentFromDate","media","cameraButton","recordParticipation","channel","context","ensureLoggedIn","assign","findBookmarkDocument","_context"],"sources":["../../src/chat/message.js"],"sourcesContent":["/** UI code for individual messages: display them, edit them\n *\n * @packageDocumentation\n */\n\n/* global $rdf */\nimport { insertMessageIntoTable } from './infinite'\nimport { messageToolbar, sentimentStripLinked } from './messageTools'\nimport { findBookmarkDocument } from './bookmarks'\nimport { mostRecentVersion, originalVersion, allVersions } from './chatLogic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store, authn } from 'solid-logic'\nimport { ensureLoggedIn } from '../login/login'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { getBlankMsg, verifySignature, SEC } from './signature'\nimport { getPublicKey } from './keys'\n\nconst dom = window.document\nconst messageBodyStyle = style.messageBodyStyle\n\nconst label = utils.label\n\n/**\n * elementForImageURI\n * HTML component for an image\n * @param imageUri\n * @param options { inlineImageHeightEms }\n * @returns HTMLAnchorElement For Image\n */\nexport function elementForImageURI (imageUri, options) {\n const img = dom.createElement('img')\n let height = '10'\n if (options.inlineImageHeightEms) {\n height = ('' + options.inlineImageHeightEms).trim()\n }\n img.setAttribute(\n 'style',\n 'max-height: ' + height + 'em; border-radius: 1em; margin: 0.7em;'\n )\n // widgets.makeDropTarget(img, handleURIsDroppedOnMugshot, droppedFileHandler)\n if (imageUri) img.setAttribute('src', imageUri)\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', imageUri)\n anchor.setAttribute('target', 'images')\n anchor.appendChild(img)\n widgets.makeDraggable(img, $rdf.sym(imageUri))\n return anchor\n}\n\nconst 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', 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\nfunction nickname (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + label(person)\n}\n\n/**\n * creatorAndDate\n * Displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nickname(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n}\n\n/**\n * creatorAndDateHorizontal\n * Horizontally displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDateHorizontal (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(label(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n const dateBit = td1.appendChild(anchor(date, message))\n dateBit.style.fontSize = '80%'\n dateBit.style.marginLeft = '1em'\n td1.appendChild(dom.createElement('br'))\n}\n\n/**\n * renderMessageRow\n * Renders a chat message, read-only mode\n * @param channelObject\n * @param message\n * @param fresh\n * @param options\n * @param userContext\n * @returns Message Row HTML Table Element\n */\nexport async function renderMessageRow (channelObject, message, fresh, options, userContext) {\n let unsignedMessage = false\n const colorizeByAuthor =\n options.colorizeByAuthor === '1' || options.colorizeByAuthor === true\n\n // const id = store.any(latestVersion, ns.sioc('id'))\n // const replies = store.each(latestVersion, ns.sioc('has_reply'))\n\n const creator = store.any(message, ns.foaf('maker'))\n const date = store.any(message, ns.dct('created'))\n const latestVersion = await mostRecentVersion(message)\n const latestVersionCreator = store.any(latestVersion, ns.foaf('maker'))\n\n // use latest content if same owner, else use original\n // this is may be too strict. Should we find latest valid version if any ?\n const msgId = creator.uri === latestVersionCreator?.uri ? latestVersion : message\n const content = store.any(msgId, ns.sioc('content'))\n\n const versions = await allVersions(msgId)\n if (versions.length > 1) {\n debug.log('renderMessageRow versions: ', versions.join(', '))\n }\n // be tolerant in accepting replies on any version of a message\n const replies = versions.map(version => store.each(version, ns.sioc('has_reply'))).flat()\n\n let thread = null\n const straightReplies = []\n for (const reply of replies) {\n if (store.holds(reply, ns.rdf('type'), ns.sioc('Thread'))) {\n thread = reply\n debug.log('renderMessageRow: found thread: ' + thread)\n } else {\n straightReplies.push(reply)\n }\n }\n if (straightReplies.length > 1) {\n debug.log('renderMessageRow: found normal replies: ', straightReplies)\n }\n if (!thread) {\n // thread = store.any(message, ns.sioc('has_reply'))\n thread = store.any(null, ns.sioc('has_member'), message)\n }\n // debug.log('@@@@ is thread' + thread)\n\n // get signature\n const signature = store.any(msgId, $rdf.sym(`${SEC}proofValue`))\n\n // set proof message object\n const msg = getBlankMsg()\n msg.id = msgId.uri\n msg.created = store.any(msgId, ns.dct('created')).value\n msg.content = content.value\n msg.maker = creator.uri\n\n // verify signature\n if (!signature?.value) { // unsigned message\n unsignedMessage = true\n debug.warn(msgId.uri + ' is unsigned') // TODO replace with UI (colored message ?)\n } else { // signed message, get public key and check signature\n getPublicKey(creator).then(publicKey => {\n // debug.log(creator.uri + '\\n' + msg.created + '\\n' + msg.id + '\\n' + publicKey)\n if (!publicKey) {\n debug.warn('message is signed but ' + creator.uri + ' is missing publicKey')\n }\n // check that publicKey is a valid hex string\n const regex = /[0-9A-Fa-f]{6}/g\n if (!publicKey?.match(regex)) debug.warn('invalid publicKey hex string\\n' + creator.uri + '\\n' + publicKey)\n // verify signature\n else if (signature?.value && !verifySignature(signature?.value, msg, publicKey)) debug.warn('invalid signature\\n' + msg.id)\n })\n }\n\n const originalMessage = await originalVersion(message)\n const edited = !message.sameTerm(originalMessage)\n // @@ load it first @@ Or display the new data at the old date.\n // @@@ kludge!\n const sortDate = store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) || store.the(message, ns.dct('created'), null, message.doc())\n // In message\n\n const messageRow = dom.createElement('tr')\n if (unsignedMessage) messageRow.setAttribute('style', 'background-color: red')\n messageRow.AJAR_date = sortDate.value\n messageRow.AJAR_subject = message\n\n const td1 = dom.createElement('td')\n messageRow.appendChild(td1)\n if (!options.authorDateOnLeft) {\n const img = dom.createElement('img')\n img.setAttribute(\n 'style',\n 'max-height: 2.5em; max-width: 2.5em; border-radius: 0.5em; margin: auto;'\n )\n widgets.setImage(img, creator)\n td1.appendChild(img)\n } else {\n creatorAndDate(td1, creator, widgets.shortDate(sortDate.value), message)\n }\n let bothDates = widgets.shortDate(sortDate.value)\n if (edited) {\n bothDates += ' ... ' + widgets.shortDate(date.value)\n }\n\n // Render the content ot the message itself\n const td2 = messageRow.appendChild(dom.createElement('td'))\n\n if (!options.authorDateOnLeft) {\n creatorAndDateHorizontal(\n td2,\n creator,\n bothDates, // widgets.shortDate(dateString)\n message\n )\n }\n const text = content ? content.value.trim() : '??? no content?'\n const isURI = /^https?:\\/[^ <>]*$/i.test(text)\n let para = null\n if (isURI) {\n const isImage = /\\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(text) // @@ Should use content-type not URI\n if (isImage && options.expandImagesInline) {\n const img = elementForImageURI(text, options)\n td2.appendChild(img)\n } else {\n // Link but not Image\n const anc = td2.appendChild(dom.createElement('a'))\n para = anc.appendChild(dom.createElement('p'))\n anc.href = text\n para.textContent = text\n td2.appendChild(anc)\n }\n } else {\n // text\n para = dom.createElement('p')\n td2.appendChild(para)\n para.textContent = text\n }\n if (para) {\n const bgcolor = colorizeByAuthor\n ? pad.lightColorHash(creator)\n : getBgColor(fresh)\n para.setAttribute(\n 'style',\n messageBodyStyle + 'background-color: ' + bgcolor + ';'\n )\n }\n\n function getBgColor (fresh) {\n return fresh ? '#e8ffe8' : 'white'\n }\n\n // Sentiment strip\n const strip = await sentimentStripLinked(message, message.doc())\n if (strip.children.length) {\n td2.appendChild(dom.createElement('br'))\n td2.appendChild(strip)\n }\n\n // Message tool bar button\n const td3 = dom.createElement('td')\n messageRow.appendChild(td3)\n const toolsButton = widgets.button(\n dom,\n icons.iconBase + 'noun_243787.svg',\n '...'\n )\n td3.appendChild(toolsButton)\n toolsButton.addEventListener('click', async function (_event) {\n if (messageRow.toolTR) {\n // already got a toolbar? Toogle\n messageRow.parentNode.removeChild(messageRow.toolTR)\n delete messageRow.toolTR\n return\n }\n const toolsTR = dom.createElement('tr')\n const tools = await messageToolbar(message, messageRow, { ...userContext, chatOptions: options }, channelObject)\n tools.style =\n 'border: 0.05em solid #888; border-radius: 0 0 0.7em 0.7em; border-top: 0; height:3.5em; background-color: #fff;' // @@ fix\n if (messageRow.nextSibling) {\n messageRow.parentElement.insertBefore(toolsTR, messageRow.nextSibling)\n } else {\n messageRow.parentElement.appendChild(toolsTR)\n }\n messageRow.toolTR = toolsTR\n toolsTR.appendChild(dom.createElement('td')) // left\n const toolsTD = toolsTR.appendChild(dom.createElement('td'))\n toolsTR.appendChild(dom.createElement('td')) // right\n toolsTD.appendChild(tools)\n })\n if (thread && options.showThread) {\n // debug.log(' message has thread ' + thread)\n td3.appendChild(widgets.button(\n dom,\n icons.iconBase + 'noun_1180164.svg', // right arrow .. @@ think of stg better\n 'see thread',\n _e => {\n // debug.log('@@@@ Calling showThread thread ' + thread)\n options.showThread(thread, options)\n }\n ))\n }\n return messageRow\n} // END OF RENDERMESSAGE\n\nexport async function switchToEditor (messageRow, message, channelObject, userContext) {\n const messageTable = messageRow.parentNode\n const editRow = renderMessageEditor(channelObject, messageTable, userContext,\n channelObject.options, await mostRecentVersion(message))\n messageTable.insertBefore(editRow, messageRow)\n editRow.originalRow = messageRow\n messageRow.style.visibility = 'hidden' // Hide the original message. unhide if user cancels edit\n}\n/* Control for a new message -- or editing an old message ***************\n *\n */\nexport function renderMessageEditor (channelObject, messageTable, userContext, options, originalMessage) {\n function revertEditing (messageEditor) {\n messageEditor.originalRow.style.visibility = 'visible' // restore read-only version\n messageEditor.parentNode.removeChild(messageEditor)\n }\n\n async function handleFieldInput (_event) {\n await sendMessage(field.value, true)\n }\n\n async function sendMessage (text, fromMainField) {\n async function sendComplete (message, _text2) {\n // const dateStamp = store.any(message, ns.dct('created'), null, message.doc())\n // const content = $rdf.literal(text2)\n await insertMessageIntoTable(channelObject, messageTable, message, false, options, userContext) // not green\n\n if (originalMessage) { // editing another message\n const oldRow = messageEditor.originalRow\n // oldRow.style.display = '' // restore read-only version, re-attack\n if (oldRow.parentNode) {\n oldRow.parentNode.removeChild(oldRow) // No longer needed old version\n } else {\n debug.warn('No parentNode on old message ' + oldRow.textContent)\n oldRow.style.backgroundColor = '#fee'\n oldRow.style.visibility = 'hidden' // @@ FIX THIS AND REMOVE FROM DOM INSTEAD\n }\n messageEditor.parentNode.removeChild(messageEditor) // no longer need editor\n } else {\n if (fromMainField) {\n field.value = '' // clear from out for reuse\n field.setAttribute('style', messageBodyStyle)\n field.disabled = false\n field.scrollIntoView(options.newestFirst) // allign bottom (top)\n field.focus() // Start typing next line immediately\n field.select()\n }\n }\n // await channelObject.div.refresh() // Add new day if nec @@ add back\n }\n\n // const me = authn.currentUser() // Must be logged on or wuld have got login button\n if (fromMainField) {\n field.setAttribute('style', messageBodyStyle + 'color: #bbb;') // pendingedit\n field.disabled = true\n }\n\n let message\n try {\n message = await channelObject.updateMessage(text, originalMessage, null, options.thread)\n } catch (err) {\n const statusArea = userContext.statusArea || messageEditor\n statusArea.appendChild(\n widgets.errorMessageBlock(dom, 'Error writing message: ' + err)\n )\n return\n }\n await sendComplete(message, text)\n } // sendMessage\n\n // DRAG AND DROP\n function droppedFileHandler (files) {\n const base = messageTable.chatDocument.dir().uri\n widgets.uploadFiles(\n store.fetcher,\n files,\n base + 'Files',\n base + 'Pictures',\n async function (theFile, destURI) {\n // @@@@@@ Wait for each if several\n await sendMessage(destURI)\n }\n )\n }\n\n // When a set of URIs are dropped on the field\n const droppedURIHandler = async function (uris) {\n for (const uri of uris) {\n await sendMessage(uri)\n }\n }\n\n // When we are actually logged on\n function turnOnInput () {\n function getImageDoc () {\n imageDoc = $rdf.sym(\n chatDocument.dir().uri + 'Image_' + Date.now() + '.png'\n )\n return imageDoc\n }\n\n async function tookPicture (imageDoc) {\n if (imageDoc) {\n await sendMessage(imageDoc.uri)\n }\n }\n\n // Body of turnOnInput\n\n let menuButton\n if (options.menuHandler) {\n const menuButton = widgets.button(\n dom, icons.iconBase + 'noun_243787.svg', 'More')\n menuButton.setAttribute('style', style.buttonStyle + 'float: right;')\n // menuButton.addEventListener('click', _event => sendMessage(), false) (done in turnoninput)\n rhs.appendChild(menuButton)\n }\n\n if (options.menuHandler && menuButton) {\n const me = authn.currentUser()\n const menuOptions = {\n me,\n dom,\n div: null, // @@ was: div\n newBase: messageTable.chatDocument.dir().uri\n }\n menuButton.addEventListener(\n 'click',\n event => {\n options.menuHandler(event, channelObject.chatChannel, menuOptions)\n },\n false\n )\n }\n\n const me = authn.currentUser() // If already logged on\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n if (originalMessage) {\n field.value = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n }\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n // Trap the Enter BEFORE it is used ti make a newline\n\n field.addEventListener(\n 'keydown',\n async function (e) {\n // User preference?\n if (e.code === 'Enter') {\n // if (e.keyCode === 13) { // deprocated https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n if ((!e.shiftKey && !options.shiftEnterSendsMessage) || (e.shiftKey && options.shiftEnterSendsMessage)) {\n // Shift-Enter just adds a new line\n // (note alt-enter doesn't add newline anyway on my setup - so have to use shift.\n await handleFieldInput(e)\n }\n }\n },\n false\n )\n\n widgets.makeDropTarget(field, droppedURIHandler, droppedFileHandler)\n\n rhs.innerHTML = ''\n\n sendButton = widgets.button(dom, sendIcon, 'Send')\n sendButton.style.float = 'right'\n sendButton.addEventListener('click', _event => handleFieldInput(), false)\n rhs.appendChild(sendButton)\n\n if (originalMessage) { // Are we editing another message?\n const cancelButton = rhs.appendChild(widgets.cancelButton(dom))\n cancelButton.style.float = 'left'\n // cancelButton.firstChild.style.opacity = '0.3' // moved to buttons\n cancelButton.addEventListener('click', _event => revertEditing(messageEditor), false)\n rhs.appendChild(cancelButton)\n }\n\n const chatDocument = channelObject.dateFolder.leafDocumentFromDate(new Date())\n let imageDoc\n\n middle.appendChild(\n media.cameraButton(dom, store, getImageDoc, tookPicture)\n )\n\n pad.recordParticipation(channelObject.channel, channelObject.channel.doc()) // participation =\n } // turn on inpuut\n\n // Body of renderMessageEditor\n\n let sortDate, sendIcon\n if (originalMessage) {\n sortDate = store.anyValue(originalMessage, ns.dct('created'), null, originalMessage.doc())\n // text = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n sendIcon = icons.iconBase + 'noun_1180158.svg' // Green check\n // cancelIcon = icons.iconBase + 'noun_1180156.svg' // Black cross\n } else {\n sendIcon = icons.iconBase + 'noun_383448.svg'\n sortDate = '9999-01-01T00:00:00Z' // ISO format for field sort\n // text = ''\n }\n const messageEditor = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n messageEditor.appendChild(lhs)\n messageEditor.appendChild(middle)\n messageEditor.appendChild(rhs)\n messageEditor.AJAR_date = sortDate\n // messageEditor.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const context = { div: middle, dom }\n\n ensureLoggedIn(context).then(context => {\n // me = context.me\n turnOnInput()\n Object.assign(context, userContext)\n findBookmarkDocument(context).then(_context => {\n // debug.log('Bookmark file: ' + context.bookmarkDocument)\n })\n })\n\n return messageEditor\n} // renderMessageEditor\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"message.js","names":["_infinite","require","_messageTools","_bookmarks","_chatLogic","debug","_interopRequireWildcard","_iconBase","_solidLogic","_login","_index","ns","pad","style","utils","widgets","_signature","_keys","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t8","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","done","value","TypeError","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","dom","window","document","messageBodyStyle","label","elementForImageURI","imageUri","options","img","createElement","height","inlineImageHeightEms","trim","setAttribute","anchor","appendChild","makeDraggable","$rdf","sym","text","term","uri","addEventListener","openHrefInOutlineMode","textContent","nickname","person","store","any","foaf","creatorAndDate","td1","creator","date","message","nickAnchor","fetcher","nowOrWhenFetched","doc","undefined","_ok","_body","creatorAndDateHorizontal","dateBit","fontSize","marginLeft","renderMessageRow","_x","_x2","_x3","_x4","_x5","_renderMessageRow","_asyncToGenerator2","_regenerator","mark","_callee9","channelObject","fresh","userContext","unsignedMessage","colorizeByAuthor","latestVersion","latestVersionCreator","msgId","content","versions","replies","thread","straightReplies","_iterator2","_step2","reply","signature","msg","originalMessage","edited","sortDate","messageRow","bothDates","td2","isURI","para","isImage","_img","anc","bgcolor","getBgColor","strip","td3","toolsButton","wrap","_context0","prev","_getBgColor","dct","mostRecentVersion","sent","sioc","allVersions","log","join","map","version","each","flat","holds","rdf","err","concat","SEC","getBlankMsg","id","created","maker","warn","getPublicKey","then","publicKey","regex","match","verifySignature","originalVersion","sameTerm","the","AJAR_date","AJAR_subject","authorDateOnLeft","setImage","shortDate","expandImagesInline","href","lightColorHash","sentimentStripLinked","children","button","icons","iconBase","_ref4","_callee8","_event","toolsTR","tools","toolsTD","_context9","toolTR","parentNode","removeChild","abrupt","messageToolbar","chatOptions","nextSibling","parentElement","insertBefore","stop","_x18","showThread","_e","switchToEditor","_x6","_x7","_x8","_x9","_switchToEditor","_callee0","messageTable","editRow","_t3","_t4","_t5","_t6","_t7","_context1","renderMessageEditor","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","_x0","_handleFieldInput","_callee5","_context6","sendMessage","field","_x1","_x10","_sendMessage","_callee7","fromMainField","sendComplete","_sendComplete","statusArea","_t2","_context8","_sendComplete3","_callee6","_text2","oldRow","_context7","insertMessageIntoTable","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","_sendComplete2","_x16","_x17","updateMessage","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","_ref","_callee","theFile","destURI","_context2","_x11","_x12","droppedURIHandler","_ref2","_callee2","uris","_iterator","_step","_t","_context3","finish","_x13","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","_x14","_tookPicture","_callee4","_context5","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","_ref3","_callee3","_context4","code","shiftKey","shiftEnterSendsMessage","_x15","makeDropTarget","sendButton","sendIcon","cancelButton","dateFolder","leafDocumentFromDate","media","cameraButton","recordParticipation","channel","context","ensureLoggedIn","assign","findBookmarkDocument","_context"],"sources":["../../src/chat/message.js"],"sourcesContent":["/** UI code for individual messages: display them, edit them\n *\n * @packageDocumentation\n */\n\n/* global $rdf */\nimport { insertMessageIntoTable } from './infinite'\nimport { messageToolbar, sentimentStripLinked } from './messageTools'\nimport { findBookmarkDocument } from './bookmarks'\nimport { mostRecentVersion, originalVersion, allVersions } from './chatLogic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store, authn } from 'solid-logic'\nimport { ensureLoggedIn } from '../login/login'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { getBlankMsg, verifySignature, SEC } from './signature'\nimport { getPublicKey } from './keys'\n\nconst dom = window.document\nconst messageBodyStyle = style.messageBodyStyle\n\nconst label = utils.label\n\n/**\n * elementForImageURI\n * HTML component for an image\n * @param imageUri\n * @param options { inlineImageHeightEms }\n * @returns HTMLAnchorElement For Image\n */\nexport function elementForImageURI (imageUri, options) {\n const img = dom.createElement('img')\n let height = '10'\n if (options.inlineImageHeightEms) {\n height = ('' + options.inlineImageHeightEms).trim()\n }\n img.setAttribute(\n 'style',\n 'max-height: ' + height + 'em; border-radius: 1em; margin: 0.7em;'\n )\n // widgets.makeDropTarget(img, handleURIsDroppedOnMugshot, droppedFileHandler)\n if (imageUri) img.setAttribute('src', imageUri)\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', imageUri)\n anchor.setAttribute('target', 'images')\n anchor.appendChild(img)\n widgets.makeDraggable(img, $rdf.sym(imageUri))\n return anchor\n}\n\nconst 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', 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\nfunction nickname (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + label(person)\n}\n\n/**\n * creatorAndDate\n * Displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nickname(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n}\n\n/**\n * creatorAndDateHorizontal\n * Horizontally displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDateHorizontal (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(label(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n const dateBit = td1.appendChild(anchor(date, message))\n dateBit.style.fontSize = '80%'\n dateBit.style.marginLeft = '1em'\n td1.appendChild(dom.createElement('br'))\n}\n\n/**\n * renderMessageRow\n * Renders a chat message, read-only mode\n * @param channelObject\n * @param message\n * @param fresh\n * @param options\n * @param userContext\n * @returns Message Row HTML Table Element\n */\nexport async function renderMessageRow (channelObject, message, fresh, options, userContext) {\n let unsignedMessage = false\n const colorizeByAuthor =\n options.colorizeByAuthor === '1' || options.colorizeByAuthor === true\n\n // const id = store.any(latestVersion, ns.sioc('id'))\n // const replies = store.each(latestVersion, ns.sioc('has_reply'))\n\n const creator = store.any(message, ns.foaf('maker'))\n const date = store.any(message, ns.dct('created'))\n const latestVersion = await mostRecentVersion(message)\n const latestVersionCreator = store.any(latestVersion, ns.foaf('maker'))\n\n // use latest content if same owner, else use original\n // this is may be too strict. Should we find latest valid version if any ?\n const msgId = creator.uri === latestVersionCreator?.uri ? latestVersion : message\n const content = store.any(msgId, ns.sioc('content'))\n\n const versions = await allVersions(msgId)\n if (versions.length > 1) {\n debug.log('renderMessageRow versions: ', versions.join(', '))\n }\n // be tolerant in accepting replies on any version of a message\n const replies = versions.map(version => store.each(version, ns.sioc('has_reply'))).flat()\n\n let thread = null\n const straightReplies = []\n for (const reply of replies) {\n if (store.holds(reply, ns.rdf('type'), ns.sioc('Thread'))) {\n thread = reply\n debug.log('renderMessageRow: found thread: ' + thread)\n } else {\n straightReplies.push(reply)\n }\n }\n if (straightReplies.length > 1) {\n debug.log('renderMessageRow: found normal replies: ', straightReplies)\n }\n if (!thread) {\n // thread = store.any(message, ns.sioc('has_reply'))\n thread = store.any(null, ns.sioc('has_member'), message)\n }\n // debug.log('@@@@ is thread' + thread)\n\n // get signature\n const signature = store.any(msgId, $rdf.sym(`${SEC}proofValue`))\n\n // set proof message object\n const msg = getBlankMsg()\n msg.id = msgId.uri\n msg.created = store.any(msgId, ns.dct('created')).value\n msg.content = content.value\n msg.maker = creator.uri\n\n // verify signature\n if (!signature?.value) { // unsigned message\n unsignedMessage = true\n debug.warn(msgId.uri + ' is unsigned') // TODO replace with UI (colored message ?)\n } else { // signed message, get public key and check signature\n getPublicKey(creator).then(publicKey => {\n // debug.log(creator.uri + '\\n' + msg.created + '\\n' + msg.id + '\\n' + publicKey)\n if (!publicKey) {\n debug.warn('message is signed but ' + creator.uri + ' is missing publicKey')\n }\n // check that publicKey is a valid hex string\n const regex = /[0-9A-Fa-f]{6}/g\n if (!publicKey?.match(regex)) debug.warn('invalid publicKey hex string\\n' + creator.uri + '\\n' + publicKey)\n // verify signature\n else if (signature?.value && !verifySignature(signature?.value, msg, publicKey)) debug.warn('invalid signature\\n' + msg.id)\n })\n }\n\n const originalMessage = await originalVersion(message)\n const edited = !message.sameTerm(originalMessage)\n // @@ load it first @@ Or display the new data at the old date.\n // @@@ kludge!\n const sortDate = store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) || store.the(message, ns.dct('created'), null, message.doc())\n // In message\n\n const messageRow = dom.createElement('tr')\n if (unsignedMessage) messageRow.setAttribute('style', 'background-color: red')\n messageRow.AJAR_date = sortDate.value\n messageRow.AJAR_subject = message\n\n const td1 = dom.createElement('td')\n messageRow.appendChild(td1)\n if (!options.authorDateOnLeft) {\n const img = dom.createElement('img')\n img.setAttribute(\n 'style',\n 'max-height: 2.5em; max-width: 2.5em; border-radius: 0.5em; margin: auto;'\n )\n widgets.setImage(img, creator)\n td1.appendChild(img)\n } else {\n creatorAndDate(td1, creator, widgets.shortDate(sortDate.value), message)\n }\n let bothDates = widgets.shortDate(sortDate.value)\n if (edited) {\n bothDates += ' ... ' + widgets.shortDate(date.value)\n }\n\n // Render the content ot the message itself\n const td2 = messageRow.appendChild(dom.createElement('td'))\n\n if (!options.authorDateOnLeft) {\n creatorAndDateHorizontal(\n td2,\n creator,\n bothDates, // widgets.shortDate(dateString)\n message\n )\n }\n const text = content ? content.value.trim() : '??? no content?'\n const isURI = /^https?:\\/[^ <>]*$/i.test(text)\n let para = null\n if (isURI) {\n const isImage = /\\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(text) // @@ Should use content-type not URI\n if (isImage && options.expandImagesInline) {\n const img = elementForImageURI(text, options)\n td2.appendChild(img)\n } else {\n // Link but not Image\n const anc = td2.appendChild(dom.createElement('a'))\n para = anc.appendChild(dom.createElement('p'))\n anc.href = text\n para.textContent = text\n td2.appendChild(anc)\n }\n } else {\n // text\n para = dom.createElement('p')\n td2.appendChild(para)\n para.textContent = text\n }\n if (para) {\n const bgcolor = colorizeByAuthor\n ? pad.lightColorHash(creator)\n : getBgColor(fresh)\n para.setAttribute(\n 'style',\n messageBodyStyle + 'background-color: ' + bgcolor + ';'\n )\n }\n\n function getBgColor (fresh) {\n return fresh ? '#e8ffe8' : 'white'\n }\n\n // Sentiment strip\n const strip = await sentimentStripLinked(message, message.doc())\n if (strip.children.length) {\n td2.appendChild(dom.createElement('br'))\n td2.appendChild(strip)\n }\n\n // Message tool bar button\n const td3 = dom.createElement('td')\n messageRow.appendChild(td3)\n const toolsButton = widgets.button(\n dom,\n icons.iconBase + 'noun_243787.svg',\n '...'\n )\n td3.appendChild(toolsButton)\n toolsButton.addEventListener('click', async function (_event) {\n if (messageRow.toolTR) {\n // already got a toolbar? Toogle\n messageRow.parentNode.removeChild(messageRow.toolTR)\n delete messageRow.toolTR\n return\n }\n const toolsTR = dom.createElement('tr')\n const tools = await messageToolbar(message, messageRow, { ...userContext, chatOptions: options }, channelObject)\n tools.style =\n 'border: 0.05em solid #888; border-radius: 0 0 0.7em 0.7em; border-top: 0; height:3.5em; background-color: #fff;' // @@ fix\n if (messageRow.nextSibling) {\n messageRow.parentElement.insertBefore(toolsTR, messageRow.nextSibling)\n } else {\n messageRow.parentElement.appendChild(toolsTR)\n }\n messageRow.toolTR = toolsTR\n toolsTR.appendChild(dom.createElement('td')) // left\n const toolsTD = toolsTR.appendChild(dom.createElement('td'))\n toolsTR.appendChild(dom.createElement('td')) // right\n toolsTD.appendChild(tools)\n })\n if (thread && options.showThread) {\n // debug.log(' message has thread ' + thread)\n td3.appendChild(widgets.button(\n dom,\n icons.iconBase + 'noun_1180164.svg', // right arrow .. @@ think of stg better\n 'see thread',\n _e => {\n // debug.log('@@@@ Calling showThread thread ' + thread)\n options.showThread(thread, options)\n }\n ))\n }\n return messageRow\n} // END OF RENDERMESSAGE\n\nexport async function switchToEditor (messageRow, message, channelObject, userContext) {\n const messageTable = messageRow.parentNode\n const editRow = renderMessageEditor(channelObject, messageTable, userContext,\n channelObject.options, await mostRecentVersion(message))\n messageTable.insertBefore(editRow, messageRow)\n editRow.originalRow = messageRow\n messageRow.style.visibility = 'hidden' // Hide the original message. unhide if user cancels edit\n}\n/* Control for a new message -- or editing an old message ***************\n *\n */\nexport function renderMessageEditor (channelObject, messageTable, userContext, options, originalMessage) {\n function revertEditing (messageEditor) {\n messageEditor.originalRow.style.visibility = 'visible' // restore read-only version\n messageEditor.parentNode.removeChild(messageEditor)\n }\n\n async function handleFieldInput (_event) {\n await sendMessage(field.value, true)\n }\n\n async function sendMessage (text, fromMainField) {\n async function sendComplete (message, _text2) {\n // const dateStamp = store.any(message, ns.dct('created'), null, message.doc())\n // const content = $rdf.literal(text2)\n await insertMessageIntoTable(channelObject, messageTable, message, false, options, userContext) // not green\n\n if (originalMessage) { // editing another message\n const oldRow = messageEditor.originalRow\n // oldRow.style.display = '' // restore read-only version, re-attack\n if (oldRow.parentNode) {\n oldRow.parentNode.removeChild(oldRow) // No longer needed old version\n } else {\n debug.warn('No parentNode on old message ' + oldRow.textContent)\n oldRow.style.backgroundColor = '#fee'\n oldRow.style.visibility = 'hidden' // @@ FIX THIS AND REMOVE FROM DOM INSTEAD\n }\n messageEditor.parentNode.removeChild(messageEditor) // no longer need editor\n } else {\n if (fromMainField) {\n field.value = '' // clear from out for reuse\n field.setAttribute('style', messageBodyStyle)\n field.disabled = false\n field.scrollIntoView(options.newestFirst) // allign bottom (top)\n field.focus() // Start typing next line immediately\n field.select()\n }\n }\n // await channelObject.div.refresh() // Add new day if nec @@ add back\n }\n\n // const me = authn.currentUser() // Must be logged on or wuld have got login button\n if (fromMainField) {\n field.setAttribute('style', messageBodyStyle + 'color: #bbb;') // pendingedit\n field.disabled = true\n }\n\n let message\n try {\n message = await channelObject.updateMessage(text, originalMessage, null, options.thread)\n } catch (err) {\n const statusArea = userContext.statusArea || messageEditor\n statusArea.appendChild(\n widgets.errorMessageBlock(dom, 'Error writing message: ' + err)\n )\n return\n }\n await sendComplete(message, text)\n } // sendMessage\n\n // DRAG AND DROP\n function droppedFileHandler (files) {\n const base = messageTable.chatDocument.dir().uri\n widgets.uploadFiles(\n store.fetcher,\n files,\n base + 'Files',\n base + 'Pictures',\n async function (theFile, destURI) {\n // @@@@@@ Wait for each if several\n await sendMessage(destURI)\n }\n )\n }\n\n // When a set of URIs are dropped on the field\n const droppedURIHandler = async function (uris) {\n for (const uri of uris) {\n await sendMessage(uri)\n }\n }\n\n // When we are actually logged on\n function turnOnInput () {\n function getImageDoc () {\n imageDoc = $rdf.sym(\n chatDocument.dir().uri + 'Image_' + Date.now() + '.png'\n )\n return imageDoc\n }\n\n async function tookPicture (imageDoc) {\n if (imageDoc) {\n await sendMessage(imageDoc.uri)\n }\n }\n\n // Body of turnOnInput\n\n let menuButton\n if (options.menuHandler) {\n const menuButton = widgets.button(\n dom, icons.iconBase + 'noun_243787.svg', 'More')\n menuButton.setAttribute('style', style.buttonStyle + 'float: right;')\n // menuButton.addEventListener('click', _event => sendMessage(), false) (done in turnoninput)\n rhs.appendChild(menuButton)\n }\n\n if (options.menuHandler && menuButton) {\n const me = authn.currentUser()\n const menuOptions = {\n me,\n dom,\n div: null, // @@ was: div\n newBase: messageTable.chatDocument.dir().uri\n }\n menuButton.addEventListener(\n 'click',\n event => {\n options.menuHandler(event, channelObject.chatChannel, menuOptions)\n },\n false\n )\n }\n\n const me = authn.currentUser() // If already logged on\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n if (originalMessage) {\n field.value = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n }\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n // Trap the Enter BEFORE it is used ti make a newline\n\n field.addEventListener(\n 'keydown',\n async function (e) {\n // User preference?\n if (e.code === 'Enter') {\n // if (e.keyCode === 13) { // deprocated https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n if ((!e.shiftKey && !options.shiftEnterSendsMessage) || (e.shiftKey && options.shiftEnterSendsMessage)) {\n // Shift-Enter just adds a new line\n // (note alt-enter doesn't add newline anyway on my setup - so have to use shift.\n await handleFieldInput(e)\n }\n }\n },\n false\n )\n\n widgets.makeDropTarget(field, droppedURIHandler, droppedFileHandler)\n\n rhs.innerHTML = ''\n\n sendButton = widgets.button(dom, sendIcon, 'Send')\n sendButton.style.float = 'right'\n sendButton.addEventListener('click', _event => handleFieldInput(), false)\n rhs.appendChild(sendButton)\n\n if (originalMessage) { // Are we editing another message?\n const cancelButton = rhs.appendChild(widgets.cancelButton(dom))\n cancelButton.style.float = 'left'\n // cancelButton.firstChild.style.opacity = '0.3' // moved to buttons\n cancelButton.addEventListener('click', _event => revertEditing(messageEditor), false)\n rhs.appendChild(cancelButton)\n }\n\n const chatDocument = channelObject.dateFolder.leafDocumentFromDate(new Date())\n let imageDoc\n\n middle.appendChild(\n media.cameraButton(dom, store, getImageDoc, tookPicture)\n )\n\n pad.recordParticipation(channelObject.channel, channelObject.channel.doc()) // participation =\n } // turn on inpuut\n\n // Body of renderMessageEditor\n\n let sortDate, sendIcon\n if (originalMessage) {\n sortDate = store.anyValue(originalMessage, ns.dct('created'), null, originalMessage.doc())\n // text = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n sendIcon = icons.iconBase + 'noun_1180158.svg' // Green check\n // cancelIcon = icons.iconBase + 'noun_1180156.svg' // Black cross\n } else {\n sendIcon = icons.iconBase + 'noun_383448.svg'\n sortDate = '9999-01-01T00:00:00Z' // ISO format for field sort\n // text = ''\n }\n const messageEditor = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n messageEditor.appendChild(lhs)\n messageEditor.appendChild(middle)\n messageEditor.appendChild(rhs)\n messageEditor.AJAR_date = sortDate\n // messageEditor.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const context = { div: middle, dom }\n\n ensureLoggedIn(context).then(context => {\n // me = context.me\n turnOnInput()\n Object.assign(context, userContext)\n findBookmarkDocument(context).then(_context => {\n // debug.log('Bookmark file: ' + context.bookmarkDocument)\n })\n })\n\n return messageEditor\n} // renderMessageEditor\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/chat/signature.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,aAA2B,CAAA;AACnD,eAAO,MAAM,WAAW,aAAoB,CAAA;AAE5C,eAAO,MAAM,GAAG,+BAA+B,CAAA;AA4B/C,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wBAAgB,WAAW,IAAK,WAAW,CAS1C;AAWD,wBAAgB,YAAY,CAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAMtD;AAED,wBAAgB,UAAU,CAAE,OAAO,EAAE,WAAW,UAG/C;AAwBD,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvF;AAED,wBAAgB,OAAO,CAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlE"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/chat/signature.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,aAA2B,CAAA;AACnD,eAAO,MAAM,WAAW,aAAoB,CAAA;AAE5C,eAAO,MAAM,GAAG,+BAA+B,CAAA;AA2B/C,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wBAAgB,WAAW,IAAK,WAAW,CAS1C;AAWD,wBAAgB,YAAY,CAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAMtD;AAED,wBAAgB,UAAU,CAAE,OAAO,EAAE,WAAW,UAG/C;AAwBD,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvF;AAED,wBAAgB,OAAO,CAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlE"}
@@ -21,7 +21,6 @@ var utf8Encoder = exports.utf8Encoder = new TextEncoder();
21
21
  var SEC = exports.SEC = 'https://w3id.org/security#'; // Proof, VerificationMethod
22
22
  // export const CERT = 'http://www.w3.org/ns/auth/cert#' // PrivateKey, PublicKey, key
23
23
 
24
- /* eslint-disable no-unused-vars */
25
24
  /* export enum Kind {
26
25
  Metadata = 0,
27
26
  Text = 1,
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","names":["_secp256k","require","_utils","_sha","utf8Decoder","exports","TextDecoder","utf8Encoder","TextEncoder","SEC","getBlankMsg","id","created","dateDeleted","content","maker","sig","serializeMsg","msg","JSON","stringify","getMsgHash","message","msgHash","sha256","encode","bytesToHex","verifySignature","pubKey","schnorr","verify","signMsg","key","sign"],"sources":["../../src/chat/signature.ts"],"sourcesContent":["import { schnorr } from '@noble/curves/secp256k1'\r\nimport { bytesToHex } from '@noble/hashes/utils'\r\nimport { sha256 } from '@noble/hashes/sha256'\r\n\r\n// import {utf8Encoder} from './utils'\r\n// import { getPublicKey } from './keys'\r\n\r\nexport const utf8Decoder = new TextDecoder('utf-8')\r\nexport const utf8Encoder = new TextEncoder()\r\n\r\nexport const SEC = 'https://w3id.org/security#' // Proof, VerificationMethod\r\n// export const CERT = 'http://www.w3.org/ns/auth/cert#' // PrivateKey, PublicKey, key\r\n\r\n/* eslint-disable no-unused-vars */\r\n/* export enum Kind {\r\n Metadata = 0,\r\n Text = 1,\r\n RecommendRelay = 2,\r\n Contacts = 3,\r\n EncryptedDirectMessage = 4,\r\n EventDeletion = 5,\r\n Reaction = 7,\r\n BadgeAward = 8,\r\n ChannelCreation = 40,\r\n ChannelMetadata = 41,\r\n ChannelMessage = 42,\r\n ChannelHideMessage = 43,\r\n ChannelMuteUser = 44,\r\n Report = 1984,\r\n ZapRequest = 9734,\r\n Zap = 9735,\r\n RelayList = 10002,\r\n ClientAuth = 22242,\r\n BadgeDefinition = 30008,\r\n ProfileBadge = 30009,\r\n Article = 30023\r\n} */\r\n\r\nexport type MsgTemplate = {\r\n id: string\r\n created: string\r\n dateDeleted: string\r\n content: string\r\n maker: string\r\n sig: string\r\n}\r\n\r\nexport type UnsignedMsg = MsgTemplate & {\r\n pubkey: string\r\n}\r\n\r\nexport type Message = UnsignedMsg & {\r\n id: string\r\n sig: string\r\n}\r\n\r\nexport function getBlankMsg (): MsgTemplate {\r\n return {\r\n id: '',\r\n created: '',\r\n dateDeleted: '', // TODO to remove if not used\r\n content: '',\r\n maker: '',\r\n sig: '' // TODO to remove if not used\r\n }\r\n}\r\n\r\n/* export function finishMsg (t: MsgTemplate, privateKey: string): Message {\r\n // to update to chat message triples\r\n const message = t as Message\r\n // message.pubkey = getPublicKey(privateKey)\r\n message.id = getMsgHash(message)\r\n message.sig = signMsg(message, privateKey)\r\n return message\r\n} */\r\n\r\nexport function serializeMsg (msg: UnsignedMsg): string {\r\n // to update to chat messages triples\r\n /* if (!validateMsg(msg))\r\n throw new Error(\"can't serialize message with wrong or missing properties\") */\r\n\r\n return JSON.stringify(msg)\r\n}\r\n\r\nexport function getMsgHash (message: UnsignedMsg) {\r\n const msgHash = sha256(utf8Encoder.encode(serializeMsg(message)))\r\n return bytesToHex(msgHash)\r\n}\r\n\r\n// const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object\r\n\r\n/* export function validateMsg<T> (message: T): message is T & UnsignedMsg {\r\n if (!isRecord(message)) return false\r\n if (typeof message.kind !== 'number') return false\r\n if (typeof message.content !== 'string') return false\r\n if (typeof message.created_at !== 'number') return false\r\n if (typeof message.pubkey !== 'string') return false\r\n if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false\r\n\r\n if (!Array.isArray(message.tags)) return false\r\n for (let i = 0; i < message.tags.length; i++) {\r\n let tag = message.tags[i]\r\n if (!Array.isArray(tag)) return false\r\n for (let j = 0; j < tag.length; j++) {\r\n if (typeof tag[j] === 'object') return false\r\n }\r\n }\r\n\r\n return true\r\n} */\r\n\r\nexport function verifySignature (sig: string, message: Message, pubKey: string): boolean {\r\n return schnorr.verify(\r\n sig,\r\n getMsgHash(message),\r\n pubKey\r\n )\r\n}\r\n\r\nexport function signMsg (message: UnsignedMsg, key: string): string {\r\n return bytesToHex(\r\n schnorr.sign(getMsgHash(message), key)\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEA;AACA;;AAEO,IAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAIE,WAAW,CAAC,OAAO,CAAC;AAC5C,IAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG,IAAIC,WAAW,CAAC,CAAC;AAErC,IAAMC,GAAG,GAAAJ,OAAA,CAAAI,GAAA,GAAG,4BAA4B,EAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBO,SAASC,WAAWA,CAAA,EAAiB;EAC1C,OAAO;IACLC,EAAE,EAAE,EAAE;IACNC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE,EAAE;IAAE;IACjBC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAE,EAAE;IACTC,GAAG,EAAE,EAAE,CAAC;EACV,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASC,YAAYA,CAAEC,GAAgB,EAAU;EACtD;EACA;AACF;;EAEE,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC;AAC5B;AAEO,SAASG,UAAUA,CAAEC,OAAoB,EAAE;EAChD,IAAMC,OAAO,GAAG,IAAAC,WAAM,EAACjB,WAAW,CAACkB,MAAM,CAACR,YAAY,CAACK,OAAO,CAAC,CAAC,CAAC;EACjE,OAAO,IAAAI,iBAAU,EAACH,OAAO,CAAC;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASI,eAAeA,CAAEX,GAAW,EAAEM,OAAgB,EAAEM,MAAc,EAAW;EACvF,OAAOC,iBAAO,CAACC,MAAM,CACnBd,GAAG,EACHK,UAAU,CAACC,OAAO,CAAC,EACnBM,MACF,CAAC;AACH;AAEO,SAASG,OAAOA,CAAET,OAAoB,EAAEU,GAAW,EAAU;EAClE,OAAO,IAAAN,iBAAU,EACfG,iBAAO,CAACI,IAAI,CAACZ,UAAU,CAACC,OAAO,CAAC,EAAEU,GAAG,CACvC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"signature.js","names":["_secp256k","require","_utils","_sha","utf8Decoder","exports","TextDecoder","utf8Encoder","TextEncoder","SEC","getBlankMsg","id","created","dateDeleted","content","maker","sig","serializeMsg","msg","JSON","stringify","getMsgHash","message","msgHash","sha256","encode","bytesToHex","verifySignature","pubKey","schnorr","verify","signMsg","key","sign"],"sources":["../../src/chat/signature.ts"],"sourcesContent":["import { schnorr } from '@noble/curves/secp256k1'\r\nimport { bytesToHex } from '@noble/hashes/utils'\r\nimport { sha256 } from '@noble/hashes/sha256'\r\n\r\n// import {utf8Encoder} from './utils'\r\n// import { getPublicKey } from './keys'\r\n\r\nexport const utf8Decoder = new TextDecoder('utf-8')\r\nexport const utf8Encoder = new TextEncoder()\r\n\r\nexport const SEC = 'https://w3id.org/security#' // Proof, VerificationMethod\r\n// export const CERT = 'http://www.w3.org/ns/auth/cert#' // PrivateKey, PublicKey, key\r\n\r\n/* export enum Kind {\r\n Metadata = 0,\r\n Text = 1,\r\n RecommendRelay = 2,\r\n Contacts = 3,\r\n EncryptedDirectMessage = 4,\r\n EventDeletion = 5,\r\n Reaction = 7,\r\n BadgeAward = 8,\r\n ChannelCreation = 40,\r\n ChannelMetadata = 41,\r\n ChannelMessage = 42,\r\n ChannelHideMessage = 43,\r\n ChannelMuteUser = 44,\r\n Report = 1984,\r\n ZapRequest = 9734,\r\n Zap = 9735,\r\n RelayList = 10002,\r\n ClientAuth = 22242,\r\n BadgeDefinition = 30008,\r\n ProfileBadge = 30009,\r\n Article = 30023\r\n} */\r\n\r\nexport type MsgTemplate = {\r\n id: string\r\n created: string\r\n dateDeleted: string\r\n content: string\r\n maker: string\r\n sig: string\r\n}\r\n\r\nexport type UnsignedMsg = MsgTemplate & {\r\n pubkey: string\r\n}\r\n\r\nexport type Message = UnsignedMsg & {\r\n id: string\r\n sig: string\r\n}\r\n\r\nexport function getBlankMsg (): MsgTemplate {\r\n return {\r\n id: '',\r\n created: '',\r\n dateDeleted: '', // TODO to remove if not used\r\n content: '',\r\n maker: '',\r\n sig: '' // TODO to remove if not used\r\n }\r\n}\r\n\r\n/* export function finishMsg (t: MsgTemplate, privateKey: string): Message {\r\n // to update to chat message triples\r\n const message = t as Message\r\n // message.pubkey = getPublicKey(privateKey)\r\n message.id = getMsgHash(message)\r\n message.sig = signMsg(message, privateKey)\r\n return message\r\n} */\r\n\r\nexport function serializeMsg (msg: UnsignedMsg): string {\r\n // to update to chat messages triples\r\n /* if (!validateMsg(msg))\r\n throw new Error(\"can't serialize message with wrong or missing properties\") */\r\n\r\n return JSON.stringify(msg)\r\n}\r\n\r\nexport function getMsgHash (message: UnsignedMsg) {\r\n const msgHash = sha256(utf8Encoder.encode(serializeMsg(message)))\r\n return bytesToHex(msgHash)\r\n}\r\n\r\n// const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object\r\n\r\n/* export function validateMsg<T> (message: T): message is T & UnsignedMsg {\r\n if (!isRecord(message)) return false\r\n if (typeof message.kind !== 'number') return false\r\n if (typeof message.content !== 'string') return false\r\n if (typeof message.created_at !== 'number') return false\r\n if (typeof message.pubkey !== 'string') return false\r\n if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false\r\n\r\n if (!Array.isArray(message.tags)) return false\r\n for (let i = 0; i < message.tags.length; i++) {\r\n let tag = message.tags[i]\r\n if (!Array.isArray(tag)) return false\r\n for (let j = 0; j < tag.length; j++) {\r\n if (typeof tag[j] === 'object') return false\r\n }\r\n }\r\n\r\n return true\r\n} */\r\n\r\nexport function verifySignature (sig: string, message: Message, pubKey: string): boolean {\r\n return schnorr.verify(\r\n sig,\r\n getMsgHash(message),\r\n pubKey\r\n )\r\n}\r\n\r\nexport function signMsg (message: UnsignedMsg, key: string): string {\r\n return bytesToHex(\r\n schnorr.sign(getMsgHash(message), key)\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEA;AACA;;AAEO,IAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAIE,WAAW,CAAC,OAAO,CAAC;AAC5C,IAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG,IAAIC,WAAW,CAAC,CAAC;AAErC,IAAMC,GAAG,GAAAJ,OAAA,CAAAI,GAAA,GAAG,4BAA4B,EAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBO,SAASC,WAAWA,CAAA,EAAiB;EAC1C,OAAO;IACLC,EAAE,EAAE,EAAE;IACNC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE,EAAE;IAAE;IACjBC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAE,EAAE;IACTC,GAAG,EAAE,EAAE,CAAC;EACV,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASC,YAAYA,CAAEC,GAAgB,EAAU;EACtD;EACA;AACF;;EAEE,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC;AAC5B;AAEO,SAASG,UAAUA,CAAEC,OAAoB,EAAE;EAChD,IAAMC,OAAO,GAAG,IAAAC,WAAM,EAACjB,WAAW,CAACkB,MAAM,CAACR,YAAY,CAACK,OAAO,CAAC,CAAC,CAAC;EACjE,OAAO,IAAAI,iBAAU,EAACH,OAAO,CAAC;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASI,eAAeA,CAAEX,GAAW,EAAEM,OAAgB,EAAEM,MAAc,EAAW;EACvF,OAAOC,iBAAO,CAACC,MAAM,CACnBd,GAAG,EACHK,UAAU,CAACC,OAAO,CAAC,EACnBM,MACF,CAAC;AACH;AAEO,SAASG,OAAOA,CAAET,OAAoB,EAAEU,GAAW,EAAU;EAClE,OAAO,IAAAN,iBAAU,EACfG,iBAAO,CAACI,IAAI,CAACZ,UAAU,CAACC,OAAO,CAAC,EAAEU,GAAG,CACvC,CAAC;AACH","ignoreList":[]}
@@ -18,7 +18,7 @@ var $rdf = _interopRequireWildcard(require("rdflib"));
18
18
  var style = _interopRequireWildcard(require("../style"));
19
19
  var utils = _interopRequireWildcard(require("../utils"));
20
20
  var widgets = _interopRequireWildcard(require("../widgets"));
21
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t8 in e) "default" !== _t8 && {}.hasOwnProperty.call(e, _t8) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t8)) && (i.get || i.set) ? o(f, _t8, i) : f[_t8] = e[_t8]); return f; })(e, t); }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t7 in e) "default" !== _t7 && {}.hasOwnProperty.call(e, _t7) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t7)) && (i.get || i.set) ? o(f, _t7, i) : f[_t7] = e[_t7]); return f; })(e, t); }
22
22
  /**
23
23
  * Contains the [[thread]] function
24
24
  * @packageDocumentation
@@ -214,7 +214,7 @@ function thread(dom, kb, subject, messageStore, options) {
214
214
  var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
215
215
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
216
216
  return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
217
- var sts, now, timestamp, dateStamp, message, msgBody, _t, _t2, _t3, _t4, _t5, _t6, _t7;
217
+ var sts, now, timestamp, dateStamp, message, msgBody, _t, _t2, _t3, _t4, _t5, _t6;
218
218
  return _regenerator["default"].wrap(function (_context4) {
219
219
  while (1) switch (_context4.prev = _context4.next) {
220
220
  case 0:
@@ -237,8 +237,7 @@ function thread(dom, kb, subject, messageStore, options) {
237
237
  _t4 = DCT('isReplacedBy');
238
238
  _t5 = message;
239
239
  _t6 = messageStore;
240
- _t7 = new _t2(_t3, _t4, _t5, _t6);
241
- _t.push.call(_t, _t7);
240
+ _t.push.call(_t, new _t2(_t3, _t4, _t5, _t6));
242
241
  _context4.next = 3;
243
242
  break;
244
243
  case 2:
@@ -301,8 +300,6 @@ function thread(dom, kb, subject, messageStore, options) {
301
300
  addMessage(m);
302
301
  }
303
302
  });
304
-
305
- // eslint-disable-next-line space-in-parens
306
303
  for (ele = messageTable.firstChild; ele;) {
307
304
  ele2 = ele.nextSibling;
308
305
  if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {
@@ -1 +1 @@
1
- {"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t8","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_yield$appendMsg","dateStamp","sts","sendComplete","wrap","_context2","prev","next","field","disabled","appendMsg","value","sent","_ref2","_callee","success","body","bindings","_context","errorMessageBlock","literal","renderMessage","stop","_x","_x2","_x3","apply","arguments","updateMany","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","_ref3","_callee3","_context3","keyCode","altKey","_x4","button","iconBase","buttonStyle","context","ensureLoggedIn","then","_ref4","fieldValue","oldMsg","length","undefined","_callee4","now","timestamp","msgBody","_t","_t2","_t3","_t4","_t5","_t6","_t7","_context4","Date","getTime","sym","Statement","mostRecentVersion","push","wf","concat","nick","sioc","foaf","abrupt","_x5","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref5","_callee5","deletions","_context5","connectedStatements","ok","_x6","_ref6","_callee6","_context6","_x7","_ref7","_callee9","fresh","content","dateString","tr","done","td2","td3","delButton","_context9","insertBefore","shortDate","_ref8","_callee8","_event","cancelButton","sureButton","_context8","_ref9","_callee7","_yield$appendMsg2","_context7","_x1","_x0","_x8","_x9","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\nimport * as pad from '../pad'\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, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || 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\n\n let me\n\n const updater = 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 /**\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 = async function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = await appendMsg(field.value)\n\n const sendComplete = async 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': store.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 await updater.updateMany([], 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 async function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n await 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 const appendMsg = async function (fieldValue, oldMsg = {}, options = '') { // alain\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 = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(await mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\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 return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = 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 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 = store.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 mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n message = msg\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return message\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n await updater.updateMany(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 = async function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n await renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = async 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 async 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 async function (_event) { // alain: test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = await appendMsg() // alain\n await updater.updateMany([], sts) // alain\n }\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\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.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":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t7","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_yield$appendMsg","dateStamp","sts","sendComplete","wrap","_context2","prev","next","field","disabled","appendMsg","value","sent","_ref2","_callee","success","body","bindings","_context","errorMessageBlock","literal","renderMessage","stop","_x","_x2","_x3","apply","arguments","updateMany","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","_ref3","_callee3","_context3","keyCode","altKey","_x4","button","iconBase","buttonStyle","context","ensureLoggedIn","then","_ref4","fieldValue","oldMsg","length","undefined","_callee4","now","timestamp","msgBody","_t","_t2","_t3","_t4","_t5","_t6","_context4","Date","getTime","sym","Statement","mostRecentVersion","push","wf","concat","nick","sioc","foaf","abrupt","_x5","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref5","_callee5","deletions","_context5","connectedStatements","ok","_x6","_ref6","_callee6","_context6","_x7","_ref7","_callee9","fresh","content","dateString","tr","done","td2","td3","delButton","_context9","insertBefore","shortDate","_ref8","_callee8","_event","cancelButton","sureButton","_context8","_ref9","_callee7","_yield$appendMsg2","_context7","_x1","_x0","_x8","_x9","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\nimport * as pad from '../pad'\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, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || 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\n\n let me\n\n const updater = 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 /**\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 = async function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = await appendMsg(field.value)\n\n const sendComplete = async 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': store.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 await updater.updateMany([], 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 async function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n await 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 const appendMsg = async function (fieldValue, oldMsg = {}, options = '') { // alain\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 = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(await mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\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 return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = 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 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 = store.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 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 mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n message = msg\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return message\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n await updater.updateMany(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 = async function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n await renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = async 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 async 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 async function (_event) { // alain: test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = await appendMsg() // alain\n await updater.updateMany([], sts) // alain\n }\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\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.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/folders.js CHANGED
@@ -29,7 +29,6 @@ var UI = {
29
29
  widgets: widgets
30
30
  };
31
31
  function deleteRecursive(kb, folder) {
32
- // eslint-disable-next-line promise/param-names
33
32
  return new Promise(function (resolve, _reject) {
34
33
  kb.fetcher.load(folder).then(function () {
35
34
  var promises = kb.each(folder, ns.ldp('contains')).map(function (file) {
@@ -62,7 +61,6 @@ function deleteRecursive(kb, folder) {
62
61
  * @param action - returns a promise. All the promises must be resolved
63
62
  */
64
63
  function forAllFiles(folder, kb, action) {
65
- // eslint-disable-next-line promise/param-names
66
64
  return new Promise(function (resolve, _reject) {
67
65
  kb.fetcher.load(folder).then(function () {
68
66
  var promises = kb.each(folder, ns.ldp('contains')).map(function (file) {