solid-ui 2.4.29-ee8e69c2 → 2.4.30-28954ea4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/805.solid-ui.min.js +1 -1
- package/dist/805.solid-ui.min.js.map +1 -1
- package/dist/solid-ui.js +3358 -1843
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +191 -80
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
- package/lib/acl/access-groups.js +0 -2
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl.js +0 -2
- package/lib/acl/acl.js.map +1 -1
- package/lib/chat/chatLogic.js +6 -4
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/infinite.js +0 -5
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +3 -7
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +1 -0
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +0 -4
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +0 -2
- package/lib/create/create.js.map +1 -1
- package/lib/login/login.js +23 -24
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/matrix.js +0 -2
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/media-capture.js +0 -3
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +0 -4
- package/lib/messageArea.js.map +1 -1
- package/lib/pad.js +3 -6
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +1 -4
- package/lib/participation.js.map +1 -1
- package/lib/table.js +0 -4
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +0 -2
- package/lib/tabs.js.map +1 -1
- package/lib/utils/index.js +0 -7
- package/lib/utils/index.js.map +1 -1
- package/lib/versionInfo.js +3 -3
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons.js +2 -10
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +0 -1
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +5 -5
- package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +4 -7
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +0 -3
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +0 -1
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +14 -14
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms.js +3 -22
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/peoplePicker.js +0 -1
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageTools.js","names":["debug","_interopRequireWildcard","require","_iconBase","ns","rdf","utils","widgets","_bookmarks","_solidLogic","_chatLogic","_message","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","dom","window","document","PENCIL_ICON","THUMBS_UP_ICON","THUMBS_DOWN_ICON","emoji","schema","sentimentStrip","target","doc","latest","mostRecentVersion","actions","store","holds","value","each","sentiments","map","any","sort","strings","x","createTextNode","join","sentimentStripLinked","strip","createElement","refresh","innerHTML","uri","forEach","ss","_ss","_slicedToArray2","theClass","agent","res","setAttribute","textContent","appendChild","messageToolbar","message","messageRow","userContext","channelObject","deleteMessage","_deleteMessage","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","author","msg","area","wrap","_callee2$","_context2","prev","next","foaf","me","alert","sameTerm","t0","warn","statusArea","parentNode","errorMessageBlock","removeChild","closeToolbar","stop","editMessage","_x","_editMessage","_callee3","_callee3$","_context3","switchToEditor","div","parentElement","deleteThingThen","_x2","_deleteThingThen","_callee4","_callee4$","_context4","updater","update","connectedStatements","authn","currentUser","deleteButtonWithCheck","button","icons","iconBase","renderBookmarksButton","then","bookmarkButton","sentimentButton","context","icon","actionClass","mutuallyExclusive","setColor","style","backgroundColor","action","label","_ref","_callee","_event","insertMe","dirty","_callee$","_context","newThing","st","length","existingAction","refreshTree","_x3","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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"}
|
|
1
|
+
{"version":3,"file":"messageTools.js","names":["debug","_interopRequireWildcard","require","_iconBase","ns","rdf","utils","widgets","_bookmarks","_solidLogic","_chatLogic","_message","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","dom","window","document","PENCIL_ICON","THUMBS_UP_ICON","THUMBS_DOWN_ICON","emoji","schema","sentimentStrip","target","doc","latest","mostRecentVersion","actions","store","holds","value","each","sentiments","map","any","sort","strings","x","createTextNode","join","sentimentStripLinked","strip","createElement","refresh","innerHTML","uri","forEach","ss","_ss","_slicedToArray2","theClass","agent","res","setAttribute","textContent","appendChild","messageToolbar","message","messageRow","userContext","channelObject","deleteMessage","_deleteMessage","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","author","msg","area","wrap","_callee2$","_context2","prev","next","foaf","me","alert","sameTerm","t0","warn","statusArea","parentNode","errorMessageBlock","removeChild","closeToolbar","stop","editMessage","_x","_editMessage","_callee3","_callee3$","_context3","switchToEditor","div","parentElement","deleteThingThen","_x2","_deleteThingThen","_callee4","_callee4$","_context4","updater","update","connectedStatements","authn","currentUser","deleteButtonWithCheck","button","icons","iconBase","renderBookmarksButton","then","bookmarkButton","sentimentButton","context","icon","actionClass","mutuallyExclusive","setColor","style","backgroundColor","action","label","_ref","_callee","_event","insertMe","dirty","_callee$","_context","newThing","st","length","existingAction","refreshTree","_x3","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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"}
|
package/lib/chat/thread.js
CHANGED
|
@@ -65,7 +65,6 @@ function thread(dom, kb, subject, messageStore, options) {
|
|
|
65
65
|
a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true);
|
|
66
66
|
a.setAttribute('style', 'color: #3B5998; text-decoration: none; '); // font-weight: bold
|
|
67
67
|
}
|
|
68
|
-
|
|
69
68
|
a.textContent = text;
|
|
70
69
|
return a;
|
|
71
70
|
};
|
|
@@ -341,7 +340,6 @@ function thread(dom, kb, subject, messageStore, options) {
|
|
|
341
340
|
};
|
|
342
341
|
renderMessage(bindings, true); // fresh from elsewhere
|
|
343
342
|
};
|
|
344
|
-
|
|
345
343
|
var renderMessage = function renderMessage(bindings, fresh) {
|
|
346
344
|
var creator = bindings['?creator'];
|
|
347
345
|
var message = bindings['?msg'];
|
|
@@ -421,7 +419,6 @@ function thread(dom, kb, subject, messageStore, options) {
|
|
|
421
419
|
} else {
|
|
422
420
|
messageTable.appendChild(tr); // not newestFirst
|
|
423
421
|
}
|
|
424
|
-
|
|
425
422
|
var query;
|
|
426
423
|
// Do this with a live query to pull in messages from web
|
|
427
424
|
if (options.query) {
|
|
@@ -441,7 +438,6 @@ function thread(dom, kb, subject, messageStore, options) {
|
|
|
441
438
|
function doneQuery() {
|
|
442
439
|
messageTable.fresh = true; // any new are fresh and so will be greenish
|
|
443
440
|
}
|
|
444
|
-
|
|
445
441
|
_solidLogic.store.query(query, renderMessage, undefined, doneQuery);
|
|
446
442
|
div.refresh = function () {
|
|
447
443
|
syncMessages(subject, messageTable);
|
package/lib/chat/thread.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","_appendMsg","appendMsg","value","dateStamp","sts","sendComplete","success","body","errorMessageBlock","bindings","literal","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","fieldValue","oldMsg","arguments","length","undefined","now","Date","timestamp","getTime","sym","push","Statement","mostRecentVersion","wf","msgBody","concat","nick","sioc","foaf","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","deletions","wrap","_callee$","_context","prev","next","connectedStatements","sent","ok","stop","_x","apply","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","_appendMsg2","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\nimport * as pad from '../pad'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\n\nconst UI = { icons, ns, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n /**\n * Form for a new message\n */\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = appendMsg(field.value)\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n /* const sendMessage = function (oldMsg, options) { // alain\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? field.value : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n } */\n\n const appendMsg = function (fieldValue, oldMsg = {}, options = '') { // alain\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = store.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return msg\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) { // alain test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = appendMsg() // alain\n updater.update([], sts)\n }\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new $rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","_appendMsg","appendMsg","value","dateStamp","sts","sendComplete","success","body","errorMessageBlock","bindings","literal","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","fieldValue","oldMsg","arguments","length","undefined","now","Date","timestamp","getTime","sym","push","Statement","mostRecentVersion","wf","msgBody","concat","nick","sioc","foaf","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","deletions","wrap","_callee$","_context","prev","next","connectedStatements","sent","ok","stop","_x","apply","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","_appendMsg2","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\nimport * as pad from '../pad'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\n\nconst UI = { icons, ns, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n /**\n * Form for a new message\n */\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = appendMsg(field.value)\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n /* const sendMessage = function (oldMsg, options) { // alain\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? field.value : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n } */\n\n const appendMsg = function (fieldValue, oldMsg = {}, options = '') { // alain\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = store.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return msg\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) { // alain test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = appendMsg() // alain\n updater.update([], sts)\n }\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new $rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
|
package/lib/create/create.js
CHANGED
|
@@ -56,7 +56,6 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
56
56
|
iconArray[i].setAttribute('style', st); // eg 'background-color: #ccc;'
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
|
|
60
59
|
function selectTool(icon) {
|
|
61
60
|
styleTheIcons('display: none;'); // 'background-color: #ccc;'
|
|
62
61
|
icon.setAttribute('style', iconStyle + 'background-color: yellow;');
|
|
@@ -111,7 +110,6 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
111
110
|
// selectUI.parentNode.removeChild(selectUI) // Clean up
|
|
112
111
|
// selectUIParent.removeChild(selectUI) // Clean up
|
|
113
112
|
}
|
|
114
|
-
|
|
115
113
|
selectNewTool(); // toggle star to plain and menu vanish again
|
|
116
114
|
})["catch"](function (err) {
|
|
117
115
|
complain(err);
|
package/lib/create/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","names":["_solidLogic","require","debug","_interopRequireWildcard","_iconBase","_login","ns","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","newThingUI","createContext","dataBrowserContext","thePanes","dom","div","me","uri","Error","iconStyle","star","appendChild","createElement","visible","setAttribute","icons","iconBase","complain","message","pre","createTextNode","styleTheIcons","style","iconArray","length","st","disabled","selectTool","icon","selectNewTool","_event","addEventListener","makeNewAppInstance","options","Promise","resolve","reject","selectUI","callbackWS","ws","newBase","ensureLoadedProfile","then","_context","newPaneOptions","assign","folder","undefined","workspace","opt","log","concat","pane","name","mintNew","newInstance","tail","slice","isPackage","includes","add","ldp","sym","doc","refreshTarget","refresh","p","innerHTML","noun","err","pa","mintClass","label","appPathSegment","toUpperCase","selectWorkspace","gotName","endsWith","encodeURIComponent","askName","foaf","mintingPanes","values","filter","mintingClassMap","reduce","classMap","forEach","push","event","iconEle","noIndexHTML"],"sources":["../../src/create/create.ts"],"sourcesContent":["/* create.js UI to craete new objects in the solid-app-set world\n **\n */\n\nimport { DataBrowserContext, NewPaneOptions, PaneDefinition } from 'pane-registry'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { ensureLoadedProfile, selectWorkspace } from '../login/login'\nimport * as ns from '../ns'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { CreateContext, NewAppInstanceOptions } from './types'\n\nconst kb = solidLogicSingleton.store\n\n/* newThingUI -- return UI for user to select a new object, folder, etc\n **\n ** context must include: dom, div,\n ** optional: folder: NamedNode -- the folder where the thing is bring put\n ** (suppresses asking for a full URI or workspace)\n **\n */\nexport function newThingUI (\n createContext: CreateContext,\n dataBrowserContext: DataBrowserContext,\n thePanes: Array<PaneDefinition>\n): void {\n const dom = createContext.dom\n const div = createContext.div\n if (createContext.me && !createContext.me.uri) {\n throw new Error('newThingUI: Invalid userid: ' + createContext.me)\n }\n\n const iconStyle = 'padding: 0.7em; width: 2em; height: 2em;' // was: 'padding: 1em; width: 3em; height: 3em;'\n const star = div.appendChild(dom.createElement('img'))\n let visible = false // the inividual tools tools\n // noun_272948.svg = black star\n // noun_34653_green.svg = green plus\n star.setAttribute('src', icons.iconBase + 'noun_34653_green.svg')\n star.setAttribute('style', iconStyle)\n star.setAttribute('title', 'Add another tool')\n\n const complain = function complain (message) {\n const pre = div.appendChild(dom.createElement('pre'))\n pre.setAttribute('style', 'background-color: pink')\n pre.appendChild(dom.createTextNode(message))\n }\n\n function styleTheIcons (style) {\n for (let i = 0; i < iconArray.length; i++) {\n let st = iconStyle + style\n if (iconArray[i].disabled) {\n // @@ unused\n st += 'opacity: 0.3;'\n }\n iconArray[i].setAttribute('style', st) // eg 'background-color: #ccc;'\n }\n }\n\n function selectTool (icon) {\n styleTheIcons('display: none;') // 'background-color: #ccc;'\n icon.setAttribute('style', iconStyle + 'background-color: yellow;')\n }\n\n function selectNewTool (_event?) {\n visible = !visible\n star.setAttribute(\n 'style',\n iconStyle + (visible ? 'background-color: yellow;' : '')\n )\n styleTheIcons(visible ? '' : 'display: none;')\n }\n\n star.addEventListener('click', selectNewTool)\n\n function makeNewAppInstance (options: NewAppInstanceOptions) {\n return new Promise(function (resolve, reject) {\n let selectUI // , selectUIParent\n function callbackWS (ws, newBase) {\n ensureLoadedProfile(createContext).then(\n _context => {\n const newPaneOptions: NewPaneOptions = Object.assign({\n newBase,\n folder: options.folder || undefined,\n workspace: ws\n }, options)\n for (const opt in options) {\n // get div, dom, me, folder, pane, refreshTable\n newPaneOptions[opt] = options[opt]\n }\n debug.log(`newThingUI: Minting new ${newPaneOptions.pane.name} at ${newPaneOptions.newBase}`)\n options.pane\n .mintNew!(dataBrowserContext, newPaneOptions)\n .then(function (newPaneOptions) {\n if (!newPaneOptions || !newPaneOptions.newInstance) {\n throw new Error('Cannot mint new - missing newInstance')\n }\n if (newPaneOptions.folder) {\n const tail = newPaneOptions.newInstance.uri.slice(\n newPaneOptions.folder.uri.length\n )\n const isPackage = tail.includes('/')\n debug.log(' new thing is packge? ' + isPackage)\n if (isPackage) {\n kb.add(\n newPaneOptions.folder,\n ns.ldp('contains'),\n kb.sym(newPaneOptions.newBase),\n newPaneOptions.folder.doc()\n )\n } else {\n // single file\n kb.add(\n newPaneOptions.folder,\n ns.ldp('contains'),\n newPaneOptions.newInstance,\n newPaneOptions.folder.doc()\n ) // Ping the patch system?\n }\n // @ts-ignore @@ TODO check whether refresh can exist here. Either fix type or remove unreachable code\n if (newPaneOptions.refreshTarget && newPaneOptions.refreshTarget.refresh) {\n // @@ TODO Remove the need to cast as any\n ;(newPaneOptions.refreshTarget as any).refresh() // Refresh the containing display\n }\n // selectUI.parentNode.removeChild(selectUI) It removes itself\n } else {\n const p = options.div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 120%;')\n // Make link to new thing\n p.innerHTML =\n \"Your <a target='_blank' href='\" +\n newPaneOptions.newInstance.uri +\n \"'><b>new \" +\n options.noun +\n '</b></a> is ready to be set up. ' +\n \"<br/><br/><a target='_blank' href='\" +\n newPaneOptions.newInstance.uri +\n \"'>Go to your new \" +\n options.noun +\n '.</a>'\n // selectUI.parentNode.removeChild(selectUI) // Clean up\n // selectUIParent.removeChild(selectUI) // Clean up\n }\n selectNewTool() // toggle star to plain and menu vanish again\n })\n .catch(function (err) {\n complain(err)\n reject(err)\n })\n },\n err => {\n // login fails\n complain('Error logging on: ' + err)\n }\n )\n } // callbackWS\n\n const pa = options.pane\n // options.appPathSegment = pa.name // was 'edu.mit.solid.pane.'\n options.noun = pa.mintClass ? utils.label(pa.mintClass) : pa.name\n options.appPathSegment = options.noun.slice(0, 1).toUpperCase() + options.noun.slice(1)\n\n if (!options.folder) {\n // No folder given? Ask user for full URI\n selectUI = selectWorkspace(dom, {\n noun: options.noun,\n appPathSegment: options.appPathSegment\n }, callbackWS)\n options.div.appendChild(selectUI)\n // selectUIParent = options.div\n } else {\n const gotName = function (name) {\n if (!name) {\n // selectUIParent.removeChild(selectUI) itremves itself if cancelled\n selectNewTool() // toggle star to plain and menu vanish again\n } else {\n let uri = options.folder!.uri\n if (!uri.endsWith('/')) {\n uri = uri + '/'\n }\n uri = uri + encodeURIComponent(name) + '/'\n callbackWS(null, uri)\n }\n }\n widgets\n .askName(\n dom,\n kb,\n options.div,\n ns.foaf('name'),\n null,\n options.noun\n )\n .then(gotName)\n // selectUI = getNameForm(dom, kb, options.noun, gotName)\n // options.div.appendChild(selectUI)\n // selectUIParent = options.div\n }\n })\n } // makeNewAppInstance\n\n const iconArray: Array<any> = []\n const mintingPanes = Object.values(thePanes).filter(pane => pane.mintNew)\n const mintingClassMap = mintingPanes.reduce((classMap, pane) => {\n if (pane.mintClass) {\n classMap[pane.mintClass.uri] = (classMap[pane.mintClass.uri] || 0) + 1\n }\n return classMap\n }, {})\n mintingPanes.forEach(pane => {\n // @@ TODO Remove the need to cast to any\n const icon: any = createContext.div.appendChild(dom.createElement('img'))\n icon.setAttribute('src', pane.icon)\n const noun = pane.mintClass\n ? mintingClassMap[pane.mintClass.uri] > 1\n ? `${utils.label(pane.mintClass)} (using ${pane.name} pane)`\n : utils.label(pane.mintClass)\n : pane.name + ' @@'\n icon.setAttribute('title', 'Make new ' + noun)\n icon.setAttribute('style', iconStyle + 'display: none;')\n iconArray.push(icon)\n if (!icon.disabled) {\n icon.addEventListener('click', function (e) {\n selectTool(icon)\n makeNewAppInstance({\n event: e,\n folder: createContext.folder || null,\n iconEle: icon,\n pane,\n noun,\n noIndexHTML: true, // do NOT @@ for now write a HTML file\n div: createContext.div,\n me: createContext.me,\n dom: createContext.dom,\n refreshTarget: createContext.refreshTarget\n })\n })\n }\n })\n}\n\n// Form to get the name of a new thing before we create it\n//\n// Used in contacts for new groups, individuals.\n//\n/*\nfunction getNameForm (dom, kb, classLabel, gotNameCallback) {\n const form = dom.createElement('div') // form is broken as HTML behaviour can resurface on js error\n form.innerHTML = '<p>Name of new ' + classLabel + ':</p>'\n const namefield = dom.createElement('input')\n namefield.setAttribute('type', 'text')\n namefield.setAttribute('size', '30')\n namefield.setAttribute('style', style.textInputStyle)\n namefield.setAttribute('maxLength', '2048') // No arbitrary limits\n namefield.select() // focus next user input\n\n const gotName = function () {\n namefield.setAttribute('class', 'pendingedit')\n namefield.disabled = true\n continueButton.disabled = true\n cancel.disabled = true\n gotNameCallback(true, namefield.value)\n }\n\n namefield.addEventListener('keyup', function (e) {\n if (e.keyCode === 13) {\n gotName()\n }\n }, false)\n form.appendChild(namefield)\n\n form.appendChild(dom.createElement('br'))\n\n const cancel = form.appendChild(widgets.cancelButton(dom))\n cancel.addEventListener('click', function (e) {\n form.parentNode.removeChild(form)\n gotNameCallback(false)\n }, false)\n\n const continueButton = form.appendChild(widgets.continueButton(dom))\n continueButton.addEventListener('click', function (e) {\n gotName()\n }, false)\n\n return form\n}\n*/\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","names":["_solidLogic","require","debug","_interopRequireWildcard","_iconBase","_login","ns","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","newThingUI","createContext","dataBrowserContext","thePanes","dom","div","me","uri","Error","iconStyle","star","appendChild","createElement","visible","setAttribute","icons","iconBase","complain","message","pre","createTextNode","styleTheIcons","style","iconArray","length","st","disabled","selectTool","icon","selectNewTool","_event","addEventListener","makeNewAppInstance","options","Promise","resolve","reject","selectUI","callbackWS","ws","newBase","ensureLoadedProfile","then","_context","newPaneOptions","assign","folder","undefined","workspace","opt","log","concat","pane","name","mintNew","newInstance","tail","slice","isPackage","includes","add","ldp","sym","doc","refreshTarget","refresh","p","innerHTML","noun","err","pa","mintClass","label","appPathSegment","toUpperCase","selectWorkspace","gotName","endsWith","encodeURIComponent","askName","foaf","mintingPanes","values","filter","mintingClassMap","reduce","classMap","forEach","push","event","iconEle","noIndexHTML"],"sources":["../../src/create/create.ts"],"sourcesContent":["/* create.js UI to craete new objects in the solid-app-set world\n **\n */\n\nimport { DataBrowserContext, NewPaneOptions, PaneDefinition } from 'pane-registry'\nimport { solidLogicSingleton } from 'solid-logic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { ensureLoadedProfile, selectWorkspace } from '../login/login'\nimport * as ns from '../ns'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { CreateContext, NewAppInstanceOptions } from './types'\n\nconst kb = solidLogicSingleton.store\n\n/* newThingUI -- return UI for user to select a new object, folder, etc\n **\n ** context must include: dom, div,\n ** optional: folder: NamedNode -- the folder where the thing is bring put\n ** (suppresses asking for a full URI or workspace)\n **\n */\nexport function newThingUI (\n createContext: CreateContext,\n dataBrowserContext: DataBrowserContext,\n thePanes: Array<PaneDefinition>\n): void {\n const dom = createContext.dom\n const div = createContext.div\n if (createContext.me && !createContext.me.uri) {\n throw new Error('newThingUI: Invalid userid: ' + createContext.me)\n }\n\n const iconStyle = 'padding: 0.7em; width: 2em; height: 2em;' // was: 'padding: 1em; width: 3em; height: 3em;'\n const star = div.appendChild(dom.createElement('img'))\n let visible = false // the inividual tools tools\n // noun_272948.svg = black star\n // noun_34653_green.svg = green plus\n star.setAttribute('src', icons.iconBase + 'noun_34653_green.svg')\n star.setAttribute('style', iconStyle)\n star.setAttribute('title', 'Add another tool')\n\n const complain = function complain (message) {\n const pre = div.appendChild(dom.createElement('pre'))\n pre.setAttribute('style', 'background-color: pink')\n pre.appendChild(dom.createTextNode(message))\n }\n\n function styleTheIcons (style) {\n for (let i = 0; i < iconArray.length; i++) {\n let st = iconStyle + style\n if (iconArray[i].disabled) {\n // @@ unused\n st += 'opacity: 0.3;'\n }\n iconArray[i].setAttribute('style', st) // eg 'background-color: #ccc;'\n }\n }\n\n function selectTool (icon) {\n styleTheIcons('display: none;') // 'background-color: #ccc;'\n icon.setAttribute('style', iconStyle + 'background-color: yellow;')\n }\n\n function selectNewTool (_event?) {\n visible = !visible\n star.setAttribute(\n 'style',\n iconStyle + (visible ? 'background-color: yellow;' : '')\n )\n styleTheIcons(visible ? '' : 'display: none;')\n }\n\n star.addEventListener('click', selectNewTool)\n\n function makeNewAppInstance (options: NewAppInstanceOptions) {\n return new Promise(function (resolve, reject) {\n let selectUI // , selectUIParent\n function callbackWS (ws, newBase) {\n ensureLoadedProfile(createContext).then(\n _context => {\n const newPaneOptions: NewPaneOptions = Object.assign({\n newBase,\n folder: options.folder || undefined,\n workspace: ws\n }, options)\n for (const opt in options) {\n // get div, dom, me, folder, pane, refreshTable\n newPaneOptions[opt] = options[opt]\n }\n debug.log(`newThingUI: Minting new ${newPaneOptions.pane.name} at ${newPaneOptions.newBase}`)\n options.pane\n .mintNew!(dataBrowserContext, newPaneOptions)\n .then(function (newPaneOptions) {\n if (!newPaneOptions || !newPaneOptions.newInstance) {\n throw new Error('Cannot mint new - missing newInstance')\n }\n if (newPaneOptions.folder) {\n const tail = newPaneOptions.newInstance.uri.slice(\n newPaneOptions.folder.uri.length\n )\n const isPackage = tail.includes('/')\n debug.log(' new thing is packge? ' + isPackage)\n if (isPackage) {\n kb.add(\n newPaneOptions.folder,\n ns.ldp('contains'),\n kb.sym(newPaneOptions.newBase),\n newPaneOptions.folder.doc()\n )\n } else {\n // single file\n kb.add(\n newPaneOptions.folder,\n ns.ldp('contains'),\n newPaneOptions.newInstance,\n newPaneOptions.folder.doc()\n ) // Ping the patch system?\n }\n // @ts-ignore @@ TODO check whether refresh can exist here. Either fix type or remove unreachable code\n if (newPaneOptions.refreshTarget && newPaneOptions.refreshTarget.refresh) {\n // @@ TODO Remove the need to cast as any\n ;(newPaneOptions.refreshTarget as any).refresh() // Refresh the containing display\n }\n // selectUI.parentNode.removeChild(selectUI) It removes itself\n } else {\n const p = options.div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 120%;')\n // Make link to new thing\n p.innerHTML =\n \"Your <a target='_blank' href='\" +\n newPaneOptions.newInstance.uri +\n \"'><b>new \" +\n options.noun +\n '</b></a> is ready to be set up. ' +\n \"<br/><br/><a target='_blank' href='\" +\n newPaneOptions.newInstance.uri +\n \"'>Go to your new \" +\n options.noun +\n '.</a>'\n // selectUI.parentNode.removeChild(selectUI) // Clean up\n // selectUIParent.removeChild(selectUI) // Clean up\n }\n selectNewTool() // toggle star to plain and menu vanish again\n })\n .catch(function (err) {\n complain(err)\n reject(err)\n })\n },\n err => {\n // login fails\n complain('Error logging on: ' + err)\n }\n )\n } // callbackWS\n\n const pa = options.pane\n // options.appPathSegment = pa.name // was 'edu.mit.solid.pane.'\n options.noun = pa.mintClass ? utils.label(pa.mintClass) : pa.name\n options.appPathSegment = options.noun.slice(0, 1).toUpperCase() + options.noun.slice(1)\n\n if (!options.folder) {\n // No folder given? Ask user for full URI\n selectUI = selectWorkspace(dom, {\n noun: options.noun,\n appPathSegment: options.appPathSegment\n }, callbackWS)\n options.div.appendChild(selectUI)\n // selectUIParent = options.div\n } else {\n const gotName = function (name) {\n if (!name) {\n // selectUIParent.removeChild(selectUI) itremves itself if cancelled\n selectNewTool() // toggle star to plain and menu vanish again\n } else {\n let uri = options.folder!.uri\n if (!uri.endsWith('/')) {\n uri = uri + '/'\n }\n uri = uri + encodeURIComponent(name) + '/'\n callbackWS(null, uri)\n }\n }\n widgets\n .askName(\n dom,\n kb,\n options.div,\n ns.foaf('name'),\n null,\n options.noun\n )\n .then(gotName)\n // selectUI = getNameForm(dom, kb, options.noun, gotName)\n // options.div.appendChild(selectUI)\n // selectUIParent = options.div\n }\n })\n } // makeNewAppInstance\n\n const iconArray: Array<any> = []\n const mintingPanes = Object.values(thePanes).filter(pane => pane.mintNew)\n const mintingClassMap = mintingPanes.reduce((classMap, pane) => {\n if (pane.mintClass) {\n classMap[pane.mintClass.uri] = (classMap[pane.mintClass.uri] || 0) + 1\n }\n return classMap\n }, {})\n mintingPanes.forEach(pane => {\n // @@ TODO Remove the need to cast to any\n const icon: any = createContext.div.appendChild(dom.createElement('img'))\n icon.setAttribute('src', pane.icon)\n const noun = pane.mintClass\n ? mintingClassMap[pane.mintClass.uri] > 1\n ? `${utils.label(pane.mintClass)} (using ${pane.name} pane)`\n : utils.label(pane.mintClass)\n : pane.name + ' @@'\n icon.setAttribute('title', 'Make new ' + noun)\n icon.setAttribute('style', iconStyle + 'display: none;')\n iconArray.push(icon)\n if (!icon.disabled) {\n icon.addEventListener('click', function (e) {\n selectTool(icon)\n makeNewAppInstance({\n event: e,\n folder: createContext.folder || null,\n iconEle: icon,\n pane,\n noun,\n noIndexHTML: true, // do NOT @@ for now write a HTML file\n div: createContext.div,\n me: createContext.me,\n dom: createContext.dom,\n refreshTarget: createContext.refreshTarget\n })\n })\n }\n })\n}\n\n// Form to get the name of a new thing before we create it\n//\n// Used in contacts for new groups, individuals.\n//\n/*\nfunction getNameForm (dom, kb, classLabel, gotNameCallback) {\n const form = dom.createElement('div') // form is broken as HTML behaviour can resurface on js error\n form.innerHTML = '<p>Name of new ' + classLabel + ':</p>'\n const namefield = dom.createElement('input')\n namefield.setAttribute('type', 'text')\n namefield.setAttribute('size', '30')\n namefield.setAttribute('style', style.textInputStyle)\n namefield.setAttribute('maxLength', '2048') // No arbitrary limits\n namefield.select() // focus next user input\n\n const gotName = function () {\n namefield.setAttribute('class', 'pendingedit')\n namefield.disabled = true\n continueButton.disabled = true\n cancel.disabled = true\n gotNameCallback(true, namefield.value)\n }\n\n namefield.addEventListener('keyup', function (e) {\n if (e.keyCode === 13) {\n gotName()\n }\n }, false)\n form.appendChild(namefield)\n\n form.appendChild(dom.createElement('br'))\n\n const cancel = form.appendChild(widgets.cancelButton(dom))\n cancel.addEventListener('click', function (e) {\n form.parentNode.removeChild(form)\n gotNameCallback(false)\n }, false)\n\n const continueButton = form.appendChild(widgets.continueButton(dom))\n continueButton.addEventListener('click', function (e) {\n gotName()\n }, false)\n\n return form\n}\n*/\n"],"mappings":"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"}
|
package/lib/login/login.js
CHANGED
|
@@ -35,29 +35,29 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
35
35
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
36
36
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
37
37
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* eslint-disable camelcase */ /**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
38
|
+
* Signing in, signing up, profile and preferences reloading
|
|
39
|
+
* Type index management
|
|
40
|
+
*
|
|
41
|
+
* Many functions in this module take a context object which
|
|
42
|
+
* holds various RDF symbols, add to it, and return a promise of it.
|
|
43
|
+
*
|
|
44
|
+
* * `me` RDF symbol for the user's WebID
|
|
45
|
+
* * `publicProfile` The user's public profile, iff loaded
|
|
46
|
+
* * `preferencesFile` The user's personal preference file, iff loaded
|
|
47
|
+
* * `index.public` The user's public type index file
|
|
48
|
+
* * `index.private` The user's private type index file
|
|
49
|
+
*
|
|
50
|
+
* Not RDF symbols:
|
|
51
|
+
* * `noun` A string in english for the type of thing -- like "address book"
|
|
52
|
+
* * `instance` An array of nodes which are existing instances
|
|
53
|
+
* * `containers` An array of nodes of containers of instances
|
|
54
|
+
* * `div` A DOM element where UI can be displayed
|
|
55
|
+
* * `statusArea` A DOM element (opt) progress stuff can be displayed, or error messages
|
|
56
|
+
* *
|
|
57
|
+
* * Vocabulary: "load" loads a file if it exists;
|
|
58
|
+
* * 'Ensure" CREATES the file if it does not exist (if it can) and then loads it.
|
|
59
|
+
* @packageDocumentation
|
|
60
|
+
*/ // eslint-disable-next-line camelcase
|
|
61
61
|
var store = _solidLogic.solidLogicSingleton.store;
|
|
62
62
|
var _solidLogicSingleton$ = _solidLogic.solidLogicSingleton.profile,
|
|
63
63
|
loadPreferences = _solidLogicSingleton$.loadPreferences,
|
|
@@ -95,7 +95,6 @@ function ensureLoggedIn(context) {
|
|
|
95
95
|
_solidLogic.authn.saveUser(webIdUri, context);
|
|
96
96
|
resolve(context); // always pass growing context
|
|
97
97
|
});
|
|
98
|
-
|
|
99
98
|
context.div.appendChild(box);
|
|
100
99
|
});
|
|
101
100
|
});
|