solid-ui 2.4.23 → 2.4.24-0c90afe2
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/LICENSE.md +0 -0
- package/README.md +0 -0
- package/dist/index.html +0 -0
- package/dist/main.js +2221 -5081
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.d.ts +0 -0
- package/lib/acl/access-groups.d.ts.map +0 -0
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.d.ts +0 -0
- package/lib/acl/acl.d.ts.map +0 -0
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/acl/types.d.ts +0 -0
- package/lib/acl/types.d.ts.map +0 -0
- package/lib/acl/types.js +0 -0
- package/lib/acl/types.js.map +0 -0
- 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 +51 -117
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +40 -191
- 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.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/create/types.d.ts +0 -0
- package/lib/create/types.d.ts.map +0 -0
- package/lib/create/types.js +0 -0
- package/lib/create/types.js.map +0 -0
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/footer/index.d.ts.map +0 -0
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.d.ts +0 -0
- package/lib/footer/styleMap.d.ts.map +0 -0
- package/lib/footer/styleMap.js +0 -0
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +0 -0
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.d.ts +0 -0
- package/lib/header/index.d.ts.map +0 -0
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -0
- package/lib/header/styleMap.d.ts.map +0 -0
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +0 -0
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.d.ts +0 -0
- package/lib/login/login.d.ts.map +0 -0
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.d.ts +0 -0
- package/lib/matrix/types.d.ts.map +0 -0
- package/lib/matrix/types.js +0 -0
- package/lib/matrix/types.js.map +0 -0
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- 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 +0 -0
- 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.d.ts +0 -0
- package/lib/pad.d.ts.map +0 -0
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +0 -0
- package/lib/participation.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/tabs.d.ts.map +0 -0
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +0 -0
- package/lib/utils/headerFooterHelpers.d.ts +0 -0
- package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +14 -14
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +0 -0
- package/lib/widgets/buttons.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/widgets/error.d.ts.map +0 -0
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +0 -0
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.d.ts +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.d.ts +0 -0
- package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- 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.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +30 -30
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.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
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":";;;;;;;;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAXA;AACA;AACA;AAYA,IAAMA,EAAE,GAAGC,+BAAA,CAAoBC,KAA/B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,UAAT,CACLC,aADK,EAELC,kBAFK,EAGLC,QAHK,EAIC;EACN,IAAMC,GAAG,GAAGH,aAAa,CAACG,GAA1B;EACA,IAAMC,GAAG,GAAGJ,aAAa,CAACI,GAA1B;;EACA,IAAIJ,aAAa,CAACK,EAAd,IAAoB,CAACL,aAAa,CAACK,EAAd,CAAiBC,GAA1C,EAA+C;IAC7C,MAAM,IAAIC,KAAJ,CAAU,kCAAkCP,aAAa,CAACK,EAA1D,CAAN;EACD;;EAED,IAAMG,SAAS,GAAG,0CAAlB,CAPM,CAOuD;;EAC7D,IAAMC,IAAI,GAAGL,GAAG,CAACM,WAAJ,CAAgBP,GAAG,CAACQ,aAAJ,CAAkB,KAAlB,CAAhB,CAAb;EACA,IAAIC,OAAO,GAAG,KAAd,CATM,CASc;EACpB;EACA;;EACAH,IAAI,CAACI,YAAL,CAAkB,KAAlB,EAAyBC,eAAA,CAAMC,QAAN,GAAiB,sBAA1C;EACAN,IAAI,CAACI,YAAL,CAAkB,OAAlB,EAA2BL,SAA3B;EACAC,IAAI,CAACI,YAAL,CAAkB,OAAlB,EAA2B,kBAA3B;;EAEA,IAAMG,QAAQ,GAAG,SAASA,QAAT,CAAmBC,OAAnB,EAA4B;IAC3C,IAAMC,GAAG,GAAGd,GAAG,CAACM,WAAJ,CAAgBP,GAAG,CAACQ,aAAJ,CAAkB,KAAlB,CAAhB,CAAZ;IACAO,GAAG,CAACL,YAAJ,CAAiB,OAAjB,EAA0B,wBAA1B;IACAK,GAAG,CAACR,WAAJ,CAAgBP,GAAG,CAACgB,cAAJ,CAAmBF,OAAnB,CAAhB;EACD,CAJD;;EAMA,SAASG,aAAT,CAAwBC,KAAxB,EAA+B;IAC7B,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACC,MAA9B,EAAsCF,CAAC,EAAvC,EAA2C;MACzC,IAAIG,EAAE,GAAGjB,SAAS,GAAGa,KAArB;;MACA,IAAIE,SAAS,CAACD,CAAD,CAAT,CAAaI,QAAjB,EAA2B;QACzB;QACAD,EAAE,IAAI,eAAN;MACD;;MACDF,SAAS,CAACD,CAAD,CAAT,CAAaT,YAAb,CAA0B,OAA1B,EAAmCY,EAAnC,EANyC,CAMF;IACxC;EACF;;EAED,SAASE,UAAT,CAAqBC,IAArB,EAA2B;IACzBR,aAAa,CAAC,gBAAD,CAAb,CADyB,CACO;;IAChCQ,IAAI,CAACf,YAAL,CAAkB,OAAlB,EAA2BL,SAAS,GAAG,2BAAvC;EACD;;EAED,SAASqB,aAAT,CAAwBC,MAAxB,EAAiC;IAC/BlB,OAAO,GAAG,CAACA,OAAX;IACAH,IAAI,CAACI,YAAL,CACE,OADF,EAEEL,SAAS,IAAII,OAAO,GAAG,2BAAH,GAAiC,EAA5C,CAFX;IAIAQ,aAAa,CAACR,OAAO,GAAG,EAAH,GAAQ,gBAAhB,CAAb;EACD;;EAEDH,IAAI,CAACsB,gBAAL,CAAsB,OAAtB,EAA+BF,aAA/B;;EAEA,SAASG,kBAAT,CAA6BC,OAA7B,EAA6D;IAC3D,OAAO,IAAIC,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;MAC5C,IAAIC,QAAJ,CAD4C,CAC/B;;MACb,SAASC,UAAT,CAAqBC,EAArB,EAAyBC,OAAzB,EAAkC;QAChC,IAAAC,0BAAA,EAAoBzC,aAApB,EAAmC0C,IAAnC,CACE,UAAAC,QAAQ,EAAI;UACV,IAAMC,cAA8B,GAAGC,MAAM,CAACC,MAAP,CAAc;YACnDN,OAAO,EAAPA,OADmD;YAEnDO,MAAM,EAAEd,OAAO,CAACc,MAAR,IAAkBC,SAFyB;YAGnDC,SAAS,EAAEV;UAHwC,CAAd,EAIpCN,OAJoC,CAAvC;;UAKA,KAAK,IAAMiB,GAAX,IAAkBjB,OAAlB,EAA2B;YACzB;YACAW,cAAc,CAACM,GAAD,CAAd,GAAsBjB,OAAO,CAACiB,GAAD,CAA7B;UACD;;UACDC,KAAK,CAACC,GAAN,mCAAqCR,cAAc,CAACS,IAAf,CAAoBC,IAAzD,iBAAoEV,cAAc,CAACJ,OAAnF;UACAP,OAAO,CAACoB,IAAR,CACGE,OADH,CACYtD,kBADZ,EACgC2C,cADhC,EAEGF,IAFH,CAEQ,UAAUE,cAAV,EAA0B;YAC9B,IAAI,CAACA,cAAD,IAAmB,CAACA,cAAc,CAACY,WAAvC,EAAoD;cAClD,MAAM,IAAIjD,KAAJ,CAAU,uCAAV,CAAN;YACD;;YACD,IAAIqC,cAAc,CAACG,MAAnB,EAA2B;cACzB,IAAMU,IAAI,GAAGb,cAAc,CAACY,WAAf,CAA2BlD,GAA3B,CAA+BoD,KAA/B,CACXd,cAAc,CAACG,MAAf,CAAsBzC,GAAtB,CAA0BkB,MADf,CAAb;cAGA,IAAMmC,SAAS,GAAGF,IAAI,CAACG,QAAL,CAAc,GAAd,CAAlB;cACAT,KAAK,CAACC,GAAN,CAAU,4BAA4BO,SAAtC;;cACA,IAAIA,SAAJ,EAAe;gBACb/D,EAAE,CAACiE,GAAH,CACEjB,cAAc,CAACG,MADjB,EAEEe,EAAE,CAACC,GAAH,CAAO,UAAP,CAFF,EAGEnE,EAAE,CAACoE,GAAH,CAAOpB,cAAc,CAACJ,OAAtB,CAHF,EAIEI,cAAc,CAACG,MAAf,CAAsBkB,GAAtB,EAJF;cAMD,CAPD,MAOO;gBACL;gBACArE,EAAE,CAACiE,GAAH,CACEjB,cAAc,CAACG,MADjB,EAEEe,EAAE,CAACC,GAAH,CAAO,UAAP,CAFF,EAGEnB,cAAc,CAACY,WAHjB,EAIEZ,cAAc,CAACG,MAAf,CAAsBkB,GAAtB,EAJF,EAFK,CAOH;cACH,CArBwB,CAsBzB;;;cACA,IAAIrB,cAAc,CAACsB,aAAf,IAAgCtB,cAAc,CAACsB,aAAf,CAA6BC,OAAjE,EAA0E;gBACxE;gBACA;gBAAEvB,cAAc,CAACsB,aAAhB,CAAsCC,OAAtC,GAFuE,CAEvB;cAClD,CA1BwB,CA2BzB;;YACD,CA5BD,MA4BO;cACL,IAAMC,CAAC,GAAGnC,OAAO,CAAC7B,GAAR,CAAYM,WAAZ,CAAwBP,GAAG,CAACQ,aAAJ,CAAkB,GAAlB,CAAxB,CAAV;cACAyD,CAAC,CAACvD,YAAF,CAAe,OAAf,EAAwB,kBAAxB,EAFK,CAGL;;cACAuD,CAAC,CAACC,SAAF,GACE,mCACAzB,cAAc,CAACY,WAAf,CAA2BlD,GAD3B,GAEA,WAFA,GAGA2B,OAAO,CAACqC,IAHR,GAIA,kCAJA,GAKA,qCALA,GAMA1B,cAAc,CAACY,WAAf,CAA2BlD,GAN3B,GAOA,mBAPA,GAQA2B,OAAO,CAACqC,IARR,GASA,OAVF,CAJK,CAeL;cACA;YACD;;YACDzC,aAAa,GAlDiB,CAkDd;UACjB,CArDH,WAsDS,UAAU0C,GAAV,EAAe;YACpBvD,QAAQ,CAACuD,GAAD,CAAR;YACAnC,MAAM,CAACmC,GAAD,CAAN;UACD,CAzDH;QA0DD,CAtEH,EAuEE,UAAAA,GAAG,EAAI;UACL;UACAvD,QAAQ,CAAC,uBAAuBuD,GAAxB,CAAR;QACD,CA1EH;MA4ED,CA/E2C,CA+E1C;;;MAEF,IAAMC,EAAE,GAAGvC,OAAO,CAACoB,IAAnB,CAjF4C,CAkF5C;;MACApB,OAAO,CAACqC,IAAR,GAAeE,EAAE,CAACC,SAAH,GAAeC,KAAK,CAACC,KAAN,CAAYH,EAAE,CAACC,SAAf,CAAf,GAA2CD,EAAE,CAAClB,IAA7D;MACArB,OAAO,CAAC2C,cAAR,GAAyB3C,OAAO,CAACqC,IAAR,CAAaZ,KAAb,CAAmB,CAAnB,EAAsB,CAAtB,EAAyBmB,WAAzB,KAAyC5C,OAAO,CAACqC,IAAR,CAAaZ,KAAb,CAAmB,CAAnB,CAAlE;;MAEA,IAAI,CAACzB,OAAO,CAACc,MAAb,EAAqB;QACnB;QACAV,QAAQ,GAAG,IAAAyC,sBAAA,EAAgB3E,GAAhB,EAAqB;UAC9BmE,IAAI,EAAErC,OAAO,CAACqC,IADgB;UAE9BM,cAAc,EAAE3C,OAAO,CAAC2C;QAFM,CAArB,EAGRtC,UAHQ,CAAX;QAIAL,OAAO,CAAC7B,GAAR,CAAYM,WAAZ,CAAwB2B,QAAxB,EANmB,CAOnB;MACD,CARD,MAQO;QACL,IAAM0C,OAAO,GAAG,SAAVA,OAAU,CAAUzB,IAAV,EAAgB;UAC9B,IAAI,CAACA,IAAL,EAAW;YACT;YACAzB,aAAa,GAFJ,CAEO;UACjB,CAHD,MAGO;YACL,IAAIvB,GAAG,GAAG2B,OAAO,CAACc,MAAR,CAAgBzC,GAA1B;;YACA,IAAI,CAACA,GAAG,CAAC0E,QAAJ,CAAa,GAAb,CAAL,EAAwB;cACtB1E,GAAG,GAAGA,GAAG,GAAG,GAAZ;YACD;;YACDA,GAAG,GAAGA,GAAG,GAAG2E,kBAAkB,CAAC3B,IAAD,CAAxB,GAAiC,GAAvC;YACAhB,UAAU,CAAC,IAAD,EAAOhC,GAAP,CAAV;UACD;QACF,CAZD;;QAaA4E,OAAO,CACJC,OADH,CAEIhF,GAFJ,EAGIP,EAHJ,EAIIqC,OAAO,CAAC7B,GAJZ,EAKI0D,EAAE,CAACsB,IAAH,CAAQ,MAAR,CALJ,EAMI,IANJ,EAOInD,OAAO,CAACqC,IAPZ,EASG5B,IATH,CASQqC,OATR,EAdK,CAwBL;QACA;QACA;MACD;IACF,CA1HM,CAAP;EA2HD,CA7KK,CA6KJ;;;EAEF,IAAMxD,SAAqB,GAAG,EAA9B;EACA,IAAM8D,YAAY,GAAGxC,MAAM,CAACyC,MAAP,CAAcpF,QAAd,EAAwBqF,MAAxB,CAA+B,UAAAlC,IAAI;IAAA,OAAIA,IAAI,CAACE,OAAT;EAAA,CAAnC,CAArB;EACA,IAAMiC,eAAe,GAAGH,YAAY,CAACI,MAAb,CAAoB,UAACC,QAAD,EAAWrC,IAAX,EAAoB;IAC9D,IAAIA,IAAI,CAACoB,SAAT,EAAoB;MAClBiB,QAAQ,CAACrC,IAAI,CAACoB,SAAL,CAAenE,GAAhB,CAAR,GAA+B,CAACoF,QAAQ,CAACrC,IAAI,CAACoB,SAAL,CAAenE,GAAhB,CAAR,IAAgC,CAAjC,IAAsC,CAArE;IACD;;IACD,OAAOoF,QAAP;EACD,CALuB,EAKrB,EALqB,CAAxB;EAMAL,YAAY,CAACM,OAAb,CAAqB,UAAAtC,IAAI,EAAI;IAC3B;IACA,IAAMzB,IAAS,GAAG5B,aAAa,CAACI,GAAd,CAAkBM,WAAlB,CAA8BP,GAAG,CAACQ,aAAJ,CAAkB,KAAlB,CAA9B,CAAlB;IACAiB,IAAI,CAACf,YAAL,CAAkB,KAAlB,EAAyBwC,IAAI,CAACzB,IAA9B;IACA,IAAM0C,IAAI,GAAGjB,IAAI,CAACoB,SAAL,GACTe,eAAe,CAACnC,IAAI,CAACoB,SAAL,CAAenE,GAAhB,CAAf,GAAsC,CAAtC,aACKoE,KAAK,CAACC,KAAN,CAAYtB,IAAI,CAACoB,SAAjB,CADL,qBAC2CpB,IAAI,CAACC,IADhD,cAEEoB,KAAK,CAACC,KAAN,CAAYtB,IAAI,CAACoB,SAAjB,CAHO,GAITpB,IAAI,CAACC,IAAL,GAAY,KAJhB;IAKA1B,IAAI,CAACf,YAAL,CAAkB,OAAlB,EAA2B,cAAcyD,IAAzC;IACA1C,IAAI,CAACf,YAAL,CAAkB,OAAlB,EAA2BL,SAAS,GAAG,gBAAvC;IACAe,SAAS,CAACqE,IAAV,CAAehE,IAAf;;IACA,IAAI,CAACA,IAAI,CAACF,QAAV,EAAoB;MAClBE,IAAI,CAACG,gBAAL,CAAsB,OAAtB,EAA+B,UAAU8D,CAAV,EAAa;QAC1ClE,UAAU,CAACC,IAAD,CAAV;QACAI,kBAAkB,CAAC;UACjB8D,KAAK,EAAED,CADU;UAEjB9C,MAAM,EAAE/C,aAAa,CAAC+C,MAAd,IAAwB,IAFf;UAGjBgD,OAAO,EAAEnE,IAHQ;UAIjByB,IAAI,EAAJA,IAJiB;UAKjBiB,IAAI,EAAJA,IALiB;UAMjB0B,WAAW,EAAE,IANI;UAME;UACnB5F,GAAG,EAAEJ,aAAa,CAACI,GAPF;UAQjBC,EAAE,EAAEL,aAAa,CAACK,EARD;UASjBF,GAAG,EAAEH,aAAa,CAACG,GATF;UAUjB+D,aAAa,EAAElE,aAAa,CAACkE;QAVZ,CAAD,CAAlB;MAYD,CAdD;IAeD;EACF,CA7BD;AA8BD,C,CAED;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"}
|
|
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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"}
|
package/lib/create/index.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
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/create/types.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/lib/create/types.js
CHANGED
|
File without changes
|
package/lib/create/types.js.map
CHANGED
|
File without changes
|
package/lib/debug.d.ts
CHANGED
|
File without changes
|
package/lib/debug.d.ts.map
CHANGED
|
File without changes
|
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"}
|