solid-ui 2.4.23 → 2.4.24
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/main.js +2159 -5039
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/chat/bookmarks.js +8 -80
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +109 -180
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +6 -91
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +33 -185
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +37 -150
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +23 -96
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +33 -91
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/debug.js +0 -8
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +4 -27
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.js +13 -33
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +23 -64
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +5 -7
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +10 -65
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +21 -42
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +1 -8
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +6 -13
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -2
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +8 -5
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +1 -5
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js +309 -322
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js +4 -52
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +41 -135
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +4 -4
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.js +115 -291
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +12 -41
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +6 -55
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -14
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +70 -474
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -21
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +48 -171
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +20 -90
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +28 -28
package/lib/chat/thread.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread.js","names":["UI","icons","ns","media","pad","style","utils","widgets","thread","dom","kb","subject","messageStore","options","store","doc","WF","$rdf","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","appendMsg","value","dateStamp","sts","sendComplete","success","body","errorMessageBlock","bindings","literal","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","e","keyCode","altKey","button","iconBase","buttonStyle","context","login","ensureLoggedIn","then","fieldValue","oldMsg","now","Date","timestamp","getTime","sym","push","Statement","mostRecentVersion","wf","msgBody","nick","sioc","foaf","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","connectedStatements","deletions","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","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":["UI","icons","ns","media","pad","style","utils","widgets","thread","dom","kb","subject","messageStore","options","store","doc","WF","$rdf","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","appendMsg","value","dateStamp","sts","sendComplete","success","body","errorMessageBlock","bindings","literal","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","e","keyCode","altKey","button","iconBase","buttonStyle","context","login","ensureLoggedIn","then","fieldValue","oldMsg","now","Date","timestamp","getTime","sym","push","Statement","mostRecentVersion","wf","msgBody","nick","sioc","foaf","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","undefined","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","connectedStatements","deletions","ok","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","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
|
@@ -1,34 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.newThingUI = newThingUI;
|
|
9
|
-
|
|
10
8
|
var _solidLogic = require("solid-logic");
|
|
11
|
-
|
|
12
9
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
13
|
-
|
|
14
10
|
var _iconBase = require("../iconBase");
|
|
15
|
-
|
|
16
11
|
var _login = require("../login/login");
|
|
17
|
-
|
|
18
12
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
19
|
-
|
|
20
13
|
var utils = _interopRequireWildcard(require("../utils"));
|
|
21
|
-
|
|
22
14
|
var widgets = _interopRequireWildcard(require("../widgets"));
|
|
23
|
-
|
|
24
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
-
|
|
26
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
-
|
|
28
17
|
/* create.js UI to craete new objects in the solid-app-set world
|
|
29
18
|
**
|
|
30
19
|
*/
|
|
20
|
+
|
|
31
21
|
var kb = _solidLogic.solidLogicSingleton.store;
|
|
22
|
+
|
|
32
23
|
/* newThingUI -- return UI for user to select a new object, folder, etc
|
|
33
24
|
**
|
|
34
25
|
** context must include: dom, div,
|
|
@@ -36,63 +27,49 @@ var kb = _solidLogic.solidLogicSingleton.store;
|
|
|
36
27
|
** (suppresses asking for a full URI or workspace)
|
|
37
28
|
**
|
|
38
29
|
*/
|
|
39
|
-
|
|
40
30
|
function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
41
31
|
var dom = createContext.dom;
|
|
42
32
|
var div = createContext.div;
|
|
43
|
-
|
|
44
33
|
if (createContext.me && !createContext.me.uri) {
|
|
45
34
|
throw new Error('newThingUI: Invalid userid: ' + createContext.me);
|
|
46
35
|
}
|
|
47
|
-
|
|
48
36
|
var iconStyle = 'padding: 0.7em; width: 2em; height: 2em;'; // was: 'padding: 1em; width: 3em; height: 3em;'
|
|
49
|
-
|
|
50
37
|
var star = div.appendChild(dom.createElement('img'));
|
|
51
38
|
var visible = false; // the inividual tools tools
|
|
52
39
|
// noun_272948.svg = black star
|
|
53
40
|
// noun_34653_green.svg = green plus
|
|
54
|
-
|
|
55
41
|
star.setAttribute('src', _iconBase.icons.iconBase + 'noun_34653_green.svg');
|
|
56
42
|
star.setAttribute('style', iconStyle);
|
|
57
43
|
star.setAttribute('title', 'Add another tool');
|
|
58
|
-
|
|
59
44
|
var complain = function complain(message) {
|
|
60
45
|
var pre = div.appendChild(dom.createElement('pre'));
|
|
61
46
|
pre.setAttribute('style', 'background-color: pink');
|
|
62
47
|
pre.appendChild(dom.createTextNode(message));
|
|
63
48
|
};
|
|
64
|
-
|
|
65
49
|
function styleTheIcons(style) {
|
|
66
50
|
for (var i = 0; i < iconArray.length; i++) {
|
|
67
51
|
var st = iconStyle + style;
|
|
68
|
-
|
|
69
52
|
if (iconArray[i].disabled) {
|
|
70
53
|
// @@ unused
|
|
71
54
|
st += 'opacity: 0.3;';
|
|
72
55
|
}
|
|
73
|
-
|
|
74
56
|
iconArray[i].setAttribute('style', st); // eg 'background-color: #ccc;'
|
|
75
57
|
}
|
|
76
58
|
}
|
|
77
59
|
|
|
78
60
|
function selectTool(icon) {
|
|
79
61
|
styleTheIcons('display: none;'); // 'background-color: #ccc;'
|
|
80
|
-
|
|
81
62
|
icon.setAttribute('style', iconStyle + 'background-color: yellow;');
|
|
82
63
|
}
|
|
83
|
-
|
|
84
64
|
function selectNewTool(_event) {
|
|
85
65
|
visible = !visible;
|
|
86
66
|
star.setAttribute('style', iconStyle + (visible ? 'background-color: yellow;' : ''));
|
|
87
67
|
styleTheIcons(visible ? '' : 'display: none;');
|
|
88
68
|
}
|
|
89
|
-
|
|
90
69
|
star.addEventListener('click', selectNewTool);
|
|
91
|
-
|
|
92
70
|
function makeNewAppInstance(options) {
|
|
93
71
|
return new Promise(function (resolve, reject) {
|
|
94
72
|
var selectUI; // , selectUIParent
|
|
95
|
-
|
|
96
73
|
function callbackWS(ws, newBase) {
|
|
97
74
|
(0, _login.ensureLoadedProfile)(createContext).then(function (_context) {
|
|
98
75
|
var newPaneOptions = Object.assign({
|
|
@@ -100,42 +77,38 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
100
77
|
folder: options.folder || undefined,
|
|
101
78
|
workspace: ws
|
|
102
79
|
}, options);
|
|
103
|
-
|
|
104
80
|
for (var opt in options) {
|
|
105
81
|
// get div, dom, me, folder, pane, refreshTable
|
|
106
82
|
newPaneOptions[opt] = options[opt];
|
|
107
83
|
}
|
|
108
|
-
|
|
109
84
|
debug.log("newThingUI: Minting new ".concat(newPaneOptions.pane.name, " at ").concat(newPaneOptions.newBase));
|
|
110
85
|
options.pane.mintNew(dataBrowserContext, newPaneOptions).then(function (newPaneOptions) {
|
|
111
86
|
if (!newPaneOptions || !newPaneOptions.newInstance) {
|
|
112
87
|
throw new Error('Cannot mint new - missing newInstance');
|
|
113
88
|
}
|
|
114
|
-
|
|
115
89
|
if (newPaneOptions.folder) {
|
|
116
90
|
var tail = newPaneOptions.newInstance.uri.slice(newPaneOptions.folder.uri.length);
|
|
117
91
|
var isPackage = tail.includes('/');
|
|
118
92
|
debug.log(' new thing is packge? ' + isPackage);
|
|
119
|
-
|
|
120
93
|
if (isPackage) {
|
|
121
94
|
kb.add(newPaneOptions.folder, ns.ldp('contains'), kb.sym(newPaneOptions.newBase), newPaneOptions.folder.doc());
|
|
122
95
|
} else {
|
|
123
96
|
// single file
|
|
124
97
|
kb.add(newPaneOptions.folder, ns.ldp('contains'), newPaneOptions.newInstance, newPaneOptions.folder.doc()); // Ping the patch system?
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
98
|
+
}
|
|
99
|
+
// @ts-ignore @@ TODO check whether refresh can exist here. Either fix type or remove unreachable code
|
|
128
100
|
if (newPaneOptions.refreshTarget && newPaneOptions.refreshTarget.refresh) {
|
|
129
101
|
// @@ TODO Remove the need to cast as any
|
|
130
102
|
;
|
|
131
103
|
newPaneOptions.refreshTarget.refresh(); // Refresh the containing display
|
|
132
|
-
}
|
|
133
|
-
|
|
104
|
+
}
|
|
105
|
+
// selectUI.parentNode.removeChild(selectUI) It removes itself
|
|
134
106
|
} else {
|
|
135
107
|
var p = options.div.appendChild(dom.createElement('p'));
|
|
136
|
-
p.setAttribute('style', 'font-size: 120%;');
|
|
137
|
-
|
|
138
|
-
p.innerHTML = "Your <a target='_blank' href='" + newPaneOptions.newInstance.uri + "'><b>new " + options.noun + '</b></a> is ready to be set up. ' + "<br/><br/><a target='_blank' href='" + newPaneOptions.newInstance.uri + "'>Go to your new " + options.noun + '.</a>';
|
|
108
|
+
p.setAttribute('style', 'font-size: 120%;');
|
|
109
|
+
// Make link to new thing
|
|
110
|
+
p.innerHTML = "Your <a target='_blank' href='" + newPaneOptions.newInstance.uri + "'><b>new " + options.noun + '</b></a> is ready to be set up. ' + "<br/><br/><a target='_blank' href='" + newPaneOptions.newInstance.uri + "'>Go to your new " + options.noun + '.</a>';
|
|
111
|
+
// selectUI.parentNode.removeChild(selectUI) // Clean up
|
|
139
112
|
// selectUIParent.removeChild(selectUI) // Clean up
|
|
140
113
|
}
|
|
141
114
|
|
|
@@ -150,19 +123,18 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
150
123
|
});
|
|
151
124
|
} // callbackWS
|
|
152
125
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
126
|
+
var pa = options.pane;
|
|
127
|
+
// options.appPathSegment = pa.name // was 'edu.mit.solid.pane.'
|
|
156
128
|
options.noun = pa.mintClass ? utils.label(pa.mintClass) : pa.name;
|
|
157
129
|
options.appPathSegment = options.noun.slice(0, 1).toUpperCase() + options.noun.slice(1);
|
|
158
|
-
|
|
159
130
|
if (!options.folder) {
|
|
160
131
|
// No folder given? Ask user for full URI
|
|
161
132
|
selectUI = (0, _login.selectWorkspace)(dom, {
|
|
162
133
|
noun: options.noun,
|
|
163
134
|
appPathSegment: options.appPathSegment
|
|
164
135
|
}, callbackWS);
|
|
165
|
-
options.div.appendChild(selectUI);
|
|
136
|
+
options.div.appendChild(selectUI);
|
|
137
|
+
// selectUIParent = options.div
|
|
166
138
|
} else {
|
|
167
139
|
var gotName = function gotName(name) {
|
|
168
140
|
if (!name) {
|
|
@@ -170,24 +142,21 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
170
142
|
selectNewTool(); // toggle star to plain and menu vanish again
|
|
171
143
|
} else {
|
|
172
144
|
var uri = options.folder.uri;
|
|
173
|
-
|
|
174
145
|
if (!uri.endsWith('/')) {
|
|
175
146
|
uri = uri + '/';
|
|
176
147
|
}
|
|
177
|
-
|
|
178
148
|
uri = uri + encodeURIComponent(name) + '/';
|
|
179
149
|
callbackWS(null, uri);
|
|
180
150
|
}
|
|
181
151
|
};
|
|
182
|
-
|
|
183
|
-
|
|
152
|
+
widgets.askName(dom, kb, options.div, ns.foaf('name'), null, options.noun).then(gotName);
|
|
153
|
+
// selectUI = getNameForm(dom, kb, options.noun, gotName)
|
|
184
154
|
// options.div.appendChild(selectUI)
|
|
185
155
|
// selectUIParent = options.div
|
|
186
156
|
}
|
|
187
157
|
});
|
|
188
158
|
} // makeNewAppInstance
|
|
189
159
|
|
|
190
|
-
|
|
191
160
|
var iconArray = [];
|
|
192
161
|
var mintingPanes = Object.values(thePanes).filter(function (pane) {
|
|
193
162
|
return pane.mintNew;
|
|
@@ -196,7 +165,6 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
196
165
|
if (pane.mintClass) {
|
|
197
166
|
classMap[pane.mintClass.uri] = (classMap[pane.mintClass.uri] || 0) + 1;
|
|
198
167
|
}
|
|
199
|
-
|
|
200
168
|
return classMap;
|
|
201
169
|
}, {});
|
|
202
170
|
mintingPanes.forEach(function (pane) {
|
|
@@ -207,7 +175,6 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
207
175
|
icon.setAttribute('title', 'Make new ' + noun);
|
|
208
176
|
icon.setAttribute('style', iconStyle + 'display: none;');
|
|
209
177
|
iconArray.push(icon);
|
|
210
|
-
|
|
211
178
|
if (!icon.disabled) {
|
|
212
179
|
icon.addEventListener('click', function (e) {
|
|
213
180
|
selectTool(icon);
|
|
@@ -227,11 +194,12 @@ function newThingUI(createContext, dataBrowserContext, thePanes) {
|
|
|
227
194
|
});
|
|
228
195
|
}
|
|
229
196
|
});
|
|
230
|
-
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Form to get the name of a new thing before we create it
|
|
231
200
|
//
|
|
232
201
|
// Used in contacts for new groups, individuals.
|
|
233
202
|
//
|
|
234
|
-
|
|
235
203
|
/*
|
|
236
204
|
function getNameForm (dom, kb, classLabel, gotNameCallback) {
|
|
237
205
|
const form = dom.createElement('div') // form is broken as HTML behaviour can resurface on js error
|
package/lib/create/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","names":["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","i","iconArray","length","st","disabled","selectTool","icon","selectNewTool","_event","addEventListener","makeNewAppInstance","options","Promise","resolve","reject","selectUI","callbackWS","ws","newBase","ensureLoadedProfile","then","_context","newPaneOptions","Object","assign","folder","undefined","workspace","opt","debug","log","pane","name","mintNew","newInstance","tail","slice","isPackage","includes","add","ns","ldp","sym","doc","refreshTarget","refresh","p","innerHTML","noun","err","pa","mintClass","utils","label","appPathSegment","toUpperCase","selectWorkspace","gotName","endsWith","encodeURIComponent","widgets","askName","foaf","mintingPanes","values","filter","mintingClassMap","reduce","classMap","forEach","push","e","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":["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","i","iconArray","length","st","disabled","selectTool","icon","selectNewTool","_event","addEventListener","makeNewAppInstance","options","Promise","resolve","reject","selectUI","callbackWS","ws","newBase","ensureLoadedProfile","then","_context","newPaneOptions","Object","assign","folder","undefined","workspace","opt","debug","log","pane","name","mintNew","newInstance","tail","slice","isPackage","includes","add","ns","ldp","sym","doc","refreshTarget","refresh","p","innerHTML","noun","err","pa","mintClass","utils","label","appPathSegment","toUpperCase","selectWorkspace","gotName","endsWith","encodeURIComponent","widgets","askName","foaf","mintingPanes","values","filter","mintingClassMap","reduce","classMap","forEach","push","e","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":";;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAqC;AAAA;AAXrC;AACA;AACA;;AAYA,IAAMA,EAAE,GAAGC,+BAAmB,CAACC,KAAK;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAU,CACxBC,aAA4B,EAC5BC,kBAAsC,EACtCC,QAA+B,EACzB;EACN,IAAMC,GAAG,GAAGH,aAAa,CAACG,GAAG;EAC7B,IAAMC,GAAG,GAAGJ,aAAa,CAACI,GAAG;EAC7B,IAAIJ,aAAa,CAACK,EAAE,IAAI,CAACL,aAAa,CAACK,EAAE,CAACC,GAAG,EAAE;IAC7C,MAAM,IAAIC,KAAK,CAAC,+BAA+B,GAAGP,aAAa,CAACK,EAAE,CAAC;EACrE;EAEA,IAAMG,SAAS,GAAG,0CAA0C,EAAC;EAC7D,IAAMC,IAAI,GAAGL,GAAG,CAACM,WAAW,CAACP,GAAG,CAACQ,aAAa,CAAC,KAAK,CAAC,CAAC;EACtD,IAAIC,OAAO,GAAG,KAAK,EAAC;EACpB;EACA;EACAH,IAAI,CAACI,YAAY,CAAC,KAAK,EAAEC,eAAK,CAACC,QAAQ,GAAG,sBAAsB,CAAC;EACjEN,IAAI,CAACI,YAAY,CAAC,OAAO,EAAEL,SAAS,CAAC;EACrCC,IAAI,CAACI,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;EAE9C,IAAMG,QAAQ,GAAG,SAASA,QAAQ,CAAEC,OAAO,EAAE;IAC3C,IAAMC,GAAG,GAAGd,GAAG,CAACM,WAAW,CAACP,GAAG,CAACQ,aAAa,CAAC,KAAK,CAAC,CAAC;IACrDO,GAAG,CAACL,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC;IACnDK,GAAG,CAACR,WAAW,CAACP,GAAG,CAACgB,cAAc,CAACF,OAAO,CAAC,CAAC;EAC9C,CAAC;EAED,SAASG,aAAa,CAAEC,KAAK,EAAE;IAC7B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;MACzC,IAAIG,EAAE,GAAGjB,SAAS,GAAGa,KAAK;MAC1B,IAAIE,SAAS,CAACD,CAAC,CAAC,CAACI,QAAQ,EAAE;QACzB;QACAD,EAAE,IAAI,eAAe;MACvB;MACAF,SAAS,CAACD,CAAC,CAAC,CAACT,YAAY,CAAC,OAAO,EAAEY,EAAE,CAAC,EAAC;IACzC;EACF;;EAEA,SAASE,UAAU,CAAEC,IAAI,EAAE;IACzBR,aAAa,CAAC,gBAAgB,CAAC,EAAC;IAChCQ,IAAI,CAACf,YAAY,CAAC,OAAO,EAAEL,SAAS,GAAG,2BAA2B,CAAC;EACrE;EAEA,SAASqB,aAAa,CAAEC,MAAO,EAAE;IAC/BlB,OAAO,GAAG,CAACA,OAAO;IAClBH,IAAI,CAACI,YAAY,CACf,OAAO,EACPL,SAAS,IAAII,OAAO,GAAG,2BAA2B,GAAG,EAAE,CAAC,CACzD;IACDQ,aAAa,CAACR,OAAO,GAAG,EAAE,GAAG,gBAAgB,CAAC;EAChD;EAEAH,IAAI,CAACsB,gBAAgB,CAAC,OAAO,EAAEF,aAAa,CAAC;EAE7C,SAASG,kBAAkB,CAAEC,OAA8B,EAAE;IAC3D,OAAO,IAAIC,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;MAC5C,IAAIC,QAAQ,EAAC;MACb,SAASC,UAAU,CAAEC,EAAE,EAAEC,OAAO,EAAE;QAChC,IAAAC,0BAAmB,EAACzC,aAAa,CAAC,CAAC0C,IAAI,CACrC,UAAAC,QAAQ,EAAI;UACV,IAAMC,cAA8B,GAAGC,MAAM,CAACC,MAAM,CAAC;YACnDN,OAAO,EAAPA,OAAO;YACPO,MAAM,EAAEd,OAAO,CAACc,MAAM,IAAIC,SAAS;YACnCC,SAAS,EAAEV;UACb,CAAC,EAAEN,OAAO,CAAC;UACX,KAAK,IAAMiB,GAAG,IAAIjB,OAAO,EAAE;YACzB;YACAW,cAAc,CAACM,GAAG,CAAC,GAAGjB,OAAO,CAACiB,GAAG,CAAC;UACpC;UACAC,KAAK,CAACC,GAAG,mCAA4BR,cAAc,CAACS,IAAI,CAACC,IAAI,iBAAOV,cAAc,CAACJ,OAAO,EAAG;UAC7FP,OAAO,CAACoB,IAAI,CACTE,OAAO,CAAEtD,kBAAkB,EAAE2C,cAAc,CAAC,CAC5CF,IAAI,CAAC,UAAUE,cAAc,EAAE;YAC9B,IAAI,CAACA,cAAc,IAAI,CAACA,cAAc,CAACY,WAAW,EAAE;cAClD,MAAM,IAAIjD,KAAK,CAAC,uCAAuC,CAAC;YAC1D;YACA,IAAIqC,cAAc,CAACG,MAAM,EAAE;cACzB,IAAMU,IAAI,GAAGb,cAAc,CAACY,WAAW,CAAClD,GAAG,CAACoD,KAAK,CAC/Cd,cAAc,CAACG,MAAM,CAACzC,GAAG,CAACkB,MAAM,CACjC;cACD,IAAMmC,SAAS,GAAGF,IAAI,CAACG,QAAQ,CAAC,GAAG,CAAC;cACpCT,KAAK,CAACC,GAAG,CAAC,yBAAyB,GAAGO,SAAS,CAAC;cAChD,IAAIA,SAAS,EAAE;gBACb/D,EAAE,CAACiE,GAAG,CACJjB,cAAc,CAACG,MAAM,EACrBe,EAAE,CAACC,GAAG,CAAC,UAAU,CAAC,EAClBnE,EAAE,CAACoE,GAAG,CAACpB,cAAc,CAACJ,OAAO,CAAC,EAC9BI,cAAc,CAACG,MAAM,CAACkB,GAAG,EAAE,CAC5B;cACH,CAAC,MAAM;gBACL;gBACArE,EAAE,CAACiE,GAAG,CACJjB,cAAc,CAACG,MAAM,EACrBe,EAAE,CAACC,GAAG,CAAC,UAAU,CAAC,EAClBnB,cAAc,CAACY,WAAW,EAC1BZ,cAAc,CAACG,MAAM,CAACkB,GAAG,EAAE,CAC5B,EAAC;cACJ;cACA;cACA,IAAIrB,cAAc,CAACsB,aAAa,IAAItB,cAAc,CAACsB,aAAa,CAACC,OAAO,EAAE;gBACxE;gBACA;gBAAEvB,cAAc,CAACsB,aAAa,CAASC,OAAO,EAAE,EAAC;cACnD;cACA;YACF,CAAC,MAAM;cACL,IAAMC,CAAC,GAAGnC,OAAO,CAAC7B,GAAG,CAACM,WAAW,CAACP,GAAG,CAACQ,aAAa,CAAC,GAAG,CAAC,CAAC;cACzDyD,CAAC,CAACvD,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;cAC3C;cACAuD,CAAC,CAACC,SAAS,GACT,gCAAgC,GAChCzB,cAAc,CAACY,WAAW,CAAClD,GAAG,GAC9B,WAAW,GACX2B,OAAO,CAACqC,IAAI,GACZ,kCAAkC,GAClC,qCAAqC,GACrC1B,cAAc,CAACY,WAAW,CAAClD,GAAG,GAC9B,mBAAmB,GACnB2B,OAAO,CAACqC,IAAI,GACZ,OAAO;cACT;cACA;YACF;;YACAzC,aAAa,EAAE,EAAC;UAClB,CAAC,CAAC,SACI,CAAC,UAAU0C,GAAG,EAAE;YACpBvD,QAAQ,CAACuD,GAAG,CAAC;YACbnC,MAAM,CAACmC,GAAG,CAAC;UACb,CAAC,CAAC;QACN,CAAC,EACD,UAAAA,GAAG,EAAI;UACL;UACAvD,QAAQ,CAAC,oBAAoB,GAAGuD,GAAG,CAAC;QACtC,CAAC,CACF;MACH,CAAC,CAAC;;MAEF,IAAMC,EAAE,GAAGvC,OAAO,CAACoB,IAAI;MACvB;MACApB,OAAO,CAACqC,IAAI,GAAGE,EAAE,CAACC,SAAS,GAAGC,KAAK,CAACC,KAAK,CAACH,EAAE,CAACC,SAAS,CAAC,GAAGD,EAAE,CAAClB,IAAI;MACjErB,OAAO,CAAC2C,cAAc,GAAG3C,OAAO,CAACqC,IAAI,CAACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACmB,WAAW,EAAE,GAAG5C,OAAO,CAACqC,IAAI,CAACZ,KAAK,CAAC,CAAC,CAAC;MAEvF,IAAI,CAACzB,OAAO,CAACc,MAAM,EAAE;QACnB;QACAV,QAAQ,GAAG,IAAAyC,sBAAe,EAAC3E,GAAG,EAAE;UAC9BmE,IAAI,EAAErC,OAAO,CAACqC,IAAI;UAClBM,cAAc,EAAE3C,OAAO,CAAC2C;QAC1B,CAAC,EAAEtC,UAAU,CAAC;QACdL,OAAO,CAAC7B,GAAG,CAACM,WAAW,CAAC2B,QAAQ,CAAC;QACjC;MACF,CAAC,MAAM;QACL,IAAM0C,OAAO,GAAG,SAAVA,OAAO,CAAazB,IAAI,EAAE;UAC9B,IAAI,CAACA,IAAI,EAAE;YACT;YACAzB,aAAa,EAAE,EAAC;UAClB,CAAC,MAAM;YACL,IAAIvB,GAAG,GAAG2B,OAAO,CAACc,MAAM,CAAEzC,GAAG;YAC7B,IAAI,CAACA,GAAG,CAAC0E,QAAQ,CAAC,GAAG,CAAC,EAAE;cACtB1E,GAAG,GAAGA,GAAG,GAAG,GAAG;YACjB;YACAA,GAAG,GAAGA,GAAG,GAAG2E,kBAAkB,CAAC3B,IAAI,CAAC,GAAG,GAAG;YAC1ChB,UAAU,CAAC,IAAI,EAAEhC,GAAG,CAAC;UACvB;QACF,CAAC;QACD4E,OAAO,CACJC,OAAO,CACNhF,GAAG,EACHP,EAAE,EACFqC,OAAO,CAAC7B,GAAG,EACX0D,EAAE,CAACsB,IAAI,CAAC,MAAM,CAAC,EACf,IAAI,EACJnD,OAAO,CAACqC,IAAI,CACb,CACA5B,IAAI,CAACqC,OAAO,CAAC;QAChB;QACA;QACA;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF,IAAMxD,SAAqB,GAAG,EAAE;EAChC,IAAM8D,YAAY,GAAGxC,MAAM,CAACyC,MAAM,CAACpF,QAAQ,CAAC,CAACqF,MAAM,CAAC,UAAAlC,IAAI;IAAA,OAAIA,IAAI,CAACE,OAAO;EAAA,EAAC;EACzE,IAAMiC,eAAe,GAAGH,YAAY,CAACI,MAAM,CAAC,UAACC,QAAQ,EAAErC,IAAI,EAAK;IAC9D,IAAIA,IAAI,CAACoB,SAAS,EAAE;MAClBiB,QAAQ,CAACrC,IAAI,CAACoB,SAAS,CAACnE,GAAG,CAAC,GAAG,CAACoF,QAAQ,CAACrC,IAAI,CAACoB,SAAS,CAACnE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IACxE;IACA,OAAOoF,QAAQ;EACjB,CAAC,EAAE,CAAC,CAAC,CAAC;EACNL,YAAY,CAACM,OAAO,CAAC,UAAAtC,IAAI,EAAI;IAC3B;IACA,IAAMzB,IAAS,GAAG5B,aAAa,CAACI,GAAG,CAACM,WAAW,CAACP,GAAG,CAACQ,aAAa,CAAC,KAAK,CAAC,CAAC;IACzEiB,IAAI,CAACf,YAAY,CAAC,KAAK,EAAEwC,IAAI,CAACzB,IAAI,CAAC;IACnC,IAAM0C,IAAI,GAAGjB,IAAI,CAACoB,SAAS,GACvBe,eAAe,CAACnC,IAAI,CAACoB,SAAS,CAACnE,GAAG,CAAC,GAAG,CAAC,aAClCoE,KAAK,CAACC,KAAK,CAACtB,IAAI,CAACoB,SAAS,CAAC,qBAAWpB,IAAI,CAACC,IAAI,cAClDoB,KAAK,CAACC,KAAK,CAACtB,IAAI,CAACoB,SAAS,CAAC,GAC7BpB,IAAI,CAACC,IAAI,GAAG,KAAK;IACrB1B,IAAI,CAACf,YAAY,CAAC,OAAO,EAAE,WAAW,GAAGyD,IAAI,CAAC;IAC9C1C,IAAI,CAACf,YAAY,CAAC,OAAO,EAAEL,SAAS,GAAG,gBAAgB,CAAC;IACxDe,SAAS,CAACqE,IAAI,CAAChE,IAAI,CAAC;IACpB,IAAI,CAACA,IAAI,CAACF,QAAQ,EAAE;MAClBE,IAAI,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAAU8D,CAAC,EAAE;QAC1ClE,UAAU,CAACC,IAAI,CAAC;QAChBI,kBAAkB,CAAC;UACjB8D,KAAK,EAAED,CAAC;UACR9C,MAAM,EAAE/C,aAAa,CAAC+C,MAAM,IAAI,IAAI;UACpCgD,OAAO,EAAEnE,IAAI;UACbyB,IAAI,EAAJA,IAAI;UACJiB,IAAI,EAAJA,IAAI;UACJ0B,WAAW,EAAE,IAAI;UAAE;UACnB5F,GAAG,EAAEJ,aAAa,CAACI,GAAG;UACtBC,EAAE,EAAEL,aAAa,CAACK,EAAE;UACpBF,GAAG,EAAEH,aAAa,CAACG,GAAG;UACtB+D,aAAa,EAAElE,aAAa,CAACkE;QAC/B,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/lib/create/index.js
CHANGED
package/lib/create/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["create","newThingUI"],"sources":["../../src/create/index.ts"],"sourcesContent":["import {\n newThingUI\n} from './create'\n\nexport const create = {\n newThingUI\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["create","newThingUI"],"sources":["../../src/create/index.ts"],"sourcesContent":["import {\n newThingUI\n} from './create'\n\nexport const create = {\n newThingUI\n}\n"],"mappings":";;;;;;AAAA;AAIO,IAAMA,MAAM,GAAG;EACpBC,UAAU,EAAVA;AACF,CAAC;AAAA"}
|
package/lib/debug.js
CHANGED
|
@@ -7,31 +7,23 @@ exports.error = error;
|
|
|
7
7
|
exports.log = log;
|
|
8
8
|
exports.trace = trace;
|
|
9
9
|
exports.warn = warn;
|
|
10
|
-
|
|
11
10
|
function log() {
|
|
12
11
|
var _console;
|
|
13
|
-
|
|
14
12
|
// eslint-disable-next-line no-console
|
|
15
13
|
(_console = console).log.apply(_console, arguments);
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
function warn() {
|
|
19
16
|
var _console2;
|
|
20
|
-
|
|
21
17
|
// eslint-disable-next-line no-console
|
|
22
18
|
(_console2 = console).warn.apply(_console2, arguments);
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
function error() {
|
|
26
21
|
var _console3;
|
|
27
|
-
|
|
28
22
|
// eslint-disable-next-line no-console
|
|
29
23
|
(_console3 = console).error.apply(_console3, arguments);
|
|
30
24
|
}
|
|
31
|
-
|
|
32
25
|
function trace() {
|
|
33
26
|
var _console4;
|
|
34
|
-
|
|
35
27
|
// eslint-disable-next-line no-console
|
|
36
28
|
(_console4 = console).trace.apply(_console4, arguments);
|
|
37
29
|
}
|
package/lib/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","names":["log","console","warn","error","trace"],"sources":["../src/debug.ts"],"sourcesContent":["export function log (...args: any[]) {\n // eslint-disable-next-line no-console\n console.log(...args)\n}\n\nexport function warn (...args: any[]) {\n // eslint-disable-next-line no-console\n console.warn(...args)\n}\n\nexport function error (...args: any[]) {\n // eslint-disable-next-line no-console\n console.error(...args)\n}\n\nexport function trace (...args: any[]) {\n // eslint-disable-next-line no-console\n console.trace(...args)\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.js","names":["log","console","warn","error","trace"],"sources":["../src/debug.ts"],"sourcesContent":["export function log (...args: any[]) {\n // eslint-disable-next-line no-console\n console.log(...args)\n}\n\nexport function warn (...args: any[]) {\n // eslint-disable-next-line no-console\n console.warn(...args)\n}\n\nexport function error (...args: any[]) {\n // eslint-disable-next-line no-console\n console.error(...args)\n}\n\nexport function trace (...args: any[]) {\n // eslint-disable-next-line no-console\n console.trace(...args)\n}\n"],"mappings":";;;;;;;;;AAAO,SAASA,GAAG,GAAkB;EAAA;EACnC;EACA,YAAAC,OAAO,EAACD,GAAG,2BAAS;AACtB;AAEO,SAASE,IAAI,GAAkB;EAAA;EACpC;EACA,aAAAD,OAAO,EAACC,IAAI,4BAAS;AACvB;AAEO,SAASC,KAAK,GAAkB;EAAA;EACrC;EACA,aAAAF,OAAO,EAACE,KAAK,4BAAS;AACxB;AAEO,SAASC,KAAK,GAAkB;EAAA;EACrC;EACA,aAAAH,OAAO,EAACG,KAAK,4BAAS;AACxB"}
|