solid-ui 2.6.1-d631dfca → 2.6.1-dc6afe0

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 (366) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +85 -26
  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/{lib → dist}/chat/keys.d.ts +1 -1
  18. package/{lib → dist}/chat/keys.d.ts.map +1 -1
  19. package/dist/chat/keys.js +148 -0
  20. package/dist/chat/keys.js.map +1 -0
  21. package/dist/chat/signature.js +71 -0
  22. package/dist/chat/signature.js.map +1 -0
  23. package/dist/create/create.js +288 -0
  24. package/dist/create/create.js.map +1 -0
  25. package/dist/create/index.js +8 -0
  26. package/dist/create/index.js.map +1 -0
  27. package/dist/create/types.js +3 -0
  28. package/dist/create/types.js.map +1 -0
  29. package/dist/debug.js +23 -0
  30. package/dist/debug.js.map +1 -0
  31. package/dist/footer/index.js +72 -0
  32. package/dist/footer/index.js.map +1 -0
  33. package/dist/header/empty-profile.js +14 -0
  34. package/dist/header/empty-profile.js.map +1 -0
  35. package/dist/header/index.js +305 -0
  36. package/dist/header/index.js.map +1 -0
  37. package/dist/iconBase.js +40 -0
  38. package/dist/iconBase.js.map +1 -0
  39. package/dist/icons/solid_logo.js.map +1 -0
  40. package/{lib → dist}/index.d.ts +7 -9
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +162 -0
  43. package/dist/index.js.map +1 -0
  44. package/{lib → dist}/log.js +85 -99
  45. package/dist/log.js.map +1 -0
  46. package/dist/login/login.js +910 -0
  47. package/dist/login/login.js.map +1 -0
  48. package/dist/matrix/index.js +8 -0
  49. package/dist/matrix/index.js.map +1 -0
  50. package/dist/matrix/matrix.js +253 -0
  51. package/dist/matrix/matrix.js.map +1 -0
  52. package/dist/matrix/types.js +3 -0
  53. package/dist/matrix/types.js.map +1 -0
  54. package/dist/media/index.js +9 -0
  55. package/dist/media/index.js.map +1 -0
  56. package/dist/media/media-capture.js +198 -0
  57. package/dist/media/media-capture.js.map +1 -0
  58. package/dist/pad.js +795 -0
  59. package/dist/pad.js.map +1 -0
  60. package/dist/participation.js +228 -0
  61. package/dist/participation.js.map +1 -0
  62. package/dist/solid-ui.esm.js +25542 -0
  63. package/dist/solid-ui.esm.js.map +1 -0
  64. package/dist/solid-ui.esm.min.js +43 -0
  65. package/dist/solid-ui.esm.min.js.map +1 -0
  66. package/dist/solid-ui.js +23485 -68926
  67. package/dist/solid-ui.js.map +1 -1
  68. package/dist/solid-ui.min.js +40 -2
  69. package/dist/solid-ui.min.js.map +1 -1
  70. package/dist/tabs.js +398 -0
  71. package/dist/tabs.js.map +1 -0
  72. package/dist/utils/headerFooterHelpers.js +122 -0
  73. package/dist/utils/headerFooterHelpers.js.map +1 -0
  74. package/{lib → dist}/utils/keyHelpers/accessData.d.ts +3 -3
  75. package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +1 -1
  76. package/dist/utils/keyHelpers/accessData.js +108 -0
  77. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  78. package/dist/utils/keyHelpers/acl.js +112 -0
  79. package/dist/utils/keyHelpers/acl.js.map +1 -0
  80. package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +1 -1
  81. package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  82. package/dist/utils/keyHelpers/otherHelpers.js +19 -0
  83. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  84. package/dist/utils/label.js +150 -0
  85. package/dist/utils/label.js.map +1 -0
  86. package/dist/versionInfo.js +33 -0
  87. package/dist/versionInfo.js.map +1 -0
  88. package/dist/widgets/buttons/iconLinks.js +49 -0
  89. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  90. package/dist/widgets/buttons.js +1355 -0
  91. package/dist/widgets/buttons.js.map +1 -0
  92. package/dist/widgets/error.js +42 -0
  93. package/dist/widgets/error.js.map +1 -0
  94. package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
  95. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
  97. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  98. package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
  99. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  100. package/dist/widgets/forms/autocomplete/language.js +147 -0
  101. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  102. package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +3 -3
  103. package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -0
  104. package/dist/widgets/forms/autocomplete/publicData.js +507 -0
  105. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  106. package/dist/widgets/forms/basic.js +250 -0
  107. package/dist/widgets/forms/basic.js.map +1 -0
  108. package/dist/widgets/forms/comment.js +52 -0
  109. package/dist/widgets/forms/comment.js.map +1 -0
  110. package/dist/widgets/forms/fieldFunction.js +49 -0
  111. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  112. package/dist/widgets/forms/fieldParams.js +95 -0
  113. package/dist/widgets/forms/fieldParams.js.map +1 -0
  114. package/dist/widgets/forms/formStyle.js +43 -0
  115. package/dist/widgets/forms/formStyle.js.map +1 -0
  116. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  117. package/{lib → dist}/widgets/widgetHelpers.js +19 -24
  118. package/dist/widgets/widgetHelpers.js.map +1 -0
  119. package/package.json +44 -47
  120. package/dist/789.solid-ui.min.js +0 -1
  121. package/dist/841.solid-ui.min.js +0 -3
  122. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  123. package/dist/841.solid-ui.min.js.map +0 -1
  124. package/dist/_2b19.solid-ui.js +0 -14
  125. package/dist/_2b19.solid-ui.js.map +0 -1
  126. package/dist/index.html +0 -1
  127. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  128. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  129. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  130. package/lib/acl/access-controller.js +0 -391
  131. package/lib/acl/access-controller.js.map +0 -1
  132. package/lib/acl/access-groups.js +0 -507
  133. package/lib/acl/access-groups.js.map +0 -1
  134. package/lib/acl/acl-control.js +0 -237
  135. package/lib/acl/acl-control.js.map +0 -1
  136. package/lib/acl/acl.js +0 -517
  137. package/lib/acl/acl.js.map +0 -1
  138. package/lib/acl/add-agent-buttons.js +0 -434
  139. package/lib/acl/add-agent-buttons.js.map +0 -1
  140. package/lib/acl/index.js +0 -39
  141. package/lib/acl/index.js.map +0 -1
  142. package/lib/acl/types.js +0 -6
  143. package/lib/acl/types.js.map +0 -1
  144. package/lib/chat/bookmarks.js +0 -303
  145. package/lib/chat/bookmarks.js.map +0 -1
  146. package/lib/chat/chatLogic.js +0 -420
  147. package/lib/chat/chatLogic.js.map +0 -1
  148. package/lib/chat/dateFolder.js +0 -328
  149. package/lib/chat/dateFolder.js.map +0 -1
  150. package/lib/chat/infinite.js +0 -994
  151. package/lib/chat/infinite.js.map +0 -1
  152. package/lib/chat/keys.js +0 -232
  153. package/lib/chat/keys.js.map +0 -1
  154. package/lib/chat/message.js +0 -715
  155. package/lib/chat/message.js.map +0 -1
  156. package/lib/chat/messageTools.js +0 -538
  157. package/lib/chat/messageTools.js.map +0 -1
  158. package/lib/chat/signature.js +0 -109
  159. package/lib/chat/signature.js.map +0 -1
  160. package/lib/chat/thread.js +0 -535
  161. package/lib/chat/thread.js.map +0 -1
  162. package/lib/create/create.js +0 -242
  163. package/lib/create/create.js.map +0 -1
  164. package/lib/create/index.js +0 -11
  165. package/lib/create/index.js.map +0 -1
  166. package/lib/create/types.js +0 -6
  167. package/lib/create/types.js.map +0 -1
  168. package/lib/debug.js +0 -30
  169. package/lib/debug.js.map +0 -1
  170. package/lib/folders.js +0 -132
  171. package/lib/folders.js.map +0 -1
  172. package/lib/footer/index.js +0 -123
  173. package/lib/footer/index.js.map +0 -1
  174. package/lib/header/empty-profile.js +0 -8
  175. package/lib/header/empty-profile.js.map +0 -1
  176. package/lib/header/index.js +0 -375
  177. package/lib/header/index.js.map +0 -1
  178. package/lib/iconBase.js +0 -44
  179. package/lib/iconBase.js.map +0 -1
  180. package/lib/icons/solid_logo.js.map +0 -1
  181. package/lib/index.d.ts.map +0 -1
  182. package/lib/index.js +0 -223
  183. package/lib/index.js.map +0 -1
  184. package/lib/log.js.map +0 -1
  185. package/lib/login/login.js +0 -1241
  186. package/lib/login/login.js.map +0 -1
  187. package/lib/matrix/index.js +0 -11
  188. package/lib/matrix/index.js.map +0 -1
  189. package/lib/matrix/matrix.js +0 -216
  190. package/lib/matrix/matrix.js.map +0 -1
  191. package/lib/matrix/types.js +0 -6
  192. package/lib/matrix/types.js.map +0 -1
  193. package/lib/media/index.js +0 -12
  194. package/lib/media/index.js.map +0 -1
  195. package/lib/media/media-capture.js +0 -194
  196. package/lib/media/media-capture.js.map +0 -1
  197. package/lib/messageArea.js +0 -319
  198. package/lib/messageArea.js.map +0 -1
  199. package/lib/noun_Camera_1618446_000000.js +0 -8
  200. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  201. package/lib/ns.js +0 -17
  202. package/lib/ns.js.map +0 -1
  203. package/lib/pad.js +0 -805
  204. package/lib/pad.js.map +0 -1
  205. package/lib/participation.js +0 -219
  206. package/lib/participation.js.map +0 -1
  207. package/lib/preferences.js +0 -215
  208. package/lib/preferences.js.map +0 -1
  209. package/lib/signup/config-default.js +0 -43
  210. package/lib/signup/config-default.js.map +0 -1
  211. package/lib/signup/signup.js +0 -74
  212. package/lib/signup/signup.js.map +0 -1
  213. package/lib/stories/decorators.js +0 -10
  214. package/lib/stories/decorators.js.map +0 -1
  215. package/lib/style.js +0 -158
  216. package/lib/style.js.map +0 -1
  217. package/lib/styleConstants.js +0 -35
  218. package/lib/styleConstants.js.map +0 -1
  219. package/lib/style_multiSelect.js +0 -62
  220. package/lib/style_multiSelect.js.map +0 -1
  221. package/lib/table.js +0 -1573
  222. package/lib/table.js.map +0 -1
  223. package/lib/tabs.js +0 -448
  224. package/lib/tabs.js.map +0 -1
  225. package/lib/typings.d.js +0 -2
  226. package/lib/typings.d.js.map +0 -1
  227. package/lib/utils/headerFooterHelpers.js +0 -165
  228. package/lib/utils/headerFooterHelpers.js.map +0 -1
  229. package/lib/utils/index.js +0 -527
  230. package/lib/utils/index.js.map +0 -1
  231. package/lib/utils/keyHelpers/accessData.js +0 -131
  232. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  233. package/lib/utils/keyHelpers/acl.js +0 -90
  234. package/lib/utils/keyHelpers/acl.js.map +0 -1
  235. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  236. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  237. package/lib/utils/label.js +0 -103
  238. package/lib/utils/label.js.map +0 -1
  239. package/lib/versionInfo.d.ts +0 -32
  240. package/lib/versionInfo.d.ts.map +0 -1
  241. package/lib/versionInfo.js +0 -37
  242. package/lib/versionInfo.js.map +0 -1
  243. package/lib/widgets/buttons/iconLinks.js +0 -53
  244. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  245. package/lib/widgets/buttons.js +0 -1306
  246. package/lib/widgets/buttons.js.map +0 -1
  247. package/lib/widgets/dragAndDrop.js +0 -194
  248. package/lib/widgets/dragAndDrop.js.map +0 -1
  249. package/lib/widgets/error.js +0 -46
  250. package/lib/widgets/error.js.map +0 -1
  251. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  252. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  253. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  254. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  255. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  256. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  257. package/lib/widgets/forms/autocomplete/language.js +0 -189
  258. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  259. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -1
  260. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  261. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  262. package/lib/widgets/forms/basic.js +0 -254
  263. package/lib/widgets/forms/basic.js.map +0 -1
  264. package/lib/widgets/forms/comment.js +0 -54
  265. package/lib/widgets/forms/comment.js.map +0 -1
  266. package/lib/widgets/forms/fieldFunction.js +0 -52
  267. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  268. package/lib/widgets/forms/fieldParams.js +0 -77
  269. package/lib/widgets/forms/fieldParams.js.map +0 -1
  270. package/lib/widgets/forms/formStyle.js +0 -44
  271. package/lib/widgets/forms/formStyle.js.map +0 -1
  272. package/lib/widgets/forms.js +0 -2045
  273. package/lib/widgets/forms.js.map +0 -1
  274. package/lib/widgets/index.js +0 -110
  275. package/lib/widgets/index.js.map +0 -1
  276. package/lib/widgets/multiSelect.js +0 -658
  277. package/lib/widgets/multiSelect.js.map +0 -1
  278. package/lib/widgets/peoplePicker.js +0 -467
  279. package/lib/widgets/peoplePicker.js.map +0 -1
  280. package/lib/widgets/widgetHelpers.js.map +0 -1
  281. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  282. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  283. /package/{lib → dist}/acl/access-groups.d.ts +0 -0
  284. /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
  285. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  286. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  287. /package/{lib → dist}/acl/acl.d.ts +0 -0
  288. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  289. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  290. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  291. /package/{lib → dist}/acl/index.d.ts +0 -0
  292. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  293. /package/{lib → dist}/acl/types.d.ts +0 -0
  294. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  295. /package/{lib → dist}/chat/signature.d.ts +0 -0
  296. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  297. /package/{lib → dist}/create/create.d.ts +0 -0
  298. /package/{lib → dist}/create/create.d.ts.map +0 -0
  299. /package/{lib → dist}/create/index.d.ts +0 -0
  300. /package/{lib → dist}/create/index.d.ts.map +0 -0
  301. /package/{lib → dist}/create/types.d.ts +0 -0
  302. /package/{lib → dist}/create/types.d.ts.map +0 -0
  303. /package/{lib → dist}/debug.d.ts +0 -0
  304. /package/{lib → dist}/debug.d.ts.map +0 -0
  305. /package/{lib → dist}/footer/index.d.ts +0 -0
  306. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  307. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  308. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  309. /package/{lib → dist}/header/index.d.ts +0 -0
  310. /package/{lib → dist}/header/index.d.ts.map +0 -0
  311. /package/{lib → dist}/iconBase.d.ts +0 -0
  312. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  313. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  314. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  315. /package/{lib → dist}/icons/solid_logo.js +0 -0
  316. /package/{lib → dist}/log.d.ts +0 -0
  317. /package/{lib → dist}/log.d.ts.map +0 -0
  318. /package/{lib → dist}/login/login.d.ts +0 -0
  319. /package/{lib → dist}/login/login.d.ts.map +0 -0
  320. /package/{lib → dist}/matrix/index.d.ts +0 -0
  321. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  322. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  323. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  324. /package/{lib → dist}/matrix/types.d.ts +0 -0
  325. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  326. /package/{lib → dist}/media/index.d.ts +0 -0
  327. /package/{lib → dist}/media/index.d.ts.map +0 -0
  328. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  329. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  330. /package/{lib → dist}/pad.d.ts +0 -0
  331. /package/{lib → dist}/pad.d.ts.map +0 -0
  332. /package/{lib → dist}/participation.d.ts +0 -0
  333. /package/{lib → dist}/participation.d.ts.map +0 -0
  334. /package/{lib → dist}/tabs.d.ts +0 -0
  335. /package/{lib → dist}/tabs.d.ts.map +0 -0
  336. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  337. /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
  338. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  339. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  340. /package/{lib → dist}/utils/label.d.ts +0 -0
  341. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  342. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  343. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  344. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  345. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  346. /package/{lib → dist}/widgets/error.d.ts +0 -0
  347. /package/{lib → dist}/widgets/error.d.ts.map +0 -0
  348. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  349. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  355. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  356. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  357. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  358. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  359. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  360. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  361. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  362. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  363. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  364. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  365. /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
  366. /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
@@ -1,507 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.AccessGroups = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
- var _rdflib = require("rdflib");
16
- var _acl = require("./acl");
17
- var widgets = _interopRequireWildcard(require("../widgets"));
18
- var ns = _interopRequireWildcard(require("../ns"));
19
- var _addAgentButtons = require("./add-agent-buttons");
20
- var debug = _interopRequireWildcard(require("../debug"));
21
- var style = _interopRequireWildcard(require("../style"));
22
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t3 in e) "default" !== _t3 && {}.hasOwnProperty.call(e, _t3) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t3)) && (i.get || i.set) ? o(f, _t3, i) : f[_t3] = e[_t3]); return f; })(e, t); }
23
- /**
24
- * Contains the [[AccessGroups]]
25
- * and [[AccessGroupsOptions]] classes
26
- * @packageDocumentation
27
- */
28
-
29
- var ACL = ns.acl;
30
- var COLLOQUIAL = {
31
- 13: 'Owners',
32
- 9: 'Owners (write locked)',
33
- 5: 'Editors',
34
- 3: 'Posters',
35
- 2: 'Submitters',
36
- 1: 'Viewers'
37
- };
38
- var RECOMMENDED = {
39
- 13: true,
40
- 5: true,
41
- 3: true,
42
- 2: true,
43
- 1: true
44
- };
45
- var EXPLANATION = {
46
- 13: 'can read, write, and control sharing.',
47
- 9: 'can read and control sharing, currently write-locked.',
48
- 5: 'can read and change information',
49
- 3: 'can add new information, and read but not change existing information',
50
- 2: 'can add new information but not read any',
51
- 1: 'can read but not change information'
52
- };
53
-
54
- /**
55
- * Type for the options parameter of [[AccessGroups]]
56
- */
57
- /**
58
- * Renders the table of Owners, Editors, Posters, Submitters, Viewers
59
- * for https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md
60
- */
61
- var AccessGroups = exports.AccessGroups = /*#__PURE__*/function () {
62
- // @@ was LiveStore but does not need to be connected to web
63
-
64
- function AccessGroups(doc, aclDoc, controller, store) {
65
- var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
66
- (0, _classCallCheck2["default"])(this, AccessGroups);
67
- this.doc = doc;
68
- this.aclDoc = aclDoc;
69
- this.controller = controller;
70
- this.options = options;
71
- (0, _defineProperty2["default"])(this, "defaults", void 0);
72
- (0, _defineProperty2["default"])(this, "byCombo", void 0);
73
- (0, _defineProperty2["default"])(this, "aclMap", void 0);
74
- (0, _defineProperty2["default"])(this, "addAgentButton", void 0);
75
- (0, _defineProperty2["default"])(this, "rootElement", void 0);
76
- (0, _defineProperty2["default"])(this, "_store", void 0);
77
- this.defaults = options.defaults || false;
78
- this._store = store;
79
- this.aclMap = (0, _acl.readACL)(doc, aclDoc, store, this.defaults);
80
- this.byCombo = (0, _acl.ACLbyCombination)(this.aclMap);
81
- this.addAgentButton = new _addAgentButtons.AddAgentButtons(this);
82
- this.rootElement = this.controller.dom.createElement('div');
83
- this.rootElement.setAttribute('style', style.accessGroupList);
84
- }
85
- return (0, _createClass2["default"])(AccessGroups, [{
86
- key: "store",
87
- get: function get() {
88
- return this._store;
89
- },
90
- set: function set(store) {
91
- this._store = store;
92
- this.aclMap = (0, _acl.readACL)(this.doc, this.aclDoc, store, this.defaults);
93
- this.byCombo = (0, _acl.ACLbyCombination)(this.aclMap);
94
- }
95
- }, {
96
- key: "render",
97
- value: function render() {
98
- var _this = this;
99
- this.rootElement.innerHTML = '';
100
- this.renderGroups().forEach(function (group) {
101
- return _this.rootElement.appendChild(group);
102
- });
103
- if (this.controller.isEditable) {
104
- this.rootElement.appendChild(this.addAgentButton.render());
105
- }
106
- return this.rootElement;
107
- }
108
- }, {
109
- key: "renderGroups",
110
- value: function renderGroups() {
111
- var groupElements = [];
112
- for (var comboIndex = 15; comboIndex > 0; comboIndex--) {
113
- var combo = kToCombo(comboIndex);
114
- if (this.controller.isEditable && RECOMMENDED[comboIndex] || this.byCombo[combo]) {
115
- groupElements.push(this.renderGroup(comboIndex, combo));
116
- }
117
- }
118
- return groupElements;
119
- }
120
- }, {
121
- key: "renderGroup",
122
- value: function renderGroup(comboIndex, combo) {
123
- var _this2 = this;
124
- var groupRow = this.controller.dom.createElement('div');
125
- groupRow.setAttribute('style', style.accessGroupListItem);
126
- widgets.makeDropTarget(groupRow, function (uris) {
127
- return _this2.handleDroppedUris(uris, combo).then(function () {
128
- return _this2.controller.render();
129
- })["catch"](function (error) {
130
- return _this2.controller.renderStatus(error);
131
- });
132
- });
133
- var groupColumns = this.renderGroupElements(comboIndex, combo);
134
- groupColumns.forEach(function (column) {
135
- return groupRow.appendChild(column);
136
- });
137
- return groupRow;
138
- }
139
- }, {
140
- key: "renderGroupElements",
141
- value: function renderGroupElements(comboIndex, combo) {
142
- var _this3 = this;
143
- var groupNameColumn = this.controller.dom.createElement('div');
144
- groupNameColumn.setAttribute('style', style.group);
145
- if (this.controller.isEditable) {
146
- switch (comboIndex) {
147
- case 1:
148
- groupNameColumn.setAttribute('style', style.group1);
149
- break;
150
- case 2:
151
- groupNameColumn.setAttribute('style', style.group2);
152
- break;
153
- case 3:
154
- groupNameColumn.setAttribute('style', style.group3);
155
- break;
156
- case 5:
157
- groupNameColumn.setAttribute('style', style.group5);
158
- break;
159
- case 9:
160
- groupNameColumn.setAttribute('style', style.group9);
161
- break;
162
- case 13:
163
- groupNameColumn.setAttribute('style', style.group13);
164
- break;
165
- default:
166
- groupNameColumn.setAttribute('style', style.group);
167
- }
168
- }
169
- groupNameColumn.innerText = COLLOQUIAL[comboIndex] || ktToList(comboIndex);
170
- var groupAgentsColumn = this.controller.dom.createElement('div');
171
- groupAgentsColumn.setAttribute('style', style.group);
172
- if (this.controller.isEditable) {
173
- switch (comboIndex) {
174
- case 1:
175
- groupAgentsColumn.setAttribute('style', style.group1);
176
- break;
177
- case 2:
178
- groupAgentsColumn.setAttribute('style', style.group2);
179
- break;
180
- case 3:
181
- groupAgentsColumn.setAttribute('style', style.group3);
182
- break;
183
- case 5:
184
- groupAgentsColumn.setAttribute('style', style.group5);
185
- break;
186
- case 9:
187
- groupAgentsColumn.setAttribute('style', style.group9);
188
- break;
189
- case 13:
190
- groupAgentsColumn.setAttribute('style', style.group13);
191
- break;
192
- default:
193
- groupAgentsColumn.setAttribute('style', style.group);
194
- }
195
- }
196
- var groupAgentsTable = groupAgentsColumn.appendChild(this.controller.dom.createElement('table'));
197
- var combos = this.byCombo[combo] || [];
198
- combos.map(function (_ref) {
199
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
200
- pred = _ref2[0],
201
- obj = _ref2[1];
202
- return _this3.renderAgent(groupAgentsTable, combo, pred, obj);
203
- }).forEach(function (agentElement) {
204
- return groupAgentsTable.appendChild(agentElement);
205
- });
206
- var groupDescriptionElement = this.controller.dom.createElement('div');
207
- groupDescriptionElement.setAttribute('style', style.group);
208
- if (this.controller.isEditable) {
209
- switch (comboIndex) {
210
- case 1:
211
- groupDescriptionElement.setAttribute('style', style.group1);
212
- break;
213
- case 2:
214
- groupDescriptionElement.setAttribute('style', style.group2);
215
- break;
216
- case 3:
217
- groupDescriptionElement.setAttribute('style', style.group3);
218
- break;
219
- case 5:
220
- groupDescriptionElement.setAttribute('style', style.group5);
221
- break;
222
- case 9:
223
- groupDescriptionElement.setAttribute('style', style.group9);
224
- break;
225
- case 13:
226
- groupDescriptionElement.setAttribute('style', style.group13);
227
- break;
228
- default:
229
- groupDescriptionElement.setAttribute('style', style.group);
230
- }
231
- }
232
- groupDescriptionElement.innerText = EXPLANATION[comboIndex] || 'Unusual combination';
233
- return [groupNameColumn, groupAgentsColumn, groupDescriptionElement];
234
- }
235
- }, {
236
- key: "renderAgent",
237
- value: function renderAgent(groupAgentsTable, combo, pred, obj) {
238
- var _this4 = this;
239
- var personRow = widgets.personTR(this.controller.dom, ACL(pred), (0, _rdflib.sym)(obj), this.controller.isEditable ? {
240
- deleteFunction: function deleteFunction() {
241
- return _this4.deleteAgent(combo, pred, obj).then(function () {
242
- return groupAgentsTable.removeChild(personRow);
243
- })["catch"](function (error) {
244
- return _this4.controller.renderStatus(error);
245
- });
246
- }
247
- } : {});
248
- return personRow;
249
- }
250
- }, {
251
- key: "deleteAgent",
252
- value: function () {
253
- var _deleteAgent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(combo, pred, obj) {
254
- var combos, comboToRemove;
255
- return _regenerator["default"].wrap(function (_context) {
256
- while (1) switch (_context.prev = _context.next) {
257
- case 0:
258
- combos = this.byCombo[combo] || [];
259
- comboToRemove = combos.find(function (_ref3) {
260
- var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
261
- comboPred = _ref4[0],
262
- comboObj = _ref4[1];
263
- return comboPred === pred && comboObj === obj;
264
- });
265
- if (comboToRemove) {
266
- combos.splice(combos.indexOf(comboToRemove), 1);
267
- }
268
- _context.next = 1;
269
- return this.controller.save();
270
- case 1:
271
- case "end":
272
- return _context.stop();
273
- }
274
- }, _callee, this);
275
- }));
276
- function deleteAgent(_x, _x2, _x3) {
277
- return _deleteAgent.apply(this, arguments);
278
- }
279
- return deleteAgent;
280
- }()
281
- }, {
282
- key: "addNewURI",
283
- value: function () {
284
- var _addNewURI = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(uri) {
285
- return _regenerator["default"].wrap(function (_context2) {
286
- while (1) switch (_context2.prev = _context2.next) {
287
- case 0:
288
- _context2.next = 1;
289
- return this.handleDroppedUri(uri, kToCombo(1));
290
- case 1:
291
- _context2.next = 2;
292
- return this.controller.save();
293
- case 2:
294
- case "end":
295
- return _context2.stop();
296
- }
297
- }, _callee2, this);
298
- }));
299
- function addNewURI(_x4) {
300
- return _addNewURI.apply(this, arguments);
301
- }
302
- return addNewURI;
303
- }()
304
- }, {
305
- key: "handleDroppedUris",
306
- value: function () {
307
- var _handleDroppedUris = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(uris, combo) {
308
- var _this5 = this;
309
- var _t;
310
- return _regenerator["default"].wrap(function (_context3) {
311
- while (1) switch (_context3.prev = _context3.next) {
312
- case 0:
313
- _context3.prev = 0;
314
- _context3.next = 1;
315
- return Promise.all(uris.map(function (uri) {
316
- return _this5.handleDroppedUri(uri, combo);
317
- }));
318
- case 1:
319
- _context3.next = 2;
320
- return this.controller.save();
321
- case 2:
322
- _context3.next = 4;
323
- break;
324
- case 3:
325
- _context3.prev = 3;
326
- _t = _context3["catch"](0);
327
- return _context3.abrupt("return", Promise.reject(_t));
328
- case 4:
329
- case "end":
330
- return _context3.stop();
331
- }
332
- }, _callee3, this, [[0, 3]]);
333
- }));
334
- function handleDroppedUris(_x5, _x6) {
335
- return _handleDroppedUris.apply(this, arguments);
336
- }
337
- return handleDroppedUris;
338
- }()
339
- }, {
340
- key: "handleDroppedUri",
341
- value: function () {
342
- var _handleDroppedUri = (0, _asyncToGenerator2["default"])(function (uri, combo) {
343
- var _this6 = this;
344
- var secondAttempt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
345
- return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
346
- var agent, thing, _this6$_store, message, error, _t2;
347
- return _regenerator["default"].wrap(function (_context4) {
348
- while (1) switch (_context4.prev = _context4.next) {
349
- case 0:
350
- agent = findAgent(uri, _this6.store); // eg 'agent', 'origin', agentClass'
351
- thing = (0, _rdflib.sym)(uri);
352
- if (!(!agent && !secondAttempt)) {
353
- _context4.next = 5;
354
- break;
355
- }
356
- debug.log(" Not obvious: looking up dropped thing ".concat(thing));
357
- _context4.prev = 1;
358
- _context4.next = 2;
359
- return (_this6$_store = _this6._store) === null || _this6$_store === void 0 || (_this6$_store = _this6$_store.fetcher) === null || _this6$_store === void 0 ? void 0 : _this6$_store.load(thing.doc());
360
- case 2:
361
- _context4.next = 4;
362
- break;
363
- case 3:
364
- _context4.prev = 3;
365
- _t2 = _context4["catch"](1);
366
- message = "Ignore error looking up dropped thing: ".concat(_t2);
367
- debug.error(message);
368
- return _context4.abrupt("return", Promise.reject(new Error(message)));
369
- case 4:
370
- return _context4.abrupt("return", _this6.handleDroppedUri(uri, combo, true));
371
- case 5:
372
- if (agent) {
373
- _context4.next = 6;
374
- break;
375
- }
376
- error = " Error: Drop fails to drop appropriate thing! ".concat(uri);
377
- debug.error(error);
378
- return _context4.abrupt("return", Promise.reject(new Error(error)));
379
- case 6:
380
- _this6.setACLCombo(combo, uri, agent, _this6.controller.subject);
381
- case 7:
382
- case "end":
383
- return _context4.stop();
384
- }
385
- }, _callee4, null, [[1, 3]]);
386
- })();
387
- });
388
- function handleDroppedUri(_x7, _x8) {
389
- return _handleDroppedUri.apply(this, arguments);
390
- }
391
- return handleDroppedUri;
392
- }()
393
- }, {
394
- key: "setACLCombo",
395
- value: function setACLCombo(combo, uri, res, subject) {
396
- if (!(combo in this.byCombo)) {
397
- this.byCombo[combo] = [];
398
- }
399
- this.removeAgentFromCombos(uri); // Combos are mutually distinct
400
- this.byCombo[combo].push([res.pred, res.obj.uri]);
401
- debug.log("ACL: setting access to ".concat(subject, " by ").concat(res.pred, ": ").concat(res.obj));
402
- }
403
- }, {
404
- key: "removeAgentFromCombos",
405
- value: function removeAgentFromCombos(uri) {
406
- for (var k = 0; k < 16; k++) {
407
- var combos = this.byCombo[kToCombo(k)];
408
- if (combos) {
409
- for (var i = 0; i < combos.length; i++) {
410
- while (i < combos.length && combos[i][1] === uri) {
411
- combos.splice(i, 1);
412
- }
413
- }
414
- }
415
- }
416
- }
417
- }]);
418
- }();
419
- function kToCombo(k) {
420
- var y = ['Read', 'Append', 'Write', 'Control'];
421
- var combo = [];
422
- for (var i = 0; i < 4; i++) {
423
- if (k & 1 << i) {
424
- combo.push('http://www.w3.org/ns/auth/acl#' + y[i]);
425
- }
426
- }
427
- combo.sort();
428
- return combo.join('\n');
429
- }
430
- function ktToList(k) {
431
- var list = '';
432
- var y = ['Read', 'Append', 'Write', 'Control'];
433
- for (var i = 0; i < 4; i++) {
434
- if (k & 1 << i) {
435
- list += y[i];
436
- }
437
- }
438
- return list;
439
- }
440
- function findAgent(uri, kb) {
441
- var obj = (0, _rdflib.sym)(uri);
442
- var types = kb.findTypeURIs(obj);
443
- for (var ty in types) {
444
- debug.log(' drop object type includes: ' + ty);
445
- }
446
- // An Origin URI is one like https://fred.github.io eith no trailing slash
447
- if (uri.startsWith('http') && uri.split('/').length === 3) {
448
- // there is no third slash
449
- return {
450
- pred: 'origin',
451
- obj: obj
452
- }; // The only way to know an origin alas
453
- }
454
- // @@ This is an almighty kludge needed because drag and drop adds extra slashes to origins
455
- if (uri.startsWith('http') && uri.split('/').length === 4 && uri.endsWith('/')) {
456
- // there IS third slash
457
- debug.log('Assuming final slash on dragged origin URI was unintended!');
458
- return {
459
- pred: 'origin',
460
- obj: (0, _rdflib.sym)(uri.slice(0, -1))
461
- }; // Fix a URI where the drag and drop system has added a spurious slash
462
- }
463
- if (ns.vcard('WebID').uri in types) return {
464
- pred: 'agent',
465
- obj: obj
466
- };
467
- if (ns.vcard('Group').uri in types) {
468
- return {
469
- pred: 'agentGroup',
470
- obj: obj
471
- }; // @@ note vcard membership not RDFs
472
- }
473
- if (obj.sameTerm(ns.foaf('Agent')) || obj.sameTerm(ns.acl('AuthenticatedAgent')) ||
474
- // AuthenticatedAgent
475
- obj.sameTerm(ns.rdf('Resource')) || obj.sameTerm(ns.owl('Thing'))) {
476
- return {
477
- pred: 'agentClass',
478
- obj: obj
479
- };
480
- }
481
- if (ns.vcard('Individual').uri in types || ns.foaf('Person').uri in types || ns.foaf('Agent').uri in types) {
482
- var pref = kb.any(obj, ns.foaf('preferredURI'));
483
- if (pref) return {
484
- pred: 'agent',
485
- obj: (0, _rdflib.sym)(pref)
486
- };
487
- return {
488
- pred: 'agent',
489
- obj: obj
490
- };
491
- }
492
- if (ns.solid('AppProvider').uri in types) {
493
- return {
494
- pred: 'origin',
495
- obj: obj
496
- };
497
- }
498
- if (ns.solid('AppProviderClass').uri in types) {
499
- return {
500
- pred: 'originClass',
501
- obj: obj
502
- };
503
- }
504
- debug.log(' Triage fails for ' + uri);
505
- return null;
506
- }
507
- //# sourceMappingURL=access-groups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"access-groups.js","names":["_rdflib","require","_acl","widgets","_interopRequireWildcard","ns","_addAgentButtons","debug","style","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t3","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ACL","acl","COLLOQUIAL","RECOMMENDED","EXPLANATION","AccessGroups","exports","doc","aclDoc","controller","store","options","arguments","length","undefined","_classCallCheck2","_defineProperty2","defaults","_store","aclMap","readACL","byCombo","ACLbyCombination","addAgentButton","AddAgentButtons","rootElement","dom","createElement","setAttribute","accessGroupList","_createClass2","key","value","render","_this","innerHTML","renderGroups","forEach","group","appendChild","isEditable","groupElements","comboIndex","combo","kToCombo","push","renderGroup","_this2","groupRow","accessGroupListItem","makeDropTarget","uris","handleDroppedUris","then","error","renderStatus","groupColumns","renderGroupElements","column","_this3","groupNameColumn","group1","group2","group3","group5","group9","group13","innerText","ktToList","groupAgentsColumn","groupAgentsTable","combos","map","_ref","_ref2","_slicedToArray2","pred","obj","renderAgent","agentElement","groupDescriptionElement","_this4","personRow","personTR","sym","deleteFunction","deleteAgent","removeChild","_deleteAgent","_asyncToGenerator2","_regenerator","mark","_callee","comboToRemove","wrap","_context","prev","next","find","_ref3","_ref4","comboPred","comboObj","splice","indexOf","save","stop","_x","_x2","_x3","apply","_addNewURI","_callee2","uri","_context2","handleDroppedUri","addNewURI","_x4","_handleDroppedUris","_callee3","_this5","_t","_context3","Promise","all","abrupt","reject","_x5","_x6","_handleDroppedUri","_this6","secondAttempt","_callee4","agent","thing","_this6$_store","message","_t2","_context4","findAgent","log","concat","fetcher","load","Error","setACLCombo","subject","_x7","_x8","res","removeAgentFromCombos","k","y","sort","join","list","kb","types","findTypeURIs","ty","startsWith","split","endsWith","slice","vcard","sameTerm","foaf","rdf","owl","pref","any","solid"],"sources":["../../src/acl/access-groups.ts"],"sourcesContent":["/**\n * Contains the [[AccessGroups]]\n * and [[AccessGroupsOptions]] classes\n * @packageDocumentation\n */\n\nimport { NamedNode, sym, Store } from 'rdflib'\nimport { ACLbyCombination, readACL } from './acl'\nimport * as widgets from '../widgets'\nimport * as ns from '../ns'\nimport { AccessController } from './access-controller'\nimport { AgentMapMap, ComboList, PartialAgentTriple } from './types'\nimport { AddAgentButtons } from './add-agent-buttons'\nimport * as debug from '../debug'\nimport * as style from '../style'\n\nconst ACL = ns.acl\n\nconst COLLOQUIAL = {\n 13: 'Owners',\n 9: 'Owners (write locked)',\n 5: 'Editors',\n 3: 'Posters',\n 2: 'Submitters',\n 1: 'Viewers'\n}\n\nconst RECOMMENDED = {\n 13: true,\n 5: true,\n 3: true,\n 2: true,\n 1: true\n}\n\nconst EXPLANATION = {\n 13: 'can read, write, and control sharing.',\n 9: 'can read and control sharing, currently write-locked.',\n 5: 'can read and change information',\n 3: 'can add new information, and read but not change existing information',\n 2: 'can add new information but not read any',\n 1: 'can read but not change information'\n}\n\n/**\n * Type for the options parameter of [[AccessGroups]]\n */\nexport interface AccessGroupsOptions {\n defaults?: boolean\n}\n\n/**\n * Renders the table of Owners, Editors, Posters, Submitters, Viewers\n * for https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md\n */\nexport class AccessGroups {\n private readonly defaults: boolean\n public byCombo: ComboList\n public aclMap: AgentMapMap\n private readonly addAgentButton: AddAgentButtons\n private readonly rootElement: HTMLElement\n private _store: Store // @@ was LiveStore but does not need to be connected to web\n\n constructor (\n private doc: NamedNode,\n private aclDoc: NamedNode,\n public controller: AccessController,\n store: Store, // @@ was LiveStore\n private options: AccessGroupsOptions = {}\n ) {\n this.defaults = options.defaults || false\n this._store = store\n this.aclMap = readACL(doc, aclDoc, store, this.defaults)\n this.byCombo = ACLbyCombination(this.aclMap)\n this.addAgentButton = new AddAgentButtons(this)\n this.rootElement = this.controller.dom.createElement('div')\n this.rootElement.setAttribute('style', style.accessGroupList)\n }\n\n public get store () {\n return this._store\n }\n\n public set store (store) {\n this._store = store\n this.aclMap = readACL(this.doc, this.aclDoc, store, this.defaults)\n this.byCombo = ACLbyCombination(this.aclMap)\n }\n\n public render (): HTMLElement {\n this.rootElement.innerHTML = ''\n this.renderGroups().forEach(group => this.rootElement.appendChild(group))\n if (this.controller.isEditable) {\n this.rootElement.appendChild(this.addAgentButton.render())\n }\n return this.rootElement\n }\n\n private renderGroups (): HTMLElement[] {\n const groupElements: HTMLElement[] = []\n for (let comboIndex = 15; comboIndex > 0; comboIndex--) {\n const combo = kToCombo(comboIndex)\n if ((this.controller.isEditable && RECOMMENDED[comboIndex]) || this.byCombo[combo]) {\n groupElements.push(this.renderGroup(comboIndex, combo))\n }\n }\n return groupElements\n }\n\n private renderGroup (comboIndex: number, combo: string): HTMLElement {\n const groupRow = this.controller.dom.createElement('div')\n groupRow.setAttribute('style', style.accessGroupListItem)\n widgets.makeDropTarget(groupRow, (uris) => this.handleDroppedUris(uris, combo)\n .then(() => this.controller.render())\n .catch(error => this.controller.renderStatus(error)))\n const groupColumns = this.renderGroupElements(comboIndex, combo)\n groupColumns.forEach(column => groupRow.appendChild(column))\n return groupRow\n }\n\n private renderGroupElements (comboIndex, combo): HTMLElement[] {\n const groupNameColumn = this.controller.dom.createElement('div')\n groupNameColumn.setAttribute('style', style.group)\n if (this.controller.isEditable) {\n switch (comboIndex) {\n case 1:\n groupNameColumn.setAttribute('style', style.group1)\n break\n case 2:\n groupNameColumn.setAttribute('style', style.group2)\n break\n case 3:\n groupNameColumn.setAttribute('style', style.group3)\n break\n case 5:\n groupNameColumn.setAttribute('style', style.group5)\n break\n case 9:\n groupNameColumn.setAttribute('style', style.group9)\n break\n case 13:\n groupNameColumn.setAttribute('style', style.group13)\n break\n default:\n groupNameColumn.setAttribute('style', style.group)\n }\n }\n groupNameColumn.innerText = COLLOQUIAL[comboIndex] || ktToList(comboIndex)\n\n const groupAgentsColumn = this.controller.dom.createElement('div')\n groupAgentsColumn.setAttribute('style', style.group)\n if (this.controller.isEditable) {\n switch (comboIndex) {\n case 1:\n groupAgentsColumn.setAttribute('style', style.group1)\n break\n case 2:\n groupAgentsColumn.setAttribute('style', style.group2)\n break\n case 3:\n groupAgentsColumn.setAttribute('style', style.group3)\n break\n case 5:\n groupAgentsColumn.setAttribute('style', style.group5)\n break\n case 9:\n groupAgentsColumn.setAttribute('style', style.group9)\n break\n case 13:\n groupAgentsColumn.setAttribute('style', style.group13)\n break\n default:\n groupAgentsColumn.setAttribute('style', style.group)\n }\n }\n const groupAgentsTable = groupAgentsColumn.appendChild(this.controller.dom.createElement('table'))\n const combos = this.byCombo[combo] || []\n combos\n .map(([pred, obj]) => this.renderAgent(groupAgentsTable, combo, pred, obj))\n .forEach(agentElement => groupAgentsTable.appendChild(agentElement))\n\n const groupDescriptionElement = this.controller.dom.createElement('div')\n groupDescriptionElement.setAttribute('style', style.group)\n if (this.controller.isEditable) {\n switch (comboIndex) {\n case 1:\n groupDescriptionElement.setAttribute('style', style.group1)\n break\n case 2:\n groupDescriptionElement.setAttribute('style', style.group2)\n break\n case 3:\n groupDescriptionElement.setAttribute('style', style.group3)\n break\n case 5:\n groupDescriptionElement.setAttribute('style', style.group5)\n break\n case 9:\n groupDescriptionElement.setAttribute('style', style.group9)\n break\n case 13:\n groupDescriptionElement.setAttribute('style', style.group13)\n break\n default:\n groupDescriptionElement.setAttribute('style', style.group)\n }\n }\n groupDescriptionElement.innerText = EXPLANATION[comboIndex] || 'Unusual combination'\n\n return [groupNameColumn, groupAgentsColumn, groupDescriptionElement]\n }\n\n private renderAgent (groupAgentsTable, combo, pred, obj): HTMLElement {\n const personRow = widgets.personTR(this.controller.dom, ACL(pred), sym(obj), this.controller.isEditable\n ? {\n deleteFunction: () => this.deleteAgent(combo, pred, obj)\n .then(() => groupAgentsTable.removeChild(personRow))\n .catch(error => this.controller.renderStatus(error))\n }\n : {})\n return personRow\n }\n\n private async deleteAgent (combo, pred, obj): Promise<void> {\n const combos = this.byCombo[combo] || []\n const comboToRemove = combos.find(([comboPred, comboObj]) => comboPred === pred && comboObj === obj)\n if (comboToRemove) {\n combos.splice(combos.indexOf(comboToRemove), 1)\n }\n await this.controller.save()\n }\n\n public async addNewURI (uri: string): Promise<void> {\n await this.handleDroppedUri(uri, kToCombo(1))\n await this.controller.save()\n }\n\n private async handleDroppedUris (uris: string[], combo: string): Promise<void> {\n try {\n await Promise.all(uris.map(uri => this.handleDroppedUri(uri, combo)))\n await this.controller.save()\n } catch (error) {\n return Promise.reject(error)\n }\n }\n\n private async handleDroppedUri (uri: string, combo: string, secondAttempt: boolean = false): Promise<void> {\n const agent = findAgent(uri, this.store) // eg 'agent', 'origin', agentClass'\n const thing = sym(uri)\n if (!agent && !secondAttempt) {\n debug.log(` Not obvious: looking up dropped thing ${thing}`)\n try {\n await this._store?.fetcher?.load(thing.doc())\n } catch (error) {\n const message = `Ignore error looking up dropped thing: ${error}`\n debug.error(message)\n return Promise.reject(new Error(message))\n }\n return this.handleDroppedUri(uri, combo, true)\n } else if (!agent) {\n const error = ` Error: Drop fails to drop appropriate thing! ${uri}`\n debug.error(error)\n return Promise.reject(new Error(error))\n }\n this.setACLCombo(combo, uri, agent, this.controller.subject)\n }\n\n private setACLCombo (combo: string, uri: string, res: PartialAgentTriple, subject: NamedNode): void {\n if (!(combo in this.byCombo)) {\n this.byCombo[combo] = []\n }\n this.removeAgentFromCombos(uri) // Combos are mutually distinct\n this.byCombo[combo].push([res.pred, res.obj.uri])\n debug.log(`ACL: setting access to ${subject} by ${res.pred}: ${res.obj}`)\n }\n\n private removeAgentFromCombos (uri: string): void {\n for (let k = 0; k < 16; k++) {\n const combos = this.byCombo[kToCombo(k)]\n if (combos) {\n for (let i = 0; i < combos.length; i++) {\n while (i < combos.length && combos[i][1] === uri) {\n combos.splice(i, 1)\n }\n }\n }\n }\n }\n}\n\nfunction kToCombo (k: number): string {\n const y = ['Read', 'Append', 'Write', 'Control']\n const combo: string[] = []\n for (let i = 0; i < 4; i++) {\n if (k & (1 << i)) {\n combo.push('http://www.w3.org/ns/auth/acl#' + y[i])\n }\n }\n combo.sort()\n return combo.join('\\n')\n}\n\nfunction ktToList (k: number): string {\n let list = ''\n const y = ['Read', 'Append', 'Write', 'Control']\n for (let i = 0; i < 4; i++) {\n if (k & (1 << i)) {\n list += y[i]\n }\n }\n return list\n}\n\nfunction findAgent (uri, kb): PartialAgentTriple | null {\n const obj = sym(uri)\n const types = kb.findTypeURIs(obj)\n for (const ty in types) {\n debug.log(' drop object type includes: ' + ty)\n }\n // An Origin URI is one like https://fred.github.io eith no trailing slash\n if (uri.startsWith('http') && uri.split('/').length === 3) {\n // there is no third slash\n return { pred: 'origin', obj } // The only way to know an origin alas\n }\n // @@ This is an almighty kludge needed because drag and drop adds extra slashes to origins\n if (\n uri.startsWith('http') &&\n uri.split('/').length === 4 &&\n uri.endsWith('/')\n ) {\n // there IS third slash\n debug.log('Assuming final slash on dragged origin URI was unintended!')\n return { pred: 'origin', obj: sym(uri.slice(0, -1)) } // Fix a URI where the drag and drop system has added a spurious slash\n }\n\n if (ns.vcard('WebID').uri in types) return { pred: 'agent', obj }\n\n if (ns.vcard('Group').uri in types) {\n return { pred: 'agentGroup', obj } // @@ note vcard membership not RDFs\n }\n if (\n obj.sameTerm(ns.foaf('Agent')) ||\n obj.sameTerm(ns.acl('AuthenticatedAgent')) || // AuthenticatedAgent\n obj.sameTerm(ns.rdf('Resource')) ||\n obj.sameTerm(ns.owl('Thing'))\n ) {\n return { pred: 'agentClass', obj }\n }\n if (\n ns.vcard('Individual').uri in types ||\n ns.foaf('Person').uri in types ||\n ns.foaf('Agent').uri in types\n ) {\n const pref = kb.any(obj, ns.foaf('preferredURI'))\n if (pref) return { pred: 'agent', obj: sym(pref) }\n return { pred: 'agent', obj }\n }\n if (ns.solid('AppProvider').uri in types) {\n return { pred: 'origin', obj }\n }\n if (ns.solid('AppProviderClass').uri in types) {\n return { pred: 'originClass', obj }\n }\n debug.log(' Triage fails for ' + uri)\n return null\n}\n"],"mappings":"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","ignoreList":[]}