solid-ui 2.4.29 → 2.4.30

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 (259) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/670.solid-ui.min.js +0 -0
  4. package/dist/805.solid-ui.min.js +1 -1
  5. package/dist/805.solid-ui.min.js.LICENSE.txt +0 -0
  6. package/dist/805.solid-ui.min.js.map +1 -1
  7. package/dist/_2b19.solid-ui.js +0 -0
  8. package/dist/_2b19.solid-ui.js.map +1 -1
  9. package/dist/index.html +0 -0
  10. package/dist/solid-ui.js +3369 -1854
  11. package/dist/solid-ui.js.map +1 -1
  12. package/dist/solid-ui.min.js +1 -1
  13. package/dist/solid-ui.min.js.LICENSE.txt +0 -0
  14. package/dist/solid-ui.min.js.map +1 -1
  15. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +191 -80
  16. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  17. package/lib/acl/access-controller.d.ts +0 -0
  18. package/lib/acl/access-controller.d.ts.map +0 -0
  19. package/lib/acl/access-controller.js +0 -0
  20. package/lib/acl/access-controller.js.map +0 -0
  21. package/lib/acl/access-groups.d.ts +0 -0
  22. package/lib/acl/access-groups.d.ts.map +0 -0
  23. package/lib/acl/access-groups.js +0 -2
  24. package/lib/acl/access-groups.js.map +1 -1
  25. package/lib/acl/acl-control.d.ts +0 -0
  26. package/lib/acl/acl-control.d.ts.map +0 -0
  27. package/lib/acl/acl-control.js +0 -0
  28. package/lib/acl/acl-control.js.map +0 -0
  29. package/lib/acl/acl.d.ts +0 -0
  30. package/lib/acl/acl.d.ts.map +0 -0
  31. package/lib/acl/acl.js +0 -2
  32. package/lib/acl/acl.js.map +1 -1
  33. package/lib/acl/add-agent-buttons.d.ts +0 -0
  34. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  35. package/lib/acl/add-agent-buttons.js +0 -0
  36. package/lib/acl/add-agent-buttons.js.map +0 -0
  37. package/lib/acl/index.d.ts +0 -0
  38. package/lib/acl/index.d.ts.map +0 -0
  39. package/lib/acl/index.js +0 -0
  40. package/lib/acl/index.js.map +0 -0
  41. package/lib/acl/types.d.ts +0 -0
  42. package/lib/acl/types.d.ts.map +0 -0
  43. package/lib/acl/types.js +0 -0
  44. package/lib/acl/types.js.map +0 -0
  45. package/lib/chat/bookmarks.js +0 -0
  46. package/lib/chat/bookmarks.js.map +0 -0
  47. package/lib/chat/chatLogic.js +6 -4
  48. package/lib/chat/chatLogic.js.map +1 -1
  49. package/lib/chat/dateFolder.js +0 -0
  50. package/lib/chat/dateFolder.js.map +0 -0
  51. package/lib/chat/infinite.js +0 -5
  52. package/lib/chat/infinite.js.map +1 -1
  53. package/lib/chat/keys.d.ts +0 -0
  54. package/lib/chat/keys.d.ts.map +0 -0
  55. package/lib/chat/keys.js +0 -0
  56. package/lib/chat/keys.js.map +0 -0
  57. package/lib/chat/message.js +3 -7
  58. package/lib/chat/message.js.map +1 -1
  59. package/lib/chat/messageTools.js +1 -0
  60. package/lib/chat/messageTools.js.map +1 -1
  61. package/lib/chat/signature.d.ts +0 -0
  62. package/lib/chat/signature.d.ts.map +0 -0
  63. package/lib/chat/signature.js +0 -0
  64. package/lib/chat/signature.js.map +0 -0
  65. package/lib/chat/thread.js +0 -4
  66. package/lib/chat/thread.js.map +1 -1
  67. package/lib/create/create.d.ts +0 -0
  68. package/lib/create/create.d.ts.map +0 -0
  69. package/lib/create/create.js +0 -2
  70. package/lib/create/create.js.map +1 -1
  71. package/lib/create/index.d.ts +0 -0
  72. package/lib/create/index.d.ts.map +0 -0
  73. package/lib/create/index.js +0 -0
  74. package/lib/create/index.js.map +0 -0
  75. package/lib/create/types.d.ts +0 -0
  76. package/lib/create/types.d.ts.map +0 -0
  77. package/lib/create/types.js +0 -0
  78. package/lib/create/types.js.map +0 -0
  79. package/lib/debug.d.ts +0 -0
  80. package/lib/debug.d.ts.map +0 -0
  81. package/lib/debug.js +0 -0
  82. package/lib/debug.js.map +0 -0
  83. package/lib/folders.js +0 -0
  84. package/lib/folders.js.map +0 -0
  85. package/lib/footer/index.d.ts +0 -0
  86. package/lib/footer/index.d.ts.map +0 -0
  87. package/lib/footer/index.js +0 -0
  88. package/lib/footer/index.js.map +0 -0
  89. package/lib/header/empty-profile.d.ts +0 -0
  90. package/lib/header/empty-profile.d.ts.map +0 -0
  91. package/lib/header/empty-profile.js +0 -0
  92. package/lib/header/empty-profile.js.map +0 -0
  93. package/lib/header/index.d.ts +0 -0
  94. package/lib/header/index.d.ts.map +0 -0
  95. package/lib/header/index.js +0 -0
  96. package/lib/header/index.js.map +0 -0
  97. package/lib/iconBase.d.ts +0 -0
  98. package/lib/iconBase.d.ts.map +0 -0
  99. package/lib/iconBase.js +0 -0
  100. package/lib/iconBase.js.map +0 -0
  101. package/lib/icons/solid_logo.d.ts +0 -0
  102. package/lib/icons/solid_logo.d.ts.map +0 -0
  103. package/lib/icons/solid_logo.js +0 -0
  104. package/lib/icons/solid_logo.js.map +0 -0
  105. package/lib/index.d.ts +0 -0
  106. package/lib/index.d.ts.map +0 -0
  107. package/lib/index.js +0 -0
  108. package/lib/index.js.map +0 -0
  109. package/lib/log.d.ts +0 -0
  110. package/lib/log.d.ts.map +0 -0
  111. package/lib/log.js +0 -0
  112. package/lib/log.js.map +0 -0
  113. package/lib/login/login.d.ts +0 -0
  114. package/lib/login/login.d.ts.map +0 -0
  115. package/lib/login/login.js +23 -24
  116. package/lib/login/login.js.map +1 -1
  117. package/lib/matrix/index.d.ts +0 -0
  118. package/lib/matrix/index.d.ts.map +0 -0
  119. package/lib/matrix/index.js +0 -0
  120. package/lib/matrix/index.js.map +0 -0
  121. package/lib/matrix/matrix.d.ts +0 -0
  122. package/lib/matrix/matrix.d.ts.map +0 -0
  123. package/lib/matrix/matrix.js +0 -2
  124. package/lib/matrix/matrix.js.map +1 -1
  125. package/lib/matrix/types.d.ts +0 -0
  126. package/lib/matrix/types.d.ts.map +0 -0
  127. package/lib/matrix/types.js +0 -0
  128. package/lib/matrix/types.js.map +0 -0
  129. package/lib/media/index.d.ts +0 -0
  130. package/lib/media/index.d.ts.map +0 -0
  131. package/lib/media/index.js +0 -0
  132. package/lib/media/index.js.map +0 -0
  133. package/lib/media/media-capture.d.ts +0 -0
  134. package/lib/media/media-capture.d.ts.map +0 -0
  135. package/lib/media/media-capture.js +0 -3
  136. package/lib/media/media-capture.js.map +1 -1
  137. package/lib/messageArea.js +0 -4
  138. package/lib/messageArea.js.map +1 -1
  139. package/lib/noun_Camera_1618446_000000.js +0 -0
  140. package/lib/noun_Camera_1618446_000000.js.map +0 -0
  141. package/lib/ns.js +0 -0
  142. package/lib/ns.js.map +0 -0
  143. package/lib/pad.d.ts +0 -0
  144. package/lib/pad.d.ts.map +0 -0
  145. package/lib/pad.js +3 -6
  146. package/lib/pad.js.map +1 -1
  147. package/lib/participation.d.ts +0 -0
  148. package/lib/participation.d.ts.map +0 -0
  149. package/lib/participation.js +1 -4
  150. package/lib/participation.js.map +1 -1
  151. package/lib/preferences.js +0 -0
  152. package/lib/preferences.js.map +0 -0
  153. package/lib/signup/config-default.js +0 -0
  154. package/lib/signup/config-default.js.map +0 -0
  155. package/lib/signup/signup.js +0 -0
  156. package/lib/signup/signup.js.map +0 -0
  157. package/lib/stories/decorators.js +0 -0
  158. package/lib/stories/decorators.js.map +0 -0
  159. package/lib/style.js +0 -0
  160. package/lib/style.js.map +0 -0
  161. package/lib/style_multiSelect.js +0 -0
  162. package/lib/style_multiSelect.js.map +0 -0
  163. package/lib/table.js +0 -4
  164. package/lib/table.js.map +1 -1
  165. package/lib/tabs.d.ts +0 -0
  166. package/lib/tabs.d.ts.map +0 -0
  167. package/lib/tabs.js +0 -2
  168. package/lib/tabs.js.map +1 -1
  169. package/lib/typings.d.js +0 -0
  170. package/lib/typings.d.js.map +0 -0
  171. package/lib/utils/headerFooterHelpers.d.ts +0 -0
  172. package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
  173. package/lib/utils/headerFooterHelpers.js +0 -0
  174. package/lib/utils/headerFooterHelpers.js.map +0 -0
  175. package/lib/utils/index.js +0 -7
  176. package/lib/utils/index.js.map +1 -1
  177. package/lib/utils/keyHelpers/accessData.d.ts +0 -0
  178. package/lib/utils/keyHelpers/accessData.d.ts.map +0 -0
  179. package/lib/utils/keyHelpers/accessData.js +0 -0
  180. package/lib/utils/keyHelpers/accessData.js.map +0 -0
  181. package/lib/utils/keyHelpers/acl.d.ts +0 -0
  182. package/lib/utils/keyHelpers/acl.d.ts.map +0 -0
  183. package/lib/utils/keyHelpers/acl.js +0 -0
  184. package/lib/utils/keyHelpers/acl.js.map +0 -0
  185. package/lib/utils/label.d.ts +0 -0
  186. package/lib/utils/label.d.ts.map +0 -0
  187. package/lib/utils/label.js +0 -0
  188. package/lib/utils/label.js.map +0 -0
  189. package/lib/versionInfo.d.ts +0 -0
  190. package/lib/versionInfo.d.ts.map +0 -0
  191. package/lib/versionInfo.js +14 -14
  192. package/lib/versionInfo.js.map +1 -1
  193. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  194. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  195. package/lib/widgets/buttons/iconLinks.js +0 -0
  196. package/lib/widgets/buttons/iconLinks.js.map +0 -0
  197. package/lib/widgets/buttons.d.ts +0 -0
  198. package/lib/widgets/buttons.d.ts.map +0 -0
  199. package/lib/widgets/buttons.js +2 -10
  200. package/lib/widgets/buttons.js.map +1 -1
  201. package/lib/widgets/dragAndDrop.js +0 -1
  202. package/lib/widgets/dragAndDrop.js.map +1 -1
  203. package/lib/widgets/error.d.ts +0 -0
  204. package/lib/widgets/error.d.ts.map +0 -0
  205. package/lib/widgets/error.js +0 -0
  206. package/lib/widgets/error.js.map +0 -0
  207. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  208. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  209. package/lib/widgets/forms/autocomplete/autocompleteBar.js +5 -5
  210. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -0
  211. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  212. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  213. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -1
  214. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  215. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  216. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  217. package/lib/widgets/forms/autocomplete/autocompletePicker.js +4 -7
  218. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  219. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  220. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  221. package/lib/widgets/forms/autocomplete/language.js +0 -0
  222. package/lib/widgets/forms/autocomplete/language.js.map +0 -0
  223. package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
  224. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  225. package/lib/widgets/forms/autocomplete/publicData.js +0 -3
  226. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  227. package/lib/widgets/forms/basic.d.ts +0 -0
  228. package/lib/widgets/forms/basic.d.ts.map +0 -0
  229. package/lib/widgets/forms/basic.js +0 -1
  230. package/lib/widgets/forms/basic.js.map +1 -1
  231. package/lib/widgets/forms/comment.d.ts +0 -0
  232. package/lib/widgets/forms/comment.d.ts.map +0 -0
  233. package/lib/widgets/forms/comment.js +0 -0
  234. package/lib/widgets/forms/comment.js.map +0 -0
  235. package/lib/widgets/forms/fieldFunction.d.ts +0 -0
  236. package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
  237. package/lib/widgets/forms/fieldFunction.js +0 -0
  238. package/lib/widgets/forms/fieldFunction.js.map +0 -0
  239. package/lib/widgets/forms/fieldParams.d.ts +0 -0
  240. package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
  241. package/lib/widgets/forms/fieldParams.js +14 -14
  242. package/lib/widgets/forms/fieldParams.js.map +1 -1
  243. package/lib/widgets/forms/formStyle.d.ts +0 -0
  244. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  245. package/lib/widgets/forms/formStyle.js +0 -0
  246. package/lib/widgets/forms/formStyle.js.map +0 -0
  247. package/lib/widgets/forms.js +3 -22
  248. package/lib/widgets/forms.js.map +1 -1
  249. package/lib/widgets/index.js +0 -0
  250. package/lib/widgets/index.js.map +0 -0
  251. package/lib/widgets/multiSelect.js +0 -0
  252. package/lib/widgets/multiSelect.js.map +0 -0
  253. package/lib/widgets/peoplePicker.js +0 -1
  254. package/lib/widgets/peoplePicker.js.map +1 -1
  255. package/lib/widgets/widgetHelpers.d.ts +0 -0
  256. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  257. package/lib/widgets/widgetHelpers.js +0 -0
  258. package/lib/widgets/widgetHelpers.js.map +0 -0
  259. package/package.json +18 -18
package/lib/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","names":["_widgets","require","_utils","_solidLogic","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ContainerElement","_HTMLElement","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","_createClass2","_wrapNativeSuper2","HTMLElement","TabWidgetElement","exports","_HTMLElement2","_super2","_this2","_len2","_key2","TabElement","_HTMLElement3","_super3","_this3","_len3","_key3","tabWidget","options","subject","dom","document","orientation","parseInt","backgroundColor","flipped","vertical","onClose","_getColors","getColors","_getColors2","_slicedToArray2","selectedColor","color","bodyMainStyle","rootElement","createElement","setAttribute","navElement","appendChild","mainElement","tabContainer","tabElement","bodyContainer","corners","cornersPrepped","slice","cornersStyle","join","margins","marginsPrepped","marginsStyle","paddingStyle","tabStyle","unselectedStyle","selectedStyle","shownStyle","hiddenStyle","refresh","orderedSync","startEmpty","children","selectedTab","selectedTab0","from","map","tab","firstChild","find","dataset","name","selectedTabURI","uri","selectedTab1","clickMe","click","addCancelButton","onCloseSet","existingCancelButton","querySelector","removeChild","extraTab","classList","add","tabCancelButton","cancelButton","getAttribute","getItems","items","ordered","store","the","predicate","elements","each","makeNewSlot","item","ele","div","onclick","resetTabStyle","resetBodyStyle","bodyTR","bodyMain","getOrCreateContainerElement","renderMain","asSettings","innerHTML","renderTabSettings","ellipsis","textContent","renderTab","label","_ele$bodyTR","newBodyMain","slot","i","j","left","right","differ","sameTerm","insertables","newSlot","newBodyDiv","insertBefore","contains","isLight","colorBlend","a","b","mix","ca","cb","res","str","hex","res2","split","h","l","x","total"],"sources":["../src/tabs.ts"],"sourcesContent":["import { cancelButton } from './widgets'\nimport { label } from './utils'\nimport { NamedNode } from 'rdflib'\nimport { store } from 'solid-logic'\n\n/**\n * @ignore\n */\nclass ContainerElement extends HTMLElement {\n asSettings?: boolean\n}\n\ntype TabWidgetOptions = {\n backgroundColor?: string;\n dom?: HTMLDocument;\n items?: Array<NamedNode>;\n onClose?: (event: Event) => void;\n ordered?: boolean;\n orientation?: '0' | '1' | '2' | '3';\n predicate?: NamedNode;\n renderMain?: (bodyMain: HTMLElement, subject: NamedNode) => void;\n renderTab?: (tabDiv: HTMLButtonElement, subject: NamedNode) => void;\n renderTabSettings?: (bodyMain: ContainerElement, subject: NamedNode) => void;\n selectedTab?: NamedNode;\n startEmpty?: boolean;\n subject?: NamedNode;\n};\n\nexport class TabWidgetElement extends HTMLElement {\n bodyContainer?: HTMLElement\n refresh?: () => void\n tabContainer?: HTMLElement\n}\n\n/**\n * @ignore\n */\nclass TabElement extends HTMLElement {\n bodyTR?: HTMLElement\n subject?: NamedNode\n}\n\n/**\n * Use this widget to generate tabs from triples set in the global store.\n *\n * [Here you can see examples of the tabs](https://solidos.github.io/solid-ui/examples/tabs/).\n *\n * It assumes that items to use for tabs will be in a collection by default,\n * e.g.:\n *\n * ```turtle\n * :subject :predicate ( :item1 :item2 ) .\n * ```\n *\n * You can override this by setting `ordered: false`, in which case it expects\n * unordered triples:\n *\n * ```turtle\n * :subject :predicate :item1, :item 2 .\n * ```\n *\n * Triples that are not ordered in collection are in principle not sorted,\n * which means that tabs could change order every time you render the widget.\n * But in this case the widget will try to sort it in order to keep it\n * consistent.\n *\n * In both of these cases you need to define options `subject` and `predicate`\n * to tell the widget which triples it should be looking for.\n *\n * Finally you can set items manually, using the `items` option, e.g.:\n *\n * ```javascript\n * {\n * items: [\n * namedNode('https://domain.tld/#item1'),\n * namedNode('https://domain.tld/#item2')\n * ]\n * }\n * ```\n *\n * When you set items manually you do not need to set `subject` and\n * `predicate`.\n *\n * In any case you probably want to set the renderMain option to specify\n * what should be rendered for the various items, e.g.:\n *\n * ```javascript\n * {\n * renderMain: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderItem(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderItem` is a custom function that you need to define yourself.\n *\n * The option `renderTabSettings` allows you to render a custom view in the\n * body container that is shown when you hold the ALT key and click on a\n * tab. It works very much like the `renderMain` option:\n *\n * ```javascript\n * {\n * renderTabSettings: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderTabSettings(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabSettings` is a custom function that you need to define\n * yourself.\n *\n * By default the widget will try to guess the label by using the\n * [[utils.label]] function. If you want to customize this yourself, you can\n * use the `renderTab` option:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.innerText = renderTabText(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabText` is a custom function you need to define yourself.\n *\n * The option renderTab is also important if you want to set which tab should\n * be selected once the widget is rendered. By default it will simply select\n * the first tab, but you can override by setting `dataset.name` on the tab\n * and referring to the same string in `selectedTab`:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.dataset.name = subject.uri\n * },\n * selectedTab: item2.uri\n * }\n * ```\n *\n * You can apply a color to use for tabs and border of the container by using\n * option `background-color`. This is #ddddcc by default.\n *\n * You can override the document object that the widget uses to generate DOM\n * elements by setting the option `dom`. This is encouraged to set if you\n * intend your functionality to be used in environments that don't provide\n * a global `document` object.\n *\n * If you want to render a close button next to the tabs you can set option\n * `onClose` which takes a callback function that is triggered when the\n * button is clicked:\n *\n * ```javascript\n * {\n * onClose: (event) => {\n * // do something that hides the widget altogether\n * }\n * }\n * ```\n *\n * The option `orientation` allows you to set which side the tabs should be\n * located: `'0'` = Top, `'1'` = Left, `'2'` = Bottom, `'3'` = Right\n *\n * If you don't want to render anything in the body container by default,\n * you can set the option `startEmpty` to `true`.\n *\n * @param options\n */\nexport function tabWidget (options: TabWidgetOptions) {\n const subject = options.subject\n const dom = options.dom || document\n const orientation = parseInt(options.orientation || '0')\n const backgroundColor = options.backgroundColor || '#ddddcc'\n const flipped = orientation & 2\n const vertical = orientation & 1\n const onClose = options.onClose\n\n const [selectedColor, color] = getColors(backgroundColor)\n const bodyMainStyle = `flex: 2; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ${selectedColor}; padding: 1em;`\n const rootElement: TabWidgetElement = dom.createElement('div') // 20200117a\n\n rootElement.setAttribute(\n 'style',\n 'display: flex; height: 100%; width: 100%; flex-direction: ' +\n (vertical ? 'row' : 'column') +\n (flipped ? '-reverse;' : ';')\n )\n\n const navElement = rootElement.appendChild(dom.createElement('nav'))\n navElement.setAttribute('style', 'margin: 0;')\n\n const mainElement = rootElement.appendChild(dom.createElement('main'))\n\n mainElement.setAttribute('style', 'margin: 0; width:100%; height: 100%;') // override tabbedtab.css\n const tabContainer = navElement.appendChild(dom.createElement('ul'))\n tabContainer.setAttribute(\n 'style',\n `\n list-style-type: none;\n display: flex;\n height: 100%;\n width: 100%;\n margin: 0;\n padding: 0;\n flex-direction: ${vertical ? 'column' : 'row'}\n `\n )\n\n const tabElement = 'li'\n\n const bodyContainer = mainElement\n rootElement.tabContainer = tabContainer\n rootElement.bodyContainer = bodyContainer\n\n const corners = ['0.2em', '0.2em', '0', '0'] // top left, TR, BR, BL\n const cornersPrepped = corners.concat(corners).slice(orientation, orientation + 4)\n const cornersStyle = `border-radius: ${cornersPrepped.join(' ')};`\n\n const margins = ['0.3em', '0.3em', '0', '0.3em'] // top, right, bottom, left\n const marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4)\n const marginsStyle = `margin: ${marginsPrepped.join(' ')};`\n\n const paddingStyle = `padding: ${marginsPrepped.join(' ')};`\n\n const tabStyle = cornersStyle + `position: relative; padding: 0.7em; max-width: 20em; color: ${color};`\n const unselectedStyle = `${\n tabStyle + marginsStyle\n } opacity: 50%; background-color: ${backgroundColor};`\n const selectedStyle = `${tabStyle + marginsStyle} background-color: ${selectedColor};`\n const shownStyle = 'height: 100%; width: 100%;'\n const hiddenStyle = shownStyle + 'display: none;'\n rootElement.refresh = orderedSync\n orderedSync()\n\n if (!options.startEmpty && tabContainer.children.length && options.selectedTab) {\n const selectedTab0 = Array.from(tabContainer.children) // Version left for compatability with ??\n .map((tab) => tab.firstChild as HTMLElement)\n .find((tab) => tab.dataset.name === options.selectedTab)\n\n const selectedTabURI = options.selectedTab.uri\n const selectedTab1 = Array.from(tabContainer.children)\n // @ts-ignore\n .find(\n (tab) =>\n (tab as TabElement).subject &&\n // @ts-ignore\n (tab as TabElement).subject.uri &&\n // @ts-ignore\n (tab as TabElement).subject.uri === selectedTabURI\n )\n\n const tab = selectedTab1 || selectedTab0 || (tabContainer.children[0] as HTMLButtonElement)\n const clickMe = tab.firstChild\n // @ts-ignore\n if (clickMe) clickMe.click()\n } else if (!options.startEmpty) {\n (tabContainer.children[0].firstChild as HTMLButtonElement).click() // Open first tab\n }\n return rootElement\n\n function addCancelButton (tabContainer) {\n if (tabContainer.dataset.onCloseSet) {\n // @@ TODO: this is only here to make the browser tests work\n // Discussion at https://github.com/solidos/solid-ui/pull/110#issuecomment-527080663\n const existingCancelButton = tabContainer.querySelector('.unstyled')\n tabContainer.removeChild(existingCancelButton)\n }\n const extraTab = dom.createElement(tabElement)\n extraTab.classList.add('unstyled')\n const tabCancelButton = cancelButton(dom, onClose)\n tabCancelButton.setAttribute('style', tabCancelButton.getAttribute('style') + paddingStyle)\n extraTab.appendChild(tabCancelButton)\n tabContainer.appendChild(extraTab)\n tabContainer.dataset.onCloseSet = 'true'\n }\n\n function getItems (): Array<NamedNode> {\n if (options.items) return options.items\n if (options.ordered !== false) {\n // options.ordered defaults to true\n return (store.the(subject, options.predicate) as any).elements\n } else {\n return store.each(subject, options.predicate) as any\n }\n }\n\n function makeNewSlot (item: NamedNode) {\n const ele = dom.createElement(tabElement) as TabElement\n ele.setAttribute('style', unselectedStyle)\n ele.subject = item\n const div = ele.appendChild(dom.createElement('button'))\n div.setAttribute('style', 'background: none; border: none; font: inherit; cursor: pointer')\n\n div.onclick = function () {\n resetTabStyle()\n resetBodyStyle()\n ele.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {\n bodyMain.innerHTML = 'loading item ...' + item\n options.renderMain(bodyMain, ele.subject)\n bodyMain.asSettings = false\n }\n }\n\n if (options.renderTabSettings && ele.subject) {\n const ellipsis = dom.createElement('button')\n ellipsis.textContent = '...'\n ellipsis.setAttribute('style', 'position: absolute; right: 0; bottom: 0; width: 20%; background: none; color: inherit; border: none; padding: 0; font: inherit; cursor: pointer; outline: inherit;')\n\n ellipsis.onclick = function () {\n resetTabStyle()\n resetBodyStyle()\n ele.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderTabSettings && ele.subject && bodyMain.asSettings !== true) {\n bodyMain.innerHTML = 'loading settings ...' + item\n options.renderTabSettings(bodyMain, ele.subject)\n bodyMain.asSettings = true\n }\n }\n ele.appendChild(ellipsis)\n }\n\n if (options.renderTab) {\n options.renderTab(div, item)\n } else {\n div.innerHTML = label(item)\n }\n return ele\n\n function getOrCreateContainerElement (ele: TabElement): ContainerElement {\n const bodyMain = ele.bodyTR?.children[0] as ContainerElement\n if (bodyMain) return bodyMain\n const newBodyMain = ele.bodyTR!.appendChild(dom.createElement('main'))\n newBodyMain.setAttribute('style', bodyMainStyle)\n return newBodyMain\n }\n }\n\n // @@ Use common one from utils?\n function orderedSync () {\n const items = getItems()\n let slot: TabElement, i, j, left, right\n let differ = false\n // Find how many match at each end\n for (left = 0; left < tabContainer.children.length; left++) {\n slot = tabContainer.children[left] as TabElement\n if (left >= items.length || (slot.subject && !slot.subject.sameTerm(items[left]))) {\n differ = true\n break\n }\n }\n if (!differ && items.length === tabContainer.children.length) {\n return // The two just match in order: a case to optimize for\n }\n for (right = tabContainer.children.length - 1; right >= 0; right--) {\n slot = tabContainer.children[right] as TabElement\n j = right - tabContainer.children.length + items.length\n if (slot.subject && !slot.subject.sameTerm(items[j])) {\n break\n }\n }\n // The elements left ... right in tabContainer.children do not match\n const insertables = items.slice(left, right - tabContainer.children.length + items.length + 1)\n while (right >= left) {\n // remove extra\n tabContainer.removeChild(tabContainer.children[left])\n bodyContainer.removeChild(bodyContainer.children[left])\n right -= 1\n }\n for (i = 0; i < insertables.length; i++) {\n const newSlot = makeNewSlot(insertables[i])\n const newBodyDiv = dom.createElement('div')\n newSlot.bodyTR = newBodyDiv\n if (left === tabContainer.children.length) {\n // None left of original on right\n tabContainer.appendChild(newSlot)\n bodyContainer.appendChild(newBodyDiv)\n } else {\n tabContainer.insertBefore(newSlot, tabContainer.children[left + i])\n bodyContainer.insertBefore(newBodyDiv, bodyContainer.children[left + i])\n }\n }\n if (onClose) {\n addCancelButton(tabContainer)\n }\n }\n\n function resetTabStyle () {\n for (let i = 0; i < tabContainer.children.length; i++) {\n const tab = tabContainer.children[i]\n if (tab.classList.contains('unstyled')) {\n continue\n } else {\n tab.setAttribute('style', unselectedStyle)\n }\n }\n }\n\n function resetBodyStyle () {\n for (let i = 0; i < bodyContainer.children.length; i++) {\n bodyContainer.children[i].setAttribute('style', hiddenStyle)\n }\n }\n}\n\n/**\n * @internal\n */\nfunction getColors (backgroundColor: string): [string, string] {\n return isLight(backgroundColor)\n ? [colorBlend(backgroundColor, '#ffffff', 0.3), '#000000']\n : [colorBlend(backgroundColor, '#000000', 0.3), '#ffffff']\n}\n\n/**\n * @internal\n */\nfunction colorBlend (a: string, b: string, mix: number): string {\n let ca, cb, res\n let str = '#'\n const hex = '0123456789abcdef'\n for (let i = 0; i < 3; i++) {\n ca = parseInt(a.slice(i * 2 + 1, i * 2 + 3), 16)\n cb = parseInt(b.slice(i * 2 + 1, i * 2 + 3), 16)\n res = ca * (1.0 - mix) + cb * mix // @@@ rounding\n const res2 = parseInt(('' + res).split('.')[0]) // @@ ugh\n const h = parseInt(('' + res2 / 16).split('.')[0]) // @@ ugh\n const l = parseInt(('' + (res2 % 16)).split('.')[0]) // @@ ugh\n str += hex[h] + hex[l]\n }\n return str\n}\n\n/**\n * @internal\n */\nfunction isLight (x: string): boolean {\n let total = 0\n for (let i = 0; i < 3; i++) {\n total += parseInt(x.slice(i * 2 + 1, i * 2 + 3), 16)\n }\n return total > 128 * 3\n}\n"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASc,SAASA,CAAEC,OAAyB,EAAE;EACpD,IAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO;EAC/B,IAAMC,GAAG,GAAGF,OAAO,CAACE,GAAG,IAAIC,QAAQ;EACnC,IAAMC,WAAW,GAAGC,QAAQ,CAACL,OAAO,CAACI,WAAW,IAAI,GAAG,CAAC;EACxD,IAAME,eAAe,GAAGN,OAAO,CAACM,eAAe,IAAI,SAAS;EAC5D,IAAMC,OAAO,GAAGH,WAAW,GAAG,CAAC;EAC/B,IAAMI,QAAQ,GAAGJ,WAAW,GAAG,CAAC;EAChC,IAAMK,OAAO,GAAGT,OAAO,CAACS,OAAO;EAE/B,IAAAC,UAAA,GAA+BC,SAAS,CAACL,eAAe,CAAC;IAAAM,WAAA,OAAAC,eAAA,aAAAH,UAAA;IAAlDI,aAAa,GAAAF,WAAA;IAAEG,KAAK,GAAAH,WAAA;EAC3B,IAAMI,aAAa,4FAAApC,MAAA,CAA4FkC,aAAa,oBAAiB;EAC7I,IAAMG,WAA6B,GAAGf,GAAG,CAACgB,aAAa,CAAC,KAAK,CAAC,EAAC;;EAE/DD,WAAW,CAACE,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"}
1
+ {"version":3,"file":"tabs.js","names":["_widgets","require","_utils","_solidLogic","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ContainerElement","_HTMLElement","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","_createClass2","_wrapNativeSuper2","HTMLElement","TabWidgetElement","exports","_HTMLElement2","_super2","_this2","_len2","_key2","TabElement","_HTMLElement3","_super3","_this3","_len3","_key3","tabWidget","options","subject","dom","document","orientation","parseInt","backgroundColor","flipped","vertical","onClose","_getColors","getColors","_getColors2","_slicedToArray2","selectedColor","color","bodyMainStyle","rootElement","createElement","setAttribute","navElement","appendChild","mainElement","tabContainer","tabElement","bodyContainer","corners","cornersPrepped","slice","cornersStyle","join","margins","marginsPrepped","marginsStyle","paddingStyle","tabStyle","unselectedStyle","selectedStyle","shownStyle","hiddenStyle","refresh","orderedSync","startEmpty","children","selectedTab","selectedTab0","from","map","tab","firstChild","find","dataset","name","selectedTabURI","uri","selectedTab1","clickMe","click","addCancelButton","onCloseSet","existingCancelButton","querySelector","removeChild","extraTab","classList","add","tabCancelButton","cancelButton","getAttribute","getItems","items","ordered","store","the","predicate","elements","each","makeNewSlot","item","ele","div","onclick","resetTabStyle","resetBodyStyle","bodyTR","bodyMain","getOrCreateContainerElement","renderMain","asSettings","innerHTML","renderTabSettings","ellipsis","textContent","renderTab","label","_ele$bodyTR","newBodyMain","slot","i","j","left","right","differ","sameTerm","insertables","newSlot","newBodyDiv","insertBefore","contains","isLight","colorBlend","a","b","mix","ca","cb","res","str","hex","res2","split","h","l","x","total"],"sources":["../src/tabs.ts"],"sourcesContent":["import { cancelButton } from './widgets'\nimport { label } from './utils'\nimport { NamedNode } from 'rdflib'\nimport { store } from 'solid-logic'\n\n/**\n * @ignore\n */\nclass ContainerElement extends HTMLElement {\n asSettings?: boolean\n}\n\ntype TabWidgetOptions = {\n backgroundColor?: string;\n dom?: HTMLDocument;\n items?: Array<NamedNode>;\n onClose?: (event: Event) => void;\n ordered?: boolean;\n orientation?: '0' | '1' | '2' | '3';\n predicate?: NamedNode;\n renderMain?: (bodyMain: HTMLElement, subject: NamedNode) => void;\n renderTab?: (tabDiv: HTMLButtonElement, subject: NamedNode) => void;\n renderTabSettings?: (bodyMain: ContainerElement, subject: NamedNode) => void;\n selectedTab?: NamedNode;\n startEmpty?: boolean;\n subject?: NamedNode;\n};\n\nexport class TabWidgetElement extends HTMLElement {\n bodyContainer?: HTMLElement\n refresh?: () => void\n tabContainer?: HTMLElement\n}\n\n/**\n * @ignore\n */\nclass TabElement extends HTMLElement {\n bodyTR?: HTMLElement\n subject?: NamedNode\n}\n\n/**\n * Use this widget to generate tabs from triples set in the global store.\n *\n * [Here you can see examples of the tabs](https://solidos.github.io/solid-ui/examples/tabs/).\n *\n * It assumes that items to use for tabs will be in a collection by default,\n * e.g.:\n *\n * ```turtle\n * :subject :predicate ( :item1 :item2 ) .\n * ```\n *\n * You can override this by setting `ordered: false`, in which case it expects\n * unordered triples:\n *\n * ```turtle\n * :subject :predicate :item1, :item 2 .\n * ```\n *\n * Triples that are not ordered in collection are in principle not sorted,\n * which means that tabs could change order every time you render the widget.\n * But in this case the widget will try to sort it in order to keep it\n * consistent.\n *\n * In both of these cases you need to define options `subject` and `predicate`\n * to tell the widget which triples it should be looking for.\n *\n * Finally you can set items manually, using the `items` option, e.g.:\n *\n * ```javascript\n * {\n * items: [\n * namedNode('https://domain.tld/#item1'),\n * namedNode('https://domain.tld/#item2')\n * ]\n * }\n * ```\n *\n * When you set items manually you do not need to set `subject` and\n * `predicate`.\n *\n * In any case you probably want to set the renderMain option to specify\n * what should be rendered for the various items, e.g.:\n *\n * ```javascript\n * {\n * renderMain: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderItem(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderItem` is a custom function that you need to define yourself.\n *\n * The option `renderTabSettings` allows you to render a custom view in the\n * body container that is shown when you hold the ALT key and click on a\n * tab. It works very much like the `renderMain` option:\n *\n * ```javascript\n * {\n * renderTabSettings: (bodyMain, subject) => {\n * bodyMain.innerHTML = renderTabSettings(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabSettings` is a custom function that you need to define\n * yourself.\n *\n * By default the widget will try to guess the label by using the\n * [[utils.label]] function. If you want to customize this yourself, you can\n * use the `renderTab` option:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.innerText = renderTabText(subject)\n * }\n * }\n * ```\n *\n * **Note:** `renderTabText` is a custom function you need to define yourself.\n *\n * The option renderTab is also important if you want to set which tab should\n * be selected once the widget is rendered. By default it will simply select\n * the first tab, but you can override by setting `dataset.name` on the tab\n * and referring to the same string in `selectedTab`:\n *\n * ```javascript\n * {\n * renderTab: (tabDiv, subject) => {\n * tabDiv.dataset.name = subject.uri\n * },\n * selectedTab: item2.uri\n * }\n * ```\n *\n * You can apply a color to use for tabs and border of the container by using\n * option `background-color`. This is #ddddcc by default.\n *\n * You can override the document object that the widget uses to generate DOM\n * elements by setting the option `dom`. This is encouraged to set if you\n * intend your functionality to be used in environments that don't provide\n * a global `document` object.\n *\n * If you want to render a close button next to the tabs you can set option\n * `onClose` which takes a callback function that is triggered when the\n * button is clicked:\n *\n * ```javascript\n * {\n * onClose: (event) => {\n * // do something that hides the widget altogether\n * }\n * }\n * ```\n *\n * The option `orientation` allows you to set which side the tabs should be\n * located: `'0'` = Top, `'1'` = Left, `'2'` = Bottom, `'3'` = Right\n *\n * If you don't want to render anything in the body container by default,\n * you can set the option `startEmpty` to `true`.\n *\n * @param options\n */\nexport function tabWidget (options: TabWidgetOptions) {\n const subject = options.subject\n const dom = options.dom || document\n const orientation = parseInt(options.orientation || '0')\n const backgroundColor = options.backgroundColor || '#ddddcc'\n const flipped = orientation & 2\n const vertical = orientation & 1\n const onClose = options.onClose\n\n const [selectedColor, color] = getColors(backgroundColor)\n const bodyMainStyle = `flex: 2; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ${selectedColor}; padding: 1em;`\n const rootElement: TabWidgetElement = dom.createElement('div') // 20200117a\n\n rootElement.setAttribute(\n 'style',\n 'display: flex; height: 100%; width: 100%; flex-direction: ' +\n (vertical ? 'row' : 'column') +\n (flipped ? '-reverse;' : ';')\n )\n\n const navElement = rootElement.appendChild(dom.createElement('nav'))\n navElement.setAttribute('style', 'margin: 0;')\n\n const mainElement = rootElement.appendChild(dom.createElement('main'))\n\n mainElement.setAttribute('style', 'margin: 0; width:100%; height: 100%;') // override tabbedtab.css\n const tabContainer = navElement.appendChild(dom.createElement('ul'))\n tabContainer.setAttribute(\n 'style',\n `\n list-style-type: none;\n display: flex;\n height: 100%;\n width: 100%;\n margin: 0;\n padding: 0;\n flex-direction: ${vertical ? 'column' : 'row'}\n `\n )\n\n const tabElement = 'li'\n\n const bodyContainer = mainElement\n rootElement.tabContainer = tabContainer\n rootElement.bodyContainer = bodyContainer\n\n const corners = ['0.2em', '0.2em', '0', '0'] // top left, TR, BR, BL\n const cornersPrepped = corners.concat(corners).slice(orientation, orientation + 4)\n const cornersStyle = `border-radius: ${cornersPrepped.join(' ')};`\n\n const margins = ['0.3em', '0.3em', '0', '0.3em'] // top, right, bottom, left\n const marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4)\n const marginsStyle = `margin: ${marginsPrepped.join(' ')};`\n\n const paddingStyle = `padding: ${marginsPrepped.join(' ')};`\n\n const tabStyle = cornersStyle + `position: relative; padding: 0.7em; max-width: 20em; color: ${color};`\n const unselectedStyle = `${\n tabStyle + marginsStyle\n } opacity: 50%; background-color: ${backgroundColor};`\n const selectedStyle = `${tabStyle + marginsStyle} background-color: ${selectedColor};`\n const shownStyle = 'height: 100%; width: 100%;'\n const hiddenStyle = shownStyle + 'display: none;'\n rootElement.refresh = orderedSync\n orderedSync()\n\n if (!options.startEmpty && tabContainer.children.length && options.selectedTab) {\n const selectedTab0 = Array.from(tabContainer.children) // Version left for compatability with ??\n .map((tab) => tab.firstChild as HTMLElement)\n .find((tab) => tab.dataset.name === options.selectedTab)\n\n const selectedTabURI = options.selectedTab.uri\n const selectedTab1 = Array.from(tabContainer.children)\n // @ts-ignore\n .find(\n (tab) =>\n (tab as TabElement).subject &&\n // @ts-ignore\n (tab as TabElement).subject.uri &&\n // @ts-ignore\n (tab as TabElement).subject.uri === selectedTabURI\n )\n\n const tab = selectedTab1 || selectedTab0 || (tabContainer.children[0] as HTMLButtonElement)\n const clickMe = tab.firstChild\n // @ts-ignore\n if (clickMe) clickMe.click()\n } else if (!options.startEmpty) {\n (tabContainer.children[0].firstChild as HTMLButtonElement).click() // Open first tab\n }\n return rootElement\n\n function addCancelButton (tabContainer) {\n if (tabContainer.dataset.onCloseSet) {\n // @@ TODO: this is only here to make the browser tests work\n // Discussion at https://github.com/solidos/solid-ui/pull/110#issuecomment-527080663\n const existingCancelButton = tabContainer.querySelector('.unstyled')\n tabContainer.removeChild(existingCancelButton)\n }\n const extraTab = dom.createElement(tabElement)\n extraTab.classList.add('unstyled')\n const tabCancelButton = cancelButton(dom, onClose)\n tabCancelButton.setAttribute('style', tabCancelButton.getAttribute('style') + paddingStyle)\n extraTab.appendChild(tabCancelButton)\n tabContainer.appendChild(extraTab)\n tabContainer.dataset.onCloseSet = 'true'\n }\n\n function getItems (): Array<NamedNode> {\n if (options.items) return options.items\n if (options.ordered !== false) {\n // options.ordered defaults to true\n return (store.the(subject, options.predicate) as any).elements\n } else {\n return store.each(subject, options.predicate) as any\n }\n }\n\n function makeNewSlot (item: NamedNode) {\n const ele = dom.createElement(tabElement) as TabElement\n ele.setAttribute('style', unselectedStyle)\n ele.subject = item\n const div = ele.appendChild(dom.createElement('button'))\n div.setAttribute('style', 'background: none; border: none; font: inherit; cursor: pointer')\n\n div.onclick = function () {\n resetTabStyle()\n resetBodyStyle()\n ele.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {\n bodyMain.innerHTML = 'loading item ...' + item\n options.renderMain(bodyMain, ele.subject)\n bodyMain.asSettings = false\n }\n }\n\n if (options.renderTabSettings && ele.subject) {\n const ellipsis = dom.createElement('button')\n ellipsis.textContent = '...'\n ellipsis.setAttribute('style', 'position: absolute; right: 0; bottom: 0; width: 20%; background: none; color: inherit; border: none; padding: 0; font: inherit; cursor: pointer; outline: inherit;')\n\n ellipsis.onclick = function () {\n resetTabStyle()\n resetBodyStyle()\n ele.setAttribute('style', selectedStyle)\n if (!ele.bodyTR) return\n ele.bodyTR.setAttribute('style', shownStyle)\n const bodyMain = getOrCreateContainerElement(ele)\n if (options.renderTabSettings && ele.subject && bodyMain.asSettings !== true) {\n bodyMain.innerHTML = 'loading settings ...' + item\n options.renderTabSettings(bodyMain, ele.subject)\n bodyMain.asSettings = true\n }\n }\n ele.appendChild(ellipsis)\n }\n\n if (options.renderTab) {\n options.renderTab(div, item)\n } else {\n div.innerHTML = label(item)\n }\n return ele\n\n function getOrCreateContainerElement (ele: TabElement): ContainerElement {\n const bodyMain = ele.bodyTR?.children[0] as ContainerElement\n if (bodyMain) return bodyMain\n const newBodyMain = ele.bodyTR!.appendChild(dom.createElement('main'))\n newBodyMain.setAttribute('style', bodyMainStyle)\n return newBodyMain\n }\n }\n\n // @@ Use common one from utils?\n function orderedSync () {\n const items = getItems()\n let slot: TabElement, i, j, left, right\n let differ = false\n // Find how many match at each end\n for (left = 0; left < tabContainer.children.length; left++) {\n slot = tabContainer.children[left] as TabElement\n if (left >= items.length || (slot.subject && !slot.subject.sameTerm(items[left]))) {\n differ = true\n break\n }\n }\n if (!differ && items.length === tabContainer.children.length) {\n return // The two just match in order: a case to optimize for\n }\n for (right = tabContainer.children.length - 1; right >= 0; right--) {\n slot = tabContainer.children[right] as TabElement\n j = right - tabContainer.children.length + items.length\n if (slot.subject && !slot.subject.sameTerm(items[j])) {\n break\n }\n }\n // The elements left ... right in tabContainer.children do not match\n const insertables = items.slice(left, right - tabContainer.children.length + items.length + 1)\n while (right >= left) {\n // remove extra\n tabContainer.removeChild(tabContainer.children[left])\n bodyContainer.removeChild(bodyContainer.children[left])\n right -= 1\n }\n for (i = 0; i < insertables.length; i++) {\n const newSlot = makeNewSlot(insertables[i])\n const newBodyDiv = dom.createElement('div')\n newSlot.bodyTR = newBodyDiv\n if (left === tabContainer.children.length) {\n // None left of original on right\n tabContainer.appendChild(newSlot)\n bodyContainer.appendChild(newBodyDiv)\n } else {\n tabContainer.insertBefore(newSlot, tabContainer.children[left + i])\n bodyContainer.insertBefore(newBodyDiv, bodyContainer.children[left + i])\n }\n }\n if (onClose) {\n addCancelButton(tabContainer)\n }\n }\n\n function resetTabStyle () {\n for (let i = 0; i < tabContainer.children.length; i++) {\n const tab = tabContainer.children[i]\n if (tab.classList.contains('unstyled')) {\n continue\n } else {\n tab.setAttribute('style', unselectedStyle)\n }\n }\n }\n\n function resetBodyStyle () {\n for (let i = 0; i < bodyContainer.children.length; i++) {\n bodyContainer.children[i].setAttribute('style', hiddenStyle)\n }\n }\n}\n\n/**\n * @internal\n */\nfunction getColors (backgroundColor: string): [string, string] {\n return isLight(backgroundColor)\n ? [colorBlend(backgroundColor, '#ffffff', 0.3), '#000000']\n : [colorBlend(backgroundColor, '#000000', 0.3), '#ffffff']\n}\n\n/**\n * @internal\n */\nfunction colorBlend (a: string, b: string, mix: number): string {\n let ca, cb, res\n let str = '#'\n const hex = '0123456789abcdef'\n for (let i = 0; i < 3; i++) {\n ca = parseInt(a.slice(i * 2 + 1, i * 2 + 3), 16)\n cb = parseInt(b.slice(i * 2 + 1, i * 2 + 3), 16)\n res = ca * (1.0 - mix) + cb * mix // @@@ rounding\n const res2 = parseInt(('' + res).split('.')[0]) // @@ ugh\n const h = parseInt(('' + res2 / 16).split('.')[0]) // @@ ugh\n const l = parseInt(('' + (res2 % 16)).split('.')[0]) // @@ ugh\n str += hex[h] + hex[l]\n }\n return str\n}\n\n/**\n * @internal\n */\nfunction isLight (x: string): boolean {\n let total = 0\n for (let i = 0; i < 3; i++) {\n total += parseInt(x.slice(i * 2 + 1, i * 2 + 3), 16)\n }\n return total > 128 * 3\n}\n"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASc,SAASA,CAAEC,OAAyB,EAAE;EACpD,IAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO;EAC/B,IAAMC,GAAG,GAAGF,OAAO,CAACE,GAAG,IAAIC,QAAQ;EACnC,IAAMC,WAAW,GAAGC,QAAQ,CAACL,OAAO,CAACI,WAAW,IAAI,GAAG,CAAC;EACxD,IAAME,eAAe,GAAGN,OAAO,CAACM,eAAe,IAAI,SAAS;EAC5D,IAAMC,OAAO,GAAGH,WAAW,GAAG,CAAC;EAC/B,IAAMI,QAAQ,GAAGJ,WAAW,GAAG,CAAC;EAChC,IAAMK,OAAO,GAAGT,OAAO,CAACS,OAAO;EAE/B,IAAAC,UAAA,GAA+BC,SAAS,CAACL,eAAe,CAAC;IAAAM,WAAA,OAAAC,eAAA,aAAAH,UAAA;IAAlDI,aAAa,GAAAF,WAAA;IAAEG,KAAK,GAAAH,WAAA;EAC3B,IAAMI,aAAa,4FAAApC,MAAA,CAA4FkC,aAAa,oBAAiB;EAC7I,IAAMG,WAA6B,GAAGf,GAAG,CAACgB,aAAa,CAAC,KAAK,CAAC,EAAC;;EAE/DD,WAAW,CAACE,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"}
package/lib/typings.d.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -112,7 +112,6 @@ function hashColor(who) {
112
112
  };
113
113
  return '#' + (hash(who) & 0xffffff | 0xc0c0c0).toString(16); // c0c0c0 or 808080 forces pale
114
114
  }
115
-
116
115
  function genUuid() {
117
116
  // http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
118
117
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
@@ -187,7 +186,6 @@ function syncTableToArrayReOrdered(table, things, createNewRow) {
187
186
  var row = table.children[i];
188
187
  elementMap[row.subject.toNT()] = row; // More sophisticaed would be to have a bag of duplicates
189
188
  }
190
-
191
189
  for (var g = 0; g < things.length; g++) {
192
190
  var thing = things[g];
193
191
  if (g >= table.children.length) {
@@ -291,7 +289,6 @@ function getAbout(kb, target) {
291
289
  // if (level.tagName=='TR') return undefined//this is to prevent literals passing through
292
290
  }
293
291
  }
294
-
295
292
  UI.log.debug('getAbout: No about found');
296
293
  return undefined;
297
294
  }
@@ -399,7 +396,6 @@ function shortName(uri) {
399
396
  for (var _ns in this.prefixes) {
400
397
  namespaces[this.prefixes[_ns]] = _ns; // reverse index
401
398
  }
402
-
403
399
  var pok;
404
400
  var canUse = function canUse(pp) {
405
401
  // if (!__Serializer.prototype.validPrefix.test(pp)) return false; // bad format
@@ -449,11 +445,9 @@ function ontologyLabel(term) {
449
445
  return term.uri + '?!'; // strange should have # or /
450
446
  }
451
447
  }
452
-
453
448
  for (var _ns2 in UI.ns) {
454
449
  namespaces[UI.ns[_ns2]] = _ns2; // reverse index
455
450
  }
456
-
457
451
  try {
458
452
  return namespaces[s];
459
453
  } catch (e) {}
@@ -472,7 +466,6 @@ function ontologyLabel(term) {
472
466
  }
473
467
  }
474
468
  }
475
-
476
469
  function labelWithOntology(x, initialCap) {
477
470
  var t = _solidLogic.store.findTypeURIs(x);
478
471
  if (t[UI.ns.rdf('Predicate').uri] || t[UI.ns.rdfs('Class').uri]) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["log","_interopRequireWildcard","require","_solidLogic","ns","rdf","_label","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","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","b","charCodeAt","toString","genUuid","replace","c","Math","random","v","syncTableToArray","table","things","createNewRow","foundOne","row","children","length","trashMe","g","thing","subject","sameTerm","newRow","appendChild","ele","insertBefore","removeChild","syncTableToArrayReOrdered","elementMap","toNT","existingRow","before","stackString","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","findTypeURIs","rdfs","label","escapeForXML","labelForXML","predicateLabelForXML","inverse","predicateLabel","lab","ip","any","owl","RDFComparePredicateObject","self","other","compareTerm","RDFComparePredicateSubject","predParentOf","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":["log","_interopRequireWildcard","require","_solidLogic","ns","rdf","_label","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","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","b","charCodeAt","toString","genUuid","replace","c","Math","random","v","syncTableToArray","table","things","createNewRow","foundOne","row","children","length","trashMe","g","thing","subject","sameTerm","newRow","appendChild","ele","insertBefore","removeChild","syncTableToArrayReOrdered","elementMap","toNT","existingRow","before","stackString","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","findTypeURIs","rdfs","label","escapeForXML","labelForXML","predicateLabelForXML","inverse","predicateLabel","lab","ip","any","owl","RDFComparePredicateObject","self","other","compareTerm","RDFComparePredicateSubject","predParentOf","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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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -5,28 +5,28 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.versionInfo = void 0;
7
7
  var versionInfo = exports.versionInfo = {
8
- buildTime: '2023-11-01T10:00:12Z',
9
- commit: '408c1ba06cc43e7d1a006287fe11b9938f8b7b7b',
8
+ buildTime: '2023-11-30T16:45:27Z',
9
+ commit: '28954ea400b5ebbd9627fdf986cadccae104a51f',
10
10
  npmInfo: {
11
- 'solid-ui': '2.4.29',
11
+ 'solid-ui': '2.4.30',
12
12
  npm: '8.19.4',
13
- node: '16.14.0',
14
- v8: '9.4.146.24-node.20',
13
+ node: '16.20.2',
14
+ v8: '9.4.146.26-node.26',
15
15
  uv: '1.43.0',
16
16
  zlib: '1.2.11',
17
17
  brotli: '1.0.9',
18
- ares: '1.18.1',
18
+ ares: '1.19.1',
19
19
  modules: '93',
20
- nghttp2: '1.45.1',
20
+ nghttp2: '1.47.0',
21
21
  napi: '8',
22
- llhttp: '6.0.4',
23
- openssl: '1.1.1m+quic',
24
- cldr: '40.0',
25
- icu: '70.1',
26
- tz: '2021a3',
22
+ llhttp: '6.0.11',
23
+ openssl: '1.1.1v+quic',
24
+ cldr: '41.0',
25
+ icu: '71.1',
26
+ tz: '2022f',
27
27
  unicode: '14.0',
28
- ngtcp2: '0.1.0-DEV',
29
- nghttp3: '0.1.0-DEV'
28
+ ngtcp2: '0.8.1',
29
+ nghttp3: '0.7.0'
30
30
  }
31
31
  };
32
32
  //# sourceMappingURL=versionInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionInfo.js","names":["versionInfo","exports","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode","ngtcp2","nghttp3"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2023-11-01T10:00:12Z',\n commit: '408c1ba06cc43e7d1a006287fe11b9938f8b7b7b',\n npmInfo:\n{\n 'solid-ui': '2.4.29',\n npm: '8.19.4',\n node: '16.14.0',\n v8: '9.4.146.24-node.20',\n uv: '1.43.0',\n zlib: '1.2.11',\n brotli: '1.0.9',\n ares: '1.18.1',\n modules: '93',\n nghttp2: '1.45.1',\n napi: '8',\n llhttp: '6.0.4',\n openssl: '1.1.1m+quic',\n cldr: '40.0',\n icu: '70.1',\n tz: '2021a3',\n unicode: '14.0',\n ngtcp2: '0.1.0-DEV',\n nghttp3: '0.1.0-DEV'\n}\n}\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,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,aAAa;IACtBC,IAAI,EAAE,MAAM;IACZC,GAAG,EAAE,MAAM;IACXC,EAAE,EAAE,QAAQ;IACZC,OAAO,EAAE,MAAM;IACfC,MAAM,EAAE,WAAW;IACnBC,OAAO,EAAE;EACX;AACA,CAAC"}
1
+ {"version":3,"file":"versionInfo.js","names":["versionInfo","exports","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode","ngtcp2","nghttp3"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2023-11-30T16:45:27Z',\n commit: '28954ea400b5ebbd9627fdf986cadccae104a51f',\n npmInfo:\n{\n 'solid-ui': '2.4.30',\n npm: '8.19.4',\n node: '16.20.2',\n v8: '9.4.146.26-node.26',\n uv: '1.43.0',\n zlib: '1.2.11',\n brotli: '1.0.9',\n ares: '1.19.1',\n modules: '93',\n nghttp2: '1.47.0',\n napi: '8',\n llhttp: '6.0.11',\n openssl: '1.1.1v+quic',\n cldr: '41.0',\n icu: '71.1',\n tz: '2022f',\n unicode: '14.0',\n ngtcp2: '0.8.1',\n nghttp3: '0.7.0'\n}\n}\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,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,QAAQ;IAChBC,OAAO,EAAE,aAAa;IACtBC,IAAI,EAAE,MAAM;IACZC,GAAG,EAAE,MAAM;IACXC,EAAE,EAAE,OAAO;IACXC,OAAO,EAAE,MAAM;IACfC,MAAM,EAAE,OAAO;IACfC,OAAO,EAAE;EACX;AACA,CAAC"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -65,7 +65,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
65
65
  * UI Widgets such as buttons
66
66
  * @packageDocumentation
67
67
  */
68
+
68
69
  /* global alert */
70
+
69
71
  var iconBase = _iconBase.icons.iconBase;
70
72
  var cancelIconURI = iconBase + 'noun_1180156.svg'; // black X
71
73
  var checkIconURI = iconBase + 'noun_1180158.svg'; // green checkmark; Continue
@@ -293,7 +295,6 @@ function findImageFromURI(x) {
293
295
  // message: is apple bug-- should be mid:
294
296
  return iconDir + 'noun_480183.svg'; // envelope noun_567486
295
297
  }
296
-
297
298
  if (x.uri.startsWith('mailto:')) {
298
299
  return iconDir + 'noun_567486.svg'; // mailbox - an email desitination
299
300
  }
@@ -304,7 +305,6 @@ function findImageFromURI(x) {
304
305
  // todo: pick up a possible favicon for the web page itself from a link
305
306
  // was: return iconDir + 'noun_681601.svg' // document - under solid assumptions
306
307
  }
307
-
308
308
  return null;
309
309
  }
310
310
  return iconDir + 'noun_10636_grey.svg'; // Grey Circle - some thing
@@ -333,7 +333,6 @@ function findImage(thing) {
333
333
  if (thing.sameTerm(ns.foaf('Agent')) || thing.sameTerm(ns.rdf('Resource'))) {
334
334
  return iconDir + 'noun_98053.svg'; // Globe
335
335
  }
336
-
337
336
  var image = kb.any(thing, ns.sioc('avatar')) || kb.any(thing, ns.foaf('img')) || kb.any(thing, ns.vcard('logo')) || kb.any(thing, ns.vcard('hasPhoto')) || kb.any(thing, ns.vcard('photo')) || kb.any(thing, ns.foaf('depiction'));
338
337
  return image ? image.uri : null;
339
338
  }
@@ -374,7 +373,6 @@ function trySetImage(element, thing, iconForClassMap) {
374
373
  return false; // maybe we can do better
375
374
  }
376
375
  }
377
-
378
376
  element.setAttribute('src', iconBase + 'noun_10636_grey.svg'); // Grey Circle - some thing
379
377
  return false; // we can do better
380
378
  }
@@ -417,7 +415,6 @@ function faviconOrDefault(dom, x) {
417
415
  };
418
416
  image.setAttribute('src', iconBase + (isOrigin(x) ? 'noun_15177.svg' : 'noun_681601.svg') // App symbol vs document
419
417
  );
420
-
421
418
  if (x.uri && x.uri.startsWith('https:') && x.uri.indexOf('#') < 0) {
422
419
  var res = dom.createElement('object'); // favico with a fallback of a default image if no favicon
423
420
  res.setAttribute('data', tempSite(x) + 'favicon.ico');
@@ -597,7 +594,6 @@ function cancelButton(dom, handler) {
597
594
  // sigh for tsc
598
595
  b.firstChild.style.opacity = '0.3'; // Black X is too harsh: current language is grey X
599
596
  }
600
-
601
597
  return b;
602
598
  }
603
599
 
@@ -685,7 +681,6 @@ function renderAsRow(dom, pred, obj, options) {
685
681
  } else {
686
682
  setName(td2, obj); // This is async
687
683
  }
688
-
689
684
  if (options.deleteFunction) {
690
685
  deleteButtonWithCheck(dom, td3, options.noun || 'one', options.deleteFunction);
691
686
  }
@@ -874,7 +869,6 @@ function attachmentList(dom, subject, div) {
874
869
  var attachmentTable = attachmentRight.appendChild(dom.createElement('table'));
875
870
  attachmentTable.appendChild(dom.createElement('tr')) // attachmentTableTop
876
871
  ;
877
-
878
872
  attachmentOuter.refresh = refresh; // Participate in downstream changes
879
873
  // ;(attachmentTable as any).refresh = refresh <- outer should be best?
880
874
 
@@ -895,7 +889,6 @@ function attachmentList(dom, subject, div) {
895
889
  // buttonDiv.children[1].style = buttonStyle
896
890
  }
897
891
  }
898
-
899
892
  return attachmentOuter;
900
893
  }
901
894
 
@@ -1198,7 +1191,6 @@ function twoLineTransaction(dom, x) {
1198
1191
  if (!y) failed += '@@ No value for ' + p + '! ';
1199
1192
  return y ? utils.escapeForXML(y.value) : '?'; // @@@@
1200
1193
  };
1201
-
1202
1194
  var box = dom.createElement('table');
1203
1195
  box.innerHTML = "\n <tr>\n <td colspan=\"2\"> ".concat(enc('payee'), "</td>\n < /tr>\n < tr >\n <td>").concat(enc('date').slice(0, 10), "</td>\n <td style = \"text-align: right;\">").concat(enc('amount'), "</td>\n </tr>");
1204
1196
  if (failed) {