solid-ui 2.4.27-5b3471ff → 2.4.27-62cefbe0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/670.solid-ui.min.js +1 -0
  2. package/dist/805.solid-ui.min.js +3 -0
  3. package/dist/805.solid-ui.min.js.LICENSE.txt +58 -0
  4. package/dist/805.solid-ui.min.js.map +1 -0
  5. package/dist/_2b19.solid-ui.js +14 -0
  6. package/dist/_2b19.solid-ui.js.map +1 -0
  7. package/dist/index.html +1 -9
  8. package/dist/{main.js → solid-ui.js} +4940 -20458
  9. package/dist/solid-ui.js.map +1 -0
  10. package/dist/solid-ui.min.js +3 -0
  11. package/dist/solid-ui.min.js.LICENSE.txt +50 -0
  12. package/dist/solid-ui.min.js.map +1 -0
  13. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +12134 -0
  14. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -0
  15. package/lib/acl/access-controller.d.ts +2 -3
  16. package/lib/acl/access-controller.d.ts.map +1 -1
  17. package/lib/acl/access-controller.js +17 -15
  18. package/lib/acl/access-controller.js.map +1 -1
  19. package/lib/acl/access-groups.d.ts.map +1 -1
  20. package/lib/acl/access-groups.js +78 -8
  21. package/lib/acl/access-groups.js.map +1 -1
  22. package/lib/acl/acl-control.d.ts.map +1 -1
  23. package/lib/acl/acl-control.js +10 -11
  24. package/lib/acl/acl-control.js.map +1 -1
  25. package/lib/acl/acl.d.ts +1 -1
  26. package/lib/acl/acl.js +1 -1
  27. package/lib/acl/acl.js.map +1 -1
  28. package/lib/acl/add-agent-buttons.d.ts.map +1 -1
  29. package/lib/acl/add-agent-buttons.js +4 -3
  30. package/lib/acl/add-agent-buttons.js.map +1 -1
  31. package/lib/chat/bookmarks.js +6 -7
  32. package/lib/chat/bookmarks.js.map +1 -1
  33. package/lib/chat/chatLogic.js +250 -61
  34. package/lib/chat/chatLogic.js.map +1 -1
  35. package/lib/chat/dateFolder.js +129 -126
  36. package/lib/chat/dateFolder.js.map +1 -1
  37. package/lib/chat/infinite.js +630 -423
  38. package/lib/chat/infinite.js.map +1 -1
  39. package/lib/chat/message.js +290 -160
  40. package/lib/chat/message.js.map +1 -1
  41. package/lib/chat/messageTools.js +463 -277
  42. package/lib/chat/messageTools.js.map +1 -1
  43. package/lib/chat/thread.js +168 -145
  44. package/lib/chat/thread.js.map +1 -1
  45. package/lib/footer/index.d.ts.map +1 -1
  46. package/lib/footer/index.js +5 -1
  47. package/lib/footer/index.js.map +1 -1
  48. package/lib/header/index.d.ts.map +1 -1
  49. package/lib/header/index.js +46 -20
  50. package/lib/header/index.js.map +1 -1
  51. package/lib/log.js +5 -5
  52. package/lib/log.js.map +1 -1
  53. package/lib/login/login.d.ts.map +1 -1
  54. package/lib/login/login.js +63 -38
  55. package/lib/login/login.js.map +1 -1
  56. package/lib/pad.js +4 -1
  57. package/lib/pad.js.map +1 -1
  58. package/lib/participation.js +2 -1
  59. package/lib/participation.js.map +1 -1
  60. package/lib/preferences.js +4 -0
  61. package/lib/preferences.js.map +1 -1
  62. package/lib/style.js +60 -2
  63. package/lib/style.js.map +1 -1
  64. package/lib/utils/headerFooterHelpers.d.ts +0 -4
  65. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  66. package/lib/utils/headerFooterHelpers.js +1 -26
  67. package/lib/utils/headerFooterHelpers.js.map +1 -1
  68. package/lib/versionInfo.js +5 -5
  69. package/lib/versionInfo.js.map +1 -1
  70. package/lib/widgets/buttons.d.ts.map +1 -1
  71. package/lib/widgets/buttons.js +43 -51
  72. package/lib/widgets/buttons.js.map +1 -1
  73. package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -1
  74. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  75. package/lib/widgets/forms/autocomplete/autocompletePicker.js +8 -3
  76. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  77. package/lib/widgets/forms/autocomplete/language.js +5 -0
  78. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  79. package/lib/widgets/forms.js +12 -5
  80. package/lib/widgets/forms.js.map +1 -1
  81. package/lib/widgets/peoplePicker.js +11 -0
  82. package/lib/widgets/peoplePicker.js.map +1 -1
  83. package/package.json +12 -11
  84. package/dist/main.js.map +0 -1
  85. package/lib/acl/styles.d.ts +0 -90
  86. package/lib/acl/styles.d.ts.map +0 -1
  87. package/lib/acl/styles.js +0 -98
  88. package/lib/acl/styles.js.map +0 -1
  89. package/lib/footer/styleMap.d.ts +0 -8
  90. package/lib/footer/styleMap.d.ts.map +0 -1
  91. package/lib/footer/styleMap.js +0 -15
  92. package/lib/footer/styleMap.js.map +0 -1
  93. package/lib/header/styleMap.d.ts +0 -117
  94. package/lib/header/styleMap.d.ts.map +0 -1
  95. package/lib/header/styleMap.js +0 -139
  96. package/lib/header/styleMap.js.map +0 -1
  97. package/lib/jss/index.d.ts +0 -20
  98. package/lib/jss/index.d.ts.map +0 -1
  99. package/lib/jss/index.js +0 -47
  100. package/lib/jss/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","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","appendMsg","value","dateStamp","sts","sendComplete","success","body","errorMessageBlock","bindings","literal","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","e","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","fieldValue","oldMsg","arguments","length","undefined","now","Date","timestamp","getTime","sym","push","Statement","mostRecentVersion","wf","msgBody","concat","nick","sioc","foaf","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","deletions","wrap","_callee$","_context","prev","next","connectedStatements","sent","ok","stop","_x","apply","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","_appendMsg2","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\nimport * as pad from '../pad'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\n\nconst UI = { icons, ns, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n /**\n * Form for a new message\n */\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = appendMsg(field.value)\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n /* const sendMessage = function (oldMsg, options) { // alain\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? field.value : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n } */\n\n const appendMsg = function (fieldValue, oldMsg = {}, options = '') { // alain\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = store.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return msg\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) { // alain test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = appendMsg() // alain\n updater.update([], sts)\n }\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new $rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","a","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","_yield$appendMsg","dateStamp","sts","sendComplete","wrap","_callee$","_context","prev","next","field","disabled","appendMsg","value","sent","success","body","errorMessageBlock","bindings","literal","renderMessage","update","stop","apply","arguments","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","_ref2","_callee2","e","_callee2$","_context2","keyCode","altKey","_x","button","iconBase","buttonStyle","context","ensureLoggedIn","then","_ref3","fieldValue","oldMsg","length","undefined","_callee3","now","timestamp","msgBody","_callee3$","_context3","Date","getTime","sym","t0","t1","Statement","mostRecentVersion","t2","t3","t4","t5","t6","push","wf","concat","nick","sioc","foaf","abrupt","_x2","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref4","_callee4","deletions","_callee4$","_context4","connectedStatements","ok","_x3","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","_ref5","_callee5","_yield$appendMsg2","_callee5$","_context5","_x4","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\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 = async function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = await 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 async function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n await 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 appendMsg = async 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(await 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 message = msg\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return message\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 async 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 } = await 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":";;;;;;;;;;AAKA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,EAAA,GAAAC,uBAAA,CAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAD,uBAAA,CAAAJ,OAAA;AACA,IAAAM,GAAA,GAAAF,uBAAA,CAAAJ,OAAA;AACA,IAAAO,IAAA,GAAAH,uBAAA,CAAAJ,OAAA;AACA,IAAAQ,KAAA,GAAAJ,uBAAA,CAAAJ,OAAA;AACA,IAAAS,KAAA,GAAAL,uBAAA,CAAAJ,OAAA;AACA,IAAAU,OAAA,GAAAN,uBAAA,CAAAJ,OAAA;AAAqC,SAAAW,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAdrC;AACA;AACA;AACA;;AAQ+B;;AAK/B,IAAMW,EAAE,GAAG;EAAEC,KAAK,EAALA,eAAK;EAAE/B,EAAE,EAAFA,EAAE;EAAEgC,KAAK,EAALA,YAAK;EAAE7B,GAAG,EAAHA,GAAG;EAAEE,KAAK,EAALA,KAAK;EAAEC,KAAK,EAALA,KAAK;EAAEC,OAAO,EAAPA;AAAQ,CAAC;;AAE3D;AACA;AACA;AACO,SAAS0B,MAAMA,CAAEC,GAAG,EAAEC,EAAE,EAAEC,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAE;EAC/DH,EAAE,GAAGA,EAAE,IAAII,iBAAK;EAChBF,YAAY,GAAGA,YAAY,CAACG,GAAG,EAAE,EAAC;EAClC,IAAMxC,EAAE,GAAG8B,EAAE,CAAC9B,EAAE;EAChB,IAAMyC,EAAE,GAAGrC,IAAI,CAACsC,SAAS,CAAC,oCAAoC,CAAC;EAC/D,IAAMC,GAAG,GAAGvC,IAAI,CAACsC,SAAS,CAAC,2BAA2B,CAAC;EAEvDJ,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAEvB,IAAMM,WAAW,GAAG,CAAC,CAACN,OAAO,CAACM,WAAW;EAEzC,IAAMC,gBAAgB,GACpB,iIAAiI;EACnI;;EAEA,IAAMC,GAAG,GAAGZ,GAAG,CAACa,aAAa,CAAC,KAAK,CAAC;EACpC;EACA,IAAIC,YAAY;EAEhB,IAAIC,EAAE;EAEN,IAAMC,OAAO,GAAGX,iBAAK,CAACW,OAAO;EAE7B,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAaC,IAAI,EAAEC,IAAI,EAAE;IACnC;IACA,IAAMC,CAAC,GAAGpB,GAAG,CAACa,aAAa,CAAC,GAAG,CAAC;IAChC,IAAIM,IAAI,IAAIA,IAAI,CAACE,GAAG,EAAE;MACpBD,CAAC,CAACE,YAAY,CAAC,MAAM,EAAEH,IAAI,CAACE,GAAG,CAAC;MAChCD,CAAC,CAACG,gBAAgB,CAAC,OAAO,EAAE3B,EAAE,CAACvB,OAAO,CAACmD,qBAAqB,EAAE,IAAI,CAAC;MACnEJ,CAAC,CAACE,YAAY,CAAC,OAAO,EAAE,yCAAyC,CAAC,EAAC;IACrE;;IACAF,CAAC,CAACK,WAAW,GAAGP,IAAI;IACpB,OAAOE,CAAC;EACV,CAAC;EAED,IAAMM,OAAO,GAAG,SAASA,OAAOA,CAAEC,OAAO,EAAExD,KAAK,EAAE;IAChD,IAAMyD,GAAG,GAAG5B,GAAG,CAACa,aAAa,CAAC,KAAK,CAAC;IACpCe,GAAG,CAACN,YAAY,CAAC,OAAO,EAAEnD,KAAK,IAAI,aAAa,CAAC;IACjDyC,GAAG,CAACiB,WAAW,CAACD,GAAG,CAAC;IACpBA,GAAG,CAACC,WAAW,CAAC7B,GAAG,CAAC8B,cAAc,CAACH,OAAO,CAAC,CAAC;IAC5C,OAAOC,GAAG;EACZ,CAAC;EAED,IAAMG,QAAQ,GAAG;IACfC,GAAG,EAAE,SAAAA,IAAUL,OAAO,EAAE;MACtBD,OAAO,CAACC,OAAO,EAAE,cAAc,CAAC;IAClC,CAAC;IACDM,IAAI,EAAE,SAAAA,KAAUN,OAAO,EAAE;MACvBD,OAAO,CAACC,OAAO,EAAE,cAAc,CAAC;IAClC,CAAC;IACDO,KAAK,EAAE,SAAAA,MAAUP,OAAO,EAAE;MACxBD,OAAO,CAACC,OAAO,EAAE,cAAc,CAAC;IAClC;EACF,CAAC;;EAED;AACF;AACA;EACE,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAe;IACjC,IAAMC,IAAI,GAAGpC,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACpC,IAAMwB,GAAG,GAAGrC,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACnC,IAAMyB,MAAM,GAAGtC,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACtC,IAAM0B,GAAG,GAAGvC,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACnCuB,IAAI,CAACP,WAAW,CAACQ,GAAG,CAAC;IACrBD,IAAI,CAACP,WAAW,CAACS,MAAM,CAAC;IACxBF,IAAI,CAACP,WAAW,CAACU,GAAG,CAAC;IACrBH,IAAI,CAACI,SAAS,GAAG,sBAAsB,EAAC;;IAExC,IAAMC,WAAW;MAAA,IAAAC,IAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAA;QAAA,IAAAC,gBAAA,EAAApB,OAAA,EAAAqB,SAAA,EAAAC,GAAA,EAAAC,YAAA;QAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAClB;cACA;cACAC,KAAK,CAAClC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;cAC1CkC,KAAK,CAACC,QAAQ,GAAG,IAAI;cAAAJ,QAAA,CAAAE,IAAA;cAAA,OACqBG,SAAS,CAACF,KAAK,CAACG,KAAK,CAAC;YAAA;cAAAZ,gBAAA,GAAAM,QAAA,CAAAO,IAAA;cAAxDjC,OAAO,GAAAoB,gBAAA,CAAPpB,OAAO;cAAEqB,SAAS,GAAAD,gBAAA,CAATC,SAAS;cAAEC,GAAG,GAAAF,gBAAA,CAAHE,GAAG;cAEzBC,YAAY,GAAG,SAAfA,YAAYA,CAAa7B,GAAG,EAAEwC,OAAO,EAAEC,IAAI,EAAE;gBACjD,IAAI,CAACD,OAAO,EAAE;kBACZzB,IAAI,CAACP,WAAW,CACdjC,EAAE,CAACvB,OAAO,CAAC0F,iBAAiB,CAAC/D,GAAG,EAAE,yBAAyB,GAAG8D,IAAI,CAAC,CACpE;gBACH,CAAC,MAAM;kBACL,IAAME,QAAQ,GAAG;oBACf,MAAM,EAAErC,OAAO;oBACf,UAAU,EAAEtB,iBAAK,CAAC4D,OAAO,CAACT,KAAK,CAACG,KAAK,CAAC;oBACtC,OAAO,EAAEX,SAAS;oBAClB,UAAU,EAAEjC;kBACd,CAAC;kBACDmD,aAAa,CAACF,QAAQ,EAAE,KAAK,CAAC,EAAC;;kBAE/BR,KAAK,CAACG,KAAK,GAAG,EAAE,EAAC;kBACjBH,KAAK,CAAClC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;kBAC/BkC,KAAK,CAACC,QAAQ,GAAG,KAAK;gBACxB;cACF,CAAC;cACDzC,OAAO,CAACmD,MAAM,CAAC,EAAE,EAAElB,GAAG,EAAEC,YAAY,CAAC;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAAe,IAAA;UAAA;QAAA,GAAAtB,OAAA;MAAA,CACtC;MAAA,gBA3BKL,WAAWA,CAAA;QAAA,OAAAC,IAAA,CAAA2B,KAAA,OAAAC,SAAA;MAAA;IAAA,GA2BhB;IACDlC,IAAI,CAACP,WAAW,CAAC7B,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI2C,KAAK,EAAEe,UAAU;IACrB,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAe;MAC9BC,cAAc,CAACpC,GAAG,EAAEtB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;MAEjCyC,KAAK,GAAGxD,GAAG,CAACa,aAAa,CAAC,UAAU,CAAC;MACrCyB,MAAM,CAACoC,SAAS,GAAG,EAAE;MACrBpC,MAAM,CAACT,WAAW,CAAC2B,KAAK,CAAC;MACzBA,KAAK,CAACmB,IAAI,GAAG,CAAC;MACd;MACAnB,KAAK,CAAClC,YAAY,CAAC,OAAO,EAAEX,gBAAgB,GAAG,yBAAyB,CAAC;MAEzE6C,KAAK,CAACjC,gBAAgB,CACpB,OAAO;QAAA,IAAAqD,KAAA,OAAAjC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CACP,SAAAgC,SAAgBC,CAAC;UAAA,OAAAlC,YAAA,YAAAO,IAAA,UAAA4B,UAAAC,SAAA;YAAA,kBAAAA,SAAA,CAAA1B,IAAA,GAAA0B,SAAA,CAAAzB,IAAA;cAAA;gBAAA,MAEXuB,CAAC,CAACG,OAAO,KAAK,EAAE;kBAAAD,SAAA,CAAAzB,IAAA;kBAAA;gBAAA;gBAAA,IACbuB,CAAC,CAACI,MAAM;kBAAAF,SAAA,CAAAzB,IAAA;kBAAA;gBAAA;gBAAAyB,SAAA,CAAAzB,IAAA;gBAAA,OAELd,WAAW,EAAE;cAAA;cAAA;gBAAA,OAAAuC,SAAA,CAAAZ,IAAA;YAAA;UAAA,GAAAS,QAAA;QAAA,CAGxB;QAAA,iBAAAM,EAAA;UAAA,OAAAP,KAAA,CAAAP,KAAA,OAAAC,SAAA;QAAA;MAAA,KACD,KAAK,CACN;MAED/B,GAAG,CAACmC,SAAS,GAAG,EAAE;MAClBH,UAAU,GAAG3E,EAAE,CAACvB,OAAO,CAAC+G,MAAM,CAC5BpF,GAAG,EACHJ,EAAE,CAACC,KAAK,CAACwF,QAAQ,GAAG,iBAAiB,EACrC,MAAM,CACP;MACDd,UAAU,CAACjD,YAAY,CAAC,OAAO,EAAE1B,EAAE,CAACzB,KAAK,CAACmH,WAAW,GAAG,eAAe,CAAC;MACxEf,UAAU,CAAChD,gBAAgB,CAAC,OAAO,EAAEkB,WAAW,EAAE,KAAK,CAAC;MACxDF,GAAG,CAACV,WAAW,CAAC0C,UAAU,CAAC;IAC7B,CAAC;IAED,IAAMgB,OAAO,GAAG;MAAE3E,GAAG,EAAE0B,MAAM;MAAEtC,GAAG,EAAHA;IAAI,CAAC;IACpChC,KAAK,CAACwH,cAAc,CAACD,OAAO,CAAC,CAACE,IAAI,CAAC,UAAAF,OAAO,EAAI;MAC5CxE,EAAE,GAAGwE,OAAO,CAACxE,EAAE;MACfyD,WAAW,EAAE;IACf,CAAC,CAAC;IAEF,OAAOpC,IAAI;EACb,CAAC;EAED,IAAMsB,SAAS;IAAA,IAAAgC,KAAA,OAAA/C,kBAAA,aAAG,UAAgBgD,UAAU;MAAA,IAAEC,MAAM,GAAAtB,SAAA,CAAAuB,MAAA,QAAAvB,SAAA,QAAAwB,SAAA,GAAAxB,SAAA,MAAG,CAAC,CAAC;MAAA,IAAElE,OAAO,GAAAkE,SAAA,CAAAuB,MAAA,QAAAvB,SAAA,QAAAwB,SAAA,GAAAxB,SAAA,MAAG,EAAE;MAAA,oBAAA1B,YAAA,YAAAC,IAAA,UAAAkD,SAAA;QAAA,IAAA9C,GAAA,EAAA+C,GAAA,EAAAC,SAAA,EAAAjD,SAAA,EAAArB,OAAA,EAAAuE,OAAA;QAAA,OAAAtD,YAAA,YAAAO,IAAA,UAAAgD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9C,IAAA,GAAA8C,SAAA,CAAA7C,IAAA;YAAA;cAAI;cACnEN,GAAG,GAAG,EAAE;cACR+C,GAAG,GAAG,IAAIK,IAAI,EAAE;cAChBJ,SAAS,GAAG,EAAE,GAAGD,GAAG,CAACM,OAAO,EAAE;cAC9BtD,SAAS,GAAG9E,IAAI,CAACiD,IAAI,CAAC6E,GAAG,CAAC,EAChC;cACMrE,OAAO,GAAGtB,iBAAK,CAACkG,GAAG,CAACpG,YAAY,CAACkB,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG4E,SAAS,CAAC;cAAA,MAEjE7F,OAAO,KAAK,MAAM,IAAIA,OAAO,KAAK,QAAQ;gBAAAgG,SAAA,CAAA7C,IAAA;gBAAA;cAAA;cAAA6C,SAAA,CAAAI,EAAA,GAC5CvD,GAAG;cAAAmD,SAAA,CAAAK,EAAA,GACGvI,IAAI,CAACwI,SAAS;cAAAN,SAAA,CAAA7C,IAAA;cAAA,OAAOoD,iBAAiB,CAACf,MAAM,CAAC;YAAA;cAAAQ,SAAA,CAAAQ,EAAA,GAAAR,SAAA,CAAAxC,IAAA;cAAAwC,SAAA,CAAAS,EAAA,GAAEpG,GAAG,CAAC,cAAc,CAAC;cAAA2F,SAAA,CAAAU,EAAA,GAAEnF,OAAO;cAAAyE,SAAA,CAAAW,EAAA,GAAE5G,YAAY;cAAAiG,SAAA,CAAAY,EAAA,OAAAZ,SAAA,CAAAK,EAAA,CAAAL,SAAA,CAAAQ,EAAA,EAAAR,SAAA,CAAAS,EAAA,EAAAT,SAAA,CAAAU,EAAA,EAAAV,SAAA,CAAAW,EAAA;cAAAX,SAAA,CAAAI,EAAA,CAD5FS,IAAI,CAAAxH,IAAA,CAAA2G,SAAA,CAAAI,EAAA,EAAAJ,SAAA,CAAAY,EAAA;cAAAZ,SAAA,CAAA7C,IAAA;cAAA;YAAA;cAIRN,GAAG,CAACgE,IAAI,CACN,IAAI/I,IAAI,CAACwI,SAAS,CAACxG,OAAO,EAAEpC,EAAE,CAACoJ,EAAE,CAAC,SAAS,CAAC,EAAEvF,OAAO,EAAExB,YAAY,CAAC,CACrE;YAAA;cAEH;cACM+F,OAAO,GAAG9F,OAAO,KAAK,QAAQ,GAAGuF,UAAU,0BAAAwB,MAAA,CAA0BC,IAAI,CAACrG,EAAE,CAAC,CAAE;cACrFkC,GAAG,CAACgE,IAAI,CACN,IAAI/I,IAAI,CAACwI,SAAS,CAChB/E,OAAO,EACP7D,EAAE,CAACuJ,IAAI,CAAC,SAAS,CAAC,EAClBhH,iBAAK,CAAC4D,OAAO,CAACiC,OAAO,CAAC,EACtB/F,YAAY,CACb,CACF;cACD8C,GAAG,CAACgE,IAAI,CACN,IAAI/I,IAAI,CAACwI,SAAS,CAAC/E,OAAO,EAAElB,GAAG,CAAC,SAAS,CAAC,EAAEuC,SAAS,EAAE7C,YAAY,CAAC,CACrE;cACD,IAAIY,EAAE,EAAE;gBACNkC,GAAG,CAACgE,IAAI,CACN,IAAI/I,IAAI,CAACwI,SAAS,CAAC/E,OAAO,EAAE7D,EAAE,CAACwJ,IAAI,CAAC,OAAO,CAAC,EAAEvG,EAAE,EAAEZ,YAAY,CAAC,CAChE;cACH;cAAC,OAAAiG,SAAA,CAAAmB,MAAA,WACM;gBAAE5F,OAAO,EAAPA,OAAO;gBAAEqB,SAAS,EAATA,SAAS;gBAAEC,GAAG,EAAHA;cAAI,CAAC;YAAA;YAAA;cAAA,OAAAmD,SAAA,CAAAhC,IAAA;UAAA;QAAA,GAAA2B,QAAA;MAAA;IAAA,CACnC;IAAA,gBApCKrC,SAASA,CAAA8D,GAAA;MAAA,OAAA9B,KAAA,CAAArB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAoCd;EAED,SAAS8C,IAAIA,CAAEK,MAAM,EAAE;IACrB,IAAMC,CAAC,GAAGrH,iBAAK,CAACsH,GAAG,CAACF,MAAM,EAAE7H,EAAE,CAAC9B,EAAE,CAACwJ,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAII,CAAC,EAAE,OAAO,EAAE,GAAGA,CAAC,CAAC/D,KAAK;IAC1B,OAAO,EAAE,GAAGvF,KAAK,CAACwJ,KAAK,CAACH,MAAM,CAAC;EACjC;EAEA,SAAShD,cAAcA,CAAEoD,GAAG,EAAEC,OAAO,EAAEC,IAAI,EAAEpG,OAAO,EAAE;IACpD,IAAMqG,UAAU,GAAGH,GAAG,CAAChG,WAAW,CAACZ,MAAM,CAACmG,IAAI,CAACU,OAAO,CAAC,EAAEA,OAAO,CAAC,CAAC;IAClE,IAAIA,OAAO,CAACzG,GAAG,EAAE;MACfhB,iBAAK,CAAC4H,OAAO,CAACC,gBAAgB,CAACJ,OAAO,CAACxH,GAAG,EAAE,EAAEwF,SAAS,EAAE,UACvDqC,GAAG,EACHC,KAAK,EACL;QACAJ,UAAU,CAACvG,WAAW,GAAG2F,IAAI,CAACU,OAAO,CAAC;MACxC,CAAC,CAAC;IACJ;IACAD,GAAG,CAAChG,WAAW,CAAC7B,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC,CAAC;IACxCgH,GAAG,CAAChG,WAAW,CAACZ,MAAM,CAAC8G,IAAI,EAAEpG,OAAO,CAAC,CAAC;EACxC;;EAEA;;EAEA,SAAS0G,YAAYA,CAAEC,KAAK,EAAExH,YAAY,EAAE;IAC1C,IAAMyH,SAAS,GAAG,CAAC,CAAC;IACpB,IAAIC,GAAG,EAAEC,IAAI;IACb,KAAKD,GAAG,GAAG1H,YAAY,CAAC4H,UAAU,EAAEF,GAAG,EAAEA,GAAG,GAAGA,GAAG,CAACG,WAAW,EAAE;MAC9D,IAAIH,GAAG,CAACI,YAAY,EAAE;QACpBL,SAAS,CAACC,GAAG,CAACI,YAAY,CAACvH,GAAG,CAAC,GAAG,IAAI;MACxC;IACF;IACA,IAAMwH,QAAQ,GAAGxI,iBAAK,CAACyI,IAAI,CAACR,KAAK,EAAExK,EAAE,CAACoJ,EAAE,CAAC,SAAS,CAAC,CAAC;IACpD,IAAM6B,MAAM,GAAG,CAAC,CAAC;IACjBF,QAAQ,CAACG,OAAO,CAAC,UAAUC,CAAC,EAAE;MAC5BF,MAAM,CAACE,CAAC,CAAC5H,GAAG,CAAC,GAAG,IAAI;MACpB,IAAI,CAACkH,SAAS,CAACU,CAAC,CAAC5H,GAAG,CAAC,EAAE;QACrB6H,UAAU,CAACD,CAAC,CAAC;MACf;IACF,CAAC,CAAC;;IAEF;IACA,KAAKT,GAAG,GAAG1H,YAAY,CAAC4H,UAAU,EAAEF,GAAG,GAAI;MACzCC,IAAI,GAAGD,GAAG,CAACG,WAAW;MACtB,IAAIH,GAAG,CAACI,YAAY,IAAI,CAACG,MAAM,CAACP,GAAG,CAACI,YAAY,CAACvH,GAAG,CAAC,EAAE;QACrDP,YAAY,CAACqI,WAAW,CAACX,GAAG,CAAC;MAC/B;MACAA,GAAG,GAAGC,IAAI;IACZ;EACF;EAEA,IAAM9B,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAahF,OAAO,EAAE;IAC3C,IAAIyH,GAAG,GAAGzH,OAAO;IACjB;IACA,OAAOyH,GAAG,EAAE;MACVzH,OAAO,GAAGyH,GAAG;MACb;MACAA,GAAG,GAAG/I,iBAAK,CAACgJ,kBAAkB,CAAC1H,OAAO,EAAElB,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9D;IACA,OAAOkB,OAAO;EAChB,CAAC;EAED,IAAM2H,cAAc;IAAA,IAAAC,KAAA,OAAA5G,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA2G,SAAgB7H,OAAO;MAAA,IAAA8H,SAAA;MAAA,OAAA7G,YAAA,YAAAO,IAAA,UAAAuG,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArG,IAAA,GAAAqG,SAAA,CAAApG,IAAA;UAAA;YAAAoG,SAAA,CAAApG,IAAA;YAAA,OAEpBlD,iBAAK,CAACuJ,mBAAmB,CAACjI,OAAO,EAAExB,YAAY,CAAC;UAAA;YAAlEsJ,SAAS,GAAAE,SAAA,CAAA/F,IAAA;YACf5C,OAAO,CAACmD,MAAM,CAACsF,SAAS,EAAE,EAAE,EAAE,UAAUpI,GAAG,EAAEwI,EAAE,EAAE/F,IAAI,EAAE;cACrD,IAAI,CAAC+F,EAAE,EAAE;gBACP9H,QAAQ,CAACG,KAAK,CAAC,uBAAuB,GAAG4B,IAAI,CAAC;cAChD,CAAC,MAAM;gBACLuE,YAAY,CAACnI,OAAO,EAAEY,YAAY,CAAC;cACrC;YACF,CAAC,CAAC;UAAA;UAAA;YAAA,OAAA6I,SAAA,CAAAvF,IAAA;QAAA;MAAA,GAAAoF,QAAA;IAAA,CACH;IAAA,gBAVKF,cAAcA,CAAAQ,GAAA;MAAA,OAAAP,KAAA,CAAAlF,KAAA,OAAAC,SAAA;IAAA;EAAA,GAUnB;EAED,IAAM4E,UAAU,GAAG,SAAbA,UAAUA,CAAavH,OAAO,EAAE;IACpC,IAAMqC,QAAQ,GAAG;MACf,MAAM,EAAErC,OAAO;MACf,UAAU,EAAEtB,iBAAK,CAACsH,GAAG,CAAChG,OAAO,EAAE7D,EAAE,CAACwJ,IAAI,CAAC,OAAO,CAAC,CAAC;MAChD,OAAO,EAAEjH,iBAAK,CAACsH,GAAG,CAAChG,OAAO,EAAElB,GAAG,CAAC,SAAS,CAAC,CAAC;MAC3C,UAAU,EAAEJ,iBAAK,CAACsH,GAAG,CAAChG,OAAO,EAAE7D,EAAE,CAACuJ,IAAI,CAAC,SAAS,CAAC;IACnD,CAAC;IACDnD,aAAa,CAACF,QAAQ,EAAE,IAAI,CAAC,EAAC;EAChC,CAAC;;EAED,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAaF,QAAQ,EAAE+F,KAAK,EAAE;IAC/C,IAAMjC,OAAO,GAAG9D,QAAQ,CAAC,UAAU,CAAC;IACpC,IAAMrC,OAAO,GAAGqC,QAAQ,CAAC,MAAM,CAAC;IAChC,IAAM+D,IAAI,GAAG/D,QAAQ,CAAC,OAAO,CAAC;IAC9B,IAAMgG,OAAO,GAAGhG,QAAQ,CAAC,UAAU,CAAC;IAEpC,IAAMiG,UAAU,GAAGlC,IAAI,CAACpE,KAAK;IAC7B,IAAMuG,EAAE,GAAGlK,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IAClCqJ,EAAE,CAAC1H,SAAS,GAAGyH,UAAU;IACzBC,EAAE,CAACtB,YAAY,GAAGjH,OAAO;IAEzB,IAAIwI,IAAI,GAAG,KAAK;IAChB,KAAK,IAAI3B,GAAG,GAAG1H,YAAY,CAAC4H,UAAU,GAAIF,GAAG,GAAGA,GAAG,CAACG,WAAW,EAAE;MAC/D,IAAI,CAACH,GAAG,EAAE;QACR;QACA;MACF;MACA,IACGyB,UAAU,GAAGzB,GAAG,CAAChG,SAAS,IAAI9B,WAAW,IACzCuJ,UAAU,GAAGzB,GAAG,CAAChG,SAAS,IAAI,CAAC9B,WAAY,EAC5C;QACAI,YAAY,CAACsJ,YAAY,CAACF,EAAE,EAAE1B,GAAG,CAAC;QAClC2B,IAAI,GAAG,IAAI;QACX;MACF;IACF;IACA,IAAI,CAACA,IAAI,EAAE;MACTrJ,YAAY,CAACe,WAAW,CAACqI,EAAE,CAAC;IAC9B;IAEA,IAAMrC,GAAG,GAAG7H,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACnCqJ,EAAE,CAACrI,WAAW,CAACgG,GAAG,CAAC;IACnBpD,cAAc,CAACoD,GAAG,EAAEC,OAAO,EAAElI,EAAE,CAACvB,OAAO,CAACgM,SAAS,CAACJ,UAAU,CAAC,EAAEtI,OAAO,CAAC;IAEvE,IAAM2I,GAAG,GAAGtK,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACnCqJ,EAAE,CAACrI,WAAW,CAACyI,GAAG,CAAC;IACnB,IAAM1I,GAAG,GAAG5B,GAAG,CAACa,aAAa,CAAC,GAAG,CAAC;IAClCe,GAAG,CAACN,YAAY,CACd,OAAO,EACPX,gBAAgB,IACboJ,KAAK,GAAG,4BAA4B,GAAG,2BAA2B,CAAC,CACvE;IACDO,GAAG,CAACzI,WAAW,CAACD,GAAG,CAAC;IACpBA,GAAG,CAACH,WAAW,GAAGuI,OAAO,CAACrG,KAAK;IAE/B,IAAM4G,GAAG,GAAGvK,GAAG,CAACa,aAAa,CAAC,IAAI,CAAC;IACnCqJ,EAAE,CAACrI,WAAW,CAAC0I,GAAG,CAAC;IAEnB,IAAMC,SAAS,GAAGxK,GAAG,CAACa,aAAa,CAAC,QAAQ,CAAC;IAC7C0J,GAAG,CAAC1I,WAAW,CAAC2I,SAAS,CAAC;IAC1BA,SAAS,CAAC/I,WAAW,GAAG,GAAG;IAE3ByI,EAAE,CAAC5I,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EAAC;IACzCkJ,SAAS,CAAClJ,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACnDkJ,SAAS,CAAClJ,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;IAC9CkJ,SAAS,CAACjJ,gBAAgB,CACxB,OAAO,EACP,UAAUkJ,MAAM,EAAE;MAChBF,GAAG,CAACpB,WAAW,CAACqB,SAAS,CAAC,EAAC;MAC3B,IAAME,YAAY,GAAG1K,GAAG,CAACa,aAAa,CAAC,QAAQ,CAAC;MAChD6J,YAAY,CAACjJ,WAAW,GAAG,QAAQ;MACnC8I,GAAG,CAAC1I,WAAW,CAAC6I,YAAY,CAAC,CAACnJ,gBAAgB,CAC5C,OAAO,EACP,UAAUkJ,MAAM,EAAE;QAChBF,GAAG,CAACpB,WAAW,CAACwB,UAAU,CAAC;QAC3BJ,GAAG,CAACpB,WAAW,CAACuB,YAAY,CAAC;QAC7BH,GAAG,CAAC1I,WAAW,CAAC2I,SAAS,CAAC;MAC5B,CAAC,EACD,KAAK,CACN;MACD,IAAMG,UAAU,GAAG3K,GAAG,CAACa,aAAa,CAAC,QAAQ,CAAC;MAC9C8J,UAAU,CAAClJ,WAAW,GAAG,gBAAgB;MACzC8I,GAAG,CAAC1I,WAAW,CAAC8I,UAAU,CAAC,CAACpJ,gBAAgB,CAC1C,OAAO;QAAA,IAAAqJ,KAAA,OAAAjI,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CACP,SAAAgI,SAAgBJ,MAAM;UAAA,IAAAK,iBAAA,EAAA7H,GAAA;UAAA,OAAAL,YAAA,YAAAO,IAAA,UAAA4H,UAAAC,SAAA;YAAA,kBAAAA,SAAA,CAAA1H,IAAA,GAAA0H,SAAA,CAAAzH,IAAA;cAAA;gBAAI;gBACxBgH,GAAG,CAACpB,WAAW,CAACwB,UAAU,CAAC;gBAC3BJ,GAAG,CAACpB,WAAW,CAACuB,YAAY,CAAC;gBAC7B;gBAAA,MACI3J,EAAE,CAAC4C,KAAK,KAAKtD,iBAAK,CAACsH,GAAG,CAAChG,OAAO,EAAE7D,EAAE,CAACwJ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC3D,KAAK;kBAAAqH,SAAA,CAAAzH,IAAA;kBAAA;gBAAA;gBAAAyH,SAAA,CAAAzH,IAAA;gBAAA,OACnCG,SAAS,EAAE;cAAA;gBAAAoH,iBAAA,GAAAE,SAAA,CAAApH,IAAA;gBAAzBX,GAAG,GAAA6H,iBAAA,CAAH7H,GAAG;gBAAuB;gBAClCjC,OAAO,CAACmD,MAAM,CAAC,EAAE,EAAElB,GAAG,CAAC;cAAA;cAAA;gBAAA,OAAA+H,SAAA,CAAA5G,IAAA;YAAA;UAAA,GAAAyG,QAAA;QAAA,CAE1B;QAAA,iBAAAI,GAAA;UAAA,OAAAL,KAAA,CAAAvG,KAAA,OAAAC,SAAA;QAAA;MAAA,KACD,KAAK,CACN;IACH,CAAC,EACD,KAAK,CACN;EACH,CAAC;;EAED;;EAEAxD,YAAY,GAAGd,GAAG,CAACa,aAAa,CAAC,OAAO,CAAC;EACzCC,YAAY,CAACiJ,KAAK,GAAG,KAAK;EAC1BnJ,GAAG,CAACiB,WAAW,CAACf,YAAY,CAAC;EAC7BA,YAAY,CAACQ,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EAAC;;EAEnD,IAAM4I,EAAE,GAAG/H,cAAc,EAAE;EAC3B,IAAIzB,WAAW,EAAE;IACfI,YAAY,CAACsJ,YAAY,CAACF,EAAE,EAAEpJ,YAAY,CAAC4H,UAAU,CAAC,EAAC;EACzD,CAAC,MAAM;IACL5H,YAAY,CAACe,WAAW,CAACqI,EAAE,CAAC,EAAC;EAC/B;;EAEA,IAAIgB,KAAK;EACT;EACA,IAAI9K,OAAO,CAAC8K,KAAK,EAAE;IACjBA,KAAK,GAAG9K,OAAO,CAAC8K,KAAK;EACvB,CAAC,MAAM;IACLA,KAAK,GAAG,IAAIhN,IAAI,CAACiN,KAAK,CAAC,UAAU,CAAC;IAClC,IAAMC,CAAC,GAAG,CAAC,CAAC,EAAC;IACb,IAAMC,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;IAChDA,EAAE,CAACrC,OAAO,CAAC,UAAUsC,CAAC,EAAE;MACtBJ,KAAK,CAACK,IAAI,CAACtE,IAAI,CAAEmE,CAAC,CAACE,CAAC,CAAC,GAAGpN,IAAI,CAACsN,QAAQ,CAACF,CAAC,CAAC,CAAE;IAC5C,CAAC,CAAC;IACFJ,KAAK,CAACO,GAAG,CAACC,GAAG,CAACxL,OAAO,EAAEK,EAAE,CAAC,SAAS,CAAC,EAAE6K,CAAC,CAAChC,GAAG,CAAC;IAC5C8B,KAAK,CAACO,GAAG,CAACC,GAAG,CAACN,CAAC,CAAChC,GAAG,EAAEtL,EAAE,CAAC6N,GAAG,CAAC,SAAS,CAAC,EAAEP,CAAC,CAACrD,IAAI,CAAC;IAC/CmD,KAAK,CAACO,GAAG,CAACC,GAAG,CAACN,CAAC,CAAChC,GAAG,EAAEtL,EAAE,CAACwJ,IAAI,CAAC,OAAO,CAAC,EAAE8D,CAAC,CAACtD,OAAO,CAAC;IACjDoD,KAAK,CAACO,GAAG,CAACC,GAAG,CAACN,CAAC,CAAChC,GAAG,EAAEtL,EAAE,CAACuJ,IAAI,CAAC,SAAS,CAAC,EAAE+D,CAAC,CAACpB,OAAO,CAAC;EACrD;EAEA,SAAS4B,SAASA,CAAA,EAAI;IACpB9K,YAAY,CAACiJ,KAAK,GAAG,IAAI,EAAC;EAC5B;;EACA1J,iBAAK,CAAC6K,KAAK,CAACA,KAAK,EAAEhH,aAAa,EAAE4B,SAAS,EAAE8F,SAAS,CAAC;EACvDhL,GAAG,CAACiL,OAAO,GAAG,YAAY;IACxBxD,YAAY,CAACnI,OAAO,EAAEY,YAAY,CAAC;EACrC,CAAC;EACD;EACA,OAAOF,GAAG;AACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/footer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAU7C,MAAM,MAAM,aAAa,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAEH;;;;GAIG;AACH,wBAAsB,UAAU,CAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,iBAU1E;AACD;;GAEG;AACH,wBAAgB,aAAa,CAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,uBAM/I;AACD;;GAEG;AACH,wBAAgB,yBAAyB,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,WAAW,CAyC5K"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/footer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAW7C,MAAM,MAAM,aAAa,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAEH;;;;GAIG;AACH,wBAAsB,UAAU,CAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,iBAU1E;AACD;;GAEG;AACH,wBAAgB,aAAa,CAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,uBAM/I;AACD;;GAEG;AACH,wBAAgB,yBAAyB,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,WAAW,CAyC5K"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -10,7 +11,10 @@ exports.rebuildFooter = rebuildFooter;
10
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
13
  var _solidLogic = require("solid-logic");
14
+ var style = _interopRequireWildcard(require("../style"));
13
15
  var _headerFooterHelpers = require("../utils/headerFooterHelpers");
16
+ 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); }
17
+ 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; }
14
18
  /*
15
19
  This file was copied from mashlib/src/global/footer.ts file. It is modified to
16
20
  work in solid-ui by adjusting where imported functions are found.
@@ -91,7 +95,7 @@ function createControllerInfoBlock(store, user, pod, podOwner, options) {
91
95
  if (!pod || !podOwner || user && user.equals(podOwner)) {
92
96
  return profileLinkContainer;
93
97
  }
94
- (0, _headerFooterHelpers.addStyleClassToElement)(profileLinkContainer, ['footer-pod-info', 'footer'], 'footer');
98
+ profileLinkContainer.setAttribute('style', style.footer);
95
99
  var podLinkPre = document.createElement('span');
96
100
  podLinkPre.innerText = "You're visiting ";
97
101
  var podLink = document.createElement('a');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_solidLogic","require","_headerFooterHelpers","DEFAULT_SOLID_PROJECT_URL","DEFAULT_SOLID_PROJECT_NAME","initFooter","_x","_x2","_initFooter","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","store","options","footer","pod","podOwner","wrap","_callee2$","_context2","prev","next","document","getElementById","abrupt","getPod","getPodOwner","sent","rebuildFooter","authSession","onLogin","onLogout","stop","_callee","user","_callee$","_context","authn","currentUser","innerHTML","t0","createControllerInfoBlock","t1","appendChild","call","profileLinkContainer","createElement","equals","addStyleClassToElement","podLinkPre","innerText","podLink","href","uri","profileLinkPre","profileLink","getName","solidProjectLinkPre","solidProjectLink","solidProjectUrl","solidProjectName","solidProjectLinkPost"],"sources":["../../src/footer/index.ts"],"sourcesContent":["/*\n This file was copied from mashlib/src/global/footer.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { LiveStore, NamedNode } from 'rdflib'\nimport { authn, authSession } from 'solid-logic'\nimport { addStyleClassToElement, getName, getPod, getPodOwner } from '../utils/headerFooterHelpers'\n\nconst DEFAULT_SOLID_PROJECT_URL = 'https://solidproject.org'\nconst DEFAULT_SOLID_PROJECT_NAME = 'solidproject.org'\n\n/*\n FooterOptions allow for customizing the link and name of the link part of the footer.\n */\nexport type FooterOptions = {\n solidProjectUrl?: string,\n solidProjectName?: string\n }\n\n/**\n * Initialize footer component, the footer object returned depends on whether the user is authenticated.\n * @param store the data store\n * @returns the footer\n */\nexport async function initFooter (store: LiveStore, options?: FooterOptions) {\n const footer = document.getElementById('PageFooter')\n if (!footer) {\n return\n }\n const pod = getPod()\n const podOwner = await getPodOwner(pod, store)\n rebuildFooter(footer, store, pod, podOwner, options)()\n authSession.onLogin(rebuildFooter(footer, store, pod, podOwner, options))\n authSession.onLogout(rebuildFooter(footer, store, pod, podOwner, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildFooter (footer: HTMLElement, store: LiveStore, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions) {\n return async () => {\n const user = authn.currentUser()\n footer.innerHTML = ''\n footer.appendChild(await createControllerInfoBlock(store, user, pod, podOwner, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createControllerInfoBlock (store: LiveStore, user: NamedNode | null, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions): HTMLElement {\n const profileLinkContainer = document.createElement('div')\n if (!pod || !podOwner || (user && user.equals(podOwner))) {\n return profileLinkContainer\n }\n\n addStyleClassToElement(profileLinkContainer, ['footer-pod-info', 'footer'], 'footer')\n\n const podLinkPre = document.createElement('span')\n podLinkPre.innerText = \"You're visiting \"\n\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.innerText = 'the Pod'\n\n const profileLinkPre = document.createElement('span')\n profileLinkPre.innerText = ' controlled by '\n\n const profileLink = document.createElement('a')\n profileLink.href = podOwner.uri\n profileLink.innerText = getName(store, podOwner)\n\n const solidProjectLinkPre = document.createElement('span')\n solidProjectLinkPre.innerText = '. For more info, check out '\n\n const solidProjectLink = document.createElement('a')\n solidProjectLink.href = options && options.solidProjectUrl ? options.solidProjectUrl : DEFAULT_SOLID_PROJECT_URL\n solidProjectLink.innerText = options && options.solidProjectName ? options.solidProjectName : DEFAULT_SOLID_PROJECT_NAME\n\n const solidProjectLinkPost = document.createElement('span')\n solidProjectLinkPost.innerText = '.'\n\n profileLinkContainer.appendChild(podLinkPre)\n profileLinkContainer.appendChild(podLink)\n profileLinkContainer.appendChild(profileLinkPre)\n profileLinkContainer.appendChild(profileLink)\n profileLinkContainer.appendChild(solidProjectLinkPre)\n profileLinkContainer.appendChild(solidProjectLink)\n profileLinkContainer.appendChild(solidProjectLinkPost)\n\n return profileLinkContainer\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_solidLogic","require","style","_interopRequireWildcard","_headerFooterHelpers","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DEFAULT_SOLID_PROJECT_URL","DEFAULT_SOLID_PROJECT_NAME","initFooter","_x","_x2","_initFooter","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","store","options","footer","pod","podOwner","wrap","_callee2$","_context2","prev","next","document","getElementById","abrupt","getPod","getPodOwner","sent","rebuildFooter","authSession","onLogin","onLogout","stop","_callee","user","_callee$","_context","authn","currentUser","innerHTML","t0","createControllerInfoBlock","t1","appendChild","profileLinkContainer","createElement","equals","setAttribute","podLinkPre","innerText","podLink","href","uri","profileLinkPre","profileLink","getName","solidProjectLinkPre","solidProjectLink","solidProjectUrl","solidProjectName","solidProjectLinkPost"],"sources":["../../src/footer/index.ts"],"sourcesContent":["/*\n This file was copied from mashlib/src/global/footer.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { LiveStore, NamedNode } from 'rdflib'\nimport { authn, authSession } from 'solid-logic'\nimport * as style from '../style'\nimport { getName, getPod, getPodOwner } from '../utils/headerFooterHelpers'\n\nconst DEFAULT_SOLID_PROJECT_URL = 'https://solidproject.org'\nconst DEFAULT_SOLID_PROJECT_NAME = 'solidproject.org'\n\n/*\n FooterOptions allow for customizing the link and name of the link part of the footer.\n */\nexport type FooterOptions = {\n solidProjectUrl?: string,\n solidProjectName?: string\n }\n\n/**\n * Initialize footer component, the footer object returned depends on whether the user is authenticated.\n * @param store the data store\n * @returns the footer\n */\nexport async function initFooter (store: LiveStore, options?: FooterOptions) {\n const footer = document.getElementById('PageFooter')\n if (!footer) {\n return\n }\n const pod = getPod()\n const podOwner = await getPodOwner(pod, store)\n rebuildFooter(footer, store, pod, podOwner, options)()\n authSession.onLogin(rebuildFooter(footer, store, pod, podOwner, options))\n authSession.onLogout(rebuildFooter(footer, store, pod, podOwner, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildFooter (footer: HTMLElement, store: LiveStore, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions) {\n return async () => {\n const user = authn.currentUser()\n footer.innerHTML = ''\n footer.appendChild(await createControllerInfoBlock(store, user, pod, podOwner, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createControllerInfoBlock (store: LiveStore, user: NamedNode | null, pod: NamedNode | null, podOwner: NamedNode | null, options?: FooterOptions): HTMLElement {\n const profileLinkContainer = document.createElement('div')\n if (!pod || !podOwner || (user && user.equals(podOwner))) {\n return profileLinkContainer\n }\n\n profileLinkContainer.setAttribute('style', style.footer)\n\n const podLinkPre = document.createElement('span')\n podLinkPre.innerText = \"You're visiting \"\n\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.innerText = 'the Pod'\n\n const profileLinkPre = document.createElement('span')\n profileLinkPre.innerText = ' controlled by '\n\n const profileLink = document.createElement('a')\n profileLink.href = podOwner.uri\n profileLink.innerText = getName(store, podOwner)\n\n const solidProjectLinkPre = document.createElement('span')\n solidProjectLinkPre.innerText = '. For more info, check out '\n\n const solidProjectLink = document.createElement('a')\n solidProjectLink.href = options && options.solidProjectUrl ? options.solidProjectUrl : DEFAULT_SOLID_PROJECT_URL\n solidProjectLink.innerText = options && options.solidProjectName ? options.solidProjectName : DEFAULT_SOLID_PROJECT_NAME\n\n const solidProjectLinkPost = document.createElement('span')\n solidProjectLinkPost.innerText = '.'\n\n profileLinkContainer.appendChild(podLinkPre)\n profileLinkContainer.appendChild(podLink)\n profileLinkContainer.appendChild(profileLinkPre)\n profileLinkContainer.appendChild(profileLink)\n profileLinkContainer.appendChild(solidProjectLinkPre)\n profileLinkContainer.appendChild(solidProjectLink)\n profileLinkContainer.appendChild(solidProjectLinkPost)\n\n return profileLinkContainer\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/header/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAelD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;AAMrD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAA;CAC3B,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,iBAU1G;AACD;;GAEG;AACH,wBAAgB,aAAa,CAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,uBAM5I;AACD;;GAEG;AACH,wBAAsB,YAAY,CAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA+B3K;AACD;;GAEG;AACH,wBAAgB,cAAc,CAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,8BA8CjF;AACD;;GAEG;AACH,wBAAgB,wBAAwB,mBAKvC;AACD;;GAEG;AACH,wBAAgB,oBAAoB,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kCAAkC,GAAG,WAAW,CAM7G;AACD;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAO7F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAqD7H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAKnE;AACD;;GAEG;AACH,wBAAgB,aAAa,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAe3F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/header/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAgBlD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;AAMrD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAA;CAC3B,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,iBAU1G;AACD;;GAEG;AACH,wBAAgB,aAAa,CAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,uBAM5I;AACD;;GAEG;AACH,wBAAsB,YAAY,CAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA+B3K;AACD;;GAEG;AACH,wBAAgB,cAAc,CAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,8BAkDjF;AACD;;GAEG;AACH,wBAAgB,wBAAwB,mBAKvC;AACD;;GAEG;AACH,wBAAgB,oBAAoB,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kCAAkC,GAAG,WAAW,CAY7G;AACD;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAa7F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAyD7H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAKnE;AACD;;GAEG;AACH,wBAAgB,aAAa,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAe3F"}
@@ -21,6 +21,7 @@ var _index = require("../index");
21
21
  var _solidLogic = require("solid-logic");
22
22
  var _login = require("../login/login");
23
23
  var widgets = _interopRequireWildcard(require("../widgets"));
24
+ var style = _interopRequireWildcard(require("../style"));
24
25
  var _emptyProfile = require("./empty-profile");
25
26
  var _headerFooterHelpers = require("../utils/headerFooterHelpers");
26
27
  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); }
@@ -38,6 +39,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
38
39
  */
39
40
  var DEFAULT_HELP_MENU_ICON = _index.icons.iconBase + 'noun_help.svg';
40
41
  var DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg';
42
+
43
+ /*
44
+ HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default
45
+ is solid. Menulist will always show a link to logout and to the users profile.
46
+ */
41
47
  /**
42
48
  * Initialize header component, the header object returned depends on whether the user is authenticated.
43
49
  * @param store the data store
@@ -114,12 +120,12 @@ function _createBanner() {
114
120
  case 0:
115
121
  podLink = document.createElement('a');
116
122
  podLink.href = pod.uri;
117
- (0, _headerFooterHelpers.addStyleClassToElement)(podLink, ['header-banner__link']);
123
+ podLink.setAttribute('style', style.headerBannerLink);
118
124
  image = document.createElement('img');
119
125
  if (options) {
120
126
  image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL;
121
127
  }
122
- (0, _headerFooterHelpers.addStyleClassToElement)(image, ['header-banner__icon']);
128
+ image.setAttribute('style', style.headerBannerIcon);
123
129
  podLink.appendChild(image);
124
130
  if (!user) {
125
131
  _context3.next = 13;
@@ -136,10 +142,10 @@ function _createBanner() {
136
142
  case 14:
137
143
  userMenu = _context3.t0;
138
144
  banner = document.createElement('div');
139
- (0, _headerFooterHelpers.addStyleClassToElement)(banner, ['header-banner']);
145
+ banner.setAttribute('style', style.headerBanner);
140
146
  banner.appendChild(podLink);
141
147
  leftSideOfHeader = document.createElement('div');
142
- (0, _headerFooterHelpers.addStyleClassToElement)(leftSideOfHeader, ['header-banner__right-menu']);
148
+ leftSideOfHeader.setAttribute('style', style.headerBannerRightMenu);
143
149
  leftSideOfHeader.appendChild(userMenu);
144
150
  if (options && options.helpMenuList) {
145
151
  helpMenu = createHelpMenu(options, options.helpMenuList);
@@ -158,7 +164,7 @@ function _createBanner() {
158
164
  function createHelpMenu(options, helpMenuItems) {
159
165
  if (!helpMenuItems) return;
160
166
  var helpMenuList = document.createElement('ul');
161
- (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuList, ['header-user-menu__list']);
167
+ helpMenuList.setAttribute('style', style.headerUserMenuList);
162
168
  helpMenuItems.forEach(function (menuItem) {
163
169
  var menuItemType = menuItem.url ? 'url' : 'onclick';
164
170
  if (menuItemType === 'url') {
@@ -168,19 +174,19 @@ function createHelpMenu(options, helpMenuItems) {
168
174
  }
169
175
  });
170
176
  var helpMenu = document.createElement('nav');
171
- (0, _headerFooterHelpers.addStyleClassToElement)(helpMenu, ['header-user-menu__navigation-menu']);
177
+ helpMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed);
172
178
  helpMenu.setAttribute('aria-hidden', 'true');
179
+ helpMenu.setAttribute('id', 'helperNav');
173
180
  helpMenu.appendChild(helpMenuList);
174
181
  var helpMenuContainer = document.createElement('div');
175
- (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuContainer, ['header-banner__user-menu']);
176
- (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuContainer, ['header-user-menu']);
182
+ helpMenuContainer.setAttribute('style', style.headerBannerUserMenu);
177
183
  helpMenuContainer.appendChild(helpMenu);
178
184
  var helpMenuTrigger = document.createElement('button');
179
- (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuTrigger, ['header-user-menu__trigger']);
185
+ helpMenuTrigger.setAttribute('style', style.headerUserMenuTrigger);
180
186
  helpMenuTrigger.type = 'button';
181
187
  var helpMenuIcon = document.createElement('img');
182
188
  helpMenuIcon.src = options && options.helpIcon ? options.helpIcon : _index.icons.iconBase + DEFAULT_HELP_MENU_ICON;
183
- (0, _headerFooterHelpers.addStyleClassToElement)(helpMenuIcon, ['header-banner__help-icon']);
189
+ helpMenuIcon.setAttribute('style', style.headerUserMenuTriggerImg);
184
190
  helpMenuContainer.appendChild(helpMenuTrigger);
185
191
  helpMenuTrigger.appendChild(helpMenuIcon);
186
192
  var throttledMenuToggle = (0, _headerFooterHelpers.throttle)(function (event) {
@@ -193,11 +199,15 @@ function createHelpMenu(options, helpMenuItems) {
193
199
  helpMenuContainer.addEventListener('mouseover', function (event) {
194
200
  clearTimeout(timer);
195
201
  throttledMenuToggle(event);
202
+ var nav = document.getElementById('helperNav');
203
+ nav === null || nav === void 0 ? void 0 : nav.setAttribute('style', style.headerUserMenuNavigationMenu);
196
204
  });
197
205
  helpMenuContainer.addEventListener('mouseout', function (event) {
198
206
  timer = setTimeout(function () {
199
207
  return throttledMenuToggle(event);
200
208
  }, 200);
209
+ var nav = document.getElementById('helperNav');
210
+ nav === null || nav === void 0 ? void 0 : nav.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed);
201
211
  });
202
212
  return helpMenuContainer;
203
213
  }
@@ -206,7 +216,7 @@ function createHelpMenu(options, helpMenuItems) {
206
216
  */
207
217
  function createLoginSignUpButtons() {
208
218
  var profileLoginButtonPre = document.createElement('div');
209
- (0, _headerFooterHelpers.addStyleClassToElement)(profileLoginButtonPre, ['header-banner__login']);
219
+ profileLoginButtonPre.setAttribute('style', style.headerBannerLogin);
210
220
  profileLoginButtonPre.appendChild((0, _login.loginStatusBox)(document, null, {}));
211
221
  return profileLoginButtonPre;
212
222
  }
@@ -215,7 +225,13 @@ function createLoginSignUpButtons() {
215
225
  */
216
226
  function createUserMenuButton(label, onClick) {
217
227
  var button = document.createElement('button');
218
- (0, _headerFooterHelpers.addStyleClassToElement)(button, ['header-user-menu__button']);
228
+ button.setAttribute('style', style.headerUserMenuButton);
229
+ button.onmouseover = function () {
230
+ button.setAttribute('style', style.headerUserMenuButtonHover);
231
+ };
232
+ button.onmouseout = function () {
233
+ button.setAttribute('style', style.headerUserMenuButton);
234
+ };
219
235
  button.addEventListener('click', onClick);
220
236
  button.innerText = label;
221
237
  return button;
@@ -225,7 +241,13 @@ function createUserMenuButton(label, onClick) {
225
241
  */
226
242
  function createUserMenuLink(label, href, target) {
227
243
  var link = document.createElement('a');
228
- (0, _headerFooterHelpers.addStyleClassToElement)(link, ['header-user-menu__link']);
244
+ link.setAttribute('style', style.headerUserMenuLink);
245
+ link.onmouseover = function () {
246
+ link.setAttribute('style', style.headerUserMenuLinkHover);
247
+ };
248
+ link.onmouseout = function () {
249
+ link.setAttribute('style', style.headerUserMenuLink);
250
+ };
229
251
  link.href = href;
230
252
  link.innerText = label;
231
253
  if (target) link.target = target;
@@ -256,7 +278,7 @@ function _createUserMenu() {
256
278
  return fetcher.load(user);
257
279
  case 4:
258
280
  loggedInMenuList = document.createElement('ul');
259
- (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuList, ['header-user-menu__list']);
281
+ loggedInMenuList.setAttribute('style', style.headerUserMenuList);
260
282
  if (userMenuList) {
261
283
  userMenuList.forEach(function (menuItem) {
262
284
  var menuItemType = menuItem.url ? 'url' : 'onclick';
@@ -268,11 +290,12 @@ function _createUserMenu() {
268
290
  });
269
291
  }
270
292
  loggedInMenu = document.createElement('nav');
271
- (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenu, ['header-user-menu__navigation-menu']);
293
+ loggedInMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed);
272
294
  loggedInMenu.setAttribute('aria-hidden', 'true');
295
+ loggedInMenu.setAttribute('id', 'loggedInNav');
273
296
  loggedInMenu.appendChild(loggedInMenuList);
274
297
  loggedInMenuTrigger = document.createElement('button');
275
- (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuTrigger, ['header-user-menu__trigger']);
298
+ loggedInMenuTrigger.setAttribute('style', style.headerUserMenuTrigger);
276
299
  loggedInMenuTrigger.type = 'button';
277
300
  profileImg = getProfileImg(store, user);
278
301
  if (typeof profileImg === 'string') {
@@ -281,8 +304,7 @@ function _createUserMenu() {
281
304
  loggedInMenuTrigger.appendChild(profileImg);
282
305
  }
283
306
  loggedInMenuContainer = document.createElement('div');
284
- (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuContainer, ['header-banner__user-menu']);
285
- (0, _headerFooterHelpers.addStyleClassToElement)(loggedInMenuContainer, ['header-user-menu']);
307
+ loggedInMenuContainer.setAttribute('style', style.headerBannerUserMenuNotDisplayed);
286
308
  loggedInMenuContainer.appendChild(loggedInMenuTrigger);
287
309
  loggedInMenuContainer.appendChild(loggedInMenu);
288
310
  throttledMenuToggle = (0, _headerFooterHelpers.throttle)(function (event) {
@@ -295,11 +317,15 @@ function _createUserMenu() {
295
317
  loggedInMenuContainer.addEventListener('mouseover', function (event) {
296
318
  clearTimeout(timer);
297
319
  throttledMenuToggle(event);
320
+ var nav = document.getElementById('loggedInNav');
321
+ nav === null || nav === void 0 ? void 0 : nav.setAttribute('style', style.headerUserMenuNavigationMenu);
298
322
  });
299
323
  loggedInMenuContainer.addEventListener('mouseout', function (event) {
300
324
  timer = setTimeout(function () {
301
325
  return throttledMenuToggle(event);
302
326
  }, 200);
327
+ var nav = document.getElementById('loggedInNav');
328
+ nav === null || nav === void 0 ? void 0 : nav.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed);
303
329
  });
304
330
  return _context4.abrupt("return", loggedInMenuContainer);
305
331
  case 27:
@@ -312,7 +338,7 @@ function _createUserMenu() {
312
338
  }
313
339
  function createUserMenuItem(child) {
314
340
  var menuProfileItem = document.createElement('li');
315
- (0, _headerFooterHelpers.addStyleClassToElement)(menuProfileItem, ['header-user-menu__list-item']);
341
+ menuProfileItem.setAttribute('style', style.headerUserMenuListItem);
316
342
  menuProfileItem.appendChild(child);
317
343
  return menuProfileItem;
318
344
  }
@@ -330,7 +356,7 @@ function getProfileImg(store, user) {
330
356
  return _emptyProfile.emptyProfile;
331
357
  }
332
358
  var profileImage = document.createElement('div');
333
- (0, _headerFooterHelpers.addStyleClassToElement)(profileImage, ['header-user-menu__photo']);
359
+ profileImage.setAttribute('style', style.headerUserMenuPhoto);
334
360
  profileImage.style.backgroundImage = "url(".concat(profileUrl, ")");
335
361
  return profileImage;
336
362
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_index","require","_solidLogic","_login","widgets","_interopRequireWildcard","_emptyProfile","_headerFooterHelpers","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DEFAULT_HELP_MENU_ICON","icons","iconBase","DEFAUL_SOLID_ICON_URL","initHeader","_x","_x2","_x3","_initHeader","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","store","userMenuList","options","header","pod","wrap","_callee2$","_context2","prev","next","document","getElementById","abrupt","getPod","rebuildHeader","authSession","onLogout","onLogin","stop","_callee","user","_callee$","_context","authn","currentUser","innerHTML","t0","createBanner","t1","sent","appendChild","_x4","_x5","_x6","_x7","_x8","_createBanner","_callee3","podLink","image","userMenu","banner","leftSideOfHeader","helpMenu","_callee3$","_context3","createElement","href","uri","addStyleClassToElement","src","logo","createUserMenu","createLoginSignUpButtons","helpMenuList","createHelpMenu","helpMenuItems","forEach","menuItem","menuItemType","url","createUserMenuItem","createUserMenuLink","label","target","createUserMenuButton","onclick","setAttribute","helpMenuContainer","helpMenuTrigger","type","helpMenuIcon","helpIcon","throttledMenuToggle","throttle","event","toggleMenu","addEventListener","timer","setTimeout","clearTimeout","profileLoginButtonPre","loginStatusBox","onClick","button","innerText","link","_x9","_x10","_x11","_createUserMenu","_callee4","fetcher","loggedInMenuList","loggedInMenu","loggedInMenuTrigger","profileImg","loggedInMenuContainer","_callee4$","_context4","load","getProfileImg","child","menuProfileItem","profileUrl","findImage","emptyProfile","_unused","profileImage","style","backgroundImage","concat","trigger","menu","isExpanded","getAttribute","expand","close","toString"],"sources":["../../src/header/index.ts"],"sourcesContent":["/* global EventListenerOrEventListenerObject */\n/*\n This file was copied from mashlib/src/global/header.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { IndexedFormula, NamedNode } from 'rdflib'\nimport { icons } from '../index'\nimport { authn, authSession } from 'solid-logic'\nimport { loginStatusBox } from '../login/login'\n// import { loginStatusBox, authSession, currentUser } from '../authn/authn'\nimport * as widgets from '../widgets'\nimport { emptyProfile } from './empty-profile'\nimport { addStyleClassToElement, getPod, throttle } from '../utils/headerFooterHelpers'\n\n/**\n * menu icons\n*/\nconst DEFAULT_HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\nexport type MenuItemLink = {\n label: string,\n url: string,\n target?: string\n}\n\nexport type MenuItemButton = {\n label: string,\n onclick: () => void\n}\n\nexport type MenuItems = MenuItemLink | MenuItemButton\n\n/*\n HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default\n is solid. Menulist will always show a link to logout and to the users profile.\n */\nexport type HeaderOptions = {\n logo?: string,\n helpIcon?: string,\n helpMenuList?: MenuItems[]\n}\n\n/**\n * Initialize header component, the header object returned depends on whether the user is authenticated.\n * @param store the data store\n * @param userMenuList a list of menu items when the user is logged in\n * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.\n * @returns a header for an authenticated user with menu items given or a login screen\n */\nexport async function initHeader (store: IndexedFormula, userMenuList: MenuItems[], options?: HeaderOptions) {\n const header = document.getElementById('PageHeader')\n if (!header) {\n return\n }\n\n const pod = getPod()\n rebuildHeader(header, store, pod, userMenuList, options)()\n authSession.onLogout(rebuildHeader(header, store, pod, userMenuList, options))\n authSession.onLogin(rebuildHeader(header, store, pod, userMenuList, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildHeader (header: HTMLElement, store: IndexedFormula, pod: NamedNode, userMenuList: MenuItems[], options?: HeaderOptions) {\n return async () => {\n const user = authn.currentUser()\n header.innerHTML = ''\n header.appendChild(await createBanner(store, pod, user, userMenuList, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createBanner (store: IndexedFormula, pod: NamedNode, user: NamedNode | null, userMenuList: MenuItems[], options?: HeaderOptions): Promise<HTMLElement> {\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n addStyleClassToElement(podLink, ['header-banner__link'])\n const image = document.createElement('img')\n if (options) {\n image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL\n }\n addStyleClassToElement(image, ['header-banner__icon'])\n podLink.appendChild(image)\n\n const userMenu = user\n ? await createUserMenu(store, user, userMenuList)\n : createLoginSignUpButtons()\n\n const banner = document.createElement('div')\n addStyleClassToElement(banner, ['header-banner'])\n banner.appendChild(podLink)\n\n const leftSideOfHeader = document.createElement('div')\n addStyleClassToElement(leftSideOfHeader, ['header-banner__right-menu'])\n leftSideOfHeader.appendChild(userMenu)\n\n if (options && options.helpMenuList) {\n const helpMenu = createHelpMenu(options, options.helpMenuList)\n leftSideOfHeader.appendChild(helpMenu as HTMLDivElement)\n }\n\n banner.appendChild(leftSideOfHeader)\n\n return banner\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createHelpMenu (options: HeaderOptions, helpMenuItems: MenuItems[]) {\n if (!helpMenuItems) return\n const helpMenuList = document.createElement('ul')\n addStyleClassToElement(helpMenuList, ['header-user-menu__list'])\n helpMenuItems.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n\n const helpMenu = document.createElement('nav')\n\n addStyleClassToElement(helpMenu, ['header-user-menu__navigation-menu'])\n helpMenu.setAttribute('aria-hidden', 'true')\n helpMenu.appendChild(helpMenuList)\n\n const helpMenuContainer = document.createElement('div')\n addStyleClassToElement(helpMenuContainer, ['header-banner__user-menu'])\n addStyleClassToElement(helpMenuContainer, ['header-user-menu'])\n helpMenuContainer.appendChild(helpMenu)\n\n const helpMenuTrigger = document.createElement('button')\n addStyleClassToElement(helpMenuTrigger, ['header-user-menu__trigger'])\n helpMenuTrigger.type = 'button'\n\n const helpMenuIcon = document.createElement('img')\n helpMenuIcon.src = (options && options.helpIcon) ? options.helpIcon : icons.iconBase + DEFAULT_HELP_MENU_ICON\n addStyleClassToElement(helpMenuIcon, ['header-banner__help-icon'])\n helpMenuContainer.appendChild(helpMenuTrigger)\n helpMenuTrigger.appendChild(helpMenuIcon)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, helpMenuTrigger, helpMenu), 50)\n helpMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n helpMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n })\n helpMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n })\n\n return helpMenuContainer\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createLoginSignUpButtons () {\n const profileLoginButtonPre = document.createElement('div')\n addStyleClassToElement(profileLoginButtonPre, ['header-banner__login'])\n profileLoginButtonPre.appendChild(loginStatusBox(document, null, {}))\n return profileLoginButtonPre\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuButton (label: string, onClick: EventListenerOrEventListenerObject): HTMLElement {\n const button = document.createElement('button')\n addStyleClassToElement(button, ['header-user-menu__button'])\n button.addEventListener('click', onClick)\n button.innerText = label\n return button\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuLink (label: string, href: string, target?: string): HTMLElement {\n const link = document.createElement('a')\n addStyleClassToElement(link, ['header-user-menu__link'])\n link.href = href\n link.innerText = label\n if (target) link.target = target\n return link\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createUserMenu (store: IndexedFormula, user: NamedNode, userMenuList: MenuItems[]): Promise<HTMLElement> {\n const fetcher = (<any>store).fetcher\n if (fetcher) {\n // Making sure that Profile is loaded before building menu\n await fetcher.load(user)\n }\n\n const loggedInMenuList = document.createElement('ul')\n addStyleClassToElement(loggedInMenuList, ['header-user-menu__list'])\n if (userMenuList) {\n userMenuList.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n }\n const loggedInMenu = document.createElement('nav')\n\n addStyleClassToElement(loggedInMenu, ['header-user-menu__navigation-menu'])\n loggedInMenu.setAttribute('aria-hidden', 'true')\n loggedInMenu.appendChild(loggedInMenuList)\n\n const loggedInMenuTrigger = document.createElement('button')\n addStyleClassToElement(loggedInMenuTrigger, ['header-user-menu__trigger'])\n loggedInMenuTrigger.type = 'button'\n const profileImg = getProfileImg(store, user)\n if (typeof profileImg === 'string') {\n loggedInMenuTrigger.innerHTML = profileImg\n } else {\n loggedInMenuTrigger.appendChild(profileImg)\n }\n\n const loggedInMenuContainer = document.createElement('div')\n addStyleClassToElement(loggedInMenuContainer, ['header-banner__user-menu'])\n addStyleClassToElement(loggedInMenuContainer, ['header-user-menu'])\n loggedInMenuContainer.appendChild(loggedInMenuTrigger)\n loggedInMenuContainer.appendChild(loggedInMenu)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, loggedInMenuTrigger, loggedInMenu), 50)\n loggedInMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n loggedInMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n })\n loggedInMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n })\n\n return loggedInMenuContainer\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuItem (child: HTMLElement): HTMLElement {\n const menuProfileItem = document.createElement('li')\n addStyleClassToElement(menuProfileItem, ['header-user-menu__list-item'])\n menuProfileItem.appendChild(child)\n return menuProfileItem\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getProfileImg (store: IndexedFormula, user: NamedNode): string | HTMLElement {\n let profileUrl = null\n try {\n profileUrl = widgets.findImage(user)\n if (!profileUrl) {\n return emptyProfile\n }\n } catch {\n return emptyProfile\n }\n\n const profileImage = document.createElement('div')\n addStyleClassToElement(profileImage, ['header-user-menu__photo'])\n profileImage.style.backgroundImage = `url(${profileUrl})`\n return profileImage\n}\n\n/**\n * @internal\n */\nfunction toggleMenu (event: Event, trigger: HTMLButtonElement, menu: HTMLElement): void {\n const isExpanded = trigger.getAttribute('aria-expanded') === 'true'\n const expand = event.type === 'mouseover'\n const close = event.type === 'mouseout'\n if ((isExpanded && expand) || (!isExpanded && close)) {\n return\n }\n trigger.setAttribute('aria-expanded', (!isExpanded).toString())\n menu.setAttribute('aria-hidden', isExpanded.toString())\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_index","require","_solidLogic","_login","widgets","_interopRequireWildcard","style","_emptyProfile","_headerFooterHelpers","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DEFAULT_HELP_MENU_ICON","icons","iconBase","DEFAUL_SOLID_ICON_URL","initHeader","_x","_x2","_x3","_initHeader","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","store","userMenuList","options","header","pod","wrap","_callee2$","_context2","prev","next","document","getElementById","abrupt","getPod","rebuildHeader","authSession","onLogout","onLogin","stop","_callee","user","_callee$","_context","authn","currentUser","innerHTML","t0","createBanner","t1","sent","appendChild","_x4","_x5","_x6","_x7","_x8","_createBanner","_callee3","podLink","image","userMenu","banner","leftSideOfHeader","helpMenu","_callee3$","_context3","createElement","href","uri","setAttribute","headerBannerLink","src","logo","headerBannerIcon","createUserMenu","createLoginSignUpButtons","headerBanner","headerBannerRightMenu","helpMenuList","createHelpMenu","helpMenuItems","headerUserMenuList","forEach","menuItem","menuItemType","url","createUserMenuItem","createUserMenuLink","label","target","createUserMenuButton","onclick","headerUserMenuNavigationMenuNotDisplayed","helpMenuContainer","headerBannerUserMenu","helpMenuTrigger","headerUserMenuTrigger","type","helpMenuIcon","helpIcon","headerUserMenuTriggerImg","throttledMenuToggle","throttle","event","toggleMenu","addEventListener","timer","setTimeout","clearTimeout","nav","headerUserMenuNavigationMenu","profileLoginButtonPre","headerBannerLogin","loginStatusBox","onClick","button","headerUserMenuButton","onmouseover","headerUserMenuButtonHover","onmouseout","innerText","link","headerUserMenuLink","headerUserMenuLinkHover","_x9","_x10","_x11","_createUserMenu","_callee4","fetcher","loggedInMenuList","loggedInMenu","loggedInMenuTrigger","profileImg","loggedInMenuContainer","_callee4$","_context4","load","getProfileImg","headerBannerUserMenuNotDisplayed","child","menuProfileItem","headerUserMenuListItem","profileUrl","findImage","emptyProfile","_unused","profileImage","headerUserMenuPhoto","backgroundImage","concat","trigger","menu","isExpanded","getAttribute","expand","close","toString"],"sources":["../../src/header/index.ts"],"sourcesContent":["/* global EventListenerOrEventListenerObject */\n/*\n This file was copied from mashlib/src/global/header.ts file. It is modified to\n work in solid-ui by adjusting where imported functions are found.\n */\nimport { IndexedFormula, NamedNode } from 'rdflib'\nimport { icons } from '../index'\nimport { authn, authSession } from 'solid-logic'\nimport { loginStatusBox } from '../login/login'\n// import { loginStatusBox, authSession, currentUser } from '../authn/authn'\nimport * as widgets from '../widgets'\nimport * as style from '../style'\nimport { emptyProfile } from './empty-profile'\nimport { getPod, throttle } from '../utils/headerFooterHelpers'\n\n/**\n * menu icons\n*/\nconst DEFAULT_HELP_MENU_ICON = icons.iconBase + 'noun_help.svg'\nconst DEFAUL_SOLID_ICON_URL = 'https://solidproject.org/assets/img/solid-emblem.svg'\n\nexport type MenuItemLink = {\n label: string,\n url: string,\n target?: string\n}\n\nexport type MenuItemButton = {\n label: string,\n onclick: () => void\n}\n\nexport type MenuItems = MenuItemLink | MenuItemButton\n\n/*\n HeaderOptions allow for customizing the logo and menu list. If a logo is not provided the default\n is solid. Menulist will always show a link to logout and to the users profile.\n */\nexport type HeaderOptions = {\n logo?: string,\n helpIcon?: string,\n helpMenuList?: MenuItems[]\n}\n\n/**\n * Initialize header component, the header object returned depends on whether the user is authenticated.\n * @param store the data store\n * @param userMenuList a list of menu items when the user is logged in\n * @param options allow the header to be customized with a personalized logo, help icon and a help menu list of links or buttons.\n * @returns a header for an authenticated user with menu items given or a login screen\n */\nexport async function initHeader (store: IndexedFormula, userMenuList: MenuItems[], options?: HeaderOptions) {\n const header = document.getElementById('PageHeader')\n if (!header) {\n return\n }\n\n const pod = getPod()\n rebuildHeader(header, store, pod, userMenuList, options)()\n authSession.onLogout(rebuildHeader(header, store, pod, userMenuList, options))\n authSession.onLogin(rebuildHeader(header, store, pod, userMenuList, options))\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function rebuildHeader (header: HTMLElement, store: IndexedFormula, pod: NamedNode, userMenuList: MenuItems[], options?: HeaderOptions) {\n return async () => {\n const user = authn.currentUser()\n header.innerHTML = ''\n header.appendChild(await createBanner(store, pod, user, userMenuList, options))\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createBanner (store: IndexedFormula, pod: NamedNode, user: NamedNode | null, userMenuList: MenuItems[], options?: HeaderOptions): Promise<HTMLElement> {\n const podLink = document.createElement('a')\n podLink.href = pod.uri\n podLink.setAttribute('style', style.headerBannerLink)\n const image = document.createElement('img')\n if (options) {\n image.src = options.logo ? options.logo : DEFAUL_SOLID_ICON_URL\n }\n image.setAttribute('style', style.headerBannerIcon)\n podLink.appendChild(image)\n\n const userMenu = user\n ? await createUserMenu(store, user, userMenuList)\n : createLoginSignUpButtons()\n\n const banner = document.createElement('div')\n banner.setAttribute('style', style.headerBanner)\n banner.appendChild(podLink)\n\n const leftSideOfHeader = document.createElement('div')\n leftSideOfHeader.setAttribute('style', style.headerBannerRightMenu)\n leftSideOfHeader.appendChild(userMenu)\n\n if (options && options.helpMenuList) {\n const helpMenu = createHelpMenu(options, options.helpMenuList)\n leftSideOfHeader.appendChild(helpMenu as HTMLDivElement)\n }\n\n banner.appendChild(leftSideOfHeader)\n\n return banner\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createHelpMenu (options: HeaderOptions, helpMenuItems: MenuItems[]) {\n if (!helpMenuItems) return\n const helpMenuList = document.createElement('ul')\n helpMenuList.setAttribute('style', style.headerUserMenuList)\n helpMenuItems.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n helpMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n\n const helpMenu = document.createElement('nav')\n\n helpMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n helpMenu.setAttribute('aria-hidden', 'true')\n helpMenu.setAttribute('id', 'helperNav')\n helpMenu.appendChild(helpMenuList)\n\n const helpMenuContainer = document.createElement('div')\n helpMenuContainer.setAttribute('style', style.headerBannerUserMenu)\n helpMenuContainer.appendChild(helpMenu)\n\n const helpMenuTrigger = document.createElement('button')\n helpMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n helpMenuTrigger.type = 'button'\n\n const helpMenuIcon = document.createElement('img')\n helpMenuIcon.src = (options && options.helpIcon) ? options.helpIcon : icons.iconBase + DEFAULT_HELP_MENU_ICON\n helpMenuIcon.setAttribute('style', style.headerUserMenuTriggerImg)\n helpMenuContainer.appendChild(helpMenuTrigger)\n helpMenuTrigger.appendChild(helpMenuIcon)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, helpMenuTrigger, helpMenu), 50)\n helpMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n helpMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n helpMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('helperNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return helpMenuContainer\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createLoginSignUpButtons () {\n const profileLoginButtonPre = document.createElement('div')\n profileLoginButtonPre.setAttribute('style', style.headerBannerLogin)\n profileLoginButtonPre.appendChild(loginStatusBox(document, null, {}))\n return profileLoginButtonPre\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuButton (label: string, onClick: EventListenerOrEventListenerObject): HTMLElement {\n const button = document.createElement('button')\n button.setAttribute('style', style.headerUserMenuButton)\n button.onmouseover = function () {\n button.setAttribute('style', style.headerUserMenuButtonHover)\n }\n button.onmouseout = function () {\n button.setAttribute('style', style.headerUserMenuButton)\n }\n button.addEventListener('click', onClick)\n button.innerText = label\n return button\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuLink (label: string, href: string, target?: string): HTMLElement {\n const link = document.createElement('a')\n link.setAttribute('style', style.headerUserMenuLink)\n link.onmouseover = function () {\n link.setAttribute('style', style.headerUserMenuLinkHover)\n }\n link.onmouseout = function () {\n link.setAttribute('style', style.headerUserMenuLink)\n }\n link.href = href\n link.innerText = label\n if (target) link.target = target\n return link\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport async function createUserMenu (store: IndexedFormula, user: NamedNode, userMenuList: MenuItems[]): Promise<HTMLElement> {\n const fetcher = (<any>store).fetcher\n if (fetcher) {\n // Making sure that Profile is loaded before building menu\n await fetcher.load(user)\n }\n\n const loggedInMenuList = document.createElement('ul')\n loggedInMenuList.setAttribute('style', style.headerUserMenuList)\n if (userMenuList) {\n userMenuList.forEach(function (menuItem) {\n const menuItemType: string = (menuItem as MenuItemLink).url ? 'url' : 'onclick'\n if (menuItemType === 'url') {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuLink(menuItem.label, (menuItem as MenuItemLink).url, (menuItem as MenuItemLink).target)))\n } else {\n loggedInMenuList.appendChild(createUserMenuItem(createUserMenuButton(menuItem.label, (menuItem as MenuItemButton).onclick)))\n }\n })\n }\n const loggedInMenu = document.createElement('nav')\n\n loggedInMenu.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n loggedInMenu.setAttribute('aria-hidden', 'true')\n loggedInMenu.setAttribute('id', 'loggedInNav')\n loggedInMenu.appendChild(loggedInMenuList)\n\n const loggedInMenuTrigger = document.createElement('button')\n loggedInMenuTrigger.setAttribute('style', style.headerUserMenuTrigger)\n loggedInMenuTrigger.type = 'button'\n const profileImg = getProfileImg(store, user)\n if (typeof profileImg === 'string') {\n loggedInMenuTrigger.innerHTML = profileImg\n } else {\n loggedInMenuTrigger.appendChild(profileImg)\n }\n\n const loggedInMenuContainer = document.createElement('div')\n loggedInMenuContainer.setAttribute('style', style.headerBannerUserMenuNotDisplayed)\n loggedInMenuContainer.appendChild(loggedInMenuTrigger)\n loggedInMenuContainer.appendChild(loggedInMenu)\n\n const throttledMenuToggle = throttle((event: Event) => toggleMenu(event, loggedInMenuTrigger, loggedInMenu), 50)\n loggedInMenuTrigger.addEventListener('click', throttledMenuToggle)\n let timer = setTimeout(() => null, 0)\n loggedInMenuContainer.addEventListener('mouseover', event => {\n clearTimeout(timer)\n throttledMenuToggle(event)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenu)\n })\n loggedInMenuContainer.addEventListener('mouseout', event => {\n timer = setTimeout(() => throttledMenuToggle(event), 200)\n const nav = document.getElementById('loggedInNav')\n nav?.setAttribute('style', style.headerUserMenuNavigationMenuNotDisplayed)\n })\n\n return loggedInMenuContainer\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function createUserMenuItem (child: HTMLElement): HTMLElement {\n const menuProfileItem = document.createElement('li')\n menuProfileItem.setAttribute('style', style.headerUserMenuListItem)\n menuProfileItem.appendChild(child)\n return menuProfileItem\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getProfileImg (store: IndexedFormula, user: NamedNode): string | HTMLElement {\n let profileUrl = null\n try {\n profileUrl = widgets.findImage(user)\n if (!profileUrl) {\n return emptyProfile\n }\n } catch {\n return emptyProfile\n }\n\n const profileImage = document.createElement('div')\n profileImage.setAttribute('style', style.headerUserMenuPhoto)\n profileImage.style.backgroundImage = `url(${profileUrl})`\n return profileImage\n}\n\n/**\n * @internal\n */\nfunction toggleMenu (event: Event, trigger: HTMLButtonElement, menu: HTMLElement): void {\n const isExpanded = trigger.getAttribute('aria-expanded') === 'true'\n const expand = event.type === 'mouseover'\n const close = event.type === 'mouseout'\n if ((isExpanded && expand) || (!isExpanded && close)) {\n return\n }\n trigger.setAttribute('aria-expanded', (!isExpanded).toString())\n menu.setAttribute('aria-hidden', isExpanded.toString())\n}\n"],"mappings":"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"}