solid-ui 2.4.23 → 2.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/main.js +2159 -5039
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js +4 -67
  4. package/lib/acl/access-controller.js.map +1 -1
  5. package/lib/acl/access-groups.js +59 -137
  6. package/lib/acl/access-groups.js.map +1 -1
  7. package/lib/acl/acl-control.js +14 -54
  8. package/lib/acl/acl-control.js.map +1 -1
  9. package/lib/acl/acl.js +32 -107
  10. package/lib/acl/acl.js.map +1 -1
  11. package/lib/acl/add-agent-buttons.js +0 -92
  12. package/lib/acl/add-agent-buttons.js.map +1 -1
  13. package/lib/acl/index.js +1 -3
  14. package/lib/acl/index.js.map +1 -1
  15. package/lib/acl/styles.js +1 -2
  16. package/lib/acl/styles.js.map +1 -1
  17. package/lib/chat/bookmarks.js +8 -80
  18. package/lib/chat/bookmarks.js.map +1 -1
  19. package/lib/chat/chatLogic.js +109 -180
  20. package/lib/chat/chatLogic.js.map +1 -1
  21. package/lib/chat/dateFolder.js +6 -91
  22. package/lib/chat/dateFolder.js.map +1 -1
  23. package/lib/chat/infinite.js +33 -185
  24. package/lib/chat/infinite.js.map +1 -1
  25. package/lib/chat/message.js +37 -150
  26. package/lib/chat/message.js.map +1 -1
  27. package/lib/chat/messageTools.js +23 -96
  28. package/lib/chat/messageTools.js.map +1 -1
  29. package/lib/chat/thread.js +33 -91
  30. package/lib/chat/thread.js.map +1 -1
  31. package/lib/create/create.js +19 -51
  32. package/lib/create/create.js.map +1 -1
  33. package/lib/create/index.js +0 -2
  34. package/lib/create/index.js.map +1 -1
  35. package/lib/debug.js +0 -8
  36. package/lib/debug.js.map +1 -1
  37. package/lib/folders.js +4 -27
  38. package/lib/folders.js.map +1 -1
  39. package/lib/footer/index.js +2 -24
  40. package/lib/footer/index.js.map +1 -1
  41. package/lib/footer/styleMap.js.map +1 -1
  42. package/lib/header/empty-profile.js.map +1 -1
  43. package/lib/header/index.js +3 -72
  44. package/lib/header/index.js.map +1 -1
  45. package/lib/header/styleMap.js +4 -3
  46. package/lib/header/styleMap.js.map +1 -1
  47. package/lib/iconBase.js +3 -4
  48. package/lib/iconBase.js.map +1 -1
  49. package/lib/index.js +5 -46
  50. package/lib/index.js.map +1 -1
  51. package/lib/jss/index.js +3 -9
  52. package/lib/jss/index.js.map +1 -1
  53. package/lib/log.js +15 -51
  54. package/lib/log.js.map +1 -1
  55. package/lib/login/login.js +74 -303
  56. package/lib/login/login.js.map +1 -1
  57. package/lib/matrix/index.js +0 -2
  58. package/lib/matrix/index.js.map +1 -1
  59. package/lib/matrix/matrix.js +7 -55
  60. package/lib/matrix/matrix.js.map +1 -1
  61. package/lib/media/index.js +0 -2
  62. package/lib/media/index.js.map +1 -1
  63. package/lib/media/media-capture.js +13 -33
  64. package/lib/media/media-capture.js.map +1 -1
  65. package/lib/messageArea.js +23 -64
  66. package/lib/messageArea.js.map +1 -1
  67. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  68. package/lib/ns.js +5 -7
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +48 -234
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +10 -65
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +21 -42
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/signup/config-default.js +1 -8
  77. package/lib/signup/config-default.js.map +1 -1
  78. package/lib/signup/signup.js +6 -13
  79. package/lib/signup/signup.js.map +1 -1
  80. package/lib/stories/decorators.js +0 -2
  81. package/lib/stories/decorators.js.map +1 -1
  82. package/lib/style.js +8 -5
  83. package/lib/style.js.map +1 -1
  84. package/lib/style_multiSelect.js +1 -5
  85. package/lib/style_multiSelect.js.map +1 -1
  86. package/lib/table.js +309 -322
  87. package/lib/table.js.map +1 -1
  88. package/lib/tabs.js +20 -100
  89. package/lib/tabs.js.map +1 -1
  90. package/lib/utils/headerFooterHelpers.js +4 -52
  91. package/lib/utils/headerFooterHelpers.js.map +1 -1
  92. package/lib/utils/index.js +41 -135
  93. package/lib/utils/index.js.map +1 -1
  94. package/lib/utils/label.js +13 -34
  95. package/lib/utils/label.js.map +1 -1
  96. package/lib/versionInfo.js +4 -4
  97. package/lib/versionInfo.js.map +1 -1
  98. package/lib/widgets/buttons/iconLinks.js +0 -8
  99. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  100. package/lib/widgets/buttons.js +115 -291
  101. package/lib/widgets/buttons.js.map +1 -1
  102. package/lib/widgets/dragAndDrop.js +12 -41
  103. package/lib/widgets/dragAndDrop.js.map +1 -1
  104. package/lib/widgets/error.js +3 -9
  105. package/lib/widgets/error.js.map +1 -1
  106. package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
  107. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  108. package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
  109. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  110. package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
  111. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/language.js +6 -55
  113. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/publicData.js +12 -131
  115. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  116. package/lib/widgets/forms/basic.js +12 -55
  117. package/lib/widgets/forms/basic.js.map +1 -1
  118. package/lib/widgets/forms/comment.js +1 -15
  119. package/lib/widgets/forms/comment.js.map +1 -1
  120. package/lib/widgets/forms/fieldFunction.js +3 -16
  121. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  122. package/lib/widgets/forms/fieldParams.js +0 -12
  123. package/lib/widgets/forms/fieldParams.js.map +1 -1
  124. package/lib/widgets/forms/formStyle.js +1 -14
  125. package/lib/widgets/forms/formStyle.js.map +1 -1
  126. package/lib/widgets/forms.js +70 -474
  127. package/lib/widgets/forms.js.map +1 -1
  128. package/lib/widgets/index.js +0 -21
  129. package/lib/widgets/index.js.map +1 -1
  130. package/lib/widgets/multiSelect.js +48 -171
  131. package/lib/widgets/multiSelect.js.map +1 -1
  132. package/lib/widgets/peoplePicker.js +20 -90
  133. package/lib/widgets/peoplePicker.js.map +1 -1
  134. package/lib/widgets/widgetHelpers.js +2 -9
  135. package/lib/widgets/widgetHelpers.js.map +1 -1
  136. package/package.json +28 -28
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["UI","log","ns","rdf","nextVariable","newVariableName","clearVariableNames","audioContext","AudioContext","window","webkitAudioContext","beep","ContextClass","ctx","duration","frequency","type","finishedCallback","osc","createOscillator","value","connect","destination","start","stop","hashColor","who","uri","hash","x","split","reduce","a","b","charCodeAt","toString","genUuid","replace","c","r","Math","random","v","syncTableToArray","table","things","createNewRow","foundOne","row","i","children","length","trashMe","g","thing","subject","sameTerm","newRow","appendChild","ele","insertBefore","removeChild","syncTableToArrayReOrdered","elementMap","toNT","existingRow","before","stackString","e","str","stack","lines","toPrint","line","indexOf","charAt","chunks","push","emptyNode","node","nodes","childNodes","len","getTarget","target","event","srcElement","nodeType","parentNode","ancestor","tagName","level","undefined","getAbout","kb","aa","getAttribute","fromNT","debug","getTerm","statementTr","st","AJAR_statement","className","predicate","AJAR_inverse","object","store","nextSibling","include","document","linkstr","lnk","createElement","setAttribute","addLoadEvent","func","oldonload","onload","findPos","obj","myDocument","ownerDocument","DocBox","documentElement","getBoundingClientRect","box","left","top","getEyeFocus","element","instantly","isBottom","myWindow","elementPosY","appContext","SolidAppContext","scrollDiff","scroll","totalScroll","scrollY","scrollBy","clientHeight","innerHeight","id","setInterval","scrollAmount","times","clearInterval","AJARImage","src","alt","tt","doc","image","addEventListener","clipboardData","setData","preventDefault","shortName","p","slice","namespaces","prefixes","pok","canUse","pp","lastIndexOf","slash","prefixchars","ontologyLabel","term","s","part","labelWithOntology","initialCap","t","findTypeURIs","rdfs","label","escapeForXML","labelForXML","predicateLabelForXML","inverse","predicateLabel","lab","ip","any","owl","RDFComparePredicateObject","self","other","compareTerm","RDFComparePredicateSubject","predParentOf","n","previousSibling","nodeName","error"],"sources":["../../src/utils/index.js"],"sourcesContent":["// Solid-UI general Utilities\n// ==========================\n//\n// This must load AFTER the rdflib.js and log-ext.js (or log.js).\n//\nimport * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport { label } from './label'\n\nconst UI = { log, ns, rdf }\n\nexport {\n addLoadEvent, // not used anywhere\n AJARImage,\n ancestor,\n beep,\n clearVariableNames,\n emptyNode,\n escapeForXML,\n findPos,\n genUuid,\n getAbout,\n getEyeFocus,\n getTarget,\n getTerm,\n hashColor,\n include,\n label,\n labelForXML,\n labelWithOntology,\n newVariableName,\n ontologyLabel,\n predicateLabel,\n predicateLabelForXML,\n predParentOf,\n RDFComparePredicateObject,\n RDFComparePredicateSubject,\n shortName,\n stackString,\n syncTableToArray,\n syncTableToArrayReOrdered\n}\n\nlet nextVariable = 0\n\nfunction newVariableName () {\n return 'v' + nextVariable++\n}\n\nfunction clearVariableNames () {\n nextVariable = 0\n}\n\n// http://stackoverflow.com/questions/879152/how-do-i-make-javascript-beep\n// http://www.tsheffler.com/blog/2013/05/14/audiocontext-noteonnoteoff-and-time-units/\n\nlet audioContext\n\nif (typeof AudioContext !== 'undefined') {\n audioContext = AudioContext\n} else if (typeof window !== 'undefined') {\n audioContext = window.AudioContext || window.webkitAudioContext\n}\n\nfunction beep () {\n if (!audioContext) {\n return\n } // Safari 2015\n\n const ContextClass = audioContext\n const ctx = new ContextClass()\n\n return function (duration, frequency, type, finishedCallback) {\n duration = +(duration || 0.3)\n\n // Only 0-4 are valid types.\n type = type || 'sine' // sine, square, sawtooth, triangle\n\n if (typeof finishedCallback !== 'function') {\n finishedCallback = function () {}\n }\n\n const osc = ctx.createOscillator()\n\n osc.type = type\n osc.frequency.value = frequency || 256\n\n osc.connect(ctx.destination)\n osc.start(0)\n osc.stop(duration)\n }\n}\n\n// Make pseudorandom color from a uri\n// NOT USED ANYWHERE\nfunction hashColor (who) {\n who = who.uri || who\n const hash = function (x) {\n return x.split('').reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n }\n return '#' + ((hash(who) & 0xffffff) | 0xc0c0c0).toString(16) // c0c0c0 or 808080 forces pale\n}\n\nfunction genUuid () {\n // http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of NamedNode objects\n * @param {function({NamedNode})} createNewRow(thing) returns a TR table row for a new thing\n *\n * Tolerates out of order elements but puts new ones in order.\n * Can be used for any element type; does not have to be a table and tr.\n */\nfunction syncTableToArray (table, things, createNewRow) {\n let foundOne\n let row\n let i\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n row.trashMe = true\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n foundOne = false\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.subject && row.subject.sameTerm(thing)) {\n row.trashMe = false\n foundOne = true\n break\n }\n }\n if (!foundOne) {\n const newRow = createNewRow(thing)\n // Insert new row in position g in the table to match array\n if (g >= table.children.length) {\n table.appendChild(newRow)\n } else {\n const ele = table.children[g]\n table.insertBefore(newRow, ele)\n }\n newRow.subject = thing\n } // if not foundOne\n } // loop g\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.trashMe) {\n table.removeChild(row)\n }\n }\n} // syncTableToArray\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of UNIQUE NamedNode objects. No duplicates\n * @param {function({NamedNode})} createNewRow(thing) returns a rendering of a new thing\n *\n * Ensures order matches exacly. We will re-rder existing elements if necessary\n * Can be used for any element type; does not have to be a table and tr.\n * Any RDF node value can only appear ONCE in the array\n */\nfunction syncTableToArrayReOrdered (table, things, createNewRow) {\n const elementMap = {}\n\n for (let i = 0; i < table.children.length; i++) {\n const row = table.children[i]\n elementMap[row.subject.toNT()] = row // More sophisticaed would be to have a bag of duplicates\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n if (g >= table.children.length) { // table needs extending\n const newRow = createNewRow(thing)\n newRow.subject = thing\n table.appendChild(newRow)\n } else {\n const row = table.children[g]\n if (row.subject.sameTerm(thing)) {\n // ...\n } else {\n const existingRow = elementMap[thing.toNT()]\n if (existingRow) {\n table.removeChild(existingRow)\n table.insertBefore(existingRow, row) // Insert existing row in place of this one\n } else {\n const newRow = createNewRow(thing)\n row.before(newRow) // Insert existing row in place of this one\n newRow.subject = thing\n }\n }\n }\n } // loop g\n // Lop off any we don't need any more:\n while (table.children.length > things.length) {\n table.removeChild(table.children[table.children.length - 1])\n }\n} // syncTableToArrayReOrdered\n\n/* Error stack to string for better diagnotsics\n **\n ** See http://snippets.dzone.com/posts/show/6632\n */\nfunction stackString (e) {\n let str = '' + e + '\\n'\n let i\n if (!e.stack) {\n return str + 'No stack available.\\n'\n }\n const lines = e.stack.toString().split('\\n')\n const toPrint = []\n for (i = 0; i < lines.length; i++) {\n let line = lines[i]\n if (line.indexOf('ecmaunit.js') > -1) {\n // remove useless bit of traceback\n break\n }\n if (line.charAt(0) === '(') {\n line = 'function' + line\n }\n const chunks = line.split('@')\n toPrint.push(chunks)\n }\n // toPrint.reverse(); No - I prefer the latest at the top by the error message -tbl\n\n for (i = 0; i < toPrint.length; i++) {\n str += ' ' + toPrint[i][1] + '\\n ' + toPrint[i][0]\n }\n return str\n}\n\nfunction emptyNode (node) {\n const nodes = node.childNodes\n const len = nodes.length\n for (let i = len - 1; i >= 0; i--) node.removeChild(nodes[i])\n return node\n}\n\nfunction getTarget (e) {\n let target\n e = e || window.event\n if (e.target) target = e.target\n else if (e.srcElement) target = e.srcElement\n if (target.nodeType === 3) {\n // defeat Safari bug [sic]\n target = target.parentNode\n }\n // UI.log.debug(\"Click on: \" + target.tagName)\n return target\n}\n\nfunction ancestor (target, tagName) {\n let level\n for (level = target; level; level = level.parentNode) {\n // UI.log.debug(\"looking for \"+tagName+\" Level: \"+level+\" \"+level.tagName)\n try {\n if (level.tagName === tagName) return level\n } catch (e) {\n // can hit \"TypeError: can't access dead object\" in ffox\n return undefined\n }\n }\n return undefined\n}\n\nfunction getAbout (kb, target) {\n let level, aa\n for (\n level = target;\n level && level.nodeType === 1;\n level = level.parentNode\n ) {\n // UI.log.debug(\"Level \"+level + ' '+level.nodeType + ': '+level.tagName)\n aa = level.getAttribute('about')\n if (aa) {\n // UI.log.debug(\"kb.fromNT(aa) = \" + kb.fromNT(aa))\n return kb.fromNT(aa)\n // } else {\n // if (level.tagName=='TR') return undefined//this is to prevent literals passing through\n }\n }\n UI.log.debug('getAbout: No about found')\n return undefined\n}\n\nfunction getTerm (target) {\n const statementTr = target.parentNode\n const st = statementTr ? statementTr.AJAR_statement : undefined\n\n const className = st ? target.className : '' // if no st then it's necessary to use getAbout\n switch (className) {\n case 'pred':\n case 'pred selected':\n return st.predicate\n case 'obj':\n case 'obj selected':\n if (!statementTr.AJAR_inverse) {\n return st.object\n } else {\n return st.subject\n }\n case '':\n case 'selected': // header TD\n return getAbout(store, target) // kb to be changed\n case 'undetermined selected':\n return target.nextSibling\n ? st.predicate\n : !statementTr.AJAR_inverse\n ? st.object\n : st.subject\n }\n}\n\nfunction include (document, linkstr) {\n const lnk = document.createElement('script')\n lnk.setAttribute('type', 'text/javascript')\n lnk.setAttribute('src', linkstr)\n // TODO:This needs to be fixed or no longer used.\n // document.getElementsByTagName('head')[0].appendChild(lnk)\n return lnk\n}\n\nfunction addLoadEvent (func) {\n const oldonload = window.onload\n if (typeof window.onload !== 'function') {\n window.onload = func\n } else {\n window.onload = function () {\n oldonload()\n func()\n }\n }\n} // addLoadEvent\n\n// Find the position of an object relative to the window\nfunction findPos (obj) {\n // C&P from http://www.quirksmode.org/js/findpos.html\n const myDocument = obj.ownerDocument\n const DocBox = myDocument.documentElement.getBoundingClientRect()\n const box = obj.getBoundingClientRect()\n return [box.left - DocBox.left, box.top - DocBox.top]\n}\n\nfunction getEyeFocus (element, instantly, isBottom, myWindow) {\n if (!myWindow) myWindow = window\n const elementPosY = findPos(element)[1]\n const appContext = window.SolidAppContext || {}\n const scrollDiff = (appContext && appContext.scroll) || 52 // 52 = magic number for web-based version\n const totalScroll = elementPosY - scrollDiff - myWindow.scrollY\n\n if (instantly) {\n if (isBottom) {\n myWindow.scrollBy(\n 0,\n elementPosY +\n element.clientHeight -\n (myWindow.scrollY + myWindow.innerHeight)\n )\n return\n }\n myWindow.scrollBy(0, totalScroll)\n return\n }\n const id = myWindow.setInterval(scrollAmount, 50)\n let times = 0\n function scrollAmount () {\n myWindow.scrollBy(0, totalScroll / 10)\n times++\n if (times === 10) {\n myWindow.clearInterval(id)\n }\n }\n}\n\nfunction AJARImage (src, alt, tt, doc) {\n if (!doc) {\n doc = document\n }\n const image = doc.createElement('img')\n image.setAttribute('src', src)\n image.addEventListener('copy', function (e) {\n e.clipboardData.setData('text/plain', '')\n e.clipboardData.setData('text/html', '')\n e.preventDefault() // We want no title data to be written to the clipboard\n })\n // if (typeof alt != 'undefined') // Messes up cut-and-paste of text\n // image.setAttribute('alt', alt)\n if (typeof tt !== 'undefined') {\n image.setAttribute('title', tt)\n }\n return image\n}\n\n// Make short name for ontology\n\nfunction shortName (uri) {\n let p = uri\n if ('#/'.indexOf(p[p.length - 1]) >= 0) p = p.slice(0, -1)\n const namespaces = []\n for (const ns in this.prefixes) {\n namespaces[this.prefixes[ns]] = ns // reverse index\n }\n let pok\n const canUse = function canUse (pp) {\n // if (!__Serializer.prototype.validPrefix.test(pp)) return false; // bad format\n if (pp === 'ns') return false // boring\n // if (pp in this.namespaces) return false; // already used\n // this.prefixes[uri] = pp;\n // this.namespaces[pp] = uri;\n pok = pp\n return true\n }\n\n let i\n const hash = p.lastIndexOf('#')\n if (hash >= 0) p = p.slice(hash - 1) // lop off localid\n // eslint-disable-next-line no-unreachable-loop\n for (;;) {\n const slash = p.lastIndexOf('/')\n if (slash >= 0) p = p.slice(slash + 1)\n i = 0\n while (i < p.length) {\n if (this.prefixchars.indexOf(p[i])) i++\n else break\n }\n p = p.slice(0, i)\n if (p.length < 6 && canUse(p)) return pok // exact i sbest\n if (canUse(p.slice(0, 3))) return pok\n if (canUse(p.slice(0, 2))) return pok\n if (canUse(p.slice(0, 4))) return pok\n if (canUse(p.slice(0, 1))) return pok\n if (canUse(p.slice(0, 5))) return pok\n for (i = 0; ; i++) if (canUse(p.slice(0, 3) + i)) return pok\n }\n}\n\n// Short name for an ontology\nfunction ontologyLabel (term) {\n if (term.uri === undefined) return '??'\n let s = term.uri\n const namespaces = []\n let i = s.lastIndexOf('#')\n let part\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n return term.uri + '?!' // strange should have # or /\n }\n }\n for (const ns in UI.ns) {\n namespaces[UI.ns[ns]] = ns // reverse index\n }\n try {\n return namespaces[s]\n } catch (e) {}\n\n s = s.slice(0, -1) // Chop off delimiter ... now have just\n\n while (s) {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n part = s.slice(i + 1)\n s = s.slice(0, i)\n if (part !== 'ns' && '0123456789'.indexOf(part[0]) < 0) {\n return part\n }\n } else {\n return term.uri + '!?' // strange should have a nice part\n }\n }\n}\n\nfunction labelWithOntology (x, initialCap) {\n const t = store.findTypeURIs(x)\n if (t[UI.ns.rdf('Predicate').uri] || t[UI.ns.rdfs('Class').uri]) {\n return label(x, initialCap) + ' (' + ontologyLabel(x) + ')'\n }\n return label(x, initialCap)\n}\n\nfunction escapeForXML (str) {\n return str.replace(/&/g, '&amp;').replace(/</g, '&lt;')\n}\n\n// As above but escaped for XML and chopped of contains a slash\nfunction labelForXML (x) {\n return escapeForXML(label(x))\n}\n\nfunction predicateLabelForXML (p, inverse) {\n return escapeForXML(predicateLabel(p, inverse))\n}\n// As above but for predicate, possibly inverse\nfunction predicateLabel (p, inverse) {\n const lab = label(p)\n if (inverse) {\n // If we know an inverse predicate, use its label\n const ip = store.any(p, UI.ns.owl('inverseOf')) || store.any(undefined, UI.ns.owl('inverseOf'), p)\n if (ip) return label(ip)\n if (lab === 'type') return '...' // Not \"is type of\"\n return 'is ' + lab + ' of'\n }\n return lab\n}\n\n// Not a method. For use in sorts\nfunction RDFComparePredicateObject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.object.compareTerm(other.object)\n}\n\nfunction RDFComparePredicateSubject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.subject.compareTerm(other.subject)\n}\n// ends\n\nfunction predParentOf (node) {\n let n = node\n while (true) {\n if (n.getAttribute('predTR')) {\n return n\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else {\n UI.log.error('Could not find predParent')\n return node\n }\n }\n}\n\n// makeQueryRow moved to outline mode\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["UI","log","ns","rdf","nextVariable","newVariableName","clearVariableNames","audioContext","AudioContext","window","webkitAudioContext","beep","ContextClass","ctx","duration","frequency","type","finishedCallback","osc","createOscillator","value","connect","destination","start","stop","hashColor","who","uri","hash","x","split","reduce","a","b","charCodeAt","toString","genUuid","replace","c","r","Math","random","v","syncTableToArray","table","things","createNewRow","foundOne","row","i","children","length","trashMe","g","thing","subject","sameTerm","newRow","appendChild","ele","insertBefore","removeChild","syncTableToArrayReOrdered","elementMap","toNT","existingRow","before","stackString","e","str","stack","lines","toPrint","line","indexOf","charAt","chunks","push","emptyNode","node","nodes","childNodes","len","getTarget","target","event","srcElement","nodeType","parentNode","ancestor","tagName","level","undefined","getAbout","kb","aa","getAttribute","fromNT","debug","getTerm","statementTr","st","AJAR_statement","className","predicate","AJAR_inverse","object","store","nextSibling","include","document","linkstr","lnk","createElement","setAttribute","addLoadEvent","func","oldonload","onload","findPos","obj","myDocument","ownerDocument","DocBox","documentElement","getBoundingClientRect","box","left","top","getEyeFocus","element","instantly","isBottom","myWindow","elementPosY","appContext","SolidAppContext","scrollDiff","scroll","totalScroll","scrollY","scrollBy","clientHeight","innerHeight","id","setInterval","scrollAmount","times","clearInterval","AJARImage","src","alt","tt","doc","image","addEventListener","clipboardData","setData","preventDefault","shortName","p","slice","namespaces","prefixes","pok","canUse","pp","lastIndexOf","slash","prefixchars","ontologyLabel","term","s","part","labelWithOntology","initialCap","t","findTypeURIs","rdfs","label","escapeForXML","labelForXML","predicateLabelForXML","inverse","predicateLabel","lab","ip","any","owl","RDFComparePredicateObject","self","other","compareTerm","RDFComparePredicateSubject","predParentOf","n","previousSibling","nodeName","error"],"sources":["../../src/utils/index.js"],"sourcesContent":["// Solid-UI general Utilities\n// ==========================\n//\n// This must load AFTER the rdflib.js and log-ext.js (or log.js).\n//\nimport * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport { label } from './label'\n\nconst UI = { log, ns, rdf }\n\nexport {\n addLoadEvent, // not used anywhere\n AJARImage,\n ancestor,\n beep,\n clearVariableNames,\n emptyNode,\n escapeForXML,\n findPos,\n genUuid,\n getAbout,\n getEyeFocus,\n getTarget,\n getTerm,\n hashColor,\n include,\n label,\n labelForXML,\n labelWithOntology,\n newVariableName,\n ontologyLabel,\n predicateLabel,\n predicateLabelForXML,\n predParentOf,\n RDFComparePredicateObject,\n RDFComparePredicateSubject,\n shortName,\n stackString,\n syncTableToArray,\n syncTableToArrayReOrdered\n}\n\nlet nextVariable = 0\n\nfunction newVariableName () {\n return 'v' + nextVariable++\n}\n\nfunction clearVariableNames () {\n nextVariable = 0\n}\n\n// http://stackoverflow.com/questions/879152/how-do-i-make-javascript-beep\n// http://www.tsheffler.com/blog/2013/05/14/audiocontext-noteonnoteoff-and-time-units/\n\nlet audioContext\n\nif (typeof AudioContext !== 'undefined') {\n audioContext = AudioContext\n} else if (typeof window !== 'undefined') {\n audioContext = window.AudioContext || window.webkitAudioContext\n}\n\nfunction beep () {\n if (!audioContext) {\n return\n } // Safari 2015\n\n const ContextClass = audioContext\n const ctx = new ContextClass()\n\n return function (duration, frequency, type, finishedCallback) {\n duration = +(duration || 0.3)\n\n // Only 0-4 are valid types.\n type = type || 'sine' // sine, square, sawtooth, triangle\n\n if (typeof finishedCallback !== 'function') {\n finishedCallback = function () {}\n }\n\n const osc = ctx.createOscillator()\n\n osc.type = type\n osc.frequency.value = frequency || 256\n\n osc.connect(ctx.destination)\n osc.start(0)\n osc.stop(duration)\n }\n}\n\n// Make pseudorandom color from a uri\n// NOT USED ANYWHERE\nfunction hashColor (who) {\n who = who.uri || who\n const hash = function (x) {\n return x.split('').reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n }\n return '#' + ((hash(who) & 0xffffff) | 0xc0c0c0).toString(16) // c0c0c0 or 808080 forces pale\n}\n\nfunction genUuid () {\n // http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of NamedNode objects\n * @param {function({NamedNode})} createNewRow(thing) returns a TR table row for a new thing\n *\n * Tolerates out of order elements but puts new ones in order.\n * Can be used for any element type; does not have to be a table and tr.\n */\nfunction syncTableToArray (table, things, createNewRow) {\n let foundOne\n let row\n let i\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n row.trashMe = true\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n foundOne = false\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.subject && row.subject.sameTerm(thing)) {\n row.trashMe = false\n foundOne = true\n break\n }\n }\n if (!foundOne) {\n const newRow = createNewRow(thing)\n // Insert new row in position g in the table to match array\n if (g >= table.children.length) {\n table.appendChild(newRow)\n } else {\n const ele = table.children[g]\n table.insertBefore(newRow, ele)\n }\n newRow.subject = thing\n } // if not foundOne\n } // loop g\n\n for (i = 0; i < table.children.length; i++) {\n row = table.children[i]\n if (row.trashMe) {\n table.removeChild(row)\n }\n }\n} // syncTableToArray\n\n/** Sync a DOM table with an array of things\n *\n * @param {DomElement} table - will have a tr for each thing\n * @param {Array<NamedNode>} things - ORDERED array of UNIQUE NamedNode objects. No duplicates\n * @param {function({NamedNode})} createNewRow(thing) returns a rendering of a new thing\n *\n * Ensures order matches exacly. We will re-rder existing elements if necessary\n * Can be used for any element type; does not have to be a table and tr.\n * Any RDF node value can only appear ONCE in the array\n */\nfunction syncTableToArrayReOrdered (table, things, createNewRow) {\n const elementMap = {}\n\n for (let i = 0; i < table.children.length; i++) {\n const row = table.children[i]\n elementMap[row.subject.toNT()] = row // More sophisticaed would be to have a bag of duplicates\n }\n\n for (let g = 0; g < things.length; g++) {\n const thing = things[g]\n if (g >= table.children.length) { // table needs extending\n const newRow = createNewRow(thing)\n newRow.subject = thing\n table.appendChild(newRow)\n } else {\n const row = table.children[g]\n if (row.subject.sameTerm(thing)) {\n // ...\n } else {\n const existingRow = elementMap[thing.toNT()]\n if (existingRow) {\n table.removeChild(existingRow)\n table.insertBefore(existingRow, row) // Insert existing row in place of this one\n } else {\n const newRow = createNewRow(thing)\n row.before(newRow) // Insert existing row in place of this one\n newRow.subject = thing\n }\n }\n }\n } // loop g\n // Lop off any we don't need any more:\n while (table.children.length > things.length) {\n table.removeChild(table.children[table.children.length - 1])\n }\n} // syncTableToArrayReOrdered\n\n/* Error stack to string for better diagnotsics\n **\n ** See http://snippets.dzone.com/posts/show/6632\n */\nfunction stackString (e) {\n let str = '' + e + '\\n'\n let i\n if (!e.stack) {\n return str + 'No stack available.\\n'\n }\n const lines = e.stack.toString().split('\\n')\n const toPrint = []\n for (i = 0; i < lines.length; i++) {\n let line = lines[i]\n if (line.indexOf('ecmaunit.js') > -1) {\n // remove useless bit of traceback\n break\n }\n if (line.charAt(0) === '(') {\n line = 'function' + line\n }\n const chunks = line.split('@')\n toPrint.push(chunks)\n }\n // toPrint.reverse(); No - I prefer the latest at the top by the error message -tbl\n\n for (i = 0; i < toPrint.length; i++) {\n str += ' ' + toPrint[i][1] + '\\n ' + toPrint[i][0]\n }\n return str\n}\n\nfunction emptyNode (node) {\n const nodes = node.childNodes\n const len = nodes.length\n for (let i = len - 1; i >= 0; i--) node.removeChild(nodes[i])\n return node\n}\n\nfunction getTarget (e) {\n let target\n e = e || window.event\n if (e.target) target = e.target\n else if (e.srcElement) target = e.srcElement\n if (target.nodeType === 3) {\n // defeat Safari bug [sic]\n target = target.parentNode\n }\n // UI.log.debug(\"Click on: \" + target.tagName)\n return target\n}\n\nfunction ancestor (target, tagName) {\n let level\n for (level = target; level; level = level.parentNode) {\n // UI.log.debug(\"looking for \"+tagName+\" Level: \"+level+\" \"+level.tagName)\n try {\n if (level.tagName === tagName) return level\n } catch (e) {\n // can hit \"TypeError: can't access dead object\" in ffox\n return undefined\n }\n }\n return undefined\n}\n\nfunction getAbout (kb, target) {\n let level, aa\n for (\n level = target;\n level && level.nodeType === 1;\n level = level.parentNode\n ) {\n // UI.log.debug(\"Level \"+level + ' '+level.nodeType + ': '+level.tagName)\n aa = level.getAttribute('about')\n if (aa) {\n // UI.log.debug(\"kb.fromNT(aa) = \" + kb.fromNT(aa))\n return kb.fromNT(aa)\n // } else {\n // if (level.tagName=='TR') return undefined//this is to prevent literals passing through\n }\n }\n UI.log.debug('getAbout: No about found')\n return undefined\n}\n\nfunction getTerm (target) {\n const statementTr = target.parentNode\n const st = statementTr ? statementTr.AJAR_statement : undefined\n\n const className = st ? target.className : '' // if no st then it's necessary to use getAbout\n switch (className) {\n case 'pred':\n case 'pred selected':\n return st.predicate\n case 'obj':\n case 'obj selected':\n if (!statementTr.AJAR_inverse) {\n return st.object\n } else {\n return st.subject\n }\n case '':\n case 'selected': // header TD\n return getAbout(store, target) // kb to be changed\n case 'undetermined selected':\n return target.nextSibling\n ? st.predicate\n : !statementTr.AJAR_inverse\n ? st.object\n : st.subject\n }\n}\n\nfunction include (document, linkstr) {\n const lnk = document.createElement('script')\n lnk.setAttribute('type', 'text/javascript')\n lnk.setAttribute('src', linkstr)\n // TODO:This needs to be fixed or no longer used.\n // document.getElementsByTagName('head')[0].appendChild(lnk)\n return lnk\n}\n\nfunction addLoadEvent (func) {\n const oldonload = window.onload\n if (typeof window.onload !== 'function') {\n window.onload = func\n } else {\n window.onload = function () {\n oldonload()\n func()\n }\n }\n} // addLoadEvent\n\n// Find the position of an object relative to the window\nfunction findPos (obj) {\n // C&P from http://www.quirksmode.org/js/findpos.html\n const myDocument = obj.ownerDocument\n const DocBox = myDocument.documentElement.getBoundingClientRect()\n const box = obj.getBoundingClientRect()\n return [box.left - DocBox.left, box.top - DocBox.top]\n}\n\nfunction getEyeFocus (element, instantly, isBottom, myWindow) {\n if (!myWindow) myWindow = window\n const elementPosY = findPos(element)[1]\n const appContext = window.SolidAppContext || {}\n const scrollDiff = (appContext && appContext.scroll) || 52 // 52 = magic number for web-based version\n const totalScroll = elementPosY - scrollDiff - myWindow.scrollY\n\n if (instantly) {\n if (isBottom) {\n myWindow.scrollBy(\n 0,\n elementPosY +\n element.clientHeight -\n (myWindow.scrollY + myWindow.innerHeight)\n )\n return\n }\n myWindow.scrollBy(0, totalScroll)\n return\n }\n const id = myWindow.setInterval(scrollAmount, 50)\n let times = 0\n function scrollAmount () {\n myWindow.scrollBy(0, totalScroll / 10)\n times++\n if (times === 10) {\n myWindow.clearInterval(id)\n }\n }\n}\n\nfunction AJARImage (src, alt, tt, doc) {\n if (!doc) {\n doc = document\n }\n const image = doc.createElement('img')\n image.setAttribute('src', src)\n image.addEventListener('copy', function (e) {\n e.clipboardData.setData('text/plain', '')\n e.clipboardData.setData('text/html', '')\n e.preventDefault() // We want no title data to be written to the clipboard\n })\n // if (typeof alt != 'undefined') // Messes up cut-and-paste of text\n // image.setAttribute('alt', alt)\n if (typeof tt !== 'undefined') {\n image.setAttribute('title', tt)\n }\n return image\n}\n\n// Make short name for ontology\n\nfunction shortName (uri) {\n let p = uri\n if ('#/'.indexOf(p[p.length - 1]) >= 0) p = p.slice(0, -1)\n const namespaces = []\n for (const ns in this.prefixes) {\n namespaces[this.prefixes[ns]] = ns // reverse index\n }\n let pok\n const canUse = function canUse (pp) {\n // if (!__Serializer.prototype.validPrefix.test(pp)) return false; // bad format\n if (pp === 'ns') return false // boring\n // if (pp in this.namespaces) return false; // already used\n // this.prefixes[uri] = pp;\n // this.namespaces[pp] = uri;\n pok = pp\n return true\n }\n\n let i\n const hash = p.lastIndexOf('#')\n if (hash >= 0) p = p.slice(hash - 1) // lop off localid\n // eslint-disable-next-line no-unreachable-loop\n for (;;) {\n const slash = p.lastIndexOf('/')\n if (slash >= 0) p = p.slice(slash + 1)\n i = 0\n while (i < p.length) {\n if (this.prefixchars.indexOf(p[i])) i++\n else break\n }\n p = p.slice(0, i)\n if (p.length < 6 && canUse(p)) return pok // exact i sbest\n if (canUse(p.slice(0, 3))) return pok\n if (canUse(p.slice(0, 2))) return pok\n if (canUse(p.slice(0, 4))) return pok\n if (canUse(p.slice(0, 1))) return pok\n if (canUse(p.slice(0, 5))) return pok\n for (i = 0; ; i++) if (canUse(p.slice(0, 3) + i)) return pok\n }\n}\n\n// Short name for an ontology\nfunction ontologyLabel (term) {\n if (term.uri === undefined) return '??'\n let s = term.uri\n const namespaces = []\n let i = s.lastIndexOf('#')\n let part\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n s = s.slice(0, i + 1)\n } else {\n return term.uri + '?!' // strange should have # or /\n }\n }\n for (const ns in UI.ns) {\n namespaces[UI.ns[ns]] = ns // reverse index\n }\n try {\n return namespaces[s]\n } catch (e) {}\n\n s = s.slice(0, -1) // Chop off delimiter ... now have just\n\n while (s) {\n i = s.lastIndexOf('/')\n if (i >= 0) {\n part = s.slice(i + 1)\n s = s.slice(0, i)\n if (part !== 'ns' && '0123456789'.indexOf(part[0]) < 0) {\n return part\n }\n } else {\n return term.uri + '!?' // strange should have a nice part\n }\n }\n}\n\nfunction labelWithOntology (x, initialCap) {\n const t = store.findTypeURIs(x)\n if (t[UI.ns.rdf('Predicate').uri] || t[UI.ns.rdfs('Class').uri]) {\n return label(x, initialCap) + ' (' + ontologyLabel(x) + ')'\n }\n return label(x, initialCap)\n}\n\nfunction escapeForXML (str) {\n return str.replace(/&/g, '&amp;').replace(/</g, '&lt;')\n}\n\n// As above but escaped for XML and chopped of contains a slash\nfunction labelForXML (x) {\n return escapeForXML(label(x))\n}\n\nfunction predicateLabelForXML (p, inverse) {\n return escapeForXML(predicateLabel(p, inverse))\n}\n// As above but for predicate, possibly inverse\nfunction predicateLabel (p, inverse) {\n const lab = label(p)\n if (inverse) {\n // If we know an inverse predicate, use its label\n const ip = store.any(p, UI.ns.owl('inverseOf')) || store.any(undefined, UI.ns.owl('inverseOf'), p)\n if (ip) return label(ip)\n if (lab === 'type') return '...' // Not \"is type of\"\n return 'is ' + lab + ' of'\n }\n return lab\n}\n\n// Not a method. For use in sorts\nfunction RDFComparePredicateObject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.object.compareTerm(other.object)\n}\n\nfunction RDFComparePredicateSubject (self, other) {\n const x = self.predicate.compareTerm(other.predicate)\n if (x !== 0) return x\n return self.subject.compareTerm(other.subject)\n}\n// ends\n\nfunction predParentOf (node) {\n let n = node\n while (true) {\n if (n.getAttribute('predTR')) {\n return n\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else {\n UI.log.error('Could not find predParent')\n return node\n }\n }\n}\n\n// makeQueryRow moved to outline mode\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AAA+B;AAAA;AAT/B;AACA;AACA;AACA;AACA;;AAI8B;;AAG9B,IAAMA,EAAE,GAAG;EAAEC,GAAG,EAAHA,GAAG;EAAEC,EAAE,EAAFA,EAAE;EAAEC,GAAG,EAAHA;AAAI,CAAC;AAkC3B,IAAIC,YAAY,GAAG,CAAC;AAEpB,SAASC,eAAe,GAAI;EAC1B,OAAO,GAAG,GAAGD,YAAY,EAAE;AAC7B;AAEA,SAASE,kBAAkB,GAAI;EAC7BF,YAAY,GAAG,CAAC;AAClB;;AAEA;AACA;;AAEA,IAAIG,YAAY;AAEhB,IAAI,OAAOC,YAAY,KAAK,WAAW,EAAE;EACvCD,YAAY,GAAGC,YAAY;AAC7B,CAAC,MAAM,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;EACxCF,YAAY,GAAGE,MAAM,CAACD,YAAY,IAAIC,MAAM,CAACC,kBAAkB;AACjE;AAEA,SAASC,IAAI,GAAI;EACf,IAAI,CAACJ,YAAY,EAAE;IACjB;EACF,CAAC,CAAC;;EAEF,IAAMK,YAAY,GAAGL,YAAY;EACjC,IAAMM,GAAG,GAAG,IAAID,YAAY,EAAE;EAE9B,OAAO,UAAUE,QAAQ,EAAEC,SAAS,EAAEC,IAAI,EAAEC,gBAAgB,EAAE;IAC5DH,QAAQ,GAAG,EAAEA,QAAQ,IAAI,GAAG,CAAC;;IAE7B;IACAE,IAAI,GAAGA,IAAI,IAAI,MAAM,EAAC;;IAEtB,IAAI,OAAOC,gBAAgB,KAAK,UAAU,EAAE;MAC1CA,gBAAgB,GAAG,4BAAY,CAAC,CAAC;IACnC;IAEA,IAAMC,GAAG,GAAGL,GAAG,CAACM,gBAAgB,EAAE;IAElCD,GAAG,CAACF,IAAI,GAAGA,IAAI;IACfE,GAAG,CAACH,SAAS,CAACK,KAAK,GAAGL,SAAS,IAAI,GAAG;IAEtCG,GAAG,CAACG,OAAO,CAACR,GAAG,CAACS,WAAW,CAAC;IAC5BJ,GAAG,CAACK,KAAK,CAAC,CAAC,CAAC;IACZL,GAAG,CAACM,IAAI,CAACV,QAAQ,CAAC;EACpB,CAAC;AACH;;AAEA;AACA;AACA,SAASW,SAAS,CAAEC,GAAG,EAAE;EACvBA,GAAG,GAAGA,GAAG,CAACC,GAAG,IAAID,GAAG;EACpB,IAAME,IAAI,GAAG,SAAPA,IAAI,CAAaC,CAAC,EAAE;IACxB,OAAOA,CAAC,CAACC,KAAK,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,UAAUC,CAAC,EAAEC,CAAC,EAAE;MACxCD,CAAC,GAAG,CAACA,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAGC,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC;MAClC,OAAOF,CAAC,GAAGA,CAAC;IACd,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EACD,OAAO,GAAG,GAAG,CAAEJ,IAAI,CAACF,GAAG,CAAC,GAAG,QAAQ,GAAI,QAAQ,EAAES,QAAQ,CAAC,EAAE,CAAC,EAAC;AAChE;;AAEA,SAASC,OAAO,GAAI;EAClB;EACA,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC1E,IAAMC,CAAC,GAAIC,IAAI,CAACC,MAAM,EAAE,GAAG,EAAE,GAAI,CAAC;IAClC,IAAMC,CAAC,GAAGJ,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG;IACzC,OAAOG,CAAC,CAACP,QAAQ,CAAC,EAAE,CAAC;EACvB,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,gBAAgB,CAAEC,KAAK,EAAEC,MAAM,EAAEC,YAAY,EAAE;EACtD,IAAIC,QAAQ;EACZ,IAAIC,GAAG;EACP,IAAIC,CAAC;EAEL,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;IAC1CD,GAAG,GAAGJ,KAAK,CAACM,QAAQ,CAACD,CAAC,CAAC;IACvBD,GAAG,CAACI,OAAO,GAAG,IAAI;EACpB;EAEA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,MAAM,CAACM,MAAM,EAAEE,CAAC,EAAE,EAAE;IACtC,IAAMC,KAAK,GAAGT,MAAM,CAACQ,CAAC,CAAC;IACvBN,QAAQ,GAAG,KAAK;IAEhB,KAAKE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;MAC1CD,GAAG,GAAGJ,KAAK,CAACM,QAAQ,CAACD,CAAC,CAAC;MACvB,IAAID,GAAG,CAACO,OAAO,IAAIP,GAAG,CAACO,OAAO,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE;QAC9CN,GAAG,CAACI,OAAO,GAAG,KAAK;QACnBL,QAAQ,GAAG,IAAI;QACf;MACF;IACF;IACA,IAAI,CAACA,QAAQ,EAAE;MACb,IAAMU,MAAM,GAAGX,YAAY,CAACQ,KAAK,CAAC;MAClC;MACA,IAAID,CAAC,IAAIT,KAAK,CAACM,QAAQ,CAACC,MAAM,EAAE;QAC9BP,KAAK,CAACc,WAAW,CAACD,MAAM,CAAC;MAC3B,CAAC,MAAM;QACL,IAAME,GAAG,GAAGf,KAAK,CAACM,QAAQ,CAACG,CAAC,CAAC;QAC7BT,KAAK,CAACgB,YAAY,CAACH,MAAM,EAAEE,GAAG,CAAC;MACjC;MACAF,MAAM,CAACF,OAAO,GAAGD,KAAK;IACxB,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF,KAAKL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;IAC1CD,GAAG,GAAGJ,KAAK,CAACM,QAAQ,CAACD,CAAC,CAAC;IACvB,IAAID,GAAG,CAACI,OAAO,EAAE;MACfR,KAAK,CAACiB,WAAW,CAACb,GAAG,CAAC;IACxB;EACF;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASc,yBAAyB,CAAElB,KAAK,EAAEC,MAAM,EAAEC,YAAY,EAAE;EAC/D,IAAMiB,UAAU,GAAG,CAAC,CAAC;EAErB,KAAK,IAAId,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;IAC9C,IAAMD,GAAG,GAAGJ,KAAK,CAACM,QAAQ,CAACD,CAAC,CAAC;IAC7Bc,UAAU,CAACf,GAAG,CAACO,OAAO,CAACS,IAAI,EAAE,CAAC,GAAGhB,GAAG,EAAC;EACvC;;EAEA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,MAAM,CAACM,MAAM,EAAEE,CAAC,EAAE,EAAE;IACtC,IAAMC,KAAK,GAAGT,MAAM,CAACQ,CAAC,CAAC;IACvB,IAAIA,CAAC,IAAIT,KAAK,CAACM,QAAQ,CAACC,MAAM,EAAE;MAAE;MAChC,IAAMM,MAAM,GAAGX,YAAY,CAACQ,KAAK,CAAC;MAClCG,MAAM,CAACF,OAAO,GAAGD,KAAK;MACtBV,KAAK,CAACc,WAAW,CAACD,MAAM,CAAC;IAC3B,CAAC,MAAM;MACL,IAAMT,IAAG,GAAGJ,KAAK,CAACM,QAAQ,CAACG,CAAC,CAAC;MAC7B,IAAIL,IAAG,CAACO,OAAO,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE;QAC/B;MAAA,CACD,MAAM;QACL,IAAMW,WAAW,GAAGF,UAAU,CAACT,KAAK,CAACU,IAAI,EAAE,CAAC;QAC5C,IAAIC,WAAW,EAAE;UACfrB,KAAK,CAACiB,WAAW,CAACI,WAAW,CAAC;UAC9BrB,KAAK,CAACgB,YAAY,CAACK,WAAW,EAAEjB,IAAG,CAAC,EAAC;QACvC,CAAC,MAAM;UACL,IAAMS,OAAM,GAAGX,YAAY,CAACQ,KAAK,CAAC;UAClCN,IAAG,CAACkB,MAAM,CAACT,OAAM,CAAC,EAAC;UACnBA,OAAM,CAACF,OAAO,GAAGD,KAAK;QACxB;MACF;IACF;EACF,CAAC,CAAC;EACF;EACA,OAAOV,KAAK,CAACM,QAAQ,CAACC,MAAM,GAAGN,MAAM,CAACM,MAAM,EAAE;IAC5CP,KAAK,CAACiB,WAAW,CAACjB,KAAK,CAACM,QAAQ,CAACN,KAAK,CAACM,QAAQ,CAACC,MAAM,GAAG,CAAC,CAAC,CAAC;EAC9D;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,SAASgB,WAAW,CAAEC,CAAC,EAAE;EACvB,IAAIC,GAAG,GAAG,EAAE,GAAGD,CAAC,GAAG,IAAI;EACvB,IAAInB,CAAC;EACL,IAAI,CAACmB,CAAC,CAACE,KAAK,EAAE;IACZ,OAAOD,GAAG,GAAG,uBAAuB;EACtC;EACA,IAAME,KAAK,GAAGH,CAAC,CAACE,KAAK,CAACnC,QAAQ,EAAE,CAACL,KAAK,CAAC,IAAI,CAAC;EAC5C,IAAM0C,OAAO,GAAG,EAAE;EAClB,KAAKvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,KAAK,CAACpB,MAAM,EAAEF,CAAC,EAAE,EAAE;IACjC,IAAIwB,IAAI,GAAGF,KAAK,CAACtB,CAAC,CAAC;IACnB,IAAIwB,IAAI,CAACC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;MACpC;MACA;IACF;IACA,IAAID,IAAI,CAACE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MAC1BF,IAAI,GAAG,UAAU,GAAGA,IAAI;IAC1B;IACA,IAAMG,MAAM,GAAGH,IAAI,CAAC3C,KAAK,CAAC,GAAG,CAAC;IAC9B0C,OAAO,CAACK,IAAI,CAACD,MAAM,CAAC;EACtB;EACA;;EAEA,KAAK3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuB,OAAO,CAACrB,MAAM,EAAEF,CAAC,EAAE,EAAE;IACnCoB,GAAG,IAAI,IAAI,GAAGG,OAAO,CAACvB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAGuB,OAAO,CAACvB,CAAC,CAAC,CAAC,CAAC,CAAC;EACxD;EACA,OAAOoB,GAAG;AACZ;AAEA,SAASS,SAAS,CAAEC,IAAI,EAAE;EACxB,IAAMC,KAAK,GAAGD,IAAI,CAACE,UAAU;EAC7B,IAAMC,GAAG,GAAGF,KAAK,CAAC7B,MAAM;EACxB,KAAK,IAAIF,CAAC,GAAGiC,GAAG,GAAG,CAAC,EAAEjC,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE;IAAE8B,IAAI,CAAClB,WAAW,CAACmB,KAAK,CAAC/B,CAAC,CAAC,CAAC;EAAA;EAC7D,OAAO8B,IAAI;AACb;AAEA,SAASI,SAAS,CAAEf,CAAC,EAAE;EACrB,IAAIgB,MAAM;EACVhB,CAAC,GAAGA,CAAC,IAAI3D,MAAM,CAAC4E,KAAK;EACrB,IAAIjB,CAAC,CAACgB,MAAM,EAAEA,MAAM,GAAGhB,CAAC,CAACgB,MAAM,MAC1B,IAAIhB,CAAC,CAACkB,UAAU,EAAEF,MAAM,GAAGhB,CAAC,CAACkB,UAAU;EAC5C,IAAIF,MAAM,CAACG,QAAQ,KAAK,CAAC,EAAE;IACzB;IACAH,MAAM,GAAGA,MAAM,CAACI,UAAU;EAC5B;EACA;EACA,OAAOJ,MAAM;AACf;AAEA,SAASK,QAAQ,CAAEL,MAAM,EAAEM,OAAO,EAAE;EAClC,IAAIC,KAAK;EACT,KAAKA,KAAK,GAAGP,MAAM,EAAEO,KAAK,EAAEA,KAAK,GAAGA,KAAK,CAACH,UAAU,EAAE;IACpD;IACA,IAAI;MACF,IAAIG,KAAK,CAACD,OAAO,KAAKA,OAAO,EAAE,OAAOC,KAAK;IAC7C,CAAC,CAAC,OAAOvB,CAAC,EAAE;MACV;MACA,OAAOwB,SAAS;IAClB;EACF;EACA,OAAOA,SAAS;AAClB;AAEA,SAASC,QAAQ,CAAEC,EAAE,EAAEV,MAAM,EAAE;EAC7B,IAAIO,KAAK,EAAEI,EAAE;EACb,KACEJ,KAAK,GAAGP,MAAM,EACdO,KAAK,IAAIA,KAAK,CAACJ,QAAQ,KAAK,CAAC,EAC7BI,KAAK,GAAGA,KAAK,CAACH,UAAU,EACxB;IACA;IACAO,EAAE,GAAGJ,KAAK,CAACK,YAAY,CAAC,OAAO,CAAC;IAChC,IAAID,EAAE,EAAE;MACN;MACA,OAAOD,EAAE,CAACG,MAAM,CAACF,EAAE,CAAC;MACpB;MACA;IACF;EACF;;EACA/F,EAAE,CAACC,GAAG,CAACiG,KAAK,CAAC,0BAA0B,CAAC;EACxC,OAAON,SAAS;AAClB;AAEA,SAASO,OAAO,CAAEf,MAAM,EAAE;EACxB,IAAMgB,WAAW,GAAGhB,MAAM,CAACI,UAAU;EACrC,IAAMa,EAAE,GAAGD,WAAW,GAAGA,WAAW,CAACE,cAAc,GAAGV,SAAS;EAE/D,IAAMW,SAAS,GAAGF,EAAE,GAAGjB,MAAM,CAACmB,SAAS,GAAG,EAAE,EAAC;EAC7C,QAAQA,SAAS;IACf,KAAK,MAAM;IACX,KAAK,eAAe;MAClB,OAAOF,EAAE,CAACG,SAAS;IACrB,KAAK,KAAK;IACV,KAAK,cAAc;MACjB,IAAI,CAACJ,WAAW,CAACK,YAAY,EAAE;QAC7B,OAAOJ,EAAE,CAACK,MAAM;MAClB,CAAC,MAAM;QACL,OAAOL,EAAE,CAAC9C,OAAO;MACnB;IACF,KAAK,EAAE;IACP,KAAK,UAAU;MAAE;MACf,OAAOsC,QAAQ,CAACc,iBAAK,EAAEvB,MAAM,CAAC;IAAC;IACjC,KAAK,uBAAuB;MAC1B,OAAOA,MAAM,CAACwB,WAAW,GACrBP,EAAE,CAACG,SAAS,GACZ,CAACJ,WAAW,CAACK,YAAY,GACrBJ,EAAE,CAACK,MAAM,GACTL,EAAE,CAAC9C,OAAO;EAAA;AAExB;AAEA,SAASsD,OAAO,CAAEC,QAAQ,EAAEC,OAAO,EAAE;EACnC,IAAMC,GAAG,GAAGF,QAAQ,CAACG,aAAa,CAAC,QAAQ,CAAC;EAC5CD,GAAG,CAACE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC;EAC3CF,GAAG,CAACE,YAAY,CAAC,KAAK,EAAEH,OAAO,CAAC;EAChC;EACA;EACA,OAAOC,GAAG;AACZ;AAEA,SAASG,YAAY,CAAEC,IAAI,EAAE;EAC3B,IAAMC,SAAS,GAAG5G,MAAM,CAAC6G,MAAM;EAC/B,IAAI,OAAO7G,MAAM,CAAC6G,MAAM,KAAK,UAAU,EAAE;IACvC7G,MAAM,CAAC6G,MAAM,GAAGF,IAAI;EACtB,CAAC,MAAM;IACL3G,MAAM,CAAC6G,MAAM,GAAG,YAAY;MAC1BD,SAAS,EAAE;MACXD,IAAI,EAAE;IACR,CAAC;EACH;AACF,CAAC,CAAC;;AAEF;AACA,SAASG,OAAO,CAAEC,GAAG,EAAE;EACrB;EACA,IAAMC,UAAU,GAAGD,GAAG,CAACE,aAAa;EACpC,IAAMC,MAAM,GAAGF,UAAU,CAACG,eAAe,CAACC,qBAAqB,EAAE;EACjE,IAAMC,GAAG,GAAGN,GAAG,CAACK,qBAAqB,EAAE;EACvC,OAAO,CAACC,GAAG,CAACC,IAAI,GAAGJ,MAAM,CAACI,IAAI,EAAED,GAAG,CAACE,GAAG,GAAGL,MAAM,CAACK,GAAG,CAAC;AACvD;AAEA,SAASC,WAAW,CAAEC,OAAO,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAE;EAC5D,IAAI,CAACA,QAAQ,EAAEA,QAAQ,GAAG5H,MAAM;EAChC,IAAM6H,WAAW,GAAGf,OAAO,CAACW,OAAO,CAAC,CAAC,CAAC,CAAC;EACvC,IAAMK,UAAU,GAAG9H,MAAM,CAAC+H,eAAe,IAAI,CAAC,CAAC;EAC/C,IAAMC,UAAU,GAAIF,UAAU,IAAIA,UAAU,CAACG,MAAM,IAAK,EAAE,EAAC;EAC3D,IAAMC,WAAW,GAAGL,WAAW,GAAGG,UAAU,GAAGJ,QAAQ,CAACO,OAAO;EAE/D,IAAIT,SAAS,EAAE;IACb,IAAIC,QAAQ,EAAE;MACZC,QAAQ,CAACQ,QAAQ,CACf,CAAC,EACDP,WAAW,GACXJ,OAAO,CAACY,YAAY,IACnBT,QAAQ,CAACO,OAAO,GAAGP,QAAQ,CAACU,WAAW,CAAC,CAC1C;MACD;IACF;IACAV,QAAQ,CAACQ,QAAQ,CAAC,CAAC,EAAEF,WAAW,CAAC;IACjC;EACF;EACA,IAAMK,EAAE,GAAGX,QAAQ,CAACY,WAAW,CAACC,YAAY,EAAE,EAAE,CAAC;EACjD,IAAIC,KAAK,GAAG,CAAC;EACb,SAASD,YAAY,GAAI;IACvBb,QAAQ,CAACQ,QAAQ,CAAC,CAAC,EAAEF,WAAW,GAAG,EAAE,CAAC;IACtCQ,KAAK,EAAE;IACP,IAAIA,KAAK,KAAK,EAAE,EAAE;MAChBd,QAAQ,CAACe,aAAa,CAACJ,EAAE,CAAC;IAC5B;EACF;AACF;AAEA,SAASK,SAAS,CAAEC,GAAG,EAAEC,GAAG,EAAEC,EAAE,EAAEC,GAAG,EAAE;EACrC,IAAI,CAACA,GAAG,EAAE;IACRA,GAAG,GAAG3C,QAAQ;EAChB;EACA,IAAM4C,KAAK,GAAGD,GAAG,CAACxC,aAAa,CAAC,KAAK,CAAC;EACtCyC,KAAK,CAACxC,YAAY,CAAC,KAAK,EAAEoC,GAAG,CAAC;EAC9BI,KAAK,CAACC,gBAAgB,CAAC,MAAM,EAAE,UAAUvF,CAAC,EAAE;IAC1CA,CAAC,CAACwF,aAAa,CAACC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;IACzCzF,CAAC,CAACwF,aAAa,CAACC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IACxCzF,CAAC,CAAC0F,cAAc,EAAE,EAAC;EACrB,CAAC,CAAC;EACF;EACA;EACA,IAAI,OAAON,EAAE,KAAK,WAAW,EAAE;IAC7BE,KAAK,CAACxC,YAAY,CAAC,OAAO,EAAEsC,EAAE,CAAC;EACjC;EACA,OAAOE,KAAK;AACd;;AAEA;;AAEA,SAASK,SAAS,CAAEpI,GAAG,EAAE;EACvB,IAAIqI,CAAC,GAAGrI,GAAG;EACX,IAAI,IAAI,CAAC+C,OAAO,CAACsF,CAAC,CAACA,CAAC,CAAC7G,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE6G,CAAC,GAAGA,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC1D,IAAMC,UAAU,GAAG,EAAE;EACrB,KAAK,IAAMhK,GAAE,IAAI,IAAI,CAACiK,QAAQ,EAAE;IAC9BD,UAAU,CAAC,IAAI,CAACC,QAAQ,CAACjK,GAAE,CAAC,CAAC,GAAGA,GAAE,EAAC;EACrC;;EACA,IAAIkK,GAAG;EACP,IAAMC,MAAM,GAAG,SAASA,MAAM,CAAEC,EAAE,EAAE;IAClC;IACA,IAAIA,EAAE,KAAK,IAAI,EAAE,OAAO,KAAK,EAAC;IAC9B;IACA;IACA;IACAF,GAAG,GAAGE,EAAE;IACR,OAAO,IAAI;EACb,CAAC;EAED,IAAIrH,CAAC;EACL,IAAMrB,IAAI,GAAGoI,CAAC,CAACO,WAAW,CAAC,GAAG,CAAC;EAC/B,IAAI3I,IAAI,IAAI,CAAC,EAAEoI,CAAC,GAAGA,CAAC,CAACC,KAAK,CAACrI,IAAI,GAAG,CAAC,CAAC,EAAC;EACrC;EACA,SAAS;IACP,IAAM4I,KAAK,GAAGR,CAAC,CAACO,WAAW,CAAC,GAAG,CAAC;IAChC,IAAIC,KAAK,IAAI,CAAC,EAAER,CAAC,GAAGA,CAAC,CAACC,KAAK,CAACO,KAAK,GAAG,CAAC,CAAC;IACtCvH,CAAC,GAAG,CAAC;IACL,OAAOA,CAAC,GAAG+G,CAAC,CAAC7G,MAAM,EAAE;MACnB,IAAI,IAAI,CAACsH,WAAW,CAAC/F,OAAO,CAACsF,CAAC,CAAC/G,CAAC,CAAC,CAAC,EAAEA,CAAC,EAAE,MAClC;IACP;IACA+G,CAAC,GAAGA,CAAC,CAACC,KAAK,CAAC,CAAC,EAAEhH,CAAC,CAAC;IACjB,IAAI+G,CAAC,CAAC7G,MAAM,GAAG,CAAC,IAAIkH,MAAM,CAACL,CAAC,CAAC,EAAE,OAAOI,GAAG,EAAC;IAC1C,IAAIC,MAAM,CAACL,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAOG,GAAG;IACrC,IAAIC,MAAM,CAACL,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAOG,GAAG;IACrC,IAAIC,MAAM,CAACL,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAOG,GAAG;IACrC,IAAIC,MAAM,CAACL,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAOG,GAAG;IACrC,IAAIC,MAAM,CAACL,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAOG,GAAG;IACrC,KAAKnH,CAAC,GAAG,CAAC,GAAIA,CAAC,EAAE;MAAE,IAAIoH,MAAM,CAACL,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGhH,CAAC,CAAC,EAAE,OAAOmH,GAAG;IAAA;EAC9D;AACF;;AAEA;AACA,SAASM,aAAa,CAAEC,IAAI,EAAE;EAC5B,IAAIA,IAAI,CAAChJ,GAAG,KAAKiE,SAAS,EAAE,OAAO,IAAI;EACvC,IAAIgF,CAAC,GAAGD,IAAI,CAAChJ,GAAG;EAChB,IAAMuI,UAAU,GAAG,EAAE;EACrB,IAAIjH,CAAC,GAAG2H,CAAC,CAACL,WAAW,CAAC,GAAG,CAAC;EAC1B,IAAIM,IAAI;EACR,IAAI5H,CAAC,IAAI,CAAC,EAAE;IACV2H,CAAC,GAAGA,CAAC,CAACX,KAAK,CAAC,CAAC,EAAEhH,CAAC,GAAG,CAAC,CAAC;EACvB,CAAC,MAAM;IACLA,CAAC,GAAG2H,CAAC,CAACL,WAAW,CAAC,GAAG,CAAC;IACtB,IAAItH,CAAC,IAAI,CAAC,EAAE;MACV2H,CAAC,GAAGA,CAAC,CAACX,KAAK,CAAC,CAAC,EAAEhH,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,MAAM;MACL,OAAO0H,IAAI,CAAChJ,GAAG,GAAG,IAAI,EAAC;IACzB;EACF;;EACA,KAAK,IAAMzB,IAAE,IAAIF,EAAE,CAACE,EAAE,EAAE;IACtBgK,UAAU,CAAClK,EAAE,CAACE,EAAE,CAACA,IAAE,CAAC,CAAC,GAAGA,IAAE,EAAC;EAC7B;;EACA,IAAI;IACF,OAAOgK,UAAU,CAACU,CAAC,CAAC;EACtB,CAAC,CAAC,OAAOxG,CAAC,EAAE,CAAC;EAEbwG,CAAC,GAAGA,CAAC,CAACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC;;EAEnB,OAAOW,CAAC,EAAE;IACR3H,CAAC,GAAG2H,CAAC,CAACL,WAAW,CAAC,GAAG,CAAC;IACtB,IAAItH,CAAC,IAAI,CAAC,EAAE;MACV4H,IAAI,GAAGD,CAAC,CAACX,KAAK,CAAChH,CAAC,GAAG,CAAC,CAAC;MACrB2H,CAAC,GAAGA,CAAC,CAACX,KAAK,CAAC,CAAC,EAAEhH,CAAC,CAAC;MACjB,IAAI4H,IAAI,KAAK,IAAI,IAAI,YAAY,CAACnG,OAAO,CAACmG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACtD,OAAOA,IAAI;MACb;IACF,CAAC,MAAM;MACL,OAAOF,IAAI,CAAChJ,GAAG,GAAG,IAAI,EAAC;IACzB;EACF;AACF;;AAEA,SAASmJ,iBAAiB,CAAEjJ,CAAC,EAAEkJ,UAAU,EAAE;EACzC,IAAMC,CAAC,GAAGrE,iBAAK,CAACsE,YAAY,CAACpJ,CAAC,CAAC;EAC/B,IAAImJ,CAAC,CAAChL,EAAE,CAACE,EAAE,CAACC,GAAG,CAAC,WAAW,CAAC,CAACwB,GAAG,CAAC,IAAIqJ,CAAC,CAAChL,EAAE,CAACE,EAAE,CAACgL,IAAI,CAAC,OAAO,CAAC,CAACvJ,GAAG,CAAC,EAAE;IAC/D,OAAO,IAAAwJ,YAAK,EAACtJ,CAAC,EAAEkJ,UAAU,CAAC,GAAG,IAAI,GAAGL,aAAa,CAAC7I,CAAC,CAAC,GAAG,GAAG;EAC7D;EACA,OAAO,IAAAsJ,YAAK,EAACtJ,CAAC,EAAEkJ,UAAU,CAAC;AAC7B;AAEA,SAASK,YAAY,CAAE/G,GAAG,EAAE;EAC1B,OAAOA,GAAG,CAAChC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AACzD;;AAEA;AACA,SAASgJ,WAAW,CAAExJ,CAAC,EAAE;EACvB,OAAOuJ,YAAY,CAAC,IAAAD,YAAK,EAACtJ,CAAC,CAAC,CAAC;AAC/B;AAEA,SAASyJ,oBAAoB,CAAEtB,CAAC,EAAEuB,OAAO,EAAE;EACzC,OAAOH,YAAY,CAACI,cAAc,CAACxB,CAAC,EAAEuB,OAAO,CAAC,CAAC;AACjD;AACA;AACA,SAASC,cAAc,CAAExB,CAAC,EAAEuB,OAAO,EAAE;EACnC,IAAME,GAAG,GAAG,IAAAN,YAAK,EAACnB,CAAC,CAAC;EACpB,IAAIuB,OAAO,EAAE;IACX;IACA,IAAMG,EAAE,GAAG/E,iBAAK,CAACgF,GAAG,CAAC3B,CAAC,EAAEhK,EAAE,CAACE,EAAE,CAAC0L,GAAG,CAAC,WAAW,CAAC,CAAC,IAAIjF,iBAAK,CAACgF,GAAG,CAAC/F,SAAS,EAAE5F,EAAE,CAACE,EAAE,CAAC0L,GAAG,CAAC,WAAW,CAAC,EAAE5B,CAAC,CAAC;IAClG,IAAI0B,EAAE,EAAE,OAAO,IAAAP,YAAK,EAACO,EAAE,CAAC;IACxB,IAAID,GAAG,KAAK,MAAM,EAAE,OAAO,KAAK,EAAC;IACjC,OAAO,KAAK,GAAGA,GAAG,GAAG,KAAK;EAC5B;EACA,OAAOA,GAAG;AACZ;;AAEA;AACA,SAASI,yBAAyB,CAAEC,IAAI,EAAEC,KAAK,EAAE;EAC/C,IAAMlK,CAAC,GAAGiK,IAAI,CAACtF,SAAS,CAACwF,WAAW,CAACD,KAAK,CAACvF,SAAS,CAAC;EACrD,IAAI3E,CAAC,KAAK,CAAC,EAAE,OAAOA,CAAC;EACrB,OAAOiK,IAAI,CAACpF,MAAM,CAACsF,WAAW,CAACD,KAAK,CAACrF,MAAM,CAAC;AAC9C;AAEA,SAASuF,0BAA0B,CAAEH,IAAI,EAAEC,KAAK,EAAE;EAChD,IAAMlK,CAAC,GAAGiK,IAAI,CAACtF,SAAS,CAACwF,WAAW,CAACD,KAAK,CAACvF,SAAS,CAAC;EACrD,IAAI3E,CAAC,KAAK,CAAC,EAAE,OAAOA,CAAC;EACrB,OAAOiK,IAAI,CAACvI,OAAO,CAACyI,WAAW,CAACD,KAAK,CAACxI,OAAO,CAAC;AAChD;AACA;;AAEA,SAAS2I,YAAY,CAAEnH,IAAI,EAAE;EAC3B,IAAIoH,CAAC,GAAGpH,IAAI;EACZ,OAAO,IAAI,EAAE;IACX,IAAIoH,CAAC,CAACnG,YAAY,CAAC,QAAQ,CAAC,EAAE;MAC5B,OAAOmG,CAAC;IACV,CAAC,MAAM,IAAIA,CAAC,CAACC,eAAe,IAAID,CAAC,CAACC,eAAe,CAACC,QAAQ,KAAK,IAAI,EAAE;MACnEF,CAAC,GAAGA,CAAC,CAACC,eAAe;IACvB,CAAC,MAAM;MACLpM,EAAE,CAACC,GAAG,CAACqM,KAAK,CAAC,2BAA2B,CAAC;MACzC,OAAOvH,IAAI;IACb;EACF;AACF;;AAEA"}
@@ -1,125 +1,104 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.label = label;
9
-
10
8
  var log = _interopRequireWildcard(require("../log"));
11
-
12
9
  var _solidLogic = require("solid-logic");
13
-
14
10
  var ns = _interopRequireWildcard(require("../ns"));
15
-
16
11
  var rdf = _interopRequireWildcard(require("rdflib"));
17
-
18
12
  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); }
19
-
20
13
  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; }
21
-
22
14
  // pull in first avoid cross-refs
15
+
23
16
  var UI = {
24
17
  log: log,
25
18
  ns: ns,
26
19
  rdf: rdf
27
- }; // This ubiquitous function returns the best label for a thing
20
+ };
21
+
22
+ // This ubiquitous function returns the best label for a thing
28
23
  //
29
24
  // The hacks in this code make a major difference to the usability
30
-
31
25
  function label(thing) {
32
26
  var initialCap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
33
-
34
27
  function doCap(label) {
35
28
  if (initialCap) {
36
29
  return label.slice(0, 1).toUpperCase() + label.slice(1);
37
30
  }
38
-
39
31
  return label;
40
32
  }
41
-
42
33
  function cleanUp(label) {
43
34
  var result = '';
44
35
  if (label.slice(-1) === '/') label = label.slice(0, -1); // chop trailing slash
45
-
46
36
  for (var i = 0; i < label.length; i++) {
47
37
  if (label[i] === '_' || label[i] === '-') {
48
38
  result += ' ';
49
39
  continue;
50
40
  }
51
-
52
41
  result += label[i];
53
-
54
42
  if (i + 1 < label.length && label[i].toUpperCase() !== label[i] && label[i + 1].toLowerCase() !== label[i + 1]) {
55
43
  result += ' ';
56
44
  }
57
45
  }
58
-
59
46
  if (result.slice(0, 4) === 'has ') result = result.slice(4);
60
47
  return doCap(result);
61
48
  }
62
-
63
49
  var label = getWellKnownLabel(thing);
64
-
65
50
  if (label) {
66
51
  return doCap(label.value);
67
- } // Default to label just generated from the URI
52
+ }
68
53
 
54
+ // Default to label just generated from the URI
69
55
 
70
56
  if (thing.termType === 'BlankNode') {
71
57
  return '...';
72
58
  }
73
-
74
59
  if (thing.termType === 'Collection') {
75
60
  return '(' + thing.elements.length + ')';
76
61
  }
77
-
78
62
  var s = thing.uri;
79
63
  if (typeof s === 'undefined') return thing.toString(); // can't be a symbol
80
64
  // s = decodeURI(s) // This can crash is random valid @ signs are presentation
81
65
  // The idea was to clean up eg URIs encoded in query strings
82
66
  // Also encoded character in what was filenames like @ [] {}
83
-
84
67
  try {
85
68
  s = s.split('/').map(decodeURIComponent).join('/'); // If it is properly encoded
86
69
  } catch (e) {
87
70
  // try individual decoding of ASCII code points
88
71
  for (var i = s.length - 3; i > 0; i--) {
89
72
  var hex = '0123456789abcefABCDEF'; // The while upacks multiple layers of encoding
90
-
91
73
  while (s[i] === '%' && hex.indexOf(s[i + 1]) >= 0 && hex.indexOf(s[i + 2]) >= 0) {
92
74
  s = s.slice(0, i) + String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) + s.slice(i + 3);
93
75
  }
94
76
  }
95
77
  }
96
-
97
78
  s = slice(s, '/profile/card#me');
98
79
  s = slice(s, '#this');
99
80
  s = slice(s, '#me');
100
81
  var hash = s.indexOf('#');
101
- if (hash >= 0) return cleanUp(s.slice(hash + 1)); // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels
82
+ if (hash >= 0) return cleanUp(s.slice(hash + 1));
102
83
 
84
+ // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels
103
85
  var slash = s.lastIndexOf('/', s.length - 2); // (len-2) excludes trailing slash
104
-
105
86
  if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1));
106
87
  return doCap(decodeURIComponent(thing.uri));
107
88
  }
108
-
109
89
  function slice(s, suffix) {
110
90
  var length = suffix.length * -1;
111
-
112
91
  if (s.slice(length) === suffix) {
113
92
  return s.slice(0, length);
114
93
  }
115
-
116
94
  return s;
117
- } // Hard coded known label predicates
118
- // @@ TBD: Add subproperties of rdfs:label
119
-
95
+ }
120
96
 
97
+ // Hard coded known label predicates
98
+ // @@ TBD: Add subproperties of rdfs:label
121
99
  function getWellKnownLabel(thing) {
122
- return _solidLogic.store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label
100
+ return _solidLogic.store.any(thing, UI.ns.ui('label')) ||
101
+ // Prioritize ui:label
123
102
  _solidLogic.store.any(thing, UI.ns.link('message')) || _solidLogic.store.any(thing, UI.ns.vcard('fn')) || _solidLogic.store.any(thing, UI.ns.foaf('name')) || _solidLogic.store.any(thing, UI.ns.dct('title')) || _solidLogic.store.any(thing, UI.ns.dc('title')) || _solidLogic.store.any(thing, UI.ns.rss('title')) || _solidLogic.store.any(thing, UI.ns.contact('fullName')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2001/04/roadmap/org#name')) || _solidLogic.store.any(thing, UI.ns.cal('summary')) || _solidLogic.store.any(thing, UI.ns.foaf('nick')) || _solidLogic.store.any(thing, UI.ns.as('name')) || _solidLogic.store.any(thing, UI.ns.schema('name')) || _solidLogic.store.any(thing, UI.ns.rdfs('label')) || _solidLogic.store.any(thing, _solidLogic.store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'));
124
103
  }
125
104
  //# sourceMappingURL=label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":["UI","log","ns","rdf","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","store","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs"],"sources":["../../src/utils/label.ts"],"sourcesContent":["import * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label')) ||\n store.any(thing, store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'))\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"label.js","names":["UI","log","ns","rdf","label","thing","initialCap","doCap","slice","toUpperCase","cleanUp","result","i","length","toLowerCase","getWellKnownLabel","value","termType","elements","s","uri","toString","split","map","decodeURIComponent","join","e","hex","indexOf","String","fromCharCode","parseInt","hash","slash","lastIndexOf","suffix","store","any","ui","link","vcard","foaf","dct","dc","rss","contact","sym","cal","as","schema","rdfs"],"sources":["../../src/utils/label.ts"],"sourcesContent":["import * as log from '../log'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\n\nconst UI = { log, ns, rdf }\n\n// This ubiquitous function returns the best label for a thing\n//\n// The hacks in this code make a major difference to the usability\nexport function label (thing, initialCap = false): string {\n function doCap (label: string) {\n if (initialCap) {\n return label.slice(0, 1).toUpperCase() + label.slice(1)\n }\n return label\n }\n function cleanUp (label: string) {\n let result = ''\n if (label.slice(-1) === '/') label = label.slice(0, -1) // chop trailing slash\n for (let i = 0; i < label.length; i++) {\n if (label[i] === '_' || label[i] === '-') {\n result += ' '\n continue\n }\n result += label[i]\n if (\n i + 1 < label.length &&\n label[i].toUpperCase() !== label[i] &&\n label[i + 1].toLowerCase() !== label[i + 1]\n ) {\n result += ' '\n }\n }\n if (result.slice(0, 4) === 'has ') result = result.slice(4)\n return doCap(result)\n }\n\n const label = getWellKnownLabel(thing)\n\n if (label) {\n return doCap(label.value)\n }\n\n // Default to label just generated from the URI\n\n if (thing.termType === 'BlankNode') {\n return '...'\n }\n if (thing.termType === 'Collection') {\n return '(' + thing.elements.length + ')'\n }\n let s = thing.uri\n if (typeof s === 'undefined') return thing.toString() // can't be a symbol\n // s = decodeURI(s) // This can crash is random valid @ signs are presentation\n // The idea was to clean up eg URIs encoded in query strings\n // Also encoded character in what was filenames like @ [] {}\n try {\n s = s\n .split('/')\n .map(decodeURIComponent)\n .join('/') // If it is properly encoded\n } catch (e) {\n // try individual decoding of ASCII code points\n for (let i = s.length - 3; i > 0; i--) {\n const hex = '0123456789abcefABCDEF' // The while upacks multiple layers of encoding\n while (\n s[i] === '%' &&\n hex.indexOf(s[i + 1]) >= 0 &&\n hex.indexOf(s[i + 2]) >= 0\n ) {\n s =\n s.slice(0, i) +\n String.fromCharCode(parseInt(s.slice(i + 1, i + 3), 16)) +\n s.slice(i + 3)\n }\n }\n }\n\n s = slice(s, '/profile/card#me')\n s = slice(s, '#this')\n s = slice(s, '#me')\n\n const hash = s.indexOf('#')\n if (hash >= 0) return cleanUp(s.slice(hash + 1))\n\n // Eh? Why not do this? e.g. dc:title needs it only trim URIs, not rdfs:labels\n const slash = s.lastIndexOf('/', s.length - 2) // (len-2) excludes trailing slash\n if (slash >= 0 && slash < thing.uri.length) return cleanUp(s.slice(slash + 1))\n\n return doCap(decodeURIComponent(thing.uri))\n}\n\nfunction slice (s: string, suffix: string) {\n const length = suffix.length * -1\n if (s.slice(length) === suffix) {\n return s.slice(0, length)\n }\n return s\n}\n\n// Hard coded known label predicates\n// @@ TBD: Add subproperties of rdfs:label\nfunction getWellKnownLabel (thing) {\n return store.any(thing, UI.ns.ui('label')) || // Prioritize ui:label\n store.any(thing, UI.ns.link('message')) ||\n store.any(thing, UI.ns.vcard('fn')) ||\n store.any(thing, UI.ns.foaf('name')) ||\n store.any(thing, UI.ns.dct('title')) ||\n store.any(thing, UI.ns.dc('title')) ||\n store.any(thing, UI.ns.rss('title')) ||\n store.any(thing, UI.ns.contact('fullName')) ||\n store.any(thing, store.sym('http://www.w3.org/2001/04/roadmap/org#name')) ||\n store.any(thing, UI.ns.cal('summary')) ||\n store.any(thing, UI.ns.foaf('nick')) ||\n store.any(thing, UI.ns.as('name')) ||\n store.any(thing, UI.ns.schema('name')) ||\n store.any(thing, UI.ns.rdfs('label')) ||\n store.any(thing, store.sym('http://www.w3.org/2004/02/skos/core#prefLabel'))\n}\n"],"mappings":"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"}
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.versionInfo = void 0;
7
7
  var versionInfo = {
8
- buildTime: '2022-08-29T19:42:38Z',
9
- commit: 'd6a4e62ea0078f3fc6f46ef81e5f9df451281655',
8
+ buildTime: '2022-11-17T16:31:34Z',
9
+ commit: 'c009049f74b70a8aa87d6821783a0500b0039d5f',
10
10
  npmInfo: {
11
- 'solid-ui': '2.4.22',
12
- npm: '8.18.0',
11
+ 'solid-ui': '2.4.23',
12
+ npm: '8.19.3',
13
13
  node: '14.17.3',
14
14
  v8: '8.4.371.23-node.67',
15
15
  uv: '1.41.0',
@@ -1 +1 @@
1
- {"version":3,"file":"versionInfo.js","names":["versionInfo","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2022-08-29T19:42:38Z',\n commit: 'd6a4e62ea0078f3fc6f46ef81e5f9df451281655',\n npmInfo:\n{\n 'solid-ui': '2.4.22',\n npm: '8.18.0',\n node: '14.17.3',\n v8: '8.4.371.23-node.67',\n uv: '1.41.0',\n zlib: '1.2.11',\n brotli: '1.0.9',\n ares: '1.17.1',\n modules: '83',\n nghttp2: '1.42.0',\n napi: '8',\n llhttp: '2.1.3',\n openssl: '1.1.1k',\n cldr: '39.0',\n icu: '69.1',\n tz: '2021a',\n unicode: '13.0'\n}\n}\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;EACzBC,SAAS,EAAE,sBADc;EAEzBC,MAAM,EAAE,0CAFiB;EAGzBC,OAAO,EACT;IACE,YAAY,QADd;IAEEC,GAAG,EAAE,QAFP;IAGEC,IAAI,EAAE,SAHR;IAIEC,EAAE,EAAE,oBAJN;IAKEC,EAAE,EAAE,QALN;IAMEC,IAAI,EAAE,QANR;IAOEC,MAAM,EAAE,OAPV;IAQEC,IAAI,EAAE,QARR;IASEC,OAAO,EAAE,IATX;IAUEC,OAAO,EAAE,QAVX;IAWEC,IAAI,EAAE,GAXR;IAYEC,MAAM,EAAE,OAZV;IAaEC,OAAO,EAAE,QAbX;IAcEC,IAAI,EAAE,MAdR;IAeEC,GAAG,EAAE,MAfP;IAgBEC,EAAE,EAAE,OAhBN;IAiBEC,OAAO,EAAE;EAjBX;AAJ2B,CAApB"}
1
+ {"version":3,"file":"versionInfo.js","names":["versionInfo","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2022-11-17T16:31:34Z',\n commit: 'c009049f74b70a8aa87d6821783a0500b0039d5f',\n npmInfo:\n{\n 'solid-ui': '2.4.23',\n npm: '8.19.3',\n node: '14.17.3',\n v8: '8.4.371.23-node.67',\n uv: '1.41.0',\n zlib: '1.2.11',\n brotli: '1.0.9',\n ares: '1.17.1',\n modules: '83',\n nghttp2: '1.42.0',\n napi: '8',\n llhttp: '2.1.3',\n openssl: '1.1.1k',\n cldr: '39.0',\n icu: '69.1',\n tz: '2021a',\n unicode: '13.0'\n}\n}\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;EACzBC,SAAS,EAAE,sBAAsB;EACjCC,MAAM,EAAE,0CAA0C;EAClDC,OAAO,EACT;IACE,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,QAAQ;IACbC,IAAI,EAAE,SAAS;IACfC,EAAE,EAAE,oBAAoB;IACxBC,EAAE,EAAE,QAAQ;IACZC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE,OAAO;IACfC,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAE,IAAI;IACbC,OAAO,EAAE,QAAQ;IACjBC,IAAI,EAAE,GAAG;IACTC,MAAM,EAAE,OAAO;IACfC,OAAO,EAAE,QAAQ;IACjBC,IAAI,EAAE,MAAM;IACZC,GAAG,EAAE,MAAM;IACXC,EAAE,EAAE,OAAO;IACXC,OAAO,EAAE;EACX;AACA,CAAC;AAAA"}
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createLinkForURI = void 0;
7
7
  exports.linkIcon = linkIcon;
8
-
9
8
  var _iconBase = require("../../iconBase");
10
-
11
9
  /**
12
10
  * Creates an anchor tag for a NamedNode
13
11
  *
@@ -24,13 +22,10 @@ var _iconBase = require("../../iconBase");
24
22
  function linkIcon(dom, subject, iconURI) {
25
23
  var anchor = dom.createElement('a');
26
24
  anchor.setAttribute('href', subject.uri);
27
-
28
25
  if (subject.uri.startsWith('http')) {
29
26
  // If diff web page
30
27
  anchor.setAttribute('target', '_blank'); // open in a new tab or window
31
28
  } // as mailboxes and mail messages do not need new browser window
32
-
33
-
34
29
  var img = anchor.appendChild(dom.createElement('img'));
35
30
  img.setAttribute('src', iconURI || _iconBase.originalIconBase + 'go-to-this.png');
36
31
  img.setAttribute('style', 'margin: 0.3em;');
@@ -49,14 +44,11 @@ function linkIcon(dom, subject, iconURI) {
49
44
  *
50
45
  */
51
46
  // eslint-disable-next-line complexity
52
-
53
-
54
47
  var createLinkForURI = function createLinkForURI(dom, linkDiv, obj) {
55
48
  var iconLink = linkIcon(dom, obj);
56
49
  var anchor = linkDiv.appendChild(iconLink);
57
50
  anchor.classList.add('HoverControlHide');
58
51
  linkDiv.appendChild(dom.createElement('br'));
59
52
  };
60
-
61
53
  exports.createLinkForURI = createLinkForURI;
62
54
  //# sourceMappingURL=iconLinks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iconLinks.js","names":["linkIcon","dom","subject","iconURI","anchor","createElement","setAttribute","uri","startsWith","img","appendChild","originalIconBase","createLinkForURI","linkDiv","obj","iconLink","classList","add"],"sources":["../../../src/widgets/buttons/iconLinks.ts"],"sourcesContent":["import { NamedNode } from 'rdflib'\nimport { originalIconBase } from '../../iconBase'\n\n/**\n * Creates an anchor tag for a NamedNode\n *\n * Takes a NamedNode and creates an anchor tag for it\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param subject NamedNode the anchor tag is created for\n * @param iconURI? Optional if you have your own icon link\n *\n * @returns The anchor tag for the subject\n *\n */\n// eslint-disable-next-line complexity\nexport function linkIcon (dom: HTMLDocument, subject: NamedNode, iconURI?: string): HTMLElement {\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', subject.uri)\n if (subject.uri.startsWith('http')) {\n // If diff web page\n anchor.setAttribute('target', '_blank') // open in a new tab or window\n } // as mailboxes and mail messages do not need new browser window\n const img = anchor.appendChild(dom.createElement('img'))\n img.setAttribute(\n 'src',\n iconURI || originalIconBase + 'go-to-this.png'\n )\n img.setAttribute('style', 'margin: 0.3em;')\n return anchor\n}\n/**\n * Creates a Link for a URI\n *\n * Takes a div element for a link and attaches the provided linkIcon\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param linkDiv the created link will be appended to this\n * @param obj NamedNode the link needs to be created for\n *\n * @returns The HTML widget created\n *\n */\n// eslint-disable-next-line complexity\nexport const createLinkForURI = (dom: HTMLDocument, linkDiv: HTMLDivElement, obj: NamedNode) => {\n const iconLink = linkIcon(dom, obj)\n const anchor = linkDiv.appendChild(iconLink)\n anchor.classList.add('HoverControlHide')\n linkDiv.appendChild(dom.createElement('br'))\n}\n"],"mappings":";;;;;;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,QAAT,CAAmBC,GAAnB,EAAsCC,OAAtC,EAA0DC,OAA1D,EAAyF;EAC9F,IAAMC,MAAM,GAAGH,GAAG,CAACI,aAAJ,CAAkB,GAAlB,CAAf;EACAD,MAAM,CAACE,YAAP,CAAoB,MAApB,EAA4BJ,OAAO,CAACK,GAApC;;EACA,IAAIL,OAAO,CAACK,GAAR,CAAYC,UAAZ,CAAuB,MAAvB,CAAJ,EAAoC;IAClC;IACAJ,MAAM,CAACE,YAAP,CAAoB,QAApB,EAA8B,QAA9B,EAFkC,CAEM;EACzC,CAN6F,CAM5F;;;EACF,IAAMG,GAAG,GAAGL,MAAM,CAACM,WAAP,CAAmBT,GAAG,CAACI,aAAJ,CAAkB,KAAlB,CAAnB,CAAZ;EACAI,GAAG,CAACH,YAAJ,CACE,KADF,EAEEH,OAAO,IAAIQ,0BAAA,GAAmB,gBAFhC;EAIAF,GAAG,CAACH,YAAJ,CAAiB,OAAjB,EAA0B,gBAA1B;EACA,OAAOF,MAAP;AACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACX,GAAD,EAAoBY,OAApB,EAA6CC,GAA7C,EAAgE;EAC9F,IAAMC,QAAQ,GAAGf,QAAQ,CAACC,GAAD,EAAMa,GAAN,CAAzB;EACA,IAAMV,MAAM,GAAGS,OAAO,CAACH,WAAR,CAAoBK,QAApB,CAAf;EACAX,MAAM,CAACY,SAAP,CAAiBC,GAAjB,CAAqB,kBAArB;EACAJ,OAAO,CAACH,WAAR,CAAoBT,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAApB;AACD,CALM"}
1
+ {"version":3,"file":"iconLinks.js","names":["linkIcon","dom","subject","iconURI","anchor","createElement","setAttribute","uri","startsWith","img","appendChild","originalIconBase","createLinkForURI","linkDiv","obj","iconLink","classList","add"],"sources":["../../../src/widgets/buttons/iconLinks.ts"],"sourcesContent":["import { NamedNode } from 'rdflib'\nimport { originalIconBase } from '../../iconBase'\n\n/**\n * Creates an anchor tag for a NamedNode\n *\n * Takes a NamedNode and creates an anchor tag for it\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param subject NamedNode the anchor tag is created for\n * @param iconURI? Optional if you have your own icon link\n *\n * @returns The anchor tag for the subject\n *\n */\n// eslint-disable-next-line complexity\nexport function linkIcon (dom: HTMLDocument, subject: NamedNode, iconURI?: string): HTMLElement {\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', subject.uri)\n if (subject.uri.startsWith('http')) {\n // If diff web page\n anchor.setAttribute('target', '_blank') // open in a new tab or window\n } // as mailboxes and mail messages do not need new browser window\n const img = anchor.appendChild(dom.createElement('img'))\n img.setAttribute(\n 'src',\n iconURI || originalIconBase + 'go-to-this.png'\n )\n img.setAttribute('style', 'margin: 0.3em;')\n return anchor\n}\n/**\n * Creates a Link for a URI\n *\n * Takes a div element for a link and attaches the provided linkIcon\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param linkDiv the created link will be appended to this\n * @param obj NamedNode the link needs to be created for\n *\n * @returns The HTML widget created\n *\n */\n// eslint-disable-next-line complexity\nexport const createLinkForURI = (dom: HTMLDocument, linkDiv: HTMLDivElement, obj: NamedNode) => {\n const iconLink = linkIcon(dom, obj)\n const anchor = linkDiv.appendChild(iconLink)\n anchor.classList.add('HoverControlHide')\n linkDiv.appendChild(dom.createElement('br'))\n}\n"],"mappings":";;;;;;;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,QAAQ,CAAEC,GAAiB,EAAEC,OAAkB,EAAEC,OAAgB,EAAe;EAC9F,IAAMC,MAAM,GAAGH,GAAG,CAACI,aAAa,CAAC,GAAG,CAAC;EACrCD,MAAM,CAACE,YAAY,CAAC,MAAM,EAAEJ,OAAO,CAACK,GAAG,CAAC;EACxC,IAAIL,OAAO,CAACK,GAAG,CAACC,UAAU,CAAC,MAAM,CAAC,EAAE;IAClC;IACAJ,MAAM,CAACE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAC;EAC1C,CAAC,CAAC;EACF,IAAMG,GAAG,GAAGL,MAAM,CAACM,WAAW,CAACT,GAAG,CAACI,aAAa,CAAC,KAAK,CAAC,CAAC;EACxDI,GAAG,CAACH,YAAY,CACd,KAAK,EACLH,OAAO,IAAIQ,0BAAgB,GAAG,gBAAgB,CAC/C;EACDF,GAAG,CAACH,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC;EAC3C,OAAOF,MAAM;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAgB,CAAIX,GAAiB,EAAEY,OAAuB,EAAEC,GAAc,EAAK;EAC9F,IAAMC,QAAQ,GAAGf,QAAQ,CAACC,GAAG,EAAEa,GAAG,CAAC;EACnC,IAAMV,MAAM,GAAGS,OAAO,CAACH,WAAW,CAACK,QAAQ,CAAC;EAC5CX,MAAM,CAACY,SAAS,CAACC,GAAG,CAAC,kBAAkB,CAAC;EACxCJ,OAAO,CAACH,WAAW,CAACT,GAAG,CAACI,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAAA"}