solid-ui 2.6.1-e5ad2945 → 2.6.1-e78cbe5

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 (369) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +85 -26
  3. package/dist/acl/access-controller.js +238 -0
  4. package/dist/acl/access-controller.js.map +1 -0
  5. package/{lib → dist}/acl/access-groups.d.ts +2 -2
  6. package/{lib → dist}/acl/access-groups.d.ts.map +1 -1
  7. package/dist/acl/access-groups.js +323 -0
  8. package/dist/acl/access-groups.js.map +1 -0
  9. package/dist/acl/acl-control.js +173 -0
  10. package/dist/acl/acl-control.js.map +1 -0
  11. package/dist/acl/acl.js +495 -0
  12. package/dist/acl/acl.js.map +1 -0
  13. package/dist/acl/add-agent-buttons.js +217 -0
  14. package/dist/acl/add-agent-buttons.js.map +1 -0
  15. package/dist/acl/index.js +32 -0
  16. package/dist/acl/index.js.map +1 -0
  17. package/dist/acl/types.js +6 -0
  18. package/dist/acl/types.js.map +1 -0
  19. package/dist/chat/keys.js +106 -0
  20. package/dist/chat/keys.js.map +1 -0
  21. package/dist/chat/signature.js +63 -0
  22. package/dist/chat/signature.js.map +1 -0
  23. package/dist/create/create.js +249 -0
  24. package/dist/create/create.js.map +1 -0
  25. package/dist/create/index.js +5 -0
  26. package/dist/create/index.js.map +1 -0
  27. package/dist/create/types.js +2 -0
  28. package/dist/create/types.js.map +1 -0
  29. package/dist/debug.d.ts.map +1 -0
  30. package/dist/debug.js +13 -0
  31. package/dist/debug.js.map +1 -0
  32. package/dist/footer/index.js +67 -0
  33. package/dist/footer/index.js.map +1 -0
  34. package/dist/header/empty-profile.js +11 -0
  35. package/dist/header/empty-profile.js.map +1 -0
  36. package/dist/header/index.js +260 -0
  37. package/dist/header/index.js.map +1 -0
  38. package/dist/iconBase.js +37 -0
  39. package/dist/iconBase.js.map +1 -0
  40. package/dist/icons/solid_logo.js.map +1 -0
  41. package/{lib → dist}/index.d.ts +7 -9
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +102 -0
  44. package/dist/index.js.map +1 -0
  45. package/{lib → dist}/log.d.ts.map +1 -1
  46. package/dist/log.js +182 -0
  47. package/dist/log.js.map +1 -0
  48. package/dist/login/login.js +858 -0
  49. package/dist/login/login.js.map +1 -0
  50. package/dist/matrix/index.js +5 -0
  51. package/dist/matrix/index.js.map +1 -0
  52. package/dist/matrix/matrix.js +217 -0
  53. package/dist/matrix/matrix.js.map +1 -0
  54. package/dist/matrix/types.js +2 -0
  55. package/dist/matrix/types.js.map +1 -0
  56. package/dist/media/index.js +6 -0
  57. package/dist/media/index.js.map +1 -0
  58. package/dist/media/media-capture.js +161 -0
  59. package/dist/media/media-capture.js.map +1 -0
  60. package/dist/pad.js +775 -0
  61. package/dist/pad.js.map +1 -0
  62. package/{lib → dist}/participation.d.ts.map +1 -1
  63. package/dist/participation.js +184 -0
  64. package/dist/participation.js.map +1 -0
  65. package/dist/solid-ui.esm.js +25531 -0
  66. package/dist/solid-ui.esm.js.map +1 -0
  67. package/dist/solid-ui.esm.min.js +43 -0
  68. package/dist/solid-ui.esm.min.js.map +1 -0
  69. package/dist/solid-ui.js +23479 -68931
  70. package/dist/solid-ui.js.map +1 -1
  71. package/dist/solid-ui.min.js +40 -2
  72. package/dist/solid-ui.min.js.map +1 -1
  73. package/dist/tabs.js +388 -0
  74. package/dist/tabs.js.map +1 -0
  75. package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +1 -1
  76. package/dist/utils/headerFooterHelpers.js +114 -0
  77. package/dist/utils/headerFooterHelpers.js.map +1 -0
  78. package/dist/utils/keyHelpers/accessData.js +64 -0
  79. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  80. package/dist/utils/keyHelpers/acl.js +74 -0
  81. package/dist/utils/keyHelpers/acl.js.map +1 -0
  82. package/dist/utils/keyHelpers/otherHelpers.js +13 -0
  83. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  84. package/dist/utils/label.js +111 -0
  85. package/dist/utils/label.js.map +1 -0
  86. package/dist/versionInfo.js +31 -0
  87. package/dist/versionInfo.js.map +1 -0
  88. package/dist/widgets/buttons/iconLinks.js +44 -0
  89. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  90. package/dist/widgets/buttons.js +1280 -0
  91. package/dist/widgets/buttons.js.map +1 -0
  92. package/dist/widgets/error.d.ts +14 -0
  93. package/dist/widgets/error.d.ts.map +1 -0
  94. package/dist/widgets/error.js +35 -0
  95. package/dist/widgets/error.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/autocompleteBar.js +123 -0
  97. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  98. package/dist/widgets/forms/autocomplete/autocompleteField.js +199 -0
  99. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  100. package/dist/widgets/forms/autocomplete/autocompletePicker.js +256 -0
  101. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  102. package/dist/widgets/forms/autocomplete/language.js +104 -0
  103. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  104. package/dist/widgets/forms/autocomplete/publicData.js +460 -0
  105. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  106. package/dist/widgets/forms/basic.js +241 -0
  107. package/dist/widgets/forms/basic.js.map +1 -0
  108. package/dist/widgets/forms/comment.js +46 -0
  109. package/dist/widgets/forms/comment.js.map +1 -0
  110. package/dist/widgets/forms/fieldFunction.js +44 -0
  111. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  112. package/dist/widgets/forms/fieldParams.js +89 -0
  113. package/dist/widgets/forms/fieldParams.js.map +1 -0
  114. package/{lib → dist}/widgets/forms/formStyle.d.ts.map +1 -1
  115. package/dist/widgets/forms/formStyle.js +36 -0
  116. package/dist/widgets/forms/formStyle.js.map +1 -0
  117. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  118. package/{lib → dist}/widgets/widgetHelpers.js +14 -25
  119. package/dist/widgets/widgetHelpers.js.map +1 -0
  120. package/package.json +48 -52
  121. package/dist/789.solid-ui.min.js +0 -1
  122. package/dist/841.solid-ui.min.js +0 -3
  123. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  124. package/dist/841.solid-ui.min.js.map +0 -1
  125. package/dist/_2b19.solid-ui.js +0 -14
  126. package/dist/_2b19.solid-ui.js.map +0 -1
  127. package/dist/index.html +0 -1
  128. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  129. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  130. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  131. package/lib/acl/access-controller.js +0 -391
  132. package/lib/acl/access-controller.js.map +0 -1
  133. package/lib/acl/access-groups.js +0 -507
  134. package/lib/acl/access-groups.js.map +0 -1
  135. package/lib/acl/acl-control.js +0 -237
  136. package/lib/acl/acl-control.js.map +0 -1
  137. package/lib/acl/acl.js +0 -517
  138. package/lib/acl/acl.js.map +0 -1
  139. package/lib/acl/add-agent-buttons.js +0 -434
  140. package/lib/acl/add-agent-buttons.js.map +0 -1
  141. package/lib/acl/index.js +0 -39
  142. package/lib/acl/index.js.map +0 -1
  143. package/lib/acl/types.js +0 -6
  144. package/lib/acl/types.js.map +0 -1
  145. package/lib/chat/bookmarks.js +0 -303
  146. package/lib/chat/bookmarks.js.map +0 -1
  147. package/lib/chat/chatLogic.js +0 -420
  148. package/lib/chat/chatLogic.js.map +0 -1
  149. package/lib/chat/dateFolder.js +0 -328
  150. package/lib/chat/dateFolder.js.map +0 -1
  151. package/lib/chat/infinite.js +0 -994
  152. package/lib/chat/infinite.js.map +0 -1
  153. package/lib/chat/keys.js +0 -232
  154. package/lib/chat/keys.js.map +0 -1
  155. package/lib/chat/message.js +0 -715
  156. package/lib/chat/message.js.map +0 -1
  157. package/lib/chat/messageTools.js +0 -538
  158. package/lib/chat/messageTools.js.map +0 -1
  159. package/lib/chat/signature.js +0 -109
  160. package/lib/chat/signature.js.map +0 -1
  161. package/lib/chat/thread.js +0 -535
  162. package/lib/chat/thread.js.map +0 -1
  163. package/lib/create/create.js +0 -242
  164. package/lib/create/create.js.map +0 -1
  165. package/lib/create/index.js +0 -11
  166. package/lib/create/index.js.map +0 -1
  167. package/lib/create/types.js +0 -6
  168. package/lib/create/types.js.map +0 -1
  169. package/lib/debug.d.ts.map +0 -1
  170. package/lib/debug.js +0 -30
  171. package/lib/debug.js.map +0 -1
  172. package/lib/folders.js +0 -132
  173. package/lib/folders.js.map +0 -1
  174. package/lib/footer/index.js +0 -123
  175. package/lib/footer/index.js.map +0 -1
  176. package/lib/header/empty-profile.js +0 -8
  177. package/lib/header/empty-profile.js.map +0 -1
  178. package/lib/header/index.js +0 -375
  179. package/lib/header/index.js.map +0 -1
  180. package/lib/iconBase.js +0 -44
  181. package/lib/iconBase.js.map +0 -1
  182. package/lib/icons/solid_logo.js.map +0 -1
  183. package/lib/index.d.ts.map +0 -1
  184. package/lib/index.js +0 -223
  185. package/lib/index.js.map +0 -1
  186. package/lib/log.js +0 -213
  187. package/lib/log.js.map +0 -1
  188. package/lib/login/login.js +0 -1241
  189. package/lib/login/login.js.map +0 -1
  190. package/lib/matrix/index.js +0 -11
  191. package/lib/matrix/index.js.map +0 -1
  192. package/lib/matrix/matrix.js +0 -216
  193. package/lib/matrix/matrix.js.map +0 -1
  194. package/lib/matrix/types.js +0 -6
  195. package/lib/matrix/types.js.map +0 -1
  196. package/lib/media/index.js +0 -12
  197. package/lib/media/index.js.map +0 -1
  198. package/lib/media/media-capture.js +0 -194
  199. package/lib/media/media-capture.js.map +0 -1
  200. package/lib/messageArea.js +0 -319
  201. package/lib/messageArea.js.map +0 -1
  202. package/lib/noun_Camera_1618446_000000.js +0 -8
  203. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  204. package/lib/ns.js +0 -17
  205. package/lib/ns.js.map +0 -1
  206. package/lib/pad.js +0 -805
  207. package/lib/pad.js.map +0 -1
  208. package/lib/participation.js +0 -219
  209. package/lib/participation.js.map +0 -1
  210. package/lib/preferences.js +0 -215
  211. package/lib/preferences.js.map +0 -1
  212. package/lib/signup/config-default.js +0 -43
  213. package/lib/signup/config-default.js.map +0 -1
  214. package/lib/signup/signup.js +0 -74
  215. package/lib/signup/signup.js.map +0 -1
  216. package/lib/stories/decorators.js +0 -10
  217. package/lib/stories/decorators.js.map +0 -1
  218. package/lib/style.js +0 -158
  219. package/lib/style.js.map +0 -1
  220. package/lib/styleConstants.js +0 -35
  221. package/lib/styleConstants.js.map +0 -1
  222. package/lib/style_multiSelect.js +0 -62
  223. package/lib/style_multiSelect.js.map +0 -1
  224. package/lib/table.js +0 -1573
  225. package/lib/table.js.map +0 -1
  226. package/lib/tabs.js +0 -448
  227. package/lib/tabs.js.map +0 -1
  228. package/lib/typings.d.js +0 -2
  229. package/lib/typings.d.js.map +0 -1
  230. package/lib/utils/headerFooterHelpers.js +0 -165
  231. package/lib/utils/headerFooterHelpers.js.map +0 -1
  232. package/lib/utils/index.js +0 -527
  233. package/lib/utils/index.js.map +0 -1
  234. package/lib/utils/keyHelpers/accessData.js +0 -131
  235. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  236. package/lib/utils/keyHelpers/acl.js +0 -90
  237. package/lib/utils/keyHelpers/acl.js.map +0 -1
  238. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  239. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  240. package/lib/utils/label.js +0 -103
  241. package/lib/utils/label.js.map +0 -1
  242. package/lib/versionInfo.d.ts +0 -32
  243. package/lib/versionInfo.d.ts.map +0 -1
  244. package/lib/versionInfo.js +0 -37
  245. package/lib/versionInfo.js.map +0 -1
  246. package/lib/widgets/buttons/iconLinks.js +0 -53
  247. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  248. package/lib/widgets/buttons.js +0 -1306
  249. package/lib/widgets/buttons.js.map +0 -1
  250. package/lib/widgets/dragAndDrop.js +0 -194
  251. package/lib/widgets/dragAndDrop.js.map +0 -1
  252. package/lib/widgets/error.d.ts +0 -2
  253. package/lib/widgets/error.d.ts.map +0 -1
  254. package/lib/widgets/error.js +0 -46
  255. package/lib/widgets/error.js.map +0 -1
  256. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  257. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  258. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  259. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  260. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  261. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  262. package/lib/widgets/forms/autocomplete/language.js +0 -189
  263. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  264. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  265. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  266. package/lib/widgets/forms/basic.js +0 -254
  267. package/lib/widgets/forms/basic.js.map +0 -1
  268. package/lib/widgets/forms/comment.js +0 -54
  269. package/lib/widgets/forms/comment.js.map +0 -1
  270. package/lib/widgets/forms/fieldFunction.js +0 -52
  271. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  272. package/lib/widgets/forms/fieldParams.js +0 -77
  273. package/lib/widgets/forms/fieldParams.js.map +0 -1
  274. package/lib/widgets/forms/formStyle.js +0 -44
  275. package/lib/widgets/forms/formStyle.js.map +0 -1
  276. package/lib/widgets/forms.js +0 -2045
  277. package/lib/widgets/forms.js.map +0 -1
  278. package/lib/widgets/index.js +0 -110
  279. package/lib/widgets/index.js.map +0 -1
  280. package/lib/widgets/multiSelect.js +0 -658
  281. package/lib/widgets/multiSelect.js.map +0 -1
  282. package/lib/widgets/peoplePicker.js +0 -467
  283. package/lib/widgets/peoplePicker.js.map +0 -1
  284. package/lib/widgets/widgetHelpers.js.map +0 -1
  285. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  286. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  287. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  288. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  289. /package/{lib → dist}/acl/acl.d.ts +0 -0
  290. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  291. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  292. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  293. /package/{lib → dist}/acl/index.d.ts +0 -0
  294. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  295. /package/{lib → dist}/acl/types.d.ts +0 -0
  296. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  297. /package/{lib → dist}/chat/keys.d.ts +0 -0
  298. /package/{lib → dist}/chat/keys.d.ts.map +0 -0
  299. /package/{lib → dist}/chat/signature.d.ts +0 -0
  300. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  301. /package/{lib → dist}/create/create.d.ts +0 -0
  302. /package/{lib → dist}/create/create.d.ts.map +0 -0
  303. /package/{lib → dist}/create/index.d.ts +0 -0
  304. /package/{lib → dist}/create/index.d.ts.map +0 -0
  305. /package/{lib → dist}/create/types.d.ts +0 -0
  306. /package/{lib → dist}/create/types.d.ts.map +0 -0
  307. /package/{lib → dist}/debug.d.ts +0 -0
  308. /package/{lib → dist}/footer/index.d.ts +0 -0
  309. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  310. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  311. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  312. /package/{lib → dist}/header/index.d.ts +0 -0
  313. /package/{lib → dist}/header/index.d.ts.map +0 -0
  314. /package/{lib → dist}/iconBase.d.ts +0 -0
  315. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  316. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  317. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  318. /package/{lib → dist}/icons/solid_logo.js +0 -0
  319. /package/{lib → dist}/log.d.ts +0 -0
  320. /package/{lib → dist}/login/login.d.ts +0 -0
  321. /package/{lib → dist}/login/login.d.ts.map +0 -0
  322. /package/{lib → dist}/matrix/index.d.ts +0 -0
  323. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  324. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  325. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  326. /package/{lib → dist}/matrix/types.d.ts +0 -0
  327. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  328. /package/{lib → dist}/media/index.d.ts +0 -0
  329. /package/{lib → dist}/media/index.d.ts.map +0 -0
  330. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  331. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  332. /package/{lib → dist}/pad.d.ts +0 -0
  333. /package/{lib → dist}/pad.d.ts.map +0 -0
  334. /package/{lib → dist}/participation.d.ts +0 -0
  335. /package/{lib → dist}/tabs.d.ts +0 -0
  336. /package/{lib → dist}/tabs.d.ts.map +0 -0
  337. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  338. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts +0 -0
  339. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +0 -0
  340. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  341. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  342. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +0 -0
  343. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +0 -0
  344. /package/{lib → dist}/utils/label.d.ts +0 -0
  345. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  346. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  347. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  348. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  349. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  355. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  356. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  357. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  358. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +0 -0
  359. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  360. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  361. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  362. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  363. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  364. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  365. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  366. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  367. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  368. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  369. /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
package/dist/tabs.js ADDED
@@ -0,0 +1,388 @@
1
+ import { cancelButton } from './widgets';
2
+ import { label } from './utils';
3
+ import { style } from './style';
4
+ import { store } from 'solid-logic';
5
+ /**
6
+ * @ignore
7
+ */
8
+ class ContainerElement extends HTMLElement {
9
+ }
10
+ export class TabWidgetElement extends HTMLElement {
11
+ }
12
+ /**
13
+ * @ignore
14
+ */
15
+ class TabElement extends HTMLElement {
16
+ }
17
+ /**
18
+ * Use this widget to generate tabs from triples set in the global store.
19
+ *
20
+ * [Here you can see examples of the tabs](https://solidos.github.io/solid-ui/examples/tabs/).
21
+ *
22
+ * It assumes that items to use for tabs will be in a collection by default,
23
+ * e.g.:
24
+ *
25
+ * ```turtle
26
+ * :subject :predicate ( :item1 :item2 ) .
27
+ * ```
28
+ *
29
+ * You can override this by setting `ordered: false`, in which case it expects
30
+ * unordered triples:
31
+ *
32
+ * ```turtle
33
+ * :subject :predicate :item1, :item 2 .
34
+ * ```
35
+ *
36
+ * Triples that are not ordered in collection are in principle not sorted,
37
+ * which means that tabs could change order every time you render the widget.
38
+ * But in this case the widget will try to sort it in order to keep it
39
+ * consistent.
40
+ *
41
+ * In both of these cases you need to define options `subject` and `predicate`
42
+ * to tell the widget which triples it should be looking for.
43
+ *
44
+ * Finally you can set items manually, using the `items` option, e.g.:
45
+ *
46
+ * ```javascript
47
+ * {
48
+ * items: [
49
+ * namedNode('https://domain.tld/#item1'),
50
+ * namedNode('https://domain.tld/#item2')
51
+ * ]
52
+ * }
53
+ * ```
54
+ *
55
+ * When you set items manually you do not need to set `subject` and
56
+ * `predicate`.
57
+ *
58
+ * In any case you probably want to set the renderMain option to specify
59
+ * what should be rendered for the various items, e.g.:
60
+ *
61
+ * ```javascript
62
+ * {
63
+ * renderMain: (bodyMain, subject) => {
64
+ * bodyMain.innerHTML = renderItem(subject)
65
+ * }
66
+ * }
67
+ * ```
68
+ *
69
+ * **Note:** `renderItem` is a custom function that you need to define yourself.
70
+ *
71
+ * The option `renderTabSettings` allows you to render a custom view in the
72
+ * body container that is shown when you hold the ALT key and click on a
73
+ * tab. It works very much like the `renderMain` option:
74
+ *
75
+ * ```javascript
76
+ * {
77
+ * renderTabSettings: (bodyMain, subject) => {
78
+ * bodyMain.innerHTML = renderTabSettings(subject)
79
+ * }
80
+ * }
81
+ * ```
82
+ *
83
+ * **Note:** `renderTabSettings` is a custom function that you need to define
84
+ * yourself.
85
+ *
86
+ * By default the widget will try to guess the label by using the
87
+ * [[utils.label]] function. If you want to customize this yourself, you can
88
+ * use the `renderTab` option:
89
+ *
90
+ * ```javascript
91
+ * {
92
+ * renderTab: (tabDiv, subject) => {
93
+ * tabDiv.innerText = renderTabText(subject)
94
+ * }
95
+ * }
96
+ * ```
97
+ *
98
+ * **Note:** `renderTabText` is a custom function you need to define yourself.
99
+ *
100
+ * The option renderTab is also important if you want to set which tab should
101
+ * be selected once the widget is rendered. By default it will simply select
102
+ * the first tab, but you can override by setting `dataset.name` on the tab
103
+ * and referring to the same string in `selectedTab`:
104
+ *
105
+ * ```javascript
106
+ * {
107
+ * renderTab: (tabDiv, subject) => {
108
+ * tabDiv.dataset.name = subject.uri
109
+ * },
110
+ * selectedTab: item2.uri
111
+ * }
112
+ * ```
113
+ *
114
+ * You can apply a color to use for tabs and border of the container by using
115
+ * option `background-color`. This is #ddddcc by default.
116
+ *
117
+ * You can override the document object that the widget uses to generate DOM
118
+ * elements by setting the option `dom`. This is encouraged to set if you
119
+ * intend your functionality to be used in environments that don't provide
120
+ * a global `document` object.
121
+ *
122
+ * If you want to render a close button next to the tabs you can set option
123
+ * `onClose` which takes a callback function that is triggered when the
124
+ * button is clicked:
125
+ *
126
+ * ```javascript
127
+ * {
128
+ * onClose: (event) => {
129
+ * // do something that hides the widget altogether
130
+ * }
131
+ * }
132
+ * ```
133
+ *
134
+ * The option `orientation` allows you to set which side the tabs should be
135
+ * located: `'0'` = Top, `'1'` = Left, `'2'` = Bottom, `'3'` = Right
136
+ *
137
+ * If you don't want to render anything in the body container by default,
138
+ * you can set the option `startEmpty` to `true`.
139
+ *
140
+ * @param options
141
+ */
142
+ const tabsDefaultBackgroundColor = '#ddddcc';
143
+ export function tabWidget(options) {
144
+ const subject = options.subject;
145
+ const dom = options.dom || document;
146
+ const orientation = parseInt(options.orientation || '0');
147
+ const backgroundColor = options.backgroundColor || tabsDefaultBackgroundColor;
148
+ const flipped = orientation & 2;
149
+ const vertical = orientation & 1;
150
+ const onClose = options.onClose;
151
+ const [selectedColor, color] = getColors(backgroundColor);
152
+ const bodyMainStyle = `flex: 2; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ${selectedColor}; padding: 1em;`;
153
+ const rootElement = dom.createElement('div'); // 20200117a
154
+ rootElement.setAttribute('style', style.tabsRootElement);
155
+ rootElement.style.flexDirection = (vertical ? 'row' : 'column') + (flipped ? '-reverse' : '');
156
+ const navElement = rootElement.appendChild(dom.createElement('nav'));
157
+ navElement.setAttribute('style', style.tabsNavElement);
158
+ const mainElement = rootElement.appendChild(dom.createElement('main'));
159
+ mainElement.setAttribute('style', style.tabsMainElement); // override tabbedtab.css
160
+ const tabContainer = navElement.appendChild(dom.createElement('ul'));
161
+ tabContainer.setAttribute('style', style.tabContainer);
162
+ tabContainer.style.flexDirection = `${vertical ? 'column' : 'row'}`;
163
+ const tabElement = 'li';
164
+ const bodyContainer = mainElement;
165
+ rootElement.tabContainer = tabContainer;
166
+ rootElement.bodyContainer = bodyContainer;
167
+ const corners = ['0.2em', '0.2em', '0', '0']; // top left, TR, BR, BL
168
+ const cornersPrepped = corners.concat(corners).slice(orientation, orientation + 4);
169
+ const cornersStyle = `border-radius: ${cornersPrepped.join(' ')};`;
170
+ const margins = ['0.3em', '0.3em', '0', '0.3em']; // top, right, bottom, left
171
+ const marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4);
172
+ const marginsStyle = `margin: ${marginsPrepped.join(' ')};`;
173
+ const paddingStyle = `padding: ${marginsPrepped.join(' ')};`;
174
+ const tabStyle = cornersStyle + `position: relative; padding: 0.7em; max-width: 20em; color: ${color};`;
175
+ const unselectedStyle = `${tabStyle + marginsStyle} opacity: 50%; background-color: ${backgroundColor};`;
176
+ const selectedStyle = `${tabStyle + marginsStyle} background-color: ${selectedColor};`;
177
+ const shownStyle = 'height: 100%; width: 100%;';
178
+ const hiddenStyle = shownStyle + 'display: none;';
179
+ rootElement.refresh = orderedSync;
180
+ orderedSync();
181
+ if (!options.startEmpty && tabContainer.children.length && options.selectedTab) {
182
+ const selectedTab0 = Array.from(tabContainer.children) // Version left for compatibility with ??
183
+ .map((tab) => tab.firstChild)
184
+ .find((tab) => tab.dataset.name === options.selectedTab);
185
+ const selectedTabURI = options.selectedTab.uri;
186
+ const selectedTab1 = Array.from(tabContainer.children)
187
+ // @ts-ignore
188
+ .find((tab) => tab.subject &&
189
+ // @ts-ignore
190
+ tab.subject.uri &&
191
+ // @ts-ignore
192
+ tab.subject.uri === selectedTabURI);
193
+ const tab = selectedTab1 || selectedTab0 || tabContainer.children[0];
194
+ const clickMe = tab.firstChild;
195
+ // @ts-ignore
196
+ if (clickMe)
197
+ clickMe.click();
198
+ }
199
+ else if (!options.startEmpty) {
200
+ tabContainer.children[0].firstChild.click(); // Open first tab
201
+ }
202
+ return rootElement;
203
+ function addCancelButton(tabContainer) {
204
+ if (tabContainer.dataset.onCloseSet) {
205
+ // @@ TODO: this is only here to make the browser tests work
206
+ // Discussion at https://github.com/solidos/solid-ui/pull/110#issuecomment-527080663
207
+ const existingCancelButton = tabContainer.querySelector('.unstyled');
208
+ tabContainer.removeChild(existingCancelButton);
209
+ }
210
+ const extraTab = dom.createElement(tabElement);
211
+ extraTab.classList.add('unstyled');
212
+ const tabCancelButton = cancelButton(dom, onClose);
213
+ tabCancelButton.setAttribute('style', tabCancelButton.getAttribute('style') + paddingStyle);
214
+ extraTab.appendChild(tabCancelButton);
215
+ tabContainer.appendChild(extraTab);
216
+ tabContainer.dataset.onCloseSet = 'true';
217
+ }
218
+ function getItems() {
219
+ if (options.items)
220
+ return options.items;
221
+ if (options.ordered !== false) {
222
+ // options.ordered defaults to true
223
+ return store.the(subject, options.predicate).elements;
224
+ }
225
+ else {
226
+ return store.each(subject, options.predicate);
227
+ }
228
+ }
229
+ function makeNewSlot(item) {
230
+ const ele = dom.createElement(tabElement);
231
+ ele.setAttribute('style', unselectedStyle);
232
+ ele.subject = item;
233
+ const div = ele.appendChild(dom.createElement('button'));
234
+ div.setAttribute('style', style.makeNewSlot);
235
+ div.onclick = function () {
236
+ resetTabStyle();
237
+ resetBodyStyle();
238
+ ele.setAttribute('style', selectedStyle);
239
+ if (!ele.bodyTR)
240
+ return;
241
+ ele.bodyTR.setAttribute('style', shownStyle);
242
+ const bodyMain = getOrCreateContainerElement(ele);
243
+ if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {
244
+ bodyMain.innerHTML = 'loading item ...' + item;
245
+ options.renderMain(bodyMain, ele.subject);
246
+ bodyMain.asSettings = false;
247
+ }
248
+ };
249
+ if (options.renderTabSettings && ele.subject) {
250
+ const ellipsis = dom.createElement('button');
251
+ ellipsis.textContent = '...';
252
+ ellipsis.setAttribute('style', style.ellipsis);
253
+ ellipsis.onclick = function () {
254
+ resetTabStyle();
255
+ resetBodyStyle();
256
+ ele.setAttribute('style', selectedStyle);
257
+ if (!ele.bodyTR)
258
+ return;
259
+ ele.bodyTR.setAttribute('style', shownStyle);
260
+ const bodyMain = getOrCreateContainerElement(ele);
261
+ if (options.renderTabSettings && ele.subject && bodyMain.asSettings !== true) {
262
+ bodyMain.innerHTML = 'loading settings ...' + item;
263
+ options.renderTabSettings(bodyMain, ele.subject);
264
+ bodyMain.asSettings = true;
265
+ }
266
+ };
267
+ ele.appendChild(ellipsis);
268
+ }
269
+ if (options.renderTab) {
270
+ options.renderTab(div, item);
271
+ }
272
+ else {
273
+ div.innerHTML = label(item);
274
+ }
275
+ return ele;
276
+ function getOrCreateContainerElement(ele) {
277
+ var _a;
278
+ const bodyMain = (_a = ele.bodyTR) === null || _a === void 0 ? void 0 : _a.children[0];
279
+ if (bodyMain)
280
+ return bodyMain;
281
+ const newBodyMain = ele.bodyTR.appendChild(dom.createElement('main'));
282
+ newBodyMain.setAttribute('style', bodyMainStyle);
283
+ return newBodyMain;
284
+ }
285
+ }
286
+ // @@ Use common one from utils?
287
+ function orderedSync() {
288
+ const items = getItems();
289
+ let slot, i, j, left, right;
290
+ let differ = false;
291
+ // Find how many match at each end
292
+ for (left = 0; left < tabContainer.children.length; left++) {
293
+ slot = tabContainer.children[left];
294
+ if (left >= items.length || (slot.subject && !slot.subject.sameTerm(items[left]))) {
295
+ differ = true;
296
+ break;
297
+ }
298
+ }
299
+ if (!differ && items.length === tabContainer.children.length) {
300
+ return; // The two just match in order: a case to optimize for
301
+ }
302
+ for (right = tabContainer.children.length - 1; right >= 0; right--) {
303
+ slot = tabContainer.children[right];
304
+ j = right - tabContainer.children.length + items.length;
305
+ if (slot.subject && !slot.subject.sameTerm(items[j])) {
306
+ break;
307
+ }
308
+ }
309
+ // The elements left ... right in tabContainer.children do not match
310
+ const insertables = items.slice(left, right - tabContainer.children.length + items.length + 1);
311
+ while (right >= left) {
312
+ // remove extra
313
+ tabContainer.removeChild(tabContainer.children[left]);
314
+ bodyContainer.removeChild(bodyContainer.children[left]);
315
+ right -= 1;
316
+ }
317
+ for (i = 0; i < insertables.length; i++) {
318
+ const newSlot = makeNewSlot(insertables[i]);
319
+ const newBodyDiv = dom.createElement('div');
320
+ newSlot.bodyTR = newBodyDiv;
321
+ if (left === tabContainer.children.length) {
322
+ // None left of original on right
323
+ tabContainer.appendChild(newSlot);
324
+ bodyContainer.appendChild(newBodyDiv);
325
+ }
326
+ else {
327
+ tabContainer.insertBefore(newSlot, tabContainer.children[left + i]);
328
+ bodyContainer.insertBefore(newBodyDiv, bodyContainer.children[left + i]);
329
+ }
330
+ }
331
+ if (onClose) {
332
+ addCancelButton(tabContainer);
333
+ }
334
+ }
335
+ function resetTabStyle() {
336
+ for (let i = 0; i < tabContainer.children.length; i++) {
337
+ const tab = tabContainer.children[i];
338
+ if (tab.classList.contains('unstyled')) {
339
+ continue;
340
+ }
341
+ else {
342
+ tab.setAttribute('style', unselectedStyle);
343
+ }
344
+ }
345
+ }
346
+ function resetBodyStyle() {
347
+ for (let i = 0; i < bodyContainer.children.length; i++) {
348
+ bodyContainer.children[i].setAttribute('style', hiddenStyle);
349
+ }
350
+ }
351
+ }
352
+ /**
353
+ * @internal
354
+ */
355
+ function getColors(backgroundColor) {
356
+ return isLight(backgroundColor)
357
+ ? [colorBlend(backgroundColor, '#ffffff', 0.3), '#000000']
358
+ : [colorBlend(backgroundColor, '#000000', 0.3), '#ffffff'];
359
+ }
360
+ /**
361
+ * @internal
362
+ */
363
+ function colorBlend(a, b, mix) {
364
+ let ca, cb, res;
365
+ let str = '#';
366
+ const hex = '0123456789abcdef';
367
+ for (let i = 0; i < 3; i++) {
368
+ ca = parseInt(a.slice(i * 2 + 1, i * 2 + 3), 16);
369
+ cb = parseInt(b.slice(i * 2 + 1, i * 2 + 3), 16);
370
+ res = ca * (1.0 - mix) + cb * mix; // @@@ rounding
371
+ const res2 = parseInt(('' + res).split('.')[0]); // @@ ugh
372
+ const h = parseInt(('' + res2 / 16).split('.')[0]); // @@ ugh
373
+ const l = parseInt(('' + (res2 % 16)).split('.')[0]); // @@ ugh
374
+ str += hex[h] + hex[l];
375
+ }
376
+ return str;
377
+ }
378
+ /**
379
+ * @internal
380
+ */
381
+ function isLight(x) {
382
+ let total = 0;
383
+ for (let i = 0; i < 3; i++) {
384
+ total += parseInt(x.slice(i * 2 + 1, i * 2 + 3), 16);
385
+ }
386
+ return total > 128 * 3;
387
+ }
388
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"headerFooterHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/headerFooterHelpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAA;AAIzE,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAA;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAK,SAAS,CAGnC;AACD;GACG;AACH,wBAAsB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAkD9F;AACD;;GAEG;AACH,wBAAgB,OAAO,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAIvE;AACD;;GAEG;AACH,wBAAgB,QAAQ,CAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAgC9G"}
1
+ {"version":3,"file":"headerFooterHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/headerFooterHelpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAA;AAIzE,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAA;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAK,SAAS,CAGnC;AACD;GACG;AACH,wBAAsB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAiD9F;AACD;;GAEG;AACH,wBAAgB,OAAO,CAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAIvE;AACD;;GAEG;AACH,wBAAgB,QAAQ,CAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAgC9G"}
@@ -0,0 +1,114 @@
1
+ /*
2
+ Copied from mashlib/src/global/metadata.ts
3
+ */
4
+ import { parse, sym } from 'rdflib';
5
+ import { ns } from '..';
6
+ /**
7
+ * @ignore exporting this only for the unit test
8
+ */
9
+ export function getPod() {
10
+ // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
11
+ return sym(document.location.origin).site();
12
+ }
13
+ /**
14
+ */
15
+ export async function getPodOwner(pod, store) {
16
+ // This is a massive guess. In future
17
+ // const podOwner = sym(`${pod.uri}profile/card#me`)
18
+ try {
19
+ // load turtle Container representation
20
+ if (!store.any(pod, null, ns.ldp('Container'), pod)) {
21
+ const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }));
22
+ const containerTurtle = response.responseText;
23
+ parse(containerTurtle, store, pod.uri, 'text/turtle');
24
+ }
25
+ }
26
+ catch (err) {
27
+ console.error('Error loading pod ' + pod + ': ' + err);
28
+ return null;
29
+ }
30
+ if (!store.holds(pod, ns.rdf('type'), ns.space('Storage'), pod)) {
31
+ console.warn('Pod ' + pod + ' does not declare itself as a space:Storage');
32
+ return null;
33
+ }
34
+ const podOwner = store.any(pod, ns.solid('owner'), null, pod) ||
35
+ store.any(null, ns.space('storage'), pod, pod);
36
+ if (podOwner) {
37
+ try {
38
+ await store.fetcher.load(podOwner.doc());
39
+ }
40
+ catch (_err) {
41
+ console.warn('Unable to load profile of pod owner ' + podOwner);
42
+ return null;
43
+ }
44
+ if (!store.holds(podOwner, ns.space('storage'), pod, podOwner.doc())) {
45
+ console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`);
46
+ }
47
+ return podOwner; // Success!
48
+ }
49
+ else { // pod owner not declared in pod
50
+ // @@ TODO: This is given the structure that NSS provides
51
+ // This is a massive guess. For old pods which don't have owner link
52
+ const guess = sym(`${pod.uri}profile/card#me`);
53
+ try {
54
+ // @ts-ignore LiveStore always has fetcher
55
+ await store.fetcher.load(guess);
56
+ }
57
+ catch (_err) {
58
+ console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\'t load it.');
59
+ return null;
60
+ }
61
+ if (store.holds(guess, ns.space('storage'), pod, guess.doc())) {
62
+ console.warn('Using guessed pod owner webid but it links back.');
63
+ return guess;
64
+ }
65
+ return null;
66
+ }
67
+ }
68
+ /**
69
+ * @ignore exporting this only for the unit test
70
+ */
71
+ export function getName(store, user) {
72
+ return store.anyValue(user, ns.vcard('fn'), null, user.doc()) ||
73
+ store.anyValue(user, ns.foaf('name'), null, user.doc()) ||
74
+ user.uri;
75
+ }
76
+ /**
77
+ * @ignore exporting this only for the unit test
78
+ */
79
+ export function throttle(func, wait, options = {}) {
80
+ let context, args, result;
81
+ let timeout = null;
82
+ let previous = 0;
83
+ const later = function () {
84
+ previous = !options.leading ? 0 : Date.now();
85
+ timeout = null;
86
+ result = func.apply(context, args);
87
+ if (!timeout)
88
+ context = args = null;
89
+ };
90
+ return function () {
91
+ const now = Date.now();
92
+ if (!previous && !options.leading)
93
+ previous = now;
94
+ const remaining = wait - (now - previous);
95
+ // @ts-ignore
96
+ context = this;
97
+ args = arguments;
98
+ if (remaining <= 0 || remaining > wait) {
99
+ if (timeout) {
100
+ clearTimeout(timeout);
101
+ timeout = null;
102
+ }
103
+ previous = now;
104
+ result = func.apply(context, args);
105
+ if (!timeout)
106
+ context = args = null;
107
+ }
108
+ else if (!timeout && options.trailing !== false) {
109
+ timeout = setTimeout(later, remaining);
110
+ }
111
+ return result;
112
+ };
113
+ }
114
+ //# sourceMappingURL=headerFooterHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerFooterHelpers.js","sourceRoot":"","sources":["../../src/utils/headerFooterHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import * as debug from '../../debug';
2
+ import { store } from 'solid-logic';
3
+ import ns from '../../ns';
4
+ import { getRootIfPreferencesExist } from './otherHelpers';
5
+ export const pubKeyUrl = (webId) => {
6
+ let url;
7
+ try {
8
+ const root = getRootIfPreferencesExist(webId);
9
+ url = `${root}/profile/keys/publicKey.ttl`;
10
+ }
11
+ catch (err) {
12
+ debug.error(err);
13
+ }
14
+ return url;
15
+ };
16
+ export const privKeyUrl = (webId) => {
17
+ let url;
18
+ try {
19
+ const root = getRootIfPreferencesExist(webId);
20
+ url = `${root}/settings/keys/privateKey.ttl`;
21
+ }
22
+ catch (err) {
23
+ debug.error(err);
24
+ }
25
+ return url;
26
+ };
27
+ export async function getExistingPublicKey(webId, publicKeyUrl) {
28
+ // find publickey
29
+ return await getKeyIfExists(webId, publicKeyUrl, 'publicKey');
30
+ }
31
+ export async function getExistingPrivateKey(webId, privateKeyUrl) {
32
+ // find privateKey
33
+ return await getKeyIfExists(webId, privateKeyUrl, 'privateKey');
34
+ }
35
+ export async function getKeyIfExists(webId, keyUrl, keyType) {
36
+ try {
37
+ await store.fetcher.load(keyUrl);
38
+ const key = store.any(webId, ns.solid(keyType)); // store.sym(CERT + keyType))
39
+ return key === null || key === void 0 ? void 0 : key.value; // as NamedNode
40
+ }
41
+ catch (err) {
42
+ if (err.response.status === 404) {
43
+ debug.log('createIfNotExists: doc does NOT exist, will create... ' + keyUrl);
44
+ try {
45
+ await store.fetcher.webOperation('PUT', keyUrl, {
46
+ data: '',
47
+ contentType: 'text/turtle'
48
+ });
49
+ }
50
+ catch (err) {
51
+ debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err);
52
+ throw err;
53
+ }
54
+ delete store.fetcher.requested[keyUrl]; // delete cached 404 error
55
+ // debug.log('createIfNotExists doc created ok ' + doc)
56
+ return undefined; // response
57
+ }
58
+ else {
59
+ debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err);
60
+ throw err;
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=accessData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessData.js","sourceRoot":"","sources":["../../../src/utils/keyHelpers/accessData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAgB,EAAE,EAAE;IAC5C,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;QAC7C,GAAG,GAAG,GAAG,IAAI,6BAA6B,CAAA;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,EAAE;IAC7C,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;QAC7C,GAAG,GAAG,GAAG,IAAI,+BAA+B,CAAA;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAE,KAAgB,EAAE,YAAoB;IAChF,iBAAiB;IACjB,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAE,KAAgB,EAAE,aAAqB;IAClF,kBAAkB;IAClB,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;AACjE,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,KAAgB,EAAE,MAAc,EAAE,OAAgB;IACtF,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,6BAA6B;QAC7E,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAA,CAAC,eAAe;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChC,KAAK,CAAC,GAAG,CACP,wDAAwD,GAAG,MAAM,CAClE,CAAA;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;oBAC9C,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,aAAa;iBAC3B,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,GAAG,CAAC,gCAAgC,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;gBACjE,MAAM,GAAG,CAAA;YACX,CAAC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAC,0BAA0B;YACjE,uDAAuD;YACvD,OAAO,SAAS,CAAA,CAAC,WAAW;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,gCAAgC,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;YACjE,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;AACH,CAAC"}