solid-ui 2.4.22-fd0ccabe → 2.4.22-fd705c8d

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 (106) hide show
  1. package/dist/main.js +2059 -1163
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js +9 -14
  4. package/lib/acl/access-controller.js.map +1 -1
  5. package/lib/acl/access-groups.js +10 -15
  6. package/lib/acl/access-groups.js.map +1 -1
  7. package/lib/acl/acl-control.js +9 -13
  8. package/lib/acl/acl-control.js.map +1 -1
  9. package/lib/acl/acl.js +7 -11
  10. package/lib/acl/acl.js.map +1 -1
  11. package/lib/acl/add-agent-buttons.js +13 -19
  12. package/lib/acl/add-agent-buttons.js.map +1 -1
  13. package/lib/acl/index.js.map +1 -1
  14. package/lib/acl/styles.js.map +1 -1
  15. package/lib/acl/types.js.map +1 -1
  16. package/lib/chat/bookmarks.js +14 -19
  17. package/lib/chat/bookmarks.js.map +1 -1
  18. package/lib/chat/chatLogic.js +9 -15
  19. package/lib/chat/chatLogic.js.map +1 -1
  20. package/lib/chat/dateFolder.js +12 -17
  21. package/lib/chat/dateFolder.js.map +1 -1
  22. package/lib/chat/infinite.js +29 -37
  23. package/lib/chat/infinite.js.map +1 -1
  24. package/lib/chat/message.js +14 -14
  25. package/lib/chat/message.js.map +1 -1
  26. package/lib/chat/messageTools.js +10 -23
  27. package/lib/chat/messageTools.js.map +1 -1
  28. package/lib/chat/thread.js +4 -9
  29. package/lib/chat/thread.js.map +1 -1
  30. package/lib/create/create.js.map +1 -1
  31. package/lib/create/index.js.map +1 -1
  32. package/lib/create/types.js.map +1 -1
  33. package/lib/debug.js.map +1 -1
  34. package/lib/folders.js.map +1 -1
  35. package/lib/footer/index.js +8 -10
  36. package/lib/footer/index.js.map +1 -1
  37. package/lib/footer/styleMap.js.map +1 -1
  38. package/lib/header/empty-profile.js.map +1 -1
  39. package/lib/header/index.js +9 -17
  40. package/lib/header/index.js.map +1 -1
  41. package/lib/header/styleMap.js.map +1 -1
  42. package/lib/iconBase.js.map +1 -1
  43. package/lib/icons/solid_logo.js.map +1 -1
  44. package/lib/index.js.map +1 -1
  45. package/lib/jss/index.js.map +1 -1
  46. package/lib/log.js.map +1 -1
  47. package/lib/login/login.js +21 -63
  48. package/lib/login/login.js.map +1 -1
  49. package/lib/matrix/index.js.map +1 -1
  50. package/lib/matrix/matrix.js.map +1 -1
  51. package/lib/matrix/types.js.map +1 -1
  52. package/lib/media/index.js.map +1 -1
  53. package/lib/media/media-capture.js +4 -20
  54. package/lib/media/media-capture.js.map +1 -1
  55. package/lib/messageArea.js.map +1 -1
  56. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  57. package/lib/ns.js.map +1 -1
  58. package/lib/pad.js.map +1 -1
  59. package/lib/participation.js.map +1 -1
  60. package/lib/preferences.js.map +1 -1
  61. package/lib/signup/config-default.js.map +1 -1
  62. package/lib/signup/signup.js.map +1 -1
  63. package/lib/stories/decorators.js.map +1 -1
  64. package/lib/style.js.map +1 -1
  65. package/lib/style_multiSelect.js +67 -0
  66. package/lib/style_multiSelect.js.map +1 -0
  67. package/lib/table.js.map +1 -1
  68. package/lib/tabs.d.ts +1 -1
  69. package/lib/tabs.d.ts.map +1 -1
  70. package/lib/tabs.js +38 -22
  71. package/lib/tabs.js.map +1 -1
  72. package/lib/typings.d.js.map +1 -1
  73. package/lib/utils/headerFooterHelpers.js +5 -7
  74. package/lib/utils/headerFooterHelpers.js.map +1 -1
  75. package/lib/utils/index.js.map +1 -1
  76. package/lib/utils/label.js +1 -1
  77. package/lib/utils/label.js.map +1 -1
  78. package/lib/versionInfo.js +5 -5
  79. package/lib/versionInfo.js.map +1 -1
  80. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  81. package/lib/widgets/buttons.js.map +1 -1
  82. package/lib/widgets/dragAndDrop.js.map +1 -1
  83. package/lib/widgets/error.js.map +1 -1
  84. package/lib/widgets/forms/autocomplete/autocompleteBar.js +17 -15
  85. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  86. package/lib/widgets/forms/autocomplete/autocompleteField.js +5 -8
  87. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  88. package/lib/widgets/forms/autocomplete/autocompletePicker.js +21 -19
  89. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  90. package/lib/widgets/forms/autocomplete/language.js +8 -15
  91. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  92. package/lib/widgets/forms/autocomplete/publicData.js +22 -27
  93. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  94. package/lib/widgets/forms/basic.js.map +1 -1
  95. package/lib/widgets/forms/comment.js.map +1 -1
  96. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  97. package/lib/widgets/forms/fieldParams.js.map +1 -1
  98. package/lib/widgets/forms/formStyle.js.map +1 -1
  99. package/lib/widgets/forms.js +504 -203
  100. package/lib/widgets/forms.js.map +1 -1
  101. package/lib/widgets/index.js.map +1 -1
  102. package/lib/widgets/multiSelect.js +784 -0
  103. package/lib/widgets/multiSelect.js.map +1 -0
  104. package/lib/widgets/peoplePicker.js.map +1 -1
  105. package/lib/widgets/widgetHelpers.js.map +1 -1
  106. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chat/message.js"],"names":["dom","window","document","messageBodyStyle","style","label","utils","elementForImageURI","imageUri","options","img","createElement","height","inlineImageHeightEms","trim","setAttribute","anchor","appendChild","widgets","makeDraggable","$rdf","sym","text","term","a","uri","addEventListener","openHrefInOutlineMode","textContent","nick","person","s","store","any","ns","foaf","value","creatorAndDate","td1","creator","date","message","nickAnchor","fetcher","nowOrWhenFetched","doc","undefined","_ok","_body","creatorAndDateHorizontal","dateBit","fontSize","marginLeft","renderMessageRow","channelObject","fresh","userContext","colorizeByAuthor","dct","latestVersion","content","sioc","originalMessage","edited","sameTerm","sortDate","the","messageRow","AJAR_date","AJAR_subject","authorDateOnLeft","setImage","shortDate","bothDates","td2","isURI","test","para","isImage","expandImagesInline","anc","href","bgcolor","pad","lightColorHash","getBgColor","strip","children","length","td3","toolsButton","button","icons","iconBase","_event","toolTR","parentNode","removeChild","toolsTR","tools","nextSibling","parentElement","insertBefore","toolsTD","switchToEditor","messageTable","editRow","renderMessageEditor","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","sendMessage","field","fromMainField","sendComplete","_text2","oldRow","debug","warn","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","updateMessage","statusArea","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","theFile","destURI","droppedURIHandler","uris","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","e","code","shiftKey","shiftEnterSendsMessage","makeDropTarget","sendButton","sendIcon","cancelButton","dateFolder","leafDocumentFromDate","media","cameraButton","recordParticipation","channel","context","then","Object","assign","_context"],"mappings":"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","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 } 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'\n\nconst dom = window.document\nconst messageBodyStyle = style.messageBodyStyle\n\nconst label = utils.label\n\n/**\n * HTML component for an 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 nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + label(person)\n}\n\n/**\n * Displays creator and date for a chat message\n * inside the `td1` element\n */\nexport 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 * Horizontally displays creator and date for a chat message\n * inside the `td1` element\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 = nick(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 * Renders a chat message, read-only mode\n */\nexport function renderMessageRow (channelObject, message, fresh, options, userContext) {\n const colorizeByAuthor =\n options.colorizeByAuthor === '1' || options.colorizeByAuthor === true\n\n const creator = store.any(message, ns.foaf('maker'))\n const date = store.any(message, ns.dct('created'))\n const latestVersion = mostRecentVersion(message)\n const content = store.any(latestVersion, ns.sioc('content'))\n\n const originalMessage = originalVersion(message)\n const edited = !message.sameTerm(originalMessage)\n\n const sortDate = store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) // In message\n\n const messageRow = dom.createElement('tr')\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.value.trim()\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 = 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', 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 = messageToolbar(message, messageRow, userContext, 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 return messageRow\n}\n\nexport function switchToEditor (messageRow, message, channelObject, userContext) {\n const messageTable = messageRow.parentNode\n const editRow = renderMessageEditor(channelObject, messageTable, userContext,\n channelObject.options, 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 function sendComplete (message, _text2) {\n // const dateStamp = store.any(message, ns.dct('created'), null, message.doc())\n // const content = $rdf.literal(text2)\n 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)\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 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 // console.log('Bookmark file: ' + context.bookmarkDocument)\n })\n })\n\n return messageEditor\n} // renderMessageEditor\n"],"file":"message.js"}
1
+ {"version":3,"file":"message.js","names":["dom","window","document","messageBodyStyle","style","label","utils","elementForImageURI","imageUri","options","img","createElement","height","inlineImageHeightEms","trim","setAttribute","anchor","appendChild","widgets","makeDraggable","$rdf","sym","text","term","a","uri","addEventListener","openHrefInOutlineMode","textContent","nick","person","s","store","any","ns","foaf","value","creatorAndDate","td1","creator","date","message","nickAnchor","fetcher","nowOrWhenFetched","doc","undefined","_ok","_body","creatorAndDateHorizontal","dateBit","fontSize","marginLeft","renderMessageRow","channelObject","fresh","userContext","colorizeByAuthor","dct","latestVersion","mostRecentVersion","content","sioc","originalMessage","originalVersion","edited","sameTerm","sortDate","the","messageRow","AJAR_date","AJAR_subject","authorDateOnLeft","setImage","shortDate","bothDates","td2","isURI","test","para","isImage","expandImagesInline","anc","href","bgcolor","pad","lightColorHash","getBgColor","strip","sentimentStripLinked","children","length","td3","toolsButton","button","icons","iconBase","_event","toolTR","parentNode","removeChild","toolsTR","tools","messageToolbar","nextSibling","parentElement","insertBefore","toolsTD","switchToEditor","messageTable","editRow","renderMessageEditor","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","sendMessage","field","fromMainField","sendComplete","_text2","insertMessageIntoTable","oldRow","debug","warn","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","updateMessage","statusArea","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","theFile","destURI","droppedURIHandler","uris","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","e","code","shiftKey","shiftEnterSendsMessage","makeDropTarget","sendButton","sendIcon","cancelButton","dateFolder","leafDocumentFromDate","media","cameraButton","recordParticipation","channel","context","ensureLoggedIn","then","Object","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 } 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'\n\nconst dom = window.document\nconst messageBodyStyle = style.messageBodyStyle\n\nconst label = utils.label\n\n/**\n * HTML component for an 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 nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + label(person)\n}\n\n/**\n * Displays creator and date for a chat message\n * inside the `td1` element\n */\nexport 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 * Horizontally displays creator and date for a chat message\n * inside the `td1` element\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 = nick(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 * Renders a chat message, read-only mode\n */\nexport function renderMessageRow (channelObject, message, fresh, options, userContext) {\n const colorizeByAuthor =\n options.colorizeByAuthor === '1' || options.colorizeByAuthor === true\n\n const creator = store.any(message, ns.foaf('maker'))\n const date = store.any(message, ns.dct('created'))\n const latestVersion = mostRecentVersion(message)\n const content = store.any(latestVersion, ns.sioc('content'))\n\n const originalMessage = originalVersion(message)\n const edited = !message.sameTerm(originalMessage)\n\n const sortDate = store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) // In message\n\n const messageRow = dom.createElement('tr')\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.value.trim()\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 = 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', 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 = messageToolbar(message, messageRow, userContext, 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 return messageRow\n}\n\nexport function switchToEditor (messageRow, message, channelObject, userContext) {\n const messageTable = messageRow.parentNode\n const editRow = renderMessageEditor(channelObject, messageTable, userContext,\n channelObject.options, 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 function sendComplete (message, _text2) {\n // const dateStamp = store.any(message, ns.dct('created'), null, message.doc())\n // const content = $rdf.literal(text2)\n 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)\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 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 // console.log('Bookmark file: ' + context.bookmarkDocument)\n })\n })\n\n return messageEditor\n} // renderMessageEditor\n"],"mappings":"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"}
@@ -11,8 +11,6 @@ exports.messageToolbar = messageToolbar;
11
11
  exports.sentimentStrip = sentimentStrip;
12
12
  exports.sentimentStripLinked = sentimentStripLinked;
13
13
 
14
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
15
 
18
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -41,19 +39,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
41
39
 
42
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
41
 
44
- /**
45
- * Tools for doing things with a message
46
- * Let us be creative here. Allow all sorts of things to
47
- * be done to a message - linking to new or old objects in an open way
48
- *
49
- * Ideas: Bookmark, Like, star, pin at top of chat, reply as new thread,
50
- * If you made it originally: edit, delete, attach
51
- * @packageDocumentation
52
- */
53
- // import { media } from '../media/index'
54
- // import * as pad from '../pad'
55
- // pull in first avoid cross-refs
56
- // import * as style from '../style'
42
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
43
+
57
44
  var dom = window.document; // THE UNUSED ICONS are here as reminders for possible future functionality
58
45
  // const BOOKMARK_ICON = 'noun_45961.svg'
59
46
  // const HEART_ICON = 'noun_130259.svg' -> Add this to my (private) favorites
@@ -144,9 +131,9 @@ function messageToolbar(message, messageRow, userContext, channelObject) {
144
131
  }
145
132
 
146
133
  function _deleteMessage() {
147
- _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
134
+ _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
148
135
  var author, msg, area;
149
- return _regenerator["default"].wrap(function _callee2$(_context2) {
136
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
150
137
  while (1) {
151
138
  switch (_context2.prev = _context2.next) {
152
139
  case 0:
@@ -211,8 +198,8 @@ function messageToolbar(message, messageRow, userContext, channelObject) {
211
198
 
212
199
 
213
200
  function _editMessage() {
214
- _editMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(messageRow) {
215
- return _regenerator["default"].wrap(function _callee3$(_context3) {
201
+ _editMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(messageRow) {
202
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
216
203
  while (1) {
217
204
  switch (_context3.prev = _context3.next) {
218
205
  case 0:
@@ -246,8 +233,8 @@ function messageToolbar(message, messageRow, userContext, channelObject) {
246
233
 
247
234
 
248
235
  function _deleteThingThen() {
249
- _deleteThingThen = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(x) {
250
- return _regenerator["default"].wrap(function _callee4$(_context4) {
236
+ _deleteThingThen = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(x) {
237
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
251
238
  while (1) {
252
239
  switch (_context4.prev = _context4.next) {
253
240
  case 0:
@@ -305,9 +292,9 @@ function messageToolbar(message, messageRow, userContext, channelObject) {
305
292
  }
306
293
 
307
294
  var button = widgets.button(dom, icon, utils.label(actionClass), /*#__PURE__*/function () {
308
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_event) {
295
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_event) {
309
296
  var insertMe, dirty, i, a;
310
- return _regenerator["default"].wrap(function _callee$(_context) {
297
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
311
298
  while (1) {
312
299
  switch (_context.prev = _context.next) {
313
300
  case 0:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chat/messageTools.js"],"names":["dom","window","document","PENCIL_ICON","THUMBS_UP_ICON","THUMBS_DOWN_ICON","emoji","ns","schema","sentimentStrip","target","doc","latest","actions","store","holds","value","each","sentiments","map","a","any","rdf","sort","strings","x","createTextNode","join","sentimentStripLinked","strip","createElement","refresh","innerHTML","uri","forEach","ss","theClass","agent","res","setAttribute","textContent","appendChild","messageToolbar","message","messageRow","userContext","channelObject","deleteMessage","author","foaf","me","alert","sameTerm","msg","debug","warn","area","statusArea","parentNode","widgets","errorMessageBlock","removeChild","closeToolbar","editMessage","div","parentElement","deleteThingThen","updater","update","connectedStatements","authn","currentUser","deleteButtonWithCheck","button","icons","iconBase","then","bookmarkButton","sentimentButton","context","icon","actionClass","mutuallyExclusive","setColor","style","backgroundColor","action","utils","label","_event","newThing","insertMe","st","dirty","i","length","existingAction","refreshTree","filter","context1","cancelButton","firstChild","opacity","addEventListener"],"mappings":"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","sourcesContent":["/**\n * Tools for doing things with a message\n * Let us be creative here. Allow all sorts of things to\n * be done to a message - linking to new or old objects in an open way\n *\n * Ideas: Bookmark, Like, star, pin at top of chat, reply as new thread,\n * If you made it originally: edit, delete, attach\n * @packageDocumentation\n */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\n// import { media } from '../media/index'\nimport * as ns from '../ns'\n// import * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n// import * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { renderBookmarksButton } from './bookmarks'\nimport { authn, store } from 'solid-logic'\n\nimport { mostRecentVersion } from './chatLogic'\nimport { switchToEditor } from './message'\n\nconst dom = window.document\n\n// THE UNUSED ICONS are here as reminders for possible future functionality\n// const BOOKMARK_ICON = 'noun_45961.svg'\n// const HEART_ICON = 'noun_130259.svg' -> Add this to my (private) favorites\n// const MENU_ICON = 'noun_897914.svg'\n// const PAPERCLIP_ICON = 'noun_25830.svg' -> add attachments to this message\n// const PIN_ICON = 'noun_562340.svg' -> pin this message permanently in the chat UI\nconst PENCIL_ICON = 'noun_253504.svg' // edit a message\n// const SPANNER_ICON = 'noun_344563.svg' -> settings\nconst THUMBS_UP_ICON = 'noun_1384132.svg'\nconst THUMBS_DOWN_ICON = 'noun_1384135.svg'\n/**\n * Emoji in Unicode\n */\nconst emoji = {}\nemoji[ns.schema('AgreeAction')] = '👍'\nemoji[ns.schema('DisagreeAction')] = '👎'\nemoji[ns.schema('EndorseAction')] = '⭐️'\nemoji[ns.schema('LikeAction')] = '❤️'\n\n/**\n * Create strip of sentiments expressed\n */\nexport function sentimentStrip (target, doc) { // alain seems not used\n const latest = mostRecentVersion(target)\n const actions = store.holds(latest, ns.schema('dateDeleted').value, null, latest.doc()) ? store.each(null, ns.schema('target'), target, doc) : []\n const sentiments = actions.map(a => store.any(a, ns.rdf('type'), null, doc))\n sentiments.sort()\n const strings = sentiments.map(x => emoji[x] || '')\n return dom.createTextNode(strings.join(' '))\n}\n/**\n * Create strip of sentiments expressed, with hyperlinks\n *\n * @param target {NamedNode} - The thing about which they are expressed\n * @param doc {NamedNode} - The document in which they are expressed\n */\nexport function sentimentStripLinked (target, doc) {\n const strip = dom.createElement('span')\n function refresh () {\n strip.innerHTML = ''\n const actions = (mostRecentVersion(target).uri !== ns.schema('dateDeleted').uri) ? store.each(null, ns.schema('target'), target, doc) : []\n const sentiments = actions.map(a => [\n store.any(a, ns.rdf('type'), null, doc),\n store.any(a, ns.schema('agent'), null, doc)\n ])\n sentiments.sort()\n sentiments.forEach(ss => {\n const [theClass, agent] = ss\n let res\n if (agent) {\n res = dom.createElement('a')\n res.setAttribute('href', agent.uri)\n } else {\n res = dom.createTextNode('')\n }\n res.textContent = emoji[theClass] || '*'\n strip.appendChild(res)\n })\n }\n refresh()\n strip.refresh = refresh\n return strip\n}\n/**\n * Creates a message toolbar component\n */\nexport function messageToolbar (message, messageRow, userContext, channelObject) {\n async function deleteMessage () {\n const author = store.any(message, ns.foaf('maker'))\n if (!me) {\n alert('You can\\'t delete the message, you are not logged in.')\n } else if (me.sameTerm(author)) {\n try {\n await channelObject.deleteMessage(message)\n } catch (err) {\n const msg = 'Error deleting messaage ' + err\n debug.warn(msg)\n alert(msg)\n const area = userContext.statusArea || messageRow.parentNode\n area.appendChild(widgets.errorMessageBlock(dom, msg))\n }\n messageRow.parentNode.removeChild(messageRow)\n } else {\n alert('You can\\'t delete the message, you are not logged in as the author, ' + author)\n }\n closeToolbar()\n }\n\n async function editMessage (messageRow) {\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n closeToolbar() // edit is a one-off action\n switchToEditor(messageRow, message, channelObject, userContext)\n }\n }\n\n // alain TODO allow chat owner to fully delete message + sentiments and replacing messages\n\n const div = dom.createElement('div')\n // is message deleted ?\n if (mostRecentVersion(message).value === ns.schema('dateDeleted').value) return div\n function closeToolbar () {\n div.parentElement.parentElement.removeChild(div.parentElement) // remive the TR\n }\n\n async function deleteThingThen (x) {\n await store.updater.update(store.connectedStatements(x), [])\n }\n\n // Things only the original author can do\n let me = authn.currentUser() // If already logged on\n if (me && store.holds(message, ns.foaf('maker'), me)) {\n // button to delete the message\n div.appendChild(widgets.deleteButtonWithCheck(dom, div, 'message', deleteMessage))\n // button to edit the message\n div.appendChild(widgets.button(dom, icons.iconBase + PENCIL_ICON, 'edit', () => editMessage(messageRow)))\n } // if mine\n // Things anyone can do if they have a bookmark list async\n /*\n var bookmarkButton = await bookmarks.renderBookmarksButton(userContext)\n if (bookmarkButton) {\n div.appendChild(bookmarkButton)\n }\n */\n // Things anyone can do if they have a bookmark list\n\n renderBookmarksButton(userContext).then(bookmarkButton => {\n if (bookmarkButton) div.appendChild(bookmarkButton)\n })\n\n /** Button to allow user to express a sentiment (like, endorse, etc) about a target\n *\n * @param context {Object} - Provide dom and me\n * @param target {NamedNode} - The thing the user expresses an opnion about\n * @param icon {uristring} - The icon to be used for the button\n * @param actionClass {NamedNode} - The RDF class - typically a subclass of schema:Action\n * @param doc - {NamedNode} - the Solid document iunto which the data should be written\n * @param mutuallyExclusive {Array<NamedNode>} - Any RDF classes of sentimentswhich are mutiually exclusive\n */\n function sentimentButton (\n context,\n target,\n icon,\n actionClass,\n doc,\n mutuallyExclusive\n ) {\n function setColor () {\n button.style.backgroundColor = action ? 'yellow' : 'white'\n }\n const button = widgets.button(\n dom,\n icon,\n utils.label(actionClass),\n async function (_event) {\n if (action) {\n await deleteThingThen(action)\n action = null\n setColor()\n } else {\n // no action\n action = widgets.newThing(doc)\n const insertMe = [\n rdf.st(action, ns.schema('agent'), context.me, doc),\n rdf.st(action, ns.rdf('type'), actionClass, doc),\n rdf.st(action, ns.schema('target'), target, doc)\n ]\n await store.updater.update([], insertMe)\n setColor()\n\n if (mutuallyExclusive) {\n // Delete incompative sentiments\n let dirty = false\n for (let i = 0; i < mutuallyExclusive.length; i++) {\n const a = existingAction(mutuallyExclusive[i])\n if (a) {\n await deleteThingThen(a) // but how refresh? refreshTree the parent?\n dirty = true\n }\n }\n if (dirty) {\n // widgets.refreshTree(button.parentNode) // requires them all to be immediate siblings\n widgets.refreshTree(messageRow) // requires them all to be immediate siblings\n }\n }\n }\n }\n )\n function existingAction (actionClass) {\n const actions = store\n .each(null, ns.schema('agent'), context.me, doc)\n .filter(x => store.holds(x, ns.rdf('type'), actionClass, doc))\n .filter(x => store.holds(x, ns.schema('target'), target, doc))\n return actions.length ? actions[0] : null\n }\n function refresh () {\n action = existingAction(actionClass)\n setColor()\n }\n let action\n button.refresh = refresh // If the file changes, refresh live\n refresh()\n return button\n }\n\n // THUMBS_UP_ICON\n // https://schema.org/AgreeAction\n me = authn.currentUser() // If already logged on\n // debug.log('Actions 3' + mostRecentVersion(message).value + ' ' + ns.schema('dateDeleted').value + ' ' + (mostRecentVersion(message).value !== ns.schema('dateDeleted').value))\n\n if (me && (mostRecentVersion(message).value !== ns.schema('dateDeleted').value)) {\n const context1 = { me, dom, div }\n div.appendChild(\n sentimentButton(\n context1,\n message, // @@ TODO use widgets.sentimentButton\n icons.iconBase + THUMBS_UP_ICON,\n ns.schema('AgreeAction'),\n message.doc(),\n [ns.schema('DisagreeAction')]\n )\n )\n // Thumbs down\n div.appendChild(\n sentimentButton(\n context1,\n message,\n icons.iconBase + THUMBS_DOWN_ICON,\n ns.schema('DisagreeAction'),\n message.doc(),\n [ns.schema('AgreeAction')]\n )\n )\n }\n // X button to remove the tool UI itself\n const cancelButton = div.appendChild(widgets.cancelButton(dom))\n cancelButton.style.float = 'right'\n cancelButton.firstChild.style.opacity = '0.3'\n cancelButton.addEventListener('click', closeToolbar)\n return div\n}\n"],"file":"messageTools.js"}
1
+ {"version":3,"file":"messageTools.js","names":["dom","window","document","PENCIL_ICON","THUMBS_UP_ICON","THUMBS_DOWN_ICON","emoji","ns","schema","sentimentStrip","target","doc","latest","mostRecentVersion","actions","store","holds","value","each","sentiments","map","a","any","rdf","sort","strings","x","createTextNode","join","sentimentStripLinked","strip","createElement","refresh","innerHTML","uri","forEach","ss","theClass","agent","res","setAttribute","textContent","appendChild","messageToolbar","message","messageRow","userContext","channelObject","deleteMessage","author","foaf","me","alert","sameTerm","msg","debug","warn","area","statusArea","parentNode","widgets","errorMessageBlock","removeChild","closeToolbar","editMessage","switchToEditor","div","parentElement","deleteThingThen","updater","update","connectedStatements","authn","currentUser","deleteButtonWithCheck","button","icons","iconBase","renderBookmarksButton","then","bookmarkButton","sentimentButton","context","icon","actionClass","mutuallyExclusive","setColor","style","backgroundColor","action","utils","label","_event","newThing","insertMe","st","dirty","i","length","existingAction","refreshTree","filter","context1","cancelButton","firstChild","opacity","addEventListener"],"sources":["../../src/chat/messageTools.js"],"sourcesContent":["/**\n * Tools for doing things with a message\n * Let us be creative here. Allow all sorts of things to\n * be done to a message - linking to new or old objects in an open way\n *\n * Ideas: Bookmark, Like, star, pin at top of chat, reply as new thread,\n * If you made it originally: edit, delete, attach\n * @packageDocumentation\n */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\n// import { media } from '../media/index'\nimport * as ns from '../ns'\n// import * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n// import * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { renderBookmarksButton } from './bookmarks'\nimport { authn, store } from 'solid-logic'\n\nimport { mostRecentVersion } from './chatLogic'\nimport { switchToEditor } from './message'\n\nconst dom = window.document\n\n// THE UNUSED ICONS are here as reminders for possible future functionality\n// const BOOKMARK_ICON = 'noun_45961.svg'\n// const HEART_ICON = 'noun_130259.svg' -> Add this to my (private) favorites\n// const MENU_ICON = 'noun_897914.svg'\n// const PAPERCLIP_ICON = 'noun_25830.svg' -> add attachments to this message\n// const PIN_ICON = 'noun_562340.svg' -> pin this message permanently in the chat UI\nconst PENCIL_ICON = 'noun_253504.svg' // edit a message\n// const SPANNER_ICON = 'noun_344563.svg' -> settings\nconst THUMBS_UP_ICON = 'noun_1384132.svg'\nconst THUMBS_DOWN_ICON = 'noun_1384135.svg'\n/**\n * Emoji in Unicode\n */\nconst emoji = {}\nemoji[ns.schema('AgreeAction')] = '👍'\nemoji[ns.schema('DisagreeAction')] = '👎'\nemoji[ns.schema('EndorseAction')] = '⭐️'\nemoji[ns.schema('LikeAction')] = '❤️'\n\n/**\n * Create strip of sentiments expressed\n */\nexport function sentimentStrip (target, doc) { // alain seems not used\n const latest = mostRecentVersion(target)\n const actions = store.holds(latest, ns.schema('dateDeleted').value, null, latest.doc()) ? store.each(null, ns.schema('target'), target, doc) : []\n const sentiments = actions.map(a => store.any(a, ns.rdf('type'), null, doc))\n sentiments.sort()\n const strings = sentiments.map(x => emoji[x] || '')\n return dom.createTextNode(strings.join(' '))\n}\n/**\n * Create strip of sentiments expressed, with hyperlinks\n *\n * @param target {NamedNode} - The thing about which they are expressed\n * @param doc {NamedNode} - The document in which they are expressed\n */\nexport function sentimentStripLinked (target, doc) {\n const strip = dom.createElement('span')\n function refresh () {\n strip.innerHTML = ''\n const actions = (mostRecentVersion(target).uri !== ns.schema('dateDeleted').uri) ? store.each(null, ns.schema('target'), target, doc) : []\n const sentiments = actions.map(a => [\n store.any(a, ns.rdf('type'), null, doc),\n store.any(a, ns.schema('agent'), null, doc)\n ])\n sentiments.sort()\n sentiments.forEach(ss => {\n const [theClass, agent] = ss\n let res\n if (agent) {\n res = dom.createElement('a')\n res.setAttribute('href', agent.uri)\n } else {\n res = dom.createTextNode('')\n }\n res.textContent = emoji[theClass] || '*'\n strip.appendChild(res)\n })\n }\n refresh()\n strip.refresh = refresh\n return strip\n}\n/**\n * Creates a message toolbar component\n */\nexport function messageToolbar (message, messageRow, userContext, channelObject) {\n async function deleteMessage () {\n const author = store.any(message, ns.foaf('maker'))\n if (!me) {\n alert('You can\\'t delete the message, you are not logged in.')\n } else if (me.sameTerm(author)) {\n try {\n await channelObject.deleteMessage(message)\n } catch (err) {\n const msg = 'Error deleting messaage ' + err\n debug.warn(msg)\n alert(msg)\n const area = userContext.statusArea || messageRow.parentNode\n area.appendChild(widgets.errorMessageBlock(dom, msg))\n }\n messageRow.parentNode.removeChild(messageRow)\n } else {\n alert('You can\\'t delete the message, you are not logged in as the author, ' + author)\n }\n closeToolbar()\n }\n\n async function editMessage (messageRow) {\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n closeToolbar() // edit is a one-off action\n switchToEditor(messageRow, message, channelObject, userContext)\n }\n }\n\n // alain TODO allow chat owner to fully delete message + sentiments and replacing messages\n\n const div = dom.createElement('div')\n // is message deleted ?\n if (mostRecentVersion(message).value === ns.schema('dateDeleted').value) return div\n function closeToolbar () {\n div.parentElement.parentElement.removeChild(div.parentElement) // remive the TR\n }\n\n async function deleteThingThen (x) {\n await store.updater.update(store.connectedStatements(x), [])\n }\n\n // Things only the original author can do\n let me = authn.currentUser() // If already logged on\n if (me && store.holds(message, ns.foaf('maker'), me)) {\n // button to delete the message\n div.appendChild(widgets.deleteButtonWithCheck(dom, div, 'message', deleteMessage))\n // button to edit the message\n div.appendChild(widgets.button(dom, icons.iconBase + PENCIL_ICON, 'edit', () => editMessage(messageRow)))\n } // if mine\n // Things anyone can do if they have a bookmark list async\n /*\n var bookmarkButton = await bookmarks.renderBookmarksButton(userContext)\n if (bookmarkButton) {\n div.appendChild(bookmarkButton)\n }\n */\n // Things anyone can do if they have a bookmark list\n\n renderBookmarksButton(userContext).then(bookmarkButton => {\n if (bookmarkButton) div.appendChild(bookmarkButton)\n })\n\n /** Button to allow user to express a sentiment (like, endorse, etc) about a target\n *\n * @param context {Object} - Provide dom and me\n * @param target {NamedNode} - The thing the user expresses an opnion about\n * @param icon {uristring} - The icon to be used for the button\n * @param actionClass {NamedNode} - The RDF class - typically a subclass of schema:Action\n * @param doc - {NamedNode} - the Solid document iunto which the data should be written\n * @param mutuallyExclusive {Array<NamedNode>} - Any RDF classes of sentimentswhich are mutiually exclusive\n */\n function sentimentButton (\n context,\n target,\n icon,\n actionClass,\n doc,\n mutuallyExclusive\n ) {\n function setColor () {\n button.style.backgroundColor = action ? 'yellow' : 'white'\n }\n const button = widgets.button(\n dom,\n icon,\n utils.label(actionClass),\n async function (_event) {\n if (action) {\n await deleteThingThen(action)\n action = null\n setColor()\n } else {\n // no action\n action = widgets.newThing(doc)\n const insertMe = [\n rdf.st(action, ns.schema('agent'), context.me, doc),\n rdf.st(action, ns.rdf('type'), actionClass, doc),\n rdf.st(action, ns.schema('target'), target, doc)\n ]\n await store.updater.update([], insertMe)\n setColor()\n\n if (mutuallyExclusive) {\n // Delete incompative sentiments\n let dirty = false\n for (let i = 0; i < mutuallyExclusive.length; i++) {\n const a = existingAction(mutuallyExclusive[i])\n if (a) {\n await deleteThingThen(a) // but how refresh? refreshTree the parent?\n dirty = true\n }\n }\n if (dirty) {\n // widgets.refreshTree(button.parentNode) // requires them all to be immediate siblings\n widgets.refreshTree(messageRow) // requires them all to be immediate siblings\n }\n }\n }\n }\n )\n function existingAction (actionClass) {\n const actions = store\n .each(null, ns.schema('agent'), context.me, doc)\n .filter(x => store.holds(x, ns.rdf('type'), actionClass, doc))\n .filter(x => store.holds(x, ns.schema('target'), target, doc))\n return actions.length ? actions[0] : null\n }\n function refresh () {\n action = existingAction(actionClass)\n setColor()\n }\n let action\n button.refresh = refresh // If the file changes, refresh live\n refresh()\n return button\n }\n\n // THUMBS_UP_ICON\n // https://schema.org/AgreeAction\n me = authn.currentUser() // If already logged on\n // debug.log('Actions 3' + mostRecentVersion(message).value + ' ' + ns.schema('dateDeleted').value + ' ' + (mostRecentVersion(message).value !== ns.schema('dateDeleted').value))\n\n if (me && (mostRecentVersion(message).value !== ns.schema('dateDeleted').value)) {\n const context1 = { me, dom, div }\n div.appendChild(\n sentimentButton(\n context1,\n message, // @@ TODO use widgets.sentimentButton\n icons.iconBase + THUMBS_UP_ICON,\n ns.schema('AgreeAction'),\n message.doc(),\n [ns.schema('DisagreeAction')]\n )\n )\n // Thumbs down\n div.appendChild(\n sentimentButton(\n context1,\n message,\n icons.iconBase + THUMBS_DOWN_ICON,\n ns.schema('DisagreeAction'),\n message.doc(),\n [ns.schema('AgreeAction')]\n )\n )\n }\n // X button to remove the tool UI itself\n const cancelButton = div.appendChild(widgets.cancelButton(dom))\n cancelButton.style.float = 'right'\n cancelButton.firstChild.style.opacity = '0.3'\n cancelButton.addEventListener('click', closeToolbar)\n return div\n}\n"],"mappings":"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"}
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.thread = thread;
11
11
 
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
13
 
16
14
  var _iconBase = require("../iconBase");
@@ -37,11 +35,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
35
 
38
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
37
 
40
- /**
41
- * Contains the [[thread]] function
42
- * @packageDocumentation
43
- */
44
- // pull in first avoid cross-refs
38
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
39
+
45
40
  var UI = {
46
41
  icons: _iconBase.icons,
47
42
  ns: ns,
@@ -348,9 +343,9 @@ function thread(dom, kb, subject, messageStore, options) {
348
343
  };
349
344
 
350
345
  var _deleteMessage = /*#__PURE__*/function () {
351
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(message) {
346
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(message) {
352
347
  var deletions;
353
- return _regenerator["default"].wrap(function _callee$(_context) {
348
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
354
349
  while (1) {
355
350
  switch (_context.prev = _context.next) {
356
351
  case 0: