solid-ui 2.5.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/841.solid-ui.min.js +1 -1
- package/dist/841.solid-ui.min.js.map +1 -1
- package/dist/_2b19.solid-ui.js.map +1 -1
- package/dist/solid-ui.js +42754 -45728
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.LICENSE.txt +1 -5
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/acl/access-controller.js +48 -49
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +40 -40
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +18 -19
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +4 -5
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +51 -52
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/chat/bookmarks.js +76 -77
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +74 -75
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +66 -67
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +218 -220
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/keys.js +62 -63
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +98 -100
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +99 -100
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +0 -1
- package/lib/chat/signature.js.map +1 -1
- package/lib/chat/thread.js +57 -61
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +1 -2
- package/lib/create/create.js.map +1 -1
- package/lib/folders.js +1 -4
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.d.ts.map +1 -1
- package/lib/footer/index.js +14 -16
- package/lib/footer/index.js.map +1 -1
- package/lib/header/index.js +34 -36
- package/lib/header/index.js.map +1 -1
- package/lib/iconBase.d.ts.map +1 -1
- package/lib/iconBase.js +0 -1
- package/lib/iconBase.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/log.d.ts +7 -7
- package/lib/log.d.ts.map +1 -1
- package/lib/log.js +2 -2
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +217 -222
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/matrix.js +1 -2
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.js.map +1 -1
- package/lib/media/media-capture.js +3 -4
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +1 -4
- package/lib/messageArea.js.map +1 -1
- package/lib/ns.js +1 -2
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +1 -2
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +1 -2
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +1 -2
- package/lib/preferences.js.map +1 -1
- package/lib/table.js +1 -2
- package/lib/table.js.map +1 -1
- package/lib/tabs.d.ts.map +1 -1
- package/lib/tabs.js +1 -2
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
- package/lib/utils/headerFooterHelpers.js +36 -36
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +1 -2
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/lib/utils/keyHelpers/accessData.js +33 -34
- package/lib/utils/keyHelpers/accessData.js.map +1 -1
- package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
- package/lib/utils/keyHelpers/acl.js +21 -22
- package/lib/utils/keyHelpers/acl.js.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.js +1 -2
- package/lib/utils/keyHelpers/otherHelpers.js.map +1 -1
- package/lib/utils/label.js +1 -2
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +4 -3
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +30 -30
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +2 -2
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +1 -1
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +1 -3
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +1 -2
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +1 -2
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +47 -48
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +38 -39
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +44 -45
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +23 -24
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +91 -93
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +2 -3
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -2
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +1 -2
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -2
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +79 -80
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +1 -2
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +1 -2
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +1 -2
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.d.ts.map +1 -1
- package/lib/widgets/widgetHelpers.js +3 -3
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +57 -57
package/lib/chat/message.js.map
CHANGED
|
@@ -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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","done","value","f","TypeError","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","_callee9$","_context10","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","_callee8$","_context9","toolTR","parentNode","removeChild","abrupt","messageToolbar","chatOptions","nextSibling","parentElement","insertBefore","stop","_x20","showThread","_e","switchToEditor","_x6","_x7","_x8","_x9","_switchToEditor","_callee10","messageTable","editRow","_callee10$","_context11","t0","renderMessageEditor","t1","t2","t3","t4","t5","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","_x10","_handleFieldInput","_callee5","_callee5$","_context6","sendMessage","field","_x11","_x12","_sendMessage","_callee7","fromMainField","sendComplete","_sendComplete","statusArea","_callee7$","_context8","_sendComplete3","_callee6","_text2","oldRow","_callee6$","_context7","insertMessageIntoTable","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","_sendComplete2","_x18","_x19","updateMessage","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","_ref","_callee","theFile","destURI","_callee$","_context2","_x13","_x14","droppedURIHandler","_ref2","_callee2","uris","_iterator","_step","_callee2$","_context3","finish","_x15","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","_x16","_tookPicture","_callee4","_callee4$","_context5","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","_ref3","_callee3","_callee3$","_context4","code","shiftKey","shiftEnterSendsMessage","_x17","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":";;;;;;;;;;;;;;;;AAMA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAC,uBAAA,CAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,EAAA,GAAAL,uBAAA,CAAAL,OAAA;AACA,IAAAW,GAAA,GAAAN,uBAAA,CAAAL,OAAA;AACA,IAAAY,KAAA,GAAAP,uBAAA,CAAAL,OAAA;AACA,IAAAa,KAAA,GAAAR,uBAAA,CAAAL,OAAA;AACA,IAAAc,OAAA,GAAAT,uBAAA,CAAAL,OAAA;AACA,IAAAe,UAAA,GAAAf,OAAA;AACA,IAAAgB,KAAA,GAAAhB,OAAA;AAAqC,SAAAiB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAAnB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAQ,MAAA,CAAAS,IAAA,CAAApB,CAAA,OAAAW,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAArB,CAAA,GAAAE,CAAA,KAAAoB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAArB,CAAA,WAAAS,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAE,CAAA,EAAAsB,UAAA,OAAArB,CAAA,CAAAsB,IAAA,CAAAC,KAAA,CAAAvB,CAAA,EAAAmB,CAAA,YAAAnB,CAAA;AAAA,SAAAwB,cAAA3B,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAA0B,SAAA,CAAAC,MAAA,EAAA3B,CAAA,UAAAC,CAAA,WAAAyB,SAAA,CAAA1B,CAAA,IAAA0B,SAAA,CAAA1B,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAR,MAAA,CAAAR,CAAA,OAAA2B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,aAAA/B,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAS,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAAjC,CAAA,EAAAW,MAAA,CAAAqB,yBAAA,CAAA7B,CAAA,KAAAgB,OAAA,CAAAR,MAAA,CAAAR,CAAA,GAAA2B,OAAA,WAAA5B,CAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAZ,CAAA,EAAAE,CAAA,EAAAS,MAAA,CAAAE,wBAAA,CAAAV,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAAkC,2BAAAhC,CAAA,EAAAF,CAAA,QAAAG,CAAA,yBAAAgC,MAAA,IAAAjC,CAAA,CAAAiC,MAAA,CAAAC,QAAA,KAAAlC,CAAA,qBAAAC,CAAA,QAAAkC,KAAA,CAAAC,OAAA,CAAApC,CAAA,MAAAC,CAAA,GAAAoC,2BAAA,CAAArC,CAAA,MAAAF,CAAA,IAAAE,CAAA,uBAAAA,CAAA,CAAA2B,MAAA,IAAA1B,CAAA,KAAAD,CAAA,GAAAC,CAAA,OAAAqC,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAjC,CAAA,WAAAA,EAAA,WAAAgC,EAAA,IAAAtC,CAAA,CAAA2B,MAAA,KAAAc,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAA1C,CAAA,CAAAsC,EAAA,UAAAxC,CAAA,WAAAA,EAAAE,CAAA,UAAAA,CAAA,KAAA2C,CAAA,EAAAJ,CAAA,gBAAAK,SAAA,iJAAAxB,CAAA,EAAAZ,CAAA,OAAAI,CAAA,gBAAA4B,CAAA,WAAAA,EAAA,IAAAvC,CAAA,GAAAA,CAAA,CAAAa,IAAA,CAAAd,CAAA,MAAAM,CAAA,WAAAA,EAAA,QAAAN,CAAA,GAAAC,CAAA,CAAA4C,IAAA,WAAArC,CAAA,GAAAR,CAAA,CAAAyC,IAAA,EAAAzC,CAAA,KAAAF,CAAA,WAAAA,EAAAE,CAAA,IAAAY,CAAA,OAAAQ,CAAA,GAAApB,CAAA,KAAA2C,CAAA,WAAAA,EAAA,UAAAnC,CAAA,YAAAP,CAAA,cAAAA,CAAA,8BAAAW,CAAA,QAAAQ,CAAA;AAAA,SAAAiB,4BAAArC,CAAA,EAAAQ,CAAA,QAAAR,CAAA,2BAAAA,CAAA,SAAA8C,iBAAA,CAAA9C,CAAA,EAAAQ,CAAA,OAAAP,CAAA,MAAA8C,QAAA,CAAAjC,IAAA,CAAAd,CAAA,EAAAgD,KAAA,6BAAA/C,CAAA,IAAAD,CAAA,CAAAiD,WAAA,KAAAhD,CAAA,GAAAD,CAAA,CAAAiD,WAAA,CAAAC,IAAA,aAAAjD,CAAA,cAAAA,CAAA,GAAAkC,KAAA,CAAAgB,IAAA,CAAAnD,CAAA,oBAAAC,CAAA,+CAAAmD,IAAA,CAAAnD,CAAA,IAAA6C,iBAAA,CAAA9C,CAAA,EAAAQ,CAAA;AAAA,SAAAsC,kBAAA9C,CAAA,EAAAQ,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAR,CAAA,CAAA2B,MAAA,MAAAnB,CAAA,GAAAR,CAAA,CAAA2B,MAAA,YAAA7B,CAAA,MAAAQ,CAAA,GAAA6B,KAAA,CAAA3B,CAAA,GAAAV,CAAA,GAAAU,CAAA,EAAAV,CAAA,IAAAQ,CAAA,CAAAR,CAAA,IAAAE,CAAA,CAAAF,CAAA,UAAAQ,CAAA,IArBrC;AACA;AACA;AACA,GAHA,CAKA;AAkBA,IAAM+C,GAAG,GAAGC,MAAM,CAACC,QAAQ;AAC3B,IAAMC,gBAAgB,GAAGhE,KAAK,CAACgE,gBAAgB;AAE/C,IAAMC,KAAK,GAAGhE,KAAK,CAACgE,KAAK;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAEC,QAAQ,EAAEC,OAAO,EAAE;EACrD,IAAMC,GAAG,GAAGR,GAAG,CAACS,aAAa,CAAC,KAAK,CAAC;EACpC,IAAIC,MAAM,GAAG,IAAI;EACjB,IAAIH,OAAO,CAACI,oBAAoB,EAAE;IAChCD,MAAM,GAAG,CAAC,EAAE,GAAGH,OAAO,CAACI,oBAAoB,EAAEC,IAAI,CAAC,CAAC;EACrD;EACAJ,GAAG,CAACK,YAAY,CACd,OAAO,EACP,cAAc,GAAGH,MAAM,GAAG,wCAC5B,CAAC;EACD;EACA,IAAIJ,QAAQ,EAAEE,GAAG,CAACK,YAAY,CAAC,KAAK,EAAEP,QAAQ,CAAC;EAC/C,IAAMQ,MAAM,GAAGd,GAAG,CAACS,aAAa,CAAC,GAAG,CAAC;EACrCK,MAAM,CAACD,YAAY,CAAC,MAAM,EAAEP,QAAQ,CAAC;EACrCQ,MAAM,CAACD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;EACvCC,MAAM,CAACC,WAAW,CAACP,GAAG,CAAC;EACvBnE,OAAO,CAAC2E,aAAa,CAACR,GAAG,EAAES,IAAI,CAACC,GAAG,CAACZ,QAAQ,CAAC,CAAC;EAC9C,OAAOQ,MAAM;AACf;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAaK,IAAI,EAAEC,IAAI,EAAE;EACnC;EACA,IAAMjE,CAAC,GAAG6C,GAAG,CAACS,aAAa,CAAC,GAAG,CAAC;EAChC,IAAIW,IAAI,IAAIA,IAAI,CAACC,GAAG,EAAE;IACpBlE,CAAC,CAAC0D,YAAY,CAAC,MAAM,EAAEO,IAAI,CAACC,GAAG,CAAC;IAChClE,CAAC,CAACmE,gBAAgB,CAAC,OAAO,EAAEjF,OAAO,CAACkF,qBAAqB,EAAE,IAAI,CAAC;IAChEpE,CAAC,CAAC0D,YAAY,CAAC,OAAO,EAAE,yCAAyC,CAAC,EAAC;EACrE;EACA1D,CAAC,CAACqE,WAAW,GAAGL,IAAI;EACpB,OAAOhE,CAAC;AACV,CAAC;AAED,SAASsE,QAAQA,CAAEC,MAAM,EAAE;EACzB,IAAMvC,CAAC,GAAGwC,iBAAK,CAACC,GAAG,CAACF,MAAM,EAAEzF,EAAE,CAAC4F,IAAI,CAAC,MAAM,CAAC,CAAC;EAC5C,IAAI1C,CAAC,EAAE,OAAO,EAAE,GAAGA,CAAC,CAACE,KAAK;EAC1B,OAAO,EAAE,GAAGe,KAAK,CAACsB,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,cAAcA,CAAEC,GAAG,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAE;EAC3D,IAAMC,UAAU,GAAGJ,GAAG,CAAChB,WAAW,CAACD,MAAM,CAACW,QAAQ,CAACO,OAAO,CAAC,EAAEA,OAAO,CAAC,CAAC;EACtE,IAAIA,OAAO,CAACX,GAAG,EAAE;IACfM,iBAAK,CAACS,OAAO,CAACC,gBAAgB,CAACL,OAAO,CAACM,GAAG,CAAC,CAAC,EAAEC,SAAS,EAAE,UACvDC,GAAG,EACHC,KAAK,EACL;MACAN,UAAU,CAACX,WAAW,GAAGC,QAAQ,CAACO,OAAO,CAAC;IAC5C,CAAC,CAAC;EACJ;EACAD,GAAG,CAAChB,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC;EACxCsB,GAAG,CAAChB,WAAW,CAACD,MAAM,CAACmB,IAAI,EAAEC,OAAO,CAAC,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,wBAAwBA,CAAEX,GAAG,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAE;EACrE,IAAMC,UAAU,GAAGJ,GAAG,CAAChB,WAAW,CAACD,MAAM,CAACV,KAAK,CAAC4B,OAAO,CAAC,EAAEA,OAAO,CAAC,CAAC;EACnE,IAAIA,OAAO,CAACX,GAAG,EAAE;IACfM,iBAAK,CAACS,OAAO,CAACC,gBAAgB,CAACL,OAAO,CAACM,GAAG,CAAC,CAAC,EAAEC,SAAS,EAAE,UACvDC,GAAG,EACHC,KAAK,EACL;MACAN,UAAU,CAACX,WAAW,GAAGC,QAAQ,CAACO,OAAO,CAAC;IAC5C,CAAC,CAAC;EACJ;EACA,IAAMW,OAAO,GAAGZ,GAAG,CAAChB,WAAW,CAACD,MAAM,CAACmB,IAAI,EAAEC,OAAO,CAAC,CAAC;EACtDS,OAAO,CAACxG,KAAK,CAACyG,QAAQ,GAAG,KAAK;EAC9BD,OAAO,CAACxG,KAAK,CAAC0G,UAAU,GAAG,KAAK;EAChCd,GAAG,CAAChB,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAUsBqC,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAjF,KAAA,OAAAE,SAAA;AAAA,EAwMpC;AAAA,SAAA+E,kBAAA;EAAAA,iBAAA,OAAAC,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAxMK,SAAAC,SAAiCC,aAAa,EAAEvB,OAAO,EAAEwB,KAAK,EAAEnD,OAAO,EAAEoD,WAAW;IAAA,IAAAC,eAAA,EAAAC,gBAAA,EAAA7B,OAAA,EAAAC,IAAA,EAAA6B,aAAA,EAAAC,oBAAA,EAAAC,KAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,eAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,SAAA,EAAAC,GAAA,EAAAC,eAAA,EAAAC,MAAA,EAAAC,QAAA,EAAAC,UAAA,EAAA/C,GAAA,EAAAvB,GAAA,EAAAuE,SAAA,EAAAC,GAAA,EAAA7D,IAAA,EAAA8D,KAAA,EAAAC,IAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,GAAA,EAAAC,OAAA,EAiJhFC,UAAU,EAAAC,KAAA,EAAAC,GAAA,EAAAC,WAAA;IAAA,OAAApC,YAAA,YAAAqC,IAAA,UAAAC,UAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAAC,IAAA,GAAAD,UAAA,CAAArG,IAAA;QAAA;UAAV+F,UAAU,YAAAQ,YAAErC,KAAK,EAAE;YAC1B,OAAOA,KAAK,GAAG,SAAS,GAAG,OAAO;UACpC,CAAC;UAlJGE,eAAe,GAAG,KAAK;UACrBC,gBAAgB,GACpBtD,OAAO,CAACsD,gBAAgB,KAAK,GAAG,IAAItD,OAAO,CAACsD,gBAAgB,KAAK,IAAI,EAEvE;UACA;UAEM7B,OAAO,GAAGL,iBAAK,CAACC,GAAG,CAACM,OAAO,EAAEjG,EAAE,CAAC4F,IAAI,CAAC,OAAO,CAAC,CAAC;UAC9CI,IAAI,GAAGN,iBAAK,CAACC,GAAG,CAACM,OAAO,EAAEjG,EAAE,CAAC+J,GAAG,CAAC,SAAS,CAAC,CAAC;UAAAH,UAAA,CAAArG,IAAA;UAAA,OACtB,IAAAyG,4BAAiB,EAAC/D,OAAO,CAAC;QAAA;UAAhD4B,aAAa,GAAA+B,UAAA,CAAAK,IAAA;UACbnC,oBAAoB,GAAGpC,iBAAK,CAACC,GAAG,CAACkC,aAAa,EAAE7H,EAAE,CAAC4F,IAAI,CAAC,OAAO,CAAC,CAAC,EAEvE;UACA;UACMmC,KAAK,GAAGhC,OAAO,CAACX,GAAG,MAAK0C,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAE1C,GAAG,IAAGyC,aAAa,GAAG5B,OAAO;UAC3E+B,OAAO,GAAGtC,iBAAK,CAACC,GAAG,CAACoC,KAAK,EAAE/H,EAAE,CAACkK,IAAI,CAAC,SAAS,CAAC,CAAC;UAAAN,UAAA,CAAArG,IAAA;UAAA,OAE7B,IAAA4G,sBAAW,EAACpC,KAAK,CAAC;QAAA;UAAnCE,QAAQ,GAAA2B,UAAA,CAAAK,IAAA;UACd,IAAIhC,QAAQ,CAAC5F,MAAM,GAAG,CAAC,EAAE;YACvB3C,KAAK,CAAC0K,GAAG,CAAC,6BAA6B,EAAEnC,QAAQ,CAACoC,IAAI,CAAC,KAAK,CAAC,CAAC;UAChE;UACA;UACMnC,OAAO,GAAGD,QAAQ,CAACqC,GAAG,CAAC,UAAAC,OAAO;YAAA,OAAI7E,iBAAK,CAAC8E,IAAI,CAACD,OAAO,EAAEvK,EAAE,CAACkK,IAAI,CAAC,WAAW,CAAC,CAAC;UAAA,EAAC,CAACO,IAAI,CAAC,CAAC;UAErFtC,MAAM,GAAG,IAAI;UACXC,eAAe,GAAG,EAAE;UAAAC,UAAA,GAAA3F,0BAAA,CACNwF,OAAO;UAAA;YAA3B,KAAAG,UAAA,CAAAnF,CAAA,MAAAoF,MAAA,GAAAD,UAAA,CAAArH,CAAA,IAAAmC,IAAA,GAA6B;cAAlBoF,KAAK,GAAAD,MAAA,CAAAlF,KAAA;cACd,IAAIsC,iBAAK,CAACgF,KAAK,CAACnC,KAAK,EAAEvI,EAAE,CAAC2K,GAAG,CAAC,MAAM,CAAC,EAAE3K,EAAE,CAACkK,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACzD/B,MAAM,GAAGI,KAAK;gBACd7I,KAAK,CAAC0K,GAAG,CAAC,kCAAkC,GAAGjC,MAAM,CAAC;cACxD,CAAC,MAAM;gBACLC,eAAe,CAACnG,IAAI,CAACsG,KAAK,CAAC;cAC7B;YACF;UAAC,SAAAqC,GAAA;YAAAvC,UAAA,CAAA7H,CAAA,CAAAoK,GAAA;UAAA;YAAAvC,UAAA,CAAAhF,CAAA;UAAA;UACD,IAAI+E,eAAe,CAAC/F,MAAM,GAAG,CAAC,EAAE;YAC9B3C,KAAK,CAAC0K,GAAG,CAAC,0CAA0C,EAAEhC,eAAe,CAAC;UACxE;UACA,IAAI,CAACD,MAAM,EAAE;YACX;YACAA,MAAM,GAAGzC,iBAAK,CAACC,GAAG,CAAC,IAAI,EAAE3F,EAAE,CAACkK,IAAI,CAAC,YAAY,CAAC,EAAEjE,OAAO,CAAC;UAC1D;UACA;;UAEA;UACMuC,SAAS,GAAG9C,iBAAK,CAACC,GAAG,CAACoC,KAAK,EAAE/C,IAAI,CAACC,GAAG,IAAA4F,MAAA,CAAIC,cAAG,eAAY,CAAC,CAAC,EAEhE;UACMrC,GAAG,GAAG,IAAAsC,sBAAW,EAAC,CAAC;UACzBtC,GAAG,CAACuC,EAAE,GAAGjD,KAAK,CAAC3C,GAAG;UAClBqD,GAAG,CAACwC,OAAO,GAAGvF,iBAAK,CAACC,GAAG,CAACoC,KAAK,EAAE/H,EAAE,CAAC+J,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC3G,KAAK;UACvDqF,GAAG,CAACT,OAAO,GAAGA,OAAO,CAAC5E,KAAK;UAC3BqF,GAAG,CAACyC,KAAK,GAAGnF,OAAO,CAACX,GAAG;;UAEvB;UACA,IAAI,EAACoD,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEpF,KAAK,GAAE;YAAE;YACvBuE,eAAe,GAAG,IAAI;YACtBjI,KAAK,CAACyL,IAAI,CAACpD,KAAK,CAAC3C,GAAG,GAAG,cAAc,CAAC,EAAC;UACzC,CAAC,MAAM;YAAE;YACP,IAAAgG,kBAAY,EAACrF,OAAO,CAAC,CAACsF,IAAI,CAAC,UAAAC,SAAS,EAAI;cACtC;cACA,IAAI,CAACA,SAAS,EAAE;gBACd5L,KAAK,CAACyL,IAAI,CAAC,wBAAwB,GAAGpF,OAAO,CAACX,GAAG,GAAG,uBAAuB,CAAC;cAC9E;cACA;cACA,IAAMmG,KAAK,GAAG,iBAAiB;cAC/B,IAAI,EAACD,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEE,KAAK,CAACD,KAAK,CAAC,GAAE7L,KAAK,CAACyL,IAAI,CAAC,gCAAgC,GAAGpF,OAAO,CAACX,GAAG,GAAG,IAAI,GAAGkG,SAAS,CAAC;cAC3G;cAAA,KACK,IAAI9C,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEpF,KAAK,IAAI,CAAC,IAAAqI,0BAAe,EAACjD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEpF,KAAK,EAAEqF,GAAG,EAAE6C,SAAS,CAAC,EAAE5L,KAAK,CAACyL,IAAI,CAAC,qBAAqB,GAAG1C,GAAG,CAACuC,EAAE,CAAC;YAC7H,CAAC,CAAC;UACJ;UAACpB,UAAA,CAAArG,IAAA;UAAA,OAE6B,IAAAmI,0BAAe,EAACzF,OAAO,CAAC;QAAA;UAAhDyC,eAAe,GAAAkB,UAAA,CAAAK,IAAA;UACftB,MAAM,GAAG,CAAC1C,OAAO,CAAC0F,QAAQ,CAACjD,eAAe,CAAC,EACjD;UACA;UACME,QAAQ,GAAGlD,iBAAK,CAACkG,GAAG,CAAClD,eAAe,EAAE1I,EAAE,CAAC+J,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAErB,eAAe,CAACrC,GAAG,CAAC,CAAC,CAAC,IAAIX,iBAAK,CAACkG,GAAG,CAAC3F,OAAO,EAAEjG,EAAE,CAAC+J,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE9D,OAAO,CAACI,GAAG,CAAC,CAAC,CAAC,EACzJ;UAEMwC,UAAU,GAAG9E,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;UAC1C,IAAImD,eAAe,EAAEkB,UAAU,CAACjE,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC;UAC9EiE,UAAU,CAACgD,SAAS,GAAGjD,QAAQ,CAACxF,KAAK;UACrCyF,UAAU,CAACiD,YAAY,GAAG7F,OAAO;UAE3BH,GAAG,GAAG/B,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;UACnCqE,UAAU,CAAC/D,WAAW,CAACgB,GAAG,CAAC;UAC3B,IAAI,CAACxB,OAAO,CAACyH,gBAAgB,EAAE;YACvBxH,GAAG,GAAGR,GAAG,CAACS,aAAa,CAAC,KAAK,CAAC;YACpCD,GAAG,CAACK,YAAY,CACd,OAAO,EACP,0EACF,CAAC;YACDxE,OAAO,CAAC4L,QAAQ,CAACzH,GAAG,EAAEwB,OAAO,CAAC;YAC9BD,GAAG,CAAChB,WAAW,CAACP,GAAG,CAAC;UACtB,CAAC,MAAM;YACLsB,cAAc,CAACC,GAAG,EAAEC,OAAO,EAAE3F,OAAO,CAAC6L,SAAS,CAACrD,QAAQ,CAACxF,KAAK,CAAC,EAAE6C,OAAO,CAAC;UAC1E;UACI6C,SAAS,GAAG1I,OAAO,CAAC6L,SAAS,CAACrD,QAAQ,CAACxF,KAAK,CAAC;UACjD,IAAIuF,MAAM,EAAE;YACVG,SAAS,IAAI,OAAO,GAAG1I,OAAO,CAAC6L,SAAS,CAACjG,IAAI,CAAC5C,KAAK,CAAC;UACtD;;UAEA;UACM2F,GAAG,GAAGF,UAAU,CAAC/D,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC;UAE3D,IAAI,CAACF,OAAO,CAACyH,gBAAgB,EAAE;YAC7BtF,wBAAwB,CACtBsC,GAAG,EACHhD,OAAO,EACP+C,SAAS;YAAE;YACX7C,OACF,CAAC;UACH;UACMf,IAAI,GAAG8C,OAAO,GAAGA,OAAO,CAAC5E,KAAK,CAACuB,IAAI,CAAC,CAAC,GAAG,iBAAiB;UACzDqE,KAAK,GAAG,qBAAqB,CAAClF,IAAI,CAACoB,IAAI,CAAC;UAC1C+D,IAAI,GAAG,IAAI;UACf,IAAID,KAAK,EAAE;YACHE,OAAO,GAAG,iCAAiC,CAACpF,IAAI,CAACoB,IAAI,CAAC,EAAC;YAC7D,IAAIgE,OAAO,IAAI5E,OAAO,CAAC4H,kBAAkB,EAAE;cACnC3H,IAAG,GAAGH,kBAAkB,CAACc,IAAI,EAAEZ,OAAO,CAAC;cAC7CyE,GAAG,CAACjE,WAAW,CAACP,IAAG,CAAC;YACtB,CAAC,MAAM;cACL;cACM6E,GAAG,GAAGL,GAAG,CAACjE,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,GAAG,CAAC,CAAC;cACnDyE,IAAI,GAAGG,GAAG,CAACtE,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,GAAG,CAAC,CAAC;cAC9C4E,GAAG,CAAC+C,IAAI,GAAGjH,IAAI;cACf+D,IAAI,CAAC1D,WAAW,GAAGL,IAAI;cACvB6D,GAAG,CAACjE,WAAW,CAACsE,GAAG,CAAC;YACtB;UACF,CAAC,MAAM;YACL;YACAH,IAAI,GAAGlF,GAAG,CAACS,aAAa,CAAC,GAAG,CAAC;YAC7BuE,GAAG,CAACjE,WAAW,CAACmE,IAAI,CAAC;YACrBA,IAAI,CAAC1D,WAAW,GAAGL,IAAI;UACzB;UACA,IAAI+D,IAAI,EAAE;YACFI,OAAO,GAAGzB,gBAAgB,GAC5B3H,GAAG,CAACmM,cAAc,CAACrG,OAAO,CAAC,GAC3BuD,UAAU,CAAC7B,KAAK,CAAC;YACrBwB,IAAI,CAACrE,YAAY,CACf,OAAO,EACPV,gBAAgB,GAAG,oBAAoB,GAAGmF,OAAO,GAAG,GACtD,CAAC;UACH;UAACO,UAAA,CAAArG,IAAA;UAAA,OAOmB,IAAA8I,kCAAoB,EAACpG,OAAO,EAAEA,OAAO,CAACI,GAAG,CAAC,CAAC,CAAC;QAAA;UAA1DkD,KAAK,GAAAK,UAAA,CAAAK,IAAA;UACX,IAAIV,KAAK,CAAC+C,QAAQ,CAACjK,MAAM,EAAE;YACzB0G,GAAG,CAACjE,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC;YACxCuE,GAAG,CAACjE,WAAW,CAACyE,KAAK,CAAC;UACxB;;UAEA;UACMC,GAAG,GAAGzF,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;UACnCqE,UAAU,CAAC/D,WAAW,CAAC0E,GAAG,CAAC;UACrBC,WAAW,GAAGrJ,OAAO,CAACmM,MAAM,CAChCxI,GAAG,EACHyI,eAAK,CAACC,QAAQ,GAAG,iBAAiB,EAClC,KACF,CAAC;UACDjD,GAAG,CAAC1E,WAAW,CAAC2E,WAAW,CAAC;UAC5BA,WAAW,CAACpE,gBAAgB,CAAC,OAAO;YAAA,IAAAqH,KAAA,OAAAtF,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAAE,SAAAqF,SAAgBC,MAAM;cAAA,IAAAC,OAAA,EAAAC,KAAA,EAAAC,OAAA;cAAA,OAAA1F,YAAA,YAAAqC,IAAA,UAAAsD,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAApD,IAAA,GAAAoD,SAAA,CAAA1J,IAAA;kBAAA;oBAAA,KACtDsF,UAAU,CAACqE,MAAM;sBAAAD,SAAA,CAAA1J,IAAA;sBAAA;oBAAA;oBACnB;oBACAsF,UAAU,CAACsE,UAAU,CAACC,WAAW,CAACvE,UAAU,CAACqE,MAAM,CAAC;oBACpD,OAAOrE,UAAU,CAACqE,MAAM;oBAAA,OAAAD,SAAA,CAAAI,MAAA;kBAAA;oBAGpBR,OAAO,GAAG9I,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;oBAAAyI,SAAA,CAAA1J,IAAA;oBAAA,OACnB,IAAA+J,4BAAc,EAACrH,OAAO,EAAE4C,UAAU,EAAA1G,aAAA,CAAAA,aAAA,KAAOuF,WAAW;sBAAE6F,WAAW,EAAEjJ;oBAAO,IAAIkD,aAAa,CAAC;kBAAA;oBAA1GsF,KAAK,GAAAG,SAAA,CAAAhD,IAAA;oBACX6C,KAAK,CAAC5M,KAAK,GACT,kHAAkH,EAAC;oBACrH,IAAI2I,UAAU,CAAC2E,WAAW,EAAE;sBAC1B3E,UAAU,CAAC4E,aAAa,CAACC,YAAY,CAACb,OAAO,EAAEhE,UAAU,CAAC2E,WAAW,CAAC;oBACxE,CAAC,MAAM;sBACL3E,UAAU,CAAC4E,aAAa,CAAC3I,WAAW,CAAC+H,OAAO,CAAC;oBAC/C;oBACAhE,UAAU,CAACqE,MAAM,GAAGL,OAAO;oBAC3BA,OAAO,CAAC/H,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;oBACvCuI,OAAO,GAAGF,OAAO,CAAC/H,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC5DqI,OAAO,CAAC/H,WAAW,CAACf,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;oBAC7CuI,OAAO,CAACjI,WAAW,CAACgI,KAAK,CAAC;kBAAA;kBAAA;oBAAA,OAAAG,SAAA,CAAAU,IAAA;gBAAA;cAAA,GAAAhB,QAAA;YAAA,CAC3B;YAAA,iBAAAiB,IAAA;cAAA,OAAAlB,KAAA,CAAAxK,KAAA,OAAAE,SAAA;YAAA;UAAA,IAAC;UACF,IAAI+F,MAAM,IAAI7D,OAAO,CAACuJ,UAAU,EAAE;YAChC;YACArE,GAAG,CAAC1E,WAAW,CAAC1E,OAAO,CAACmM,MAAM,CAC5BxI,GAAG,EACHyI,eAAK,CAACC,QAAQ,GAAG,kBAAkB;YAAE;YACrC,YAAY,EACZ,UAAAqB,EAAE,EAAI;cACJ;cACAxJ,OAAO,CAACuJ,UAAU,CAAC1F,MAAM,EAAE7D,OAAO,CAAC;YACrC,CACF,CAAC,CAAC;UACJ;UAAC,OAAAsF,UAAA,CAAAyD,MAAA,WACMxE,UAAU;QAAA;QAAA;UAAA,OAAAe,UAAA,CAAA+D,IAAA;MAAA;IAAA,GAAApG,QAAA;EAAA,CAClB;EAAA,OAAAJ,iBAAA,CAAAjF,KAAA,OAAAE,SAAA;AAAA;AAAA,SAEqB2L,cAAcA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,eAAA,CAAAlM,KAAA,OAAAE,SAAA;AAAA;AAQpC;AACA;AACA;AAFA,SAAAgM,gBAAA;EAAAA,eAAA,OAAAhH,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CARO,SAAA+G,UAA+BxF,UAAU,EAAE5C,OAAO,EAAEuB,aAAa,EAAEE,WAAW;IAAA,IAAA4G,YAAA,EAAAC,OAAA;IAAA,OAAAlH,YAAA,YAAAqC,IAAA,UAAA8E,WAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAA5E,IAAA,GAAA4E,UAAA,CAAAlL,IAAA;QAAA;UAC7E+K,YAAY,GAAGzF,UAAU,CAACsE,UAAU;UAAAsB,UAAA,CAAAC,EAAA,GAC1BC,mBAAmB;UAAAF,UAAA,CAAAG,EAAA,GAACpH,aAAa;UAAAiH,UAAA,CAAAI,EAAA,GAAEP,YAAY;UAAAG,UAAA,CAAAK,EAAA,GAAEpH,WAAW;UAAA+G,UAAA,CAAAM,EAAA,GAC1EvH,aAAa,CAAClD,OAAO;UAAAmK,UAAA,CAAAlL,IAAA;UAAA,OAAQ,IAAAyG,4BAAiB,EAAC/D,OAAO,CAAC;QAAA;UAAAwI,UAAA,CAAAO,EAAA,GAAAP,UAAA,CAAAxE,IAAA;UADnDsE,OAAO,OAAAE,UAAA,CAAAC,EAAA,EAAAD,UAAA,CAAAG,EAAA,EAAAH,UAAA,CAAAI,EAAA,EAAAJ,UAAA,CAAAK,EAAA,EAAAL,UAAA,CAAAM,EAAA,EAAAN,UAAA,CAAAO,EAAA;UAEbV,YAAY,CAACZ,YAAY,CAACa,OAAO,EAAE1F,UAAU,CAAC;UAC9C0F,OAAO,CAACU,WAAW,GAAGpG,UAAU;UAChCA,UAAU,CAAC3I,KAAK,CAACgP,UAAU,GAAG,QAAQ,EAAC;QAAA;QAAA;UAAA,OAAAT,UAAA,CAAAd,IAAA;MAAA;IAAA,GAAAU,SAAA;EAAA,CACxC;EAAA,OAAAD,eAAA,CAAAlM,KAAA,OAAAE,SAAA;AAAA;AAIM,SAASuM,mBAAmBA,CAAEnH,aAAa,EAAE8G,YAAY,EAAE5G,WAAW,EAAEpD,OAAO,EAAEoE,eAAe,EAAE;EACvG,SAASyG,aAAaA,CAAEC,aAAa,EAAE;IACrCA,aAAa,CAACH,WAAW,CAAC/O,KAAK,CAACgP,UAAU,GAAG,SAAS,EAAC;IACvDE,aAAa,CAACjC,UAAU,CAACC,WAAW,CAACgC,aAAa,CAAC;EACrD;EAAC,SAEcC,gBAAgBA,CAAAC,IAAA;IAAA,OAAAC,iBAAA,CAAArN,KAAA,OAAAE,SAAA;EAAA;EAAA,SAAAmN,kBAAA;IAAAA,iBAAA,OAAAnI,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAA/B,SAAAkI,SAAiC5C,MAAM;MAAA,OAAAvF,YAAA,YAAAqC,IAAA,UAAA+F,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA7F,IAAA,GAAA6F,SAAA,CAAAnM,IAAA;UAAA;YAAAmM,SAAA,CAAAnM,IAAA;YAAA,OAC/BoM,WAAW,CAACC,KAAK,CAACxM,KAAK,EAAE,IAAI,CAAC;UAAA;UAAA;YAAA,OAAAsM,SAAA,CAAA/B,IAAA;QAAA;MAAA,GAAA6B,QAAA;IAAA,CACrC;IAAA,OAAAD,iBAAA,CAAArN,KAAA,OAAAE,SAAA;EAAA;EAAA,SAEcuN,WAAWA,CAAAE,IAAA,EAAAC,IAAA;IAAA,OAAAC,YAAA,CAAA7N,KAAA,OAAAE,SAAA;EAAA,EA+CxB;EAEF;EAAA,SAAA2N,aAAA;IAAAA,YAAA,OAAA3I,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAjDA,SAAA0I,SAA4B9K,IAAI,EAAE+K,aAAa;MAAA,IAC9BC,YAAY,EAAAC,aAAA,EAAAlK,OAAA,EAAAmK,UAAA;MAAA,OAAA/I,YAAA,YAAAqC,IAAA,UAAA2G,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAzG,IAAA,GAAAyG,SAAA,CAAA/M,IAAA;UAAA;YAAA4M,aAAA,YAAAI,eAAA;cAAAJ,aAAA,OAAA/I,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAA3B,SAAAkJ,SAA6BvK,OAAO,EAAEwK,MAAM;gBAAA,IAAAC,MAAA;gBAAA,OAAArJ,YAAA,YAAAqC,IAAA,UAAAiH,UAAAC,SAAA;kBAAA,kBAAAA,SAAA,CAAA/G,IAAA,GAAA+G,SAAA,CAAArN,IAAA;oBAAA;sBAAAqN,SAAA,CAAArN,IAAA;sBAAA,OAGpC,IAAAsN,gCAAsB,EAACrJ,aAAa,EAAE8G,YAAY,EAAErI,OAAO,EAAE,KAAK,EAAE3B,OAAO,EAAEoD,WAAW,CAAC;oBAAA;sBAAC;;sBAEhG,IAAIgB,eAAe,EAAE;wBAAE;wBACfgI,MAAM,GAAGtB,aAAa,CAACH,WAAW,EACxC;wBACA,IAAIyB,MAAM,CAACvD,UAAU,EAAE;0BACrBuD,MAAM,CAACvD,UAAU,CAACC,WAAW,CAACsD,MAAM,CAAC,EAAC;wBACxC,CAAC,MAAM;0BACLhR,KAAK,CAACyL,IAAI,CAAC,+BAA+B,GAAGuF,MAAM,CAACnL,WAAW,CAAC;0BAChEmL,MAAM,CAACxQ,KAAK,CAAC4Q,eAAe,GAAG,MAAM;0BACrCJ,MAAM,CAACxQ,KAAK,CAACgP,UAAU,GAAG,QAAQ,EAAC;wBACrC;wBACAE,aAAa,CAACjC,UAAU,CAACC,WAAW,CAACgC,aAAa,CAAC,EAAC;sBACtD,CAAC,MAAM;wBACL,IAAIa,aAAa,EAAE;0BACjBL,KAAK,CAACxM,KAAK,GAAG,EAAE,EAAC;0BACjBwM,KAAK,CAAChL,YAAY,CAAC,OAAO,EAAEV,gBAAgB,CAAC;0BAC7C0L,KAAK,CAACmB,QAAQ,GAAG,KAAK;0BACtBnB,KAAK,CAACoB,cAAc,CAAC1M,OAAO,CAAC2M,WAAW,CAAC,EAAC;0BAC1CrB,KAAK,CAACsB,KAAK,CAAC,CAAC,EAAC;0BACdtB,KAAK,CAACuB,MAAM,CAAC,CAAC;wBAChB;sBACF;sBACA;oBAAA;oBAAA;sBAAA,OAAAP,SAAA,CAAAjD,IAAA;kBAAA;gBAAA,GAAA6C,QAAA;cAAA,CACD;cAAA,OAAAL,aAAA,CAAAjO,KAAA,OAAAE,SAAA;YAAA;YA3Bc8N,YAAY,YAAAkB,eAAAC,IAAA,EAAAC,IAAA;cAAA,OAAAnB,aAAA,CAAAjO,KAAA,OAAAE,SAAA;YAAA,GA6B3B;YACA,IAAI6N,aAAa,EAAE;cACjBL,KAAK,CAAChL,YAAY,CAAC,OAAO,EAAEV,gBAAgB,GAAG,cAAc,CAAC,EAAC;cAC/D0L,KAAK,CAACmB,QAAQ,GAAG,IAAI;YACvB;YAACT,SAAA,CAAAzG,IAAA;YAAAyG,SAAA,CAAA/M,IAAA;YAAA,OAIiBiE,aAAa,CAAC+J,aAAa,CAACrM,IAAI,EAAEwD,eAAe,EAAE,IAAI,EAAEpE,OAAO,CAAC6D,MAAM,CAAC;UAAA;YAAxFlC,OAAO,GAAAqK,SAAA,CAAArG,IAAA;YAAAqG,SAAA,CAAA/M,IAAA;YAAA;UAAA;YAAA+M,SAAA,CAAAzG,IAAA;YAAAyG,SAAA,CAAA5B,EAAA,GAAA4B,SAAA;YAEDF,UAAU,GAAG1I,WAAW,CAAC0I,UAAU,IAAIhB,aAAa;YAC1DgB,UAAU,CAACtL,WAAW,CACpB1E,OAAO,CAACoR,iBAAiB,CAACzN,GAAG,EAAE,yBAAyB,GAAAuM,SAAA,CAAA5B,EAAM,CAChE,CAAC;YAAA,OAAA4B,SAAA,CAAAjD,MAAA;UAAA;YAAAiD,SAAA,CAAA/M,IAAA;YAAA,OAGG2M,YAAY,CAACjK,OAAO,EAAEf,IAAI,CAAC;UAAA;UAAA;YAAA,OAAAoL,SAAA,CAAA3C,IAAA;QAAA;MAAA,GAAAqC,QAAA;IAAA,CAClC;IAAA,OAAAD,YAAA,CAAA7N,KAAA,OAAAE,SAAA;EAAA;EAGD,SAASqP,kBAAkBA,CAAEC,KAAK,EAAE;IAClC,IAAMC,IAAI,GAAGrD,YAAY,CAACsD,YAAY,CAACC,GAAG,CAAC,CAAC,CAACzM,GAAG;IAChDhF,OAAO,CAAC0R,WAAW,CACjBpM,iBAAK,CAACS,OAAO,EACbuL,KAAK,EACLC,IAAI,GAAG,OAAO,EACdA,IAAI,GAAG,UAAU;MAAA,IAAAI,IAAA,OAAA3K,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CACjB,SAAA0K,QAAgBC,OAAO,EAAEC,OAAO;QAAA,OAAA7K,YAAA,YAAAqC,IAAA,UAAAyI,SAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAvI,IAAA,GAAAuI,SAAA,CAAA7O,IAAA;YAAA;cAAA6O,SAAA,CAAA7O,IAAA;cAAA,OAExBoM,WAAW,CAACuC,OAAO,CAAC;YAAA;YAAA;cAAA,OAAAE,SAAA,CAAAzE,IAAA;UAAA;QAAA,GAAAqE,OAAA;MAAA,CAC3B;MAAA,iBAAAK,IAAA,EAAAC,IAAA;QAAA,OAAAP,IAAA,CAAA7P,KAAA,OAAAE,SAAA;MAAA;IAAA,GACH,CAAC;EACH;;EAEA;EACA,IAAMmQ,iBAAiB;IAAA,IAAAC,KAAA,OAAApL,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAmL,SAAgBC,IAAI;MAAA,IAAAC,SAAA,EAAAC,KAAA,EAAAxN,GAAA;MAAA,OAAAiC,YAAA,YAAAqC,IAAA,UAAAmJ,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAjJ,IAAA,GAAAiJ,SAAA,CAAAvP,IAAA;UAAA;YAAAoP,SAAA,GAAAjQ,0BAAA,CAC1BgQ,IAAI;YAAAI,SAAA,CAAAjJ,IAAA;YAAA8I,SAAA,CAAAzP,CAAA;UAAA;YAAA,KAAA0P,KAAA,GAAAD,SAAA,CAAA3R,CAAA,IAAAmC,IAAA;cAAA2P,SAAA,CAAAvP,IAAA;cAAA;YAAA;YAAX6B,GAAG,GAAAwN,KAAA,CAAAxP,KAAA;YAAA0P,SAAA,CAAAvP,IAAA;YAAA,OACNoM,WAAW,CAACvK,GAAG,CAAC;UAAA;YAAA0N,SAAA,CAAAvP,IAAA;YAAA;UAAA;YAAAuP,SAAA,CAAAvP,IAAA;YAAA;UAAA;YAAAuP,SAAA,CAAAjJ,IAAA;YAAAiJ,SAAA,CAAApE,EAAA,GAAAoE,SAAA;YAAAH,SAAA,CAAAnS,CAAA,CAAAsS,SAAA,CAAApE,EAAA;UAAA;YAAAoE,SAAA,CAAAjJ,IAAA;YAAA8I,SAAA,CAAAtP,CAAA;YAAA,OAAAyP,SAAA,CAAAC,MAAA;UAAA;UAAA;YAAA,OAAAD,SAAA,CAAAnF,IAAA;QAAA;MAAA,GAAA8E,QAAA;IAAA,CAEzB;IAAA,gBAJKF,iBAAiBA,CAAAS,IAAA;MAAA,OAAAR,KAAA,CAAAtQ,KAAA,OAAAE,SAAA;IAAA;EAAA,GAItB;;EAED;EACA,SAAS6Q,WAAWA,CAAA,EAAI;IACtB,SAASC,WAAWA,CAAA,EAAI;MACtBC,QAAQ,GAAGnO,IAAI,CAACC,GAAG,CACjB2M,YAAY,CAACC,GAAG,CAAC,CAAC,CAACzM,GAAG,GAAG,QAAQ,GAAGgO,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,MACnD,CAAC;MACD,OAAOF,QAAQ;IACjB;IAAC,SAEcG,WAAWA,CAAAC,IAAA;MAAA,OAAAC,YAAA,CAAAtR,KAAA,OAAAE,SAAA;IAAA,EAM1B;IAAA,SAAAoR,aAAA;MAAAA,YAAA,OAAApM,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CANA,SAAAmM,SAA4BN,QAAQ;QAAA,OAAA9L,YAAA,YAAAqC,IAAA,UAAAgK,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9J,IAAA,GAAA8J,SAAA,CAAApQ,IAAA;YAAA;cAAA,KAC9B4P,QAAQ;gBAAAQ,SAAA,CAAApQ,IAAA;gBAAA;cAAA;cAAAoQ,SAAA,CAAApQ,IAAA;cAAA,OACJoM,WAAW,CAACwD,QAAQ,CAAC/N,GAAG,CAAC;YAAA;YAAA;cAAA,OAAAuO,SAAA,CAAAhG,IAAA;UAAA;QAAA,GAAA8F,QAAA;MAAA,CAElC;MAAA,OAAAD,YAAA,CAAAtR,KAAA,OAAAE,SAAA;IAAA;IAID,IAAIwR,UAAU;IACd,IAAItP,OAAO,CAACuP,WAAW,EAAE;MACvB,IAAMD,WAAU,GAAGxT,OAAO,CAACmM,MAAM,CAC/BxI,GAAG,EAAEyI,eAAK,CAACC,QAAQ,GAAG,iBAAiB,EAAE,MAAM,CAAC;MAClDmH,WAAU,CAAChP,YAAY,CAAC,OAAO,EAAE1E,KAAK,CAAC4T,WAAW,GAAG,eAAe,CAAC;MACrE;MACAC,GAAG,CAACjP,WAAW,CAAC8O,WAAU,CAAC;IAC7B;IAEA,IAAItP,OAAO,CAACuP,WAAW,IAAID,UAAU,EAAE;MACrC,IAAMI,GAAE,GAAGC,iBAAK,CAACC,WAAW,CAAC,CAAC;MAC9B,IAAMC,WAAW,GAAG;QAClBH,EAAE,EAAFA,GAAE;QACFjQ,GAAG,EAAHA,GAAG;QACHqQ,GAAG,EAAE,IAAI;QAAE;QACXC,OAAO,EAAE/F,YAAY,CAACsD,YAAY,CAACC,GAAG,CAAC,CAAC,CAACzM;MAC3C,CAAC;MACDwO,UAAU,CAACvO,gBAAgB,CACzB,OAAO,EACP,UAAAiP,KAAK,EAAI;QACPhQ,OAAO,CAACuP,WAAW,CAACS,KAAK,EAAE9M,aAAa,CAAC+M,WAAW,EAAEJ,WAAW,CAAC;MACpE,CAAC,EACD,KACF,CAAC;IACH;IAEA,IAAMH,EAAE,GAAGC,iBAAK,CAACC,WAAW,CAAC,CAAC,EAAC;IAC/BrO,cAAc,CAAC2O,GAAG,EAAER,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;IAEjCpE,KAAK,GAAG7L,GAAG,CAACS,aAAa,CAAC,UAAU,CAAC;IACrCiQ,MAAM,CAACC,SAAS,GAAG,EAAE;IACrBD,MAAM,CAAC3P,WAAW,CAAC8K,KAAK,CAAC;IACzBA,KAAK,CAAC+E,IAAI,GAAG,CAAC;IACd,IAAIjM,eAAe,EAAE;MACnBkH,KAAK,CAACxM,KAAK,GAAGsC,iBAAK,CAACkP,QAAQ,CAAClM,eAAe,EAAE1I,EAAE,CAACkK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAExB,eAAe,CAACrC,GAAG,CAAC,CAAC,CAAC;IAChG;IACA;IACAuJ,KAAK,CAAChL,YAAY,CAAC,OAAO,EAAEV,gBAAgB,GAAG,yBAAyB,CAAC;;IAEzE;;IAEA0L,KAAK,CAACvK,gBAAgB,CACpB,SAAS;MAAA,IAAAwP,KAAA,OAAAzN,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CACT,SAAAwN,SAAgBtU,CAAC;QAAA,OAAA6G,YAAA,YAAAqC,IAAA,UAAAqL,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAnL,IAAA,GAAAmL,SAAA,CAAAzR,IAAA;YAAA;cAAA,MAEX/C,CAAC,CAACyU,IAAI,KAAK,OAAO;gBAAAD,SAAA,CAAAzR,IAAA;gBAAA;cAAA;cAAA,MAEf,CAAC/C,CAAC,CAAC0U,QAAQ,IAAI,CAAC5Q,OAAO,CAAC6Q,sBAAsB,IAAM3U,CAAC,CAAC0U,QAAQ,IAAI5Q,OAAO,CAAC6Q,sBAAuB;gBAAAH,SAAA,CAAAzR,IAAA;gBAAA;cAAA;cAAAyR,SAAA,CAAAzR,IAAA;cAAA,OAG9F8L,gBAAgB,CAAC7O,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAwU,SAAA,CAAArH,IAAA;UAAA;QAAA,GAAAmH,QAAA;MAAA,CAG9B;MAAA,iBAAAM,IAAA;QAAA,OAAAP,KAAA,CAAA3S,KAAA,OAAAE,SAAA;MAAA;IAAA,KACD,KACF,CAAC;IAEDhC,OAAO,CAACiV,cAAc,CAACzF,KAAK,EAAE2C,iBAAiB,EAAEd,kBAAkB,CAAC;IAEpEsC,GAAG,CAACW,SAAS,GAAG,EAAE;IAElBY,UAAU,GAAGlV,OAAO,CAACmM,MAAM,CAACxI,GAAG,EAAEwR,QAAQ,EAAE,MAAM,CAAC;IAClDD,UAAU,CAACpV,KAAK,SAAM,GAAG,OAAO;IAChCoV,UAAU,CAACjQ,gBAAgB,CAAC,OAAO,EAAE,UAAAuH,MAAM;MAAA,OAAIyC,gBAAgB,CAAC,CAAC;IAAA,GAAE,KAAK,CAAC;IACzE0E,GAAG,CAACjP,WAAW,CAACwQ,UAAU,CAAC;IAE3B,IAAI5M,eAAe,EAAE;MAAE;MACrB,IAAM8M,YAAY,GAAGzB,GAAG,CAACjP,WAAW,CAAC1E,OAAO,CAACoV,YAAY,CAACzR,GAAG,CAAC,CAAC;MAC/DyR,YAAY,CAACtV,KAAK,SAAM,GAAG,MAAM;MACjC;MACAsV,YAAY,CAACnQ,gBAAgB,CAAC,OAAO,EAAE,UAAAuH,MAAM;QAAA,OAAIuC,aAAa,CAACC,aAAa,CAAC;MAAA,GAAE,KAAK,CAAC;MACrF2E,GAAG,CAACjP,WAAW,CAAC0Q,YAAY,CAAC;IAC/B;IAEA,IAAM5D,YAAY,GAAGpK,aAAa,CAACiO,UAAU,CAACC,oBAAoB,CAAC,IAAItC,IAAI,CAAC,CAAC,CAAC;IAC9E,IAAID,QAAQ;IAEZsB,MAAM,CAAC3P,WAAW,CAChB6Q,YAAK,CAACC,YAAY,CAAC7R,GAAG,EAAE2B,iBAAK,EAAEwN,WAAW,EAAEI,WAAW,CACzD,CAAC;IAEDrT,GAAG,CAAC4V,mBAAmB,CAACrO,aAAa,CAACsO,OAAO,EAAEtO,aAAa,CAACsO,OAAO,CAACzP,GAAG,CAAC,CAAC,CAAC,EAAC;EAC9E,CAAC,CAAC;;EAEF;;EAEA,IAAIuC,QAAQ,EAAE2M,QAAQ;EACtB,IAAI7M,eAAe,EAAE;IACnBE,QAAQ,GAAGlD,iBAAK,CAACkP,QAAQ,CAAClM,eAAe,EAAE1I,EAAE,CAAC+J,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAErB,eAAe,CAACrC,GAAG,CAAC,CAAC,CAAC;IAC1F;IACAkP,QAAQ,GAAG/I,eAAK,CAACC,QAAQ,GAAG,kBAAkB,EAAC;IAC/C;EACF,CAAC,MAAM;IACL8I,QAAQ,GAAG/I,eAAK,CAACC,QAAQ,GAAG,iBAAiB;IAC7C7D,QAAQ,GAAG,sBAAsB,EAAC;IAClC;EACF;EACA,IAAMwG,aAAa,GAAGrL,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;EAC7C,IAAMgQ,GAAG,GAAGzQ,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;EACnC,IAAMiQ,MAAM,GAAG1Q,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;EACtC,IAAMuP,GAAG,GAAGhQ,GAAG,CAACS,aAAa,CAAC,IAAI,CAAC;EACnC4K,aAAa,CAACtK,WAAW,CAAC0P,GAAG,CAAC;EAC9BpF,aAAa,CAACtK,WAAW,CAAC2P,MAAM,CAAC;EACjCrF,aAAa,CAACtK,WAAW,CAACiP,GAAG,CAAC;EAC9B3E,aAAa,CAACvD,SAAS,GAAGjD,QAAQ;EAClC;;EAEA,IAAIgH,KAAK,EAAE0F,UAAU;EACrB,IAAMS,OAAO,GAAG;IAAE3B,GAAG,EAAEK,MAAM;IAAE1Q,GAAG,EAAHA;EAAI,CAAC;EAEpC,IAAAiS,qBAAc,EAACD,OAAO,CAAC,CAAC1K,IAAI,CAAC,UAAA0K,OAAO,EAAI;IACtC;IACA9C,WAAW,CAAC,CAAC;IACb9R,MAAM,CAAC8U,MAAM,CAACF,OAAO,EAAErO,WAAW,CAAC;IACnC,IAAAwO,+BAAoB,EAACH,OAAO,CAAC,CAAC1K,IAAI,CAAC,UAAA8K,QAAQ,EAAI;MAC7C;IAAA,CACD,CAAC;EACJ,CAAC,CAAC;EAEF,OAAO/G,aAAa;AACtB,CAAC,CAAC","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":[]}
|