solid-ui 2.6.0 → 2.6.1-05fb7cc

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 (365) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +84 -25
  3. package/dist/acl/access-controller.js +293 -0
  4. package/dist/acl/access-controller.js.map +1 -0
  5. package/dist/acl/access-groups.js +372 -0
  6. package/dist/acl/access-groups.js.map +1 -0
  7. package/dist/acl/acl-control.js +217 -0
  8. package/dist/acl/acl-control.js.map +1 -0
  9. package/dist/acl/acl.js +550 -0
  10. package/dist/acl/acl.js.map +1 -0
  11. package/dist/acl/add-agent-buttons.js +260 -0
  12. package/dist/acl/add-agent-buttons.js.map +1 -0
  13. package/dist/acl/index.js +35 -0
  14. package/dist/acl/index.js.map +1 -0
  15. package/dist/acl/types.js +7 -0
  16. package/dist/acl/types.js.map +1 -0
  17. package/dist/chat/keys.js +148 -0
  18. package/dist/chat/keys.js.map +1 -0
  19. package/dist/chat/signature.js +71 -0
  20. package/dist/chat/signature.js.map +1 -0
  21. package/dist/create/create.js +288 -0
  22. package/dist/create/create.js.map +1 -0
  23. package/dist/create/index.js +8 -0
  24. package/dist/create/index.js.map +1 -0
  25. package/dist/create/types.js +3 -0
  26. package/dist/create/types.js.map +1 -0
  27. package/dist/debug.js +23 -0
  28. package/dist/debug.js.map +1 -0
  29. package/dist/footer/index.js +72 -0
  30. package/dist/footer/index.js.map +1 -0
  31. package/dist/header/empty-profile.js +14 -0
  32. package/dist/header/empty-profile.js.map +1 -0
  33. package/dist/header/index.js +305 -0
  34. package/dist/header/index.js.map +1 -0
  35. package/dist/iconBase.js +40 -0
  36. package/dist/iconBase.js.map +1 -0
  37. package/dist/icons/solid_logo.js.map +1 -0
  38. package/{lib → dist}/index.d.ts +4 -4
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +170 -0
  41. package/dist/index.js.map +1 -0
  42. package/{lib → dist}/log.js +85 -99
  43. package/dist/log.js.map +1 -0
  44. package/dist/login/login.js +910 -0
  45. package/dist/login/login.js.map +1 -0
  46. package/dist/matrix/index.js +8 -0
  47. package/dist/matrix/index.js.map +1 -0
  48. package/dist/matrix/matrix.js +253 -0
  49. package/dist/matrix/matrix.js.map +1 -0
  50. package/dist/matrix/types.js +3 -0
  51. package/dist/matrix/types.js.map +1 -0
  52. package/dist/media/index.js +9 -0
  53. package/dist/media/index.js.map +1 -0
  54. package/dist/media/media-capture.js +198 -0
  55. package/dist/media/media-capture.js.map +1 -0
  56. package/dist/pad.js +795 -0
  57. package/dist/pad.js.map +1 -0
  58. package/dist/participation.js +228 -0
  59. package/dist/participation.js.map +1 -0
  60. package/dist/solid-ui.esm.js +25549 -0
  61. package/dist/solid-ui.esm.js.map +1 -0
  62. package/dist/solid-ui.esm.min.js +43 -0
  63. package/dist/solid-ui.esm.min.js.map +1 -0
  64. package/dist/solid-ui.js +23399 -70837
  65. package/dist/solid-ui.js.map +1 -1
  66. package/dist/solid-ui.min.js +40 -2
  67. package/dist/solid-ui.min.js.map +1 -1
  68. package/dist/tabs.js +398 -0
  69. package/dist/tabs.js.map +1 -0
  70. package/dist/utils/headerFooterHelpers.js +122 -0
  71. package/dist/utils/headerFooterHelpers.js.map +1 -0
  72. package/dist/utils/keyHelpers/accessData.js +108 -0
  73. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  74. package/dist/utils/keyHelpers/acl.js +112 -0
  75. package/dist/utils/keyHelpers/acl.js.map +1 -0
  76. package/dist/utils/keyHelpers/otherHelpers.js +19 -0
  77. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  78. package/dist/utils/label.js +150 -0
  79. package/dist/utils/label.js.map +1 -0
  80. package/dist/versionInfo.js +33 -0
  81. package/dist/versionInfo.js.map +1 -0
  82. package/dist/widgets/buttons/iconLinks.js +49 -0
  83. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  84. package/dist/widgets/buttons.js +1355 -0
  85. package/dist/widgets/buttons.js.map +1 -0
  86. package/dist/widgets/error.js +42 -0
  87. package/dist/widgets/error.js.map +1 -0
  88. package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
  89. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  90. package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
  91. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  92. package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
  93. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  94. package/dist/widgets/forms/autocomplete/language.js +147 -0
  95. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/publicData.js +507 -0
  97. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  98. package/dist/widgets/forms/basic.js +250 -0
  99. package/dist/widgets/forms/basic.js.map +1 -0
  100. package/dist/widgets/forms/comment.js +52 -0
  101. package/dist/widgets/forms/comment.js.map +1 -0
  102. package/dist/widgets/forms/fieldFunction.js +49 -0
  103. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  104. package/dist/widgets/forms/fieldParams.js +95 -0
  105. package/dist/widgets/forms/fieldParams.js.map +1 -0
  106. package/dist/widgets/forms/formStyle.js +43 -0
  107. package/dist/widgets/forms/formStyle.js.map +1 -0
  108. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  109. package/{lib → dist}/widgets/widgetHelpers.js +19 -24
  110. package/dist/widgets/widgetHelpers.js.map +1 -0
  111. package/package.json +44 -47
  112. package/dist/789.solid-ui.min.js +0 -1
  113. package/dist/841.solid-ui.min.js +0 -3
  114. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  115. package/dist/841.solid-ui.min.js.map +0 -1
  116. package/dist/_2b19.solid-ui.js +0 -14
  117. package/dist/_2b19.solid-ui.js.map +0 -1
  118. package/dist/index.html +0 -1
  119. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  120. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  121. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  122. package/lib/acl/access-controller.js +0 -391
  123. package/lib/acl/access-controller.js.map +0 -1
  124. package/lib/acl/access-groups.js +0 -507
  125. package/lib/acl/access-groups.js.map +0 -1
  126. package/lib/acl/acl-control.js +0 -237
  127. package/lib/acl/acl-control.js.map +0 -1
  128. package/lib/acl/acl.js +0 -517
  129. package/lib/acl/acl.js.map +0 -1
  130. package/lib/acl/add-agent-buttons.js +0 -434
  131. package/lib/acl/add-agent-buttons.js.map +0 -1
  132. package/lib/acl/index.js +0 -39
  133. package/lib/acl/index.js.map +0 -1
  134. package/lib/acl/types.js +0 -6
  135. package/lib/acl/types.js.map +0 -1
  136. package/lib/chat/bookmarks.js +0 -303
  137. package/lib/chat/bookmarks.js.map +0 -1
  138. package/lib/chat/chatLogic.js +0 -420
  139. package/lib/chat/chatLogic.js.map +0 -1
  140. package/lib/chat/dateFolder.js +0 -328
  141. package/lib/chat/dateFolder.js.map +0 -1
  142. package/lib/chat/infinite.js +0 -994
  143. package/lib/chat/infinite.js.map +0 -1
  144. package/lib/chat/keys.js +0 -232
  145. package/lib/chat/keys.js.map +0 -1
  146. package/lib/chat/message.js +0 -715
  147. package/lib/chat/message.js.map +0 -1
  148. package/lib/chat/messageTools.js +0 -538
  149. package/lib/chat/messageTools.js.map +0 -1
  150. package/lib/chat/signature.js +0 -109
  151. package/lib/chat/signature.js.map +0 -1
  152. package/lib/chat/thread.js +0 -535
  153. package/lib/chat/thread.js.map +0 -1
  154. package/lib/create/create.js +0 -242
  155. package/lib/create/create.js.map +0 -1
  156. package/lib/create/index.js +0 -11
  157. package/lib/create/index.js.map +0 -1
  158. package/lib/create/types.js +0 -6
  159. package/lib/create/types.js.map +0 -1
  160. package/lib/debug.js +0 -30
  161. package/lib/debug.js.map +0 -1
  162. package/lib/folders.js +0 -132
  163. package/lib/folders.js.map +0 -1
  164. package/lib/footer/index.js +0 -123
  165. package/lib/footer/index.js.map +0 -1
  166. package/lib/header/empty-profile.js +0 -8
  167. package/lib/header/empty-profile.js.map +0 -1
  168. package/lib/header/index.js +0 -375
  169. package/lib/header/index.js.map +0 -1
  170. package/lib/iconBase.js +0 -44
  171. package/lib/iconBase.js.map +0 -1
  172. package/lib/icons/solid_logo.js.map +0 -1
  173. package/lib/index.d.ts.map +0 -1
  174. package/lib/index.js +0 -223
  175. package/lib/index.js.map +0 -1
  176. package/lib/log.js.map +0 -1
  177. package/lib/login/login.js +0 -1241
  178. package/lib/login/login.js.map +0 -1
  179. package/lib/matrix/index.js +0 -11
  180. package/lib/matrix/index.js.map +0 -1
  181. package/lib/matrix/matrix.js +0 -216
  182. package/lib/matrix/matrix.js.map +0 -1
  183. package/lib/matrix/types.js +0 -6
  184. package/lib/matrix/types.js.map +0 -1
  185. package/lib/media/index.js +0 -12
  186. package/lib/media/index.js.map +0 -1
  187. package/lib/media/media-capture.js +0 -194
  188. package/lib/media/media-capture.js.map +0 -1
  189. package/lib/messageArea.js +0 -319
  190. package/lib/messageArea.js.map +0 -1
  191. package/lib/noun_Camera_1618446_000000.js +0 -8
  192. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  193. package/lib/ns.js +0 -17
  194. package/lib/ns.js.map +0 -1
  195. package/lib/pad.js +0 -805
  196. package/lib/pad.js.map +0 -1
  197. package/lib/participation.js +0 -219
  198. package/lib/participation.js.map +0 -1
  199. package/lib/preferences.js +0 -215
  200. package/lib/preferences.js.map +0 -1
  201. package/lib/signup/config-default.js +0 -43
  202. package/lib/signup/config-default.js.map +0 -1
  203. package/lib/signup/signup.js +0 -74
  204. package/lib/signup/signup.js.map +0 -1
  205. package/lib/stories/decorators.js +0 -10
  206. package/lib/stories/decorators.js.map +0 -1
  207. package/lib/style.js +0 -158
  208. package/lib/style.js.map +0 -1
  209. package/lib/styleConstants.js +0 -35
  210. package/lib/styleConstants.js.map +0 -1
  211. package/lib/style_multiSelect.js +0 -62
  212. package/lib/style_multiSelect.js.map +0 -1
  213. package/lib/table.js +0 -1573
  214. package/lib/table.js.map +0 -1
  215. package/lib/tabs.js +0 -448
  216. package/lib/tabs.js.map +0 -1
  217. package/lib/typings.d.js +0 -2
  218. package/lib/typings.d.js.map +0 -1
  219. package/lib/utils/headerFooterHelpers.js +0 -165
  220. package/lib/utils/headerFooterHelpers.js.map +0 -1
  221. package/lib/utils/index.js +0 -527
  222. package/lib/utils/index.js.map +0 -1
  223. package/lib/utils/keyHelpers/accessData.js +0 -131
  224. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  225. package/lib/utils/keyHelpers/acl.js +0 -90
  226. package/lib/utils/keyHelpers/acl.js.map +0 -1
  227. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  228. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  229. package/lib/utils/label.js +0 -103
  230. package/lib/utils/label.js.map +0 -1
  231. package/lib/versionInfo.d.ts +0 -34
  232. package/lib/versionInfo.d.ts.map +0 -1
  233. package/lib/versionInfo.js +0 -39
  234. package/lib/versionInfo.js.map +0 -1
  235. package/lib/widgets/buttons/iconLinks.js +0 -53
  236. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  237. package/lib/widgets/buttons.js +0 -1306
  238. package/lib/widgets/buttons.js.map +0 -1
  239. package/lib/widgets/dragAndDrop.js +0 -194
  240. package/lib/widgets/dragAndDrop.js.map +0 -1
  241. package/lib/widgets/error.js +0 -46
  242. package/lib/widgets/error.js.map +0 -1
  243. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  244. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  245. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  246. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  247. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  248. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  249. package/lib/widgets/forms/autocomplete/language.js +0 -189
  250. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  251. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  252. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  253. package/lib/widgets/forms/basic.js +0 -254
  254. package/lib/widgets/forms/basic.js.map +0 -1
  255. package/lib/widgets/forms/comment.js +0 -54
  256. package/lib/widgets/forms/comment.js.map +0 -1
  257. package/lib/widgets/forms/fieldFunction.js +0 -52
  258. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  259. package/lib/widgets/forms/fieldParams.js +0 -77
  260. package/lib/widgets/forms/fieldParams.js.map +0 -1
  261. package/lib/widgets/forms/formStyle.js +0 -44
  262. package/lib/widgets/forms/formStyle.js.map +0 -1
  263. package/lib/widgets/forms.js +0 -2045
  264. package/lib/widgets/forms.js.map +0 -1
  265. package/lib/widgets/index.js +0 -110
  266. package/lib/widgets/index.js.map +0 -1
  267. package/lib/widgets/multiSelect.js +0 -658
  268. package/lib/widgets/multiSelect.js.map +0 -1
  269. package/lib/widgets/peoplePicker.js +0 -467
  270. package/lib/widgets/peoplePicker.js.map +0 -1
  271. package/lib/widgets/widgetHelpers.js.map +0 -1
  272. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  273. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  274. /package/{lib → dist}/acl/access-groups.d.ts +0 -0
  275. /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
  276. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  277. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  278. /package/{lib → dist}/acl/acl.d.ts +0 -0
  279. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  280. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  281. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  282. /package/{lib → dist}/acl/index.d.ts +0 -0
  283. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  284. /package/{lib → dist}/acl/types.d.ts +0 -0
  285. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  286. /package/{lib → dist}/chat/keys.d.ts +0 -0
  287. /package/{lib → dist}/chat/keys.d.ts.map +0 -0
  288. /package/{lib → dist}/chat/signature.d.ts +0 -0
  289. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  290. /package/{lib → dist}/create/create.d.ts +0 -0
  291. /package/{lib → dist}/create/create.d.ts.map +0 -0
  292. /package/{lib → dist}/create/index.d.ts +0 -0
  293. /package/{lib → dist}/create/index.d.ts.map +0 -0
  294. /package/{lib → dist}/create/types.d.ts +0 -0
  295. /package/{lib → dist}/create/types.d.ts.map +0 -0
  296. /package/{lib → dist}/debug.d.ts +0 -0
  297. /package/{lib → dist}/debug.d.ts.map +0 -0
  298. /package/{lib → dist}/footer/index.d.ts +0 -0
  299. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  300. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  301. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  302. /package/{lib → dist}/header/index.d.ts +0 -0
  303. /package/{lib → dist}/header/index.d.ts.map +0 -0
  304. /package/{lib → dist}/iconBase.d.ts +0 -0
  305. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  306. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  307. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  308. /package/{lib → dist}/icons/solid_logo.js +0 -0
  309. /package/{lib → dist}/log.d.ts +0 -0
  310. /package/{lib → dist}/log.d.ts.map +0 -0
  311. /package/{lib → dist}/login/login.d.ts +0 -0
  312. /package/{lib → dist}/login/login.d.ts.map +0 -0
  313. /package/{lib → dist}/matrix/index.d.ts +0 -0
  314. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  315. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  316. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  317. /package/{lib → dist}/matrix/types.d.ts +0 -0
  318. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  319. /package/{lib → dist}/media/index.d.ts +0 -0
  320. /package/{lib → dist}/media/index.d.ts.map +0 -0
  321. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  322. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  323. /package/{lib → dist}/pad.d.ts +0 -0
  324. /package/{lib → dist}/pad.d.ts.map +0 -0
  325. /package/{lib → dist}/participation.d.ts +0 -0
  326. /package/{lib → dist}/participation.d.ts.map +0 -0
  327. /package/{lib → dist}/tabs.d.ts +0 -0
  328. /package/{lib → dist}/tabs.d.ts.map +0 -0
  329. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  330. /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
  331. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts +0 -0
  332. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +0 -0
  333. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  334. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  335. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +0 -0
  336. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +0 -0
  337. /package/{lib → dist}/utils/label.d.ts +0 -0
  338. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  339. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  340. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  341. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  342. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  343. /package/{lib → dist}/widgets/error.d.ts +0 -0
  344. /package/{lib → dist}/widgets/error.d.ts.map +0 -0
  345. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  346. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  347. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  348. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  349. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  355. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  356. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  357. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  358. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  359. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  360. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  361. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  362. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  363. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  364. /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
  365. /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
package/dist/tabs.js ADDED
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TabWidgetElement = void 0;
4
+ exports.tabWidget = tabWidget;
5
+ const widgets_1 = require("./widgets");
6
+ const utils_1 = require("./utils");
7
+ const style_1 = require("./style");
8
+ const solid_logic_1 = require("solid-logic");
9
+ /**
10
+ * @ignore
11
+ */
12
+ class ContainerElement extends HTMLElement {
13
+ asSettings;
14
+ }
15
+ class TabWidgetElement extends HTMLElement {
16
+ bodyContainer;
17
+ refresh;
18
+ tabContainer;
19
+ }
20
+ exports.TabWidgetElement = TabWidgetElement;
21
+ /**
22
+ * @ignore
23
+ */
24
+ class TabElement extends HTMLElement {
25
+ bodyTR;
26
+ subject;
27
+ }
28
+ /**
29
+ * Use this widget to generate tabs from triples set in the global store.
30
+ *
31
+ * [Here you can see examples of the tabs](https://solidos.github.io/solid-ui/examples/tabs/).
32
+ *
33
+ * It assumes that items to use for tabs will be in a collection by default,
34
+ * e.g.:
35
+ *
36
+ * ```turtle
37
+ * :subject :predicate ( :item1 :item2 ) .
38
+ * ```
39
+ *
40
+ * You can override this by setting `ordered: false`, in which case it expects
41
+ * unordered triples:
42
+ *
43
+ * ```turtle
44
+ * :subject :predicate :item1, :item 2 .
45
+ * ```
46
+ *
47
+ * Triples that are not ordered in collection are in principle not sorted,
48
+ * which means that tabs could change order every time you render the widget.
49
+ * But in this case the widget will try to sort it in order to keep it
50
+ * consistent.
51
+ *
52
+ * In both of these cases you need to define options `subject` and `predicate`
53
+ * to tell the widget which triples it should be looking for.
54
+ *
55
+ * Finally you can set items manually, using the `items` option, e.g.:
56
+ *
57
+ * ```javascript
58
+ * {
59
+ * items: [
60
+ * namedNode('https://domain.tld/#item1'),
61
+ * namedNode('https://domain.tld/#item2')
62
+ * ]
63
+ * }
64
+ * ```
65
+ *
66
+ * When you set items manually you do not need to set `subject` and
67
+ * `predicate`.
68
+ *
69
+ * In any case you probably want to set the renderMain option to specify
70
+ * what should be rendered for the various items, e.g.:
71
+ *
72
+ * ```javascript
73
+ * {
74
+ * renderMain: (bodyMain, subject) => {
75
+ * bodyMain.innerHTML = renderItem(subject)
76
+ * }
77
+ * }
78
+ * ```
79
+ *
80
+ * **Note:** `renderItem` is a custom function that you need to define yourself.
81
+ *
82
+ * The option `renderTabSettings` allows you to render a custom view in the
83
+ * body container that is shown when you hold the ALT key and click on a
84
+ * tab. It works very much like the `renderMain` option:
85
+ *
86
+ * ```javascript
87
+ * {
88
+ * renderTabSettings: (bodyMain, subject) => {
89
+ * bodyMain.innerHTML = renderTabSettings(subject)
90
+ * }
91
+ * }
92
+ * ```
93
+ *
94
+ * **Note:** `renderTabSettings` is a custom function that you need to define
95
+ * yourself.
96
+ *
97
+ * By default the widget will try to guess the label by using the
98
+ * [[utils.label]] function. If you want to customize this yourself, you can
99
+ * use the `renderTab` option:
100
+ *
101
+ * ```javascript
102
+ * {
103
+ * renderTab: (tabDiv, subject) => {
104
+ * tabDiv.innerText = renderTabText(subject)
105
+ * }
106
+ * }
107
+ * ```
108
+ *
109
+ * **Note:** `renderTabText` is a custom function you need to define yourself.
110
+ *
111
+ * The option renderTab is also important if you want to set which tab should
112
+ * be selected once the widget is rendered. By default it will simply select
113
+ * the first tab, but you can override by setting `dataset.name` on the tab
114
+ * and referring to the same string in `selectedTab`:
115
+ *
116
+ * ```javascript
117
+ * {
118
+ * renderTab: (tabDiv, subject) => {
119
+ * tabDiv.dataset.name = subject.uri
120
+ * },
121
+ * selectedTab: item2.uri
122
+ * }
123
+ * ```
124
+ *
125
+ * You can apply a color to use for tabs and border of the container by using
126
+ * option `background-color`. This is #ddddcc by default.
127
+ *
128
+ * You can override the document object that the widget uses to generate DOM
129
+ * elements by setting the option `dom`. This is encouraged to set if you
130
+ * intend your functionality to be used in environments that don't provide
131
+ * a global `document` object.
132
+ *
133
+ * If you want to render a close button next to the tabs you can set option
134
+ * `onClose` which takes a callback function that is triggered when the
135
+ * button is clicked:
136
+ *
137
+ * ```javascript
138
+ * {
139
+ * onClose: (event) => {
140
+ * // do something that hides the widget altogether
141
+ * }
142
+ * }
143
+ * ```
144
+ *
145
+ * The option `orientation` allows you to set which side the tabs should be
146
+ * located: `'0'` = Top, `'1'` = Left, `'2'` = Bottom, `'3'` = Right
147
+ *
148
+ * If you don't want to render anything in the body container by default,
149
+ * you can set the option `startEmpty` to `true`.
150
+ *
151
+ * @param options
152
+ */
153
+ const tabsDefaultBackgroundColor = '#ddddcc';
154
+ function tabWidget(options) {
155
+ const subject = options.subject;
156
+ const dom = options.dom || document;
157
+ const orientation = parseInt(options.orientation || '0');
158
+ const backgroundColor = options.backgroundColor || tabsDefaultBackgroundColor;
159
+ const flipped = orientation & 2;
160
+ const vertical = orientation & 1;
161
+ const onClose = options.onClose;
162
+ const [selectedColor, color] = getColors(backgroundColor);
163
+ const bodyMainStyle = `flex: 2; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ${selectedColor}; padding: 1em;`;
164
+ const rootElement = dom.createElement('div'); // 20200117a
165
+ rootElement.setAttribute('style', style_1.style.tabsRootElement);
166
+ rootElement.style.flexDirection = (vertical ? 'row' : 'column') + (flipped ? '-reverse' : '');
167
+ const navElement = rootElement.appendChild(dom.createElement('nav'));
168
+ navElement.setAttribute('style', style_1.style.tabsNavElement);
169
+ const mainElement = rootElement.appendChild(dom.createElement('main'));
170
+ mainElement.setAttribute('style', style_1.style.tabsMainElement); // override tabbedtab.css
171
+ const tabContainer = navElement.appendChild(dom.createElement('ul'));
172
+ tabContainer.setAttribute('style', style_1.style.tabContainer);
173
+ tabContainer.style.flexDirection = `${vertical ? 'column' : 'row'}`;
174
+ const tabElement = 'li';
175
+ const bodyContainer = mainElement;
176
+ rootElement.tabContainer = tabContainer;
177
+ rootElement.bodyContainer = bodyContainer;
178
+ const corners = ['0.2em', '0.2em', '0', '0']; // top left, TR, BR, BL
179
+ const cornersPrepped = corners.concat(corners).slice(orientation, orientation + 4);
180
+ const cornersStyle = `border-radius: ${cornersPrepped.join(' ')};`;
181
+ const margins = ['0.3em', '0.3em', '0', '0.3em']; // top, right, bottom, left
182
+ const marginsPrepped = margins.concat(margins).slice(orientation, orientation + 4);
183
+ const marginsStyle = `margin: ${marginsPrepped.join(' ')};`;
184
+ const paddingStyle = `padding: ${marginsPrepped.join(' ')};`;
185
+ const tabStyle = cornersStyle + `position: relative; padding: 0.7em; max-width: 20em; color: ${color};`;
186
+ const unselectedStyle = `${tabStyle + marginsStyle} opacity: 50%; background-color: ${backgroundColor};`;
187
+ const selectedStyle = `${tabStyle + marginsStyle} background-color: ${selectedColor};`;
188
+ const shownStyle = 'height: 100%; width: 100%;';
189
+ const hiddenStyle = shownStyle + 'display: none;';
190
+ rootElement.refresh = orderedSync;
191
+ orderedSync();
192
+ if (!options.startEmpty && tabContainer.children.length && options.selectedTab) {
193
+ const selectedTab0 = Array.from(tabContainer.children) // Version left for compatibility with ??
194
+ .map((tab) => tab.firstChild)
195
+ .find((tab) => tab.dataset.name === options.selectedTab);
196
+ const selectedTabURI = options.selectedTab.uri;
197
+ const selectedTab1 = Array.from(tabContainer.children)
198
+ // @ts-ignore
199
+ .find((tab) => tab.subject &&
200
+ // @ts-ignore
201
+ tab.subject.uri &&
202
+ // @ts-ignore
203
+ tab.subject.uri === selectedTabURI);
204
+ const tab = selectedTab1 || selectedTab0 || tabContainer.children[0];
205
+ const clickMe = tab.firstChild;
206
+ // @ts-ignore
207
+ if (clickMe)
208
+ clickMe.click();
209
+ }
210
+ else if (!options.startEmpty) {
211
+ tabContainer.children[0].firstChild.click(); // Open first tab
212
+ }
213
+ return rootElement;
214
+ function addCancelButton(tabContainer) {
215
+ if (tabContainer.dataset.onCloseSet) {
216
+ // @@ TODO: this is only here to make the browser tests work
217
+ // Discussion at https://github.com/solidos/solid-ui/pull/110#issuecomment-527080663
218
+ const existingCancelButton = tabContainer.querySelector('.unstyled');
219
+ tabContainer.removeChild(existingCancelButton);
220
+ }
221
+ const extraTab = dom.createElement(tabElement);
222
+ extraTab.classList.add('unstyled');
223
+ const tabCancelButton = (0, widgets_1.cancelButton)(dom, onClose);
224
+ tabCancelButton.setAttribute('style', tabCancelButton.getAttribute('style') + paddingStyle);
225
+ extraTab.appendChild(tabCancelButton);
226
+ tabContainer.appendChild(extraTab);
227
+ tabContainer.dataset.onCloseSet = 'true';
228
+ }
229
+ function getItems() {
230
+ if (options.items)
231
+ return options.items;
232
+ if (options.ordered !== false) {
233
+ // options.ordered defaults to true
234
+ return solid_logic_1.store.the(subject, options.predicate).elements;
235
+ }
236
+ else {
237
+ return solid_logic_1.store.each(subject, options.predicate);
238
+ }
239
+ }
240
+ function makeNewSlot(item) {
241
+ const ele = dom.createElement(tabElement);
242
+ ele.setAttribute('style', unselectedStyle);
243
+ ele.subject = item;
244
+ const div = ele.appendChild(dom.createElement('button'));
245
+ div.setAttribute('style', style_1.style.makeNewSlot);
246
+ div.onclick = function () {
247
+ resetTabStyle();
248
+ resetBodyStyle();
249
+ ele.setAttribute('style', selectedStyle);
250
+ if (!ele.bodyTR)
251
+ return;
252
+ ele.bodyTR.setAttribute('style', shownStyle);
253
+ const bodyMain = getOrCreateContainerElement(ele);
254
+ if (options.renderMain && ele.subject && bodyMain.asSettings !== false) {
255
+ bodyMain.innerHTML = 'loading item ...' + item;
256
+ options.renderMain(bodyMain, ele.subject);
257
+ bodyMain.asSettings = false;
258
+ }
259
+ };
260
+ if (options.renderTabSettings && ele.subject) {
261
+ const ellipsis = dom.createElement('button');
262
+ ellipsis.textContent = '...';
263
+ ellipsis.setAttribute('style', style_1.style.ellipsis);
264
+ ellipsis.onclick = function () {
265
+ resetTabStyle();
266
+ resetBodyStyle();
267
+ ele.setAttribute('style', selectedStyle);
268
+ if (!ele.bodyTR)
269
+ return;
270
+ ele.bodyTR.setAttribute('style', shownStyle);
271
+ const bodyMain = getOrCreateContainerElement(ele);
272
+ if (options.renderTabSettings && ele.subject && bodyMain.asSettings !== true) {
273
+ bodyMain.innerHTML = 'loading settings ...' + item;
274
+ options.renderTabSettings(bodyMain, ele.subject);
275
+ bodyMain.asSettings = true;
276
+ }
277
+ };
278
+ ele.appendChild(ellipsis);
279
+ }
280
+ if (options.renderTab) {
281
+ options.renderTab(div, item);
282
+ }
283
+ else {
284
+ div.innerHTML = (0, utils_1.label)(item);
285
+ }
286
+ return ele;
287
+ function getOrCreateContainerElement(ele) {
288
+ const bodyMain = ele.bodyTR?.children[0];
289
+ if (bodyMain)
290
+ return bodyMain;
291
+ const newBodyMain = ele.bodyTR.appendChild(dom.createElement('main'));
292
+ newBodyMain.setAttribute('style', bodyMainStyle);
293
+ return newBodyMain;
294
+ }
295
+ }
296
+ // @@ Use common one from utils?
297
+ function orderedSync() {
298
+ const items = getItems();
299
+ let slot, i, j, left, right;
300
+ let differ = false;
301
+ // Find how many match at each end
302
+ for (left = 0; left < tabContainer.children.length; left++) {
303
+ slot = tabContainer.children[left];
304
+ if (left >= items.length || (slot.subject && !slot.subject.sameTerm(items[left]))) {
305
+ differ = true;
306
+ break;
307
+ }
308
+ }
309
+ if (!differ && items.length === tabContainer.children.length) {
310
+ return; // The two just match in order: a case to optimize for
311
+ }
312
+ for (right = tabContainer.children.length - 1; right >= 0; right--) {
313
+ slot = tabContainer.children[right];
314
+ j = right - tabContainer.children.length + items.length;
315
+ if (slot.subject && !slot.subject.sameTerm(items[j])) {
316
+ break;
317
+ }
318
+ }
319
+ // The elements left ... right in tabContainer.children do not match
320
+ const insertables = items.slice(left, right - tabContainer.children.length + items.length + 1);
321
+ while (right >= left) {
322
+ // remove extra
323
+ tabContainer.removeChild(tabContainer.children[left]);
324
+ bodyContainer.removeChild(bodyContainer.children[left]);
325
+ right -= 1;
326
+ }
327
+ for (i = 0; i < insertables.length; i++) {
328
+ const newSlot = makeNewSlot(insertables[i]);
329
+ const newBodyDiv = dom.createElement('div');
330
+ newSlot.bodyTR = newBodyDiv;
331
+ if (left === tabContainer.children.length) {
332
+ // None left of original on right
333
+ tabContainer.appendChild(newSlot);
334
+ bodyContainer.appendChild(newBodyDiv);
335
+ }
336
+ else {
337
+ tabContainer.insertBefore(newSlot, tabContainer.children[left + i]);
338
+ bodyContainer.insertBefore(newBodyDiv, bodyContainer.children[left + i]);
339
+ }
340
+ }
341
+ if (onClose) {
342
+ addCancelButton(tabContainer);
343
+ }
344
+ }
345
+ function resetTabStyle() {
346
+ for (let i = 0; i < tabContainer.children.length; i++) {
347
+ const tab = tabContainer.children[i];
348
+ if (tab.classList.contains('unstyled')) {
349
+ continue;
350
+ }
351
+ else {
352
+ tab.setAttribute('style', unselectedStyle);
353
+ }
354
+ }
355
+ }
356
+ function resetBodyStyle() {
357
+ for (let i = 0; i < bodyContainer.children.length; i++) {
358
+ bodyContainer.children[i].setAttribute('style', hiddenStyle);
359
+ }
360
+ }
361
+ }
362
+ /**
363
+ * @internal
364
+ */
365
+ function getColors(backgroundColor) {
366
+ return isLight(backgroundColor)
367
+ ? [colorBlend(backgroundColor, '#ffffff', 0.3), '#000000']
368
+ : [colorBlend(backgroundColor, '#000000', 0.3), '#ffffff'];
369
+ }
370
+ /**
371
+ * @internal
372
+ */
373
+ function colorBlend(a, b, mix) {
374
+ let ca, cb, res;
375
+ let str = '#';
376
+ const hex = '0123456789abcdef';
377
+ for (let i = 0; i < 3; i++) {
378
+ ca = parseInt(a.slice(i * 2 + 1, i * 2 + 3), 16);
379
+ cb = parseInt(b.slice(i * 2 + 1, i * 2 + 3), 16);
380
+ res = ca * (1.0 - mix) + cb * mix; // @@@ rounding
381
+ const res2 = parseInt(('' + res).split('.')[0]); // @@ ugh
382
+ const h = parseInt(('' + res2 / 16).split('.')[0]); // @@ ugh
383
+ const l = parseInt(('' + (res2 % 16)).split('.')[0]); // @@ ugh
384
+ str += hex[h] + hex[l];
385
+ }
386
+ return str;
387
+ }
388
+ /**
389
+ * @internal
390
+ */
391
+ function isLight(x) {
392
+ let total = 0;
393
+ for (let i = 0; i < 3; i++) {
394
+ total += parseInt(x.slice(i * 2 + 1, i * 2 + 3), 16);
395
+ }
396
+ return total > 128 * 3;
397
+ }
398
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":";;;AA0KA,8BAmOC;AA7YD,uCAAwC;AACxC,mCAA+B;AAE/B,mCAA+B;AAC/B,6CAAmC;AAEnC;;GAEG;AACH,MAAM,gBAAiB,SAAQ,WAAW;IACxC,UAAU,CAAU;CACrB;AAkBD,MAAa,gBAAiB,SAAQ,WAAW;IAC/C,aAAa,CAAc;IAC3B,OAAO,CAAa;IACpB,YAAY,CAAc;CAC3B;AAJD,4CAIC;AAED;;GAEG;AACH,MAAM,UAAW,SAAQ,WAAW;IAClC,MAAM,CAAc;IACpB,OAAO,CAAY;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4HG;AACH,MAAM,0BAA0B,GAAG,SAAS,CAAA;AAE5C,SAAgB,SAAS,CAAE,OAAyB;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAA;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,CAAA;IACxD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,0BAA0B,CAAA;IAC7E,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAE/B,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,CAAA;IACzD,MAAM,aAAa,GAAG,yFAAyF,aAAa,iBAAiB,CAAA;IAC7I,MAAM,WAAW,GAAqB,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA,CAAC,YAAY;IAE3E,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,eAAe,CAAC,CAAA;IACxD,WAAW,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE7F,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,cAAc,CAAC,CAAA;IAEtD,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAEtE,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,eAAe,CAAC,CAAA,CAAC,yBAAyB;IAClF,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,YAAY,CAAC,CAAA;IACtD,YAAY,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;IAEnE,MAAM,UAAU,GAAG,IAAI,CAAA;IAEvB,MAAM,aAAa,GAAG,WAAW,CAAA;IACjC,WAAW,CAAC,YAAY,GAAG,YAAY,CAAA;IACvC,WAAW,CAAC,aAAa,GAAG,aAAa,CAAA;IAEzC,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA,CAAC,uBAAuB;IACpE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;IAClF,MAAM,YAAY,GAAG,kBAAkB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAElE,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA,CAAC,2BAA2B;IAC5E,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;IAClF,MAAM,YAAY,GAAG,WAAW,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAE3D,MAAM,YAAY,GAAG,YAAY,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAE5D,MAAM,QAAQ,GAAG,YAAY,GAAG,+DAA+D,KAAK,GAAG,CAAA;IACvG,MAAM,eAAe,GAAG,GACtB,QAAQ,GAAG,YACb,oCAAoC,eAAe,GAAG,CAAA;IACtD,MAAM,aAAa,GAAG,GAAG,QAAQ,GAAG,YAAY,sBAAsB,aAAa,GAAG,CAAA;IACtF,MAAM,UAAU,GAAG,4BAA4B,CAAA;IAC/C,MAAM,WAAW,GAAG,UAAU,GAAG,gBAAgB,CAAA;IACjD,WAAW,CAAC,OAAO,GAAG,WAAW,CAAA;IACjC,WAAW,EAAE,CAAA;IAEb,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,yCAAyC;aAC7F,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAyB,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;QAE1D,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAA;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YACpD,aAAa;aACZ,IAAI,CACH,CAAC,GAAG,EAAE,EAAE,CACL,GAAkB,CAAC,OAAO;YAC3B,aAAa;YACZ,GAAkB,CAAC,OAAO,CAAC,GAAG;YAC/B,aAAa;YACZ,GAAkB,CAAC,OAAO,CAAC,GAAG,KAAK,cAAc,CACrD,CAAA;QAEH,MAAM,GAAG,GAAG,YAAY,IAAI,YAAY,IAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAuB,CAAA;QAC3F,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAA;QAC9B,aAAa;QACb,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9B,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAgC,CAAC,KAAK,EAAE,CAAA,CAAC,iBAAiB;IACtF,CAAC;IACD,OAAO,WAAW,CAAA;IAElB,SAAS,eAAe,CAAE,YAAY;QACpC,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACpC,4DAA4D;YAC5D,oFAAoF;YACpF,MAAM,oBAAoB,GAAG,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YACpE,YAAY,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;QAChD,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAClC,MAAM,eAAe,GAAG,IAAA,sBAAY,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAClD,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAA;QAC3F,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;QACrC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAClC,YAAY,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAA;IAC1C,CAAC;IAED,SAAS,QAAQ;QACf,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC,KAAK,CAAA;QACvC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9B,mCAAmC;YACnC,OAAQ,mBAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAS,CAAC,QAAQ,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,mBAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAQ,CAAA;QACtD,CAAC;IACH,CAAC;IAED,SAAS,WAAW,CAAE,IAAe;QACnC,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAe,CAAA;QACvD,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAC1C,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;QAClB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxD,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,WAAW,CAAC,CAAA;QAE5C,GAAG,CAAC,OAAO,GAAG;YACZ,aAAa,EAAE,CAAA;YACf,cAAc,EAAE,CAAA;YAChB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YACxC,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,OAAM;YACvB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;YACjD,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACvE,QAAQ,CAAC,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAAA;gBAC9C,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;gBACzC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC,CAAA;QAED,IAAI,OAAO,CAAC,iBAAiB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAC5C,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAA;YAC5B,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAA;YAE9C,QAAQ,CAAC,OAAO,GAAG;gBACjB,aAAa,EAAE,CAAA;gBACf,cAAc,EAAE,CAAA;gBAChB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;gBACxC,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE,OAAM;gBACvB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBAC5C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;gBACjD,IAAI,OAAO,CAAC,iBAAiB,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBAC7E,QAAQ,CAAC,SAAS,GAAG,sBAAsB,GAAG,IAAI,CAAA;oBAClD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;oBAChD,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAA;gBAC5B,CAAC;YACH,CAAC,CAAA;YACD,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,GAAG,IAAA,aAAK,EAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,GAAG,CAAA;QAEV,SAAS,2BAA2B,CAAE,GAAe;YACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAqB,CAAA;YAC5D,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAA;YAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,MAAO,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;YACtE,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAChD,OAAO,WAAW,CAAA;QACpB,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,SAAS,WAAW;QAClB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,IAAI,IAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAA;QACvC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,kCAAkC;QAClC,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3D,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAe,CAAA;YAChD,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,MAAM,GAAG,IAAI,CAAA;gBACb,MAAK;YACP,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC7D,OAAM,CAAC,sDAAsD;QAC/D,CAAC;QACD,KAAK,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACnE,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAe,CAAA;YACjD,CAAC,GAAG,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YACvD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,MAAK;YACP,CAAC;QACH,CAAC;QACD,oEAAoE;QACpE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC9F,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC;YACrB,eAAe;YACf,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;YACrD,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;YACvD,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YAC3C,OAAO,CAAC,MAAM,GAAG,UAAU,CAAA;YAC3B,IAAI,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC1C,iCAAiC;gBACjC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;gBACjC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;gBACnE,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,CAAC,YAAY,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,SAAS,aAAa;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,SAAQ;YACV,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,cAAc;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAE,eAAuB;IACzC,OAAO,OAAO,CAAC,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC;QAC1D,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAE,CAAS,EAAE,CAAS,EAAE,GAAW;IACpD,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAA;IACf,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,MAAM,GAAG,GAAG,kBAAkB,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChD,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChD,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA,CAAC,eAAe;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;QACzD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;QAC5D,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;QAC9D,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAE,CAAS;IACzB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;AACxB,CAAC"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPod = getPod;
4
+ exports.getPodOwner = getPodOwner;
5
+ exports.getName = getName;
6
+ exports.throttle = throttle;
7
+ /*
8
+ Copied from mashlib/src/global/metadata.ts
9
+ */
10
+ const rdflib_1 = require("rdflib");
11
+ const __1 = require("..");
12
+ /**
13
+ * @ignore exporting this only for the unit test
14
+ */
15
+ function getPod() {
16
+ // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
17
+ return (0, rdflib_1.sym)(document.location.origin).site();
18
+ }
19
+ /**
20
+ */
21
+ async function getPodOwner(pod, store) {
22
+ // This is a massive guess. In future
23
+ // const podOwner = sym(`${pod.uri}profile/card#me`)
24
+ /* eslint-disable no-console */
25
+ try {
26
+ // load turtle Container representation
27
+ if (!store.any(pod, null, __1.ns.ldp('Container'), pod)) {
28
+ const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }));
29
+ const containerTurtle = response.responseText;
30
+ (0, rdflib_1.parse)(containerTurtle, store, pod.uri, 'text/turtle');
31
+ }
32
+ }
33
+ catch (err) {
34
+ console.error('Error loading pod ' + pod + ': ' + err);
35
+ return null;
36
+ }
37
+ if (!store.holds(pod, __1.ns.rdf('type'), __1.ns.space('Storage'), pod)) {
38
+ console.warn('Pod ' + pod + ' does not declare itself as a space:Storage');
39
+ return null;
40
+ }
41
+ const podOwner = store.any(pod, __1.ns.solid('owner'), null, pod) ||
42
+ store.any(null, __1.ns.space('storage'), pod, pod);
43
+ if (podOwner) {
44
+ try {
45
+ await store.fetcher.load(podOwner.doc());
46
+ }
47
+ catch (err) {
48
+ console.warn('Unable to load profile of pod owner ' + podOwner);
49
+ return null;
50
+ }
51
+ if (!store.holds(podOwner, __1.ns.space('storage'), pod, podOwner.doc())) {
52
+ console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`);
53
+ }
54
+ return podOwner; // Success!
55
+ }
56
+ else { // pod owner not declared in pod
57
+ // @@ TODO: This is given the structure that NSS provides
58
+ // This is a massive guess. For old pods which don't have owner link
59
+ const guess = (0, rdflib_1.sym)(`${pod.uri}profile/card#me`);
60
+ try {
61
+ // @ts-ignore LiveStore always has fetcher
62
+ await store.fetcher.load(guess);
63
+ }
64
+ catch (err) {
65
+ console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\'t load it.');
66
+ return null;
67
+ }
68
+ if (store.holds(guess, __1.ns.space('storage'), pod, guess.doc())) {
69
+ console.warn('Using guessed pod owner webid but it links back.');
70
+ return guess;
71
+ }
72
+ return null;
73
+ }
74
+ /* eslint-enable no-console */
75
+ }
76
+ /**
77
+ * @ignore exporting this only for the unit test
78
+ */
79
+ function getName(store, user) {
80
+ return store.anyValue(user, __1.ns.vcard('fn'), null, user.doc()) ||
81
+ store.anyValue(user, __1.ns.foaf('name'), null, user.doc()) ||
82
+ user.uri;
83
+ }
84
+ /**
85
+ * @ignore exporting this only for the unit test
86
+ */
87
+ function throttle(func, wait, options = {}) {
88
+ let context, args, result;
89
+ let timeout = null;
90
+ let previous = 0;
91
+ const later = function () {
92
+ previous = !options.leading ? 0 : Date.now();
93
+ timeout = null;
94
+ result = func.apply(context, args);
95
+ if (!timeout)
96
+ context = args = null;
97
+ };
98
+ return function () {
99
+ const now = Date.now();
100
+ if (!previous && !options.leading)
101
+ previous = now;
102
+ const remaining = wait - (now - previous);
103
+ // @ts-ignore
104
+ context = this;
105
+ args = arguments;
106
+ if (remaining <= 0 || remaining > wait) {
107
+ if (timeout) {
108
+ clearTimeout(timeout);
109
+ timeout = null;
110
+ }
111
+ previous = now;
112
+ result = func.apply(context, args);
113
+ if (!timeout)
114
+ context = args = null;
115
+ }
116
+ else if (!timeout && options.trailing !== false) {
117
+ timeout = setTimeout(later, remaining);
118
+ }
119
+ return result;
120
+ };
121
+ }
122
+ //# 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,108 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.privKeyUrl = exports.pubKeyUrl = void 0;
40
+ exports.getExistingPublicKey = getExistingPublicKey;
41
+ exports.getExistingPrivateKey = getExistingPrivateKey;
42
+ exports.getKeyIfExists = getKeyIfExists;
43
+ const debug = __importStar(require("../../debug"));
44
+ const solid_logic_1 = require("solid-logic");
45
+ const ns_1 = __importDefault(require("../../ns"));
46
+ const otherHelpers_1 = require("./otherHelpers");
47
+ const pubKeyUrl = (webId) => {
48
+ let url;
49
+ try {
50
+ const root = (0, otherHelpers_1.getRootIfPreferencesExist)(webId);
51
+ url = `${root}/profile/keys/publicKey.ttl`;
52
+ }
53
+ catch (err) {
54
+ debug.error(err);
55
+ }
56
+ return url;
57
+ };
58
+ exports.pubKeyUrl = pubKeyUrl;
59
+ const privKeyUrl = (webId) => {
60
+ let url;
61
+ try {
62
+ const root = (0, otherHelpers_1.getRootIfPreferencesExist)(webId);
63
+ url = `${root}/settings/keys/privateKey.ttl`;
64
+ }
65
+ catch (err) {
66
+ debug.error(err);
67
+ }
68
+ return url;
69
+ };
70
+ exports.privKeyUrl = privKeyUrl;
71
+ async function getExistingPublicKey(webId, publicKeyUrl) {
72
+ // find publickey
73
+ return await getKeyIfExists(webId, publicKeyUrl, 'publicKey');
74
+ }
75
+ async function getExistingPrivateKey(webId, privateKeyUrl) {
76
+ // find privateKey
77
+ return await getKeyIfExists(webId, privateKeyUrl, 'privateKey');
78
+ }
79
+ async function getKeyIfExists(webId, keyUrl, keyType) {
80
+ try {
81
+ await solid_logic_1.store.fetcher.load(keyUrl);
82
+ const key = solid_logic_1.store.any(webId, ns_1.default.solid(keyType)); // store.sym(CERT + keyType))
83
+ return key?.value; // as NamedNode
84
+ }
85
+ catch (err) {
86
+ if (err.response.status === 404) {
87
+ debug.log('createIfNotExists: doc does NOT exist, will create... ' + keyUrl);
88
+ try {
89
+ await solid_logic_1.store.fetcher.webOperation('PUT', keyUrl, {
90
+ data: '',
91
+ contentType: 'text/turtle'
92
+ });
93
+ }
94
+ catch (err) {
95
+ debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err);
96
+ throw err;
97
+ }
98
+ delete solid_logic_1.store.fetcher.requested[keyUrl]; // delete cached 404 error
99
+ // debug.log('createIfNotExists doc created ok ' + doc)
100
+ return undefined; // response
101
+ }
102
+ else {
103
+ debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err);
104
+ throw err;
105
+ }
106
+ }
107
+ }
108
+ //# sourceMappingURL=accessData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessData.js","sourceRoot":"","sources":["../../../src/utils/keyHelpers/accessData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,oDAGC;AAED,sDAGC;AAID,wCA2BC;AAnED,mDAAoC;AACpC,6CAAmC;AACnC,kDAAyB;AAEzB,iDAA0D;AAEnD,MAAM,SAAS,GAAG,CAAC,KAAgB,EAAE,EAAE;IAC5C,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,wCAAyB,EAAC,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;AATY,QAAA,SAAS,aASrB;AAEM,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,EAAE;IAC7C,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,wCAAyB,EAAC,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;AATY,QAAA,UAAU,cAStB;AAEM,KAAK,UAAU,oBAAoB,CAAE,KAAgB,EAAE,YAAoB;IAChF,iBAAiB;IACjB,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;AAC/D,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAE,KAAgB,EAAE,aAAqB;IAClF,kBAAkB;IAClB,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;AACjE,CAAC;AAIM,KAAK,UAAU,cAAc,CAAE,KAAgB,EAAE,MAAc,EAAE,OAAgB;IACtF,IAAI,CAAC;QACH,MAAM,mBAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,mBAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,6BAA6B;QAC7E,OAAO,GAAG,EAAE,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,mBAAK,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,mBAAK,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"}