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
@@ -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":[]}