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.
- package/LICENSE.md +3 -1
- package/README.md +85 -26
- package/dist/acl/access-controller.js +293 -0
- package/dist/acl/access-controller.js.map +1 -0
- package/dist/acl/access-groups.js +372 -0
- package/dist/acl/access-groups.js.map +1 -0
- package/dist/acl/acl-control.js +217 -0
- package/dist/acl/acl-control.js.map +1 -0
- package/dist/acl/acl.js +550 -0
- package/dist/acl/acl.js.map +1 -0
- package/dist/acl/add-agent-buttons.js +260 -0
- package/dist/acl/add-agent-buttons.js.map +1 -0
- package/dist/acl/index.js +35 -0
- package/dist/acl/index.js.map +1 -0
- package/dist/acl/types.js +7 -0
- package/dist/acl/types.js.map +1 -0
- package/{lib → dist}/chat/keys.d.ts +1 -1
- package/{lib → dist}/chat/keys.d.ts.map +1 -1
- package/dist/chat/keys.js +148 -0
- package/dist/chat/keys.js.map +1 -0
- package/dist/chat/signature.js +71 -0
- package/dist/chat/signature.js.map +1 -0
- package/dist/create/create.js +288 -0
- package/dist/create/create.js.map +1 -0
- package/dist/create/index.js +8 -0
- package/dist/create/index.js.map +1 -0
- package/dist/create/types.js +3 -0
- package/dist/create/types.js.map +1 -0
- package/dist/debug.js +23 -0
- package/dist/debug.js.map +1 -0
- package/dist/footer/index.js +72 -0
- package/dist/footer/index.js.map +1 -0
- package/dist/header/empty-profile.js +14 -0
- package/dist/header/empty-profile.js.map +1 -0
- package/dist/header/index.js +305 -0
- package/dist/header/index.js.map +1 -0
- package/dist/iconBase.js +40 -0
- package/dist/iconBase.js.map +1 -0
- package/dist/icons/solid_logo.js.map +1 -0
- package/{lib → dist}/index.d.ts +7 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +162 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/log.js +85 -99
- package/dist/log.js.map +1 -0
- package/dist/login/login.js +910 -0
- package/dist/login/login.js.map +1 -0
- package/dist/matrix/index.js +8 -0
- package/dist/matrix/index.js.map +1 -0
- package/dist/matrix/matrix.js +253 -0
- package/dist/matrix/matrix.js.map +1 -0
- package/dist/matrix/types.js +3 -0
- package/dist/matrix/types.js.map +1 -0
- package/dist/media/index.js +9 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-capture.js +198 -0
- package/dist/media/media-capture.js.map +1 -0
- package/dist/pad.js +795 -0
- package/dist/pad.js.map +1 -0
- package/dist/participation.js +228 -0
- package/dist/participation.js.map +1 -0
- package/dist/solid-ui.esm.js +25542 -0
- package/dist/solid-ui.esm.js.map +1 -0
- package/dist/solid-ui.esm.min.js +43 -0
- package/dist/solid-ui.esm.min.js.map +1 -0
- package/dist/solid-ui.js +23485 -68926
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +40 -2
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/tabs.js +398 -0
- package/dist/tabs.js.map +1 -0
- package/dist/utils/headerFooterHelpers.js +122 -0
- package/dist/utils/headerFooterHelpers.js.map +1 -0
- package/{lib → dist}/utils/keyHelpers/accessData.d.ts +3 -3
- package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/dist/utils/keyHelpers/accessData.js +108 -0
- package/dist/utils/keyHelpers/accessData.js.map +1 -0
- package/dist/utils/keyHelpers/acl.js +112 -0
- package/dist/utils/keyHelpers/acl.js.map +1 -0
- package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +1 -1
- package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
- package/dist/utils/keyHelpers/otherHelpers.js +19 -0
- package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
- package/dist/utils/label.js +150 -0
- package/dist/utils/label.js.map +1 -0
- package/dist/versionInfo.js +33 -0
- package/dist/versionInfo.js.map +1 -0
- package/dist/widgets/buttons/iconLinks.js +49 -0
- package/dist/widgets/buttons/iconLinks.js.map +1 -0
- package/dist/widgets/buttons.js +1355 -0
- package/dist/widgets/buttons.js.map +1 -0
- package/dist/widgets/error.js +42 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
- package/dist/widgets/forms/autocomplete/language.js +147 -0
- package/dist/widgets/forms/autocomplete/language.js.map +1 -0
- package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +3 -3
- package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -0
- package/dist/widgets/forms/autocomplete/publicData.js +507 -0
- package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
- package/dist/widgets/forms/basic.js +250 -0
- package/dist/widgets/forms/basic.js.map +1 -0
- package/dist/widgets/forms/comment.js +52 -0
- package/dist/widgets/forms/comment.js.map +1 -0
- package/dist/widgets/forms/fieldFunction.js +49 -0
- package/dist/widgets/forms/fieldFunction.js.map +1 -0
- package/dist/widgets/forms/fieldParams.js +95 -0
- package/dist/widgets/forms/fieldParams.js.map +1 -0
- package/dist/widgets/forms/formStyle.js +43 -0
- package/dist/widgets/forms/formStyle.js.map +1 -0
- package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
- package/{lib → dist}/widgets/widgetHelpers.js +19 -24
- package/dist/widgets/widgetHelpers.js.map +1 -0
- package/package.json +44 -47
- package/dist/789.solid-ui.min.js +0 -1
- package/dist/841.solid-ui.min.js +0 -3
- package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
- package/dist/841.solid-ui.min.js.map +0 -1
- package/dist/_2b19.solid-ui.js +0 -14
- package/dist/_2b19.solid-ui.js.map +0 -1
- package/dist/index.html +0 -1
- package/dist/solid-ui.min.js.LICENSE.txt +0 -57
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
- package/lib/acl/access-controller.js +0 -391
- package/lib/acl/access-controller.js.map +0 -1
- package/lib/acl/access-groups.js +0 -507
- package/lib/acl/access-groups.js.map +0 -1
- package/lib/acl/acl-control.js +0 -237
- package/lib/acl/acl-control.js.map +0 -1
- package/lib/acl/acl.js +0 -517
- package/lib/acl/acl.js.map +0 -1
- package/lib/acl/add-agent-buttons.js +0 -434
- package/lib/acl/add-agent-buttons.js.map +0 -1
- package/lib/acl/index.js +0 -39
- package/lib/acl/index.js.map +0 -1
- package/lib/acl/types.js +0 -6
- package/lib/acl/types.js.map +0 -1
- package/lib/chat/bookmarks.js +0 -303
- package/lib/chat/bookmarks.js.map +0 -1
- package/lib/chat/chatLogic.js +0 -420
- package/lib/chat/chatLogic.js.map +0 -1
- package/lib/chat/dateFolder.js +0 -328
- package/lib/chat/dateFolder.js.map +0 -1
- package/lib/chat/infinite.js +0 -994
- package/lib/chat/infinite.js.map +0 -1
- package/lib/chat/keys.js +0 -232
- package/lib/chat/keys.js.map +0 -1
- package/lib/chat/message.js +0 -715
- package/lib/chat/message.js.map +0 -1
- package/lib/chat/messageTools.js +0 -538
- package/lib/chat/messageTools.js.map +0 -1
- package/lib/chat/signature.js +0 -109
- package/lib/chat/signature.js.map +0 -1
- package/lib/chat/thread.js +0 -535
- package/lib/chat/thread.js.map +0 -1
- package/lib/create/create.js +0 -242
- package/lib/create/create.js.map +0 -1
- package/lib/create/index.js +0 -11
- package/lib/create/index.js.map +0 -1
- package/lib/create/types.js +0 -6
- package/lib/create/types.js.map +0 -1
- package/lib/debug.js +0 -30
- package/lib/debug.js.map +0 -1
- package/lib/folders.js +0 -132
- package/lib/folders.js.map +0 -1
- package/lib/footer/index.js +0 -123
- package/lib/footer/index.js.map +0 -1
- package/lib/header/empty-profile.js +0 -8
- package/lib/header/empty-profile.js.map +0 -1
- package/lib/header/index.js +0 -375
- package/lib/header/index.js.map +0 -1
- package/lib/iconBase.js +0 -44
- package/lib/iconBase.js.map +0 -1
- package/lib/icons/solid_logo.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -223
- package/lib/index.js.map +0 -1
- package/lib/log.js.map +0 -1
- package/lib/login/login.js +0 -1241
- package/lib/login/login.js.map +0 -1
- package/lib/matrix/index.js +0 -11
- package/lib/matrix/index.js.map +0 -1
- package/lib/matrix/matrix.js +0 -216
- package/lib/matrix/matrix.js.map +0 -1
- package/lib/matrix/types.js +0 -6
- package/lib/matrix/types.js.map +0 -1
- package/lib/media/index.js +0 -12
- package/lib/media/index.js.map +0 -1
- package/lib/media/media-capture.js +0 -194
- package/lib/media/media-capture.js.map +0 -1
- package/lib/messageArea.js +0 -319
- package/lib/messageArea.js.map +0 -1
- package/lib/noun_Camera_1618446_000000.js +0 -8
- package/lib/noun_Camera_1618446_000000.js.map +0 -1
- package/lib/ns.js +0 -17
- package/lib/ns.js.map +0 -1
- package/lib/pad.js +0 -805
- package/lib/pad.js.map +0 -1
- package/lib/participation.js +0 -219
- package/lib/participation.js.map +0 -1
- package/lib/preferences.js +0 -215
- package/lib/preferences.js.map +0 -1
- package/lib/signup/config-default.js +0 -43
- package/lib/signup/config-default.js.map +0 -1
- package/lib/signup/signup.js +0 -74
- package/lib/signup/signup.js.map +0 -1
- package/lib/stories/decorators.js +0 -10
- package/lib/stories/decorators.js.map +0 -1
- package/lib/style.js +0 -158
- package/lib/style.js.map +0 -1
- package/lib/styleConstants.js +0 -35
- package/lib/styleConstants.js.map +0 -1
- package/lib/style_multiSelect.js +0 -62
- package/lib/style_multiSelect.js.map +0 -1
- package/lib/table.js +0 -1573
- package/lib/table.js.map +0 -1
- package/lib/tabs.js +0 -448
- package/lib/tabs.js.map +0 -1
- package/lib/typings.d.js +0 -2
- package/lib/typings.d.js.map +0 -1
- package/lib/utils/headerFooterHelpers.js +0 -165
- package/lib/utils/headerFooterHelpers.js.map +0 -1
- package/lib/utils/index.js +0 -527
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/keyHelpers/accessData.js +0 -131
- package/lib/utils/keyHelpers/accessData.js.map +0 -1
- package/lib/utils/keyHelpers/acl.js +0 -90
- package/lib/utils/keyHelpers/acl.js.map +0 -1
- package/lib/utils/keyHelpers/otherHelpers.js +0 -21
- package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
- package/lib/utils/label.js +0 -103
- package/lib/utils/label.js.map +0 -1
- package/lib/versionInfo.d.ts +0 -32
- package/lib/versionInfo.d.ts.map +0 -1
- package/lib/versionInfo.js +0 -37
- package/lib/versionInfo.js.map +0 -1
- package/lib/widgets/buttons/iconLinks.js +0 -53
- package/lib/widgets/buttons/iconLinks.js.map +0 -1
- package/lib/widgets/buttons.js +0 -1306
- package/lib/widgets/buttons.js.map +0 -1
- package/lib/widgets/dragAndDrop.js +0 -194
- package/lib/widgets/dragAndDrop.js.map +0 -1
- package/lib/widgets/error.js +0 -46
- package/lib/widgets/error.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
- package/lib/widgets/forms/autocomplete/language.js +0 -189
- package/lib/widgets/forms/autocomplete/language.js.map +0 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -1
- package/lib/widgets/forms/autocomplete/publicData.js +0 -636
- package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
- package/lib/widgets/forms/basic.js +0 -254
- package/lib/widgets/forms/basic.js.map +0 -1
- package/lib/widgets/forms/comment.js +0 -54
- package/lib/widgets/forms/comment.js.map +0 -1
- package/lib/widgets/forms/fieldFunction.js +0 -52
- package/lib/widgets/forms/fieldFunction.js.map +0 -1
- package/lib/widgets/forms/fieldParams.js +0 -77
- package/lib/widgets/forms/fieldParams.js.map +0 -1
- package/lib/widgets/forms/formStyle.js +0 -44
- package/lib/widgets/forms/formStyle.js.map +0 -1
- package/lib/widgets/forms.js +0 -2045
- package/lib/widgets/forms.js.map +0 -1
- package/lib/widgets/index.js +0 -110
- package/lib/widgets/index.js.map +0 -1
- package/lib/widgets/multiSelect.js +0 -658
- package/lib/widgets/multiSelect.js.map +0 -1
- package/lib/widgets/peoplePicker.js +0 -467
- package/lib/widgets/peoplePicker.js.map +0 -1
- package/lib/widgets/widgetHelpers.js.map +0 -1
- /package/{lib → dist}/acl/access-controller.d.ts +0 -0
- /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
- /package/{lib → dist}/acl/access-groups.d.ts +0 -0
- /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
- /package/{lib → dist}/acl/acl-control.d.ts +0 -0
- /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
- /package/{lib → dist}/acl/acl.d.ts +0 -0
- /package/{lib → dist}/acl/acl.d.ts.map +0 -0
- /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
- /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
- /package/{lib → dist}/acl/index.d.ts +0 -0
- /package/{lib → dist}/acl/index.d.ts.map +0 -0
- /package/{lib → dist}/acl/types.d.ts +0 -0
- /package/{lib → dist}/acl/types.d.ts.map +0 -0
- /package/{lib → dist}/chat/signature.d.ts +0 -0
- /package/{lib → dist}/chat/signature.d.ts.map +0 -0
- /package/{lib → dist}/create/create.d.ts +0 -0
- /package/{lib → dist}/create/create.d.ts.map +0 -0
- /package/{lib → dist}/create/index.d.ts +0 -0
- /package/{lib → dist}/create/index.d.ts.map +0 -0
- /package/{lib → dist}/create/types.d.ts +0 -0
- /package/{lib → dist}/create/types.d.ts.map +0 -0
- /package/{lib → dist}/debug.d.ts +0 -0
- /package/{lib → dist}/debug.d.ts.map +0 -0
- /package/{lib → dist}/footer/index.d.ts +0 -0
- /package/{lib → dist}/footer/index.d.ts.map +0 -0
- /package/{lib → dist}/header/empty-profile.d.ts +0 -0
- /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
- /package/{lib → dist}/header/index.d.ts +0 -0
- /package/{lib → dist}/header/index.d.ts.map +0 -0
- /package/{lib → dist}/iconBase.d.ts +0 -0
- /package/{lib → dist}/iconBase.d.ts.map +0 -0
- /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
- /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
- /package/{lib → dist}/icons/solid_logo.js +0 -0
- /package/{lib → dist}/log.d.ts +0 -0
- /package/{lib → dist}/log.d.ts.map +0 -0
- /package/{lib → dist}/login/login.d.ts +0 -0
- /package/{lib → dist}/login/login.d.ts.map +0 -0
- /package/{lib → dist}/matrix/index.d.ts +0 -0
- /package/{lib → dist}/matrix/index.d.ts.map +0 -0
- /package/{lib → dist}/matrix/matrix.d.ts +0 -0
- /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
- /package/{lib → dist}/matrix/types.d.ts +0 -0
- /package/{lib → dist}/matrix/types.d.ts.map +0 -0
- /package/{lib → dist}/media/index.d.ts +0 -0
- /package/{lib → dist}/media/index.d.ts.map +0 -0
- /package/{lib → dist}/media/media-capture.d.ts +0 -0
- /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
- /package/{lib → dist}/pad.d.ts +0 -0
- /package/{lib → dist}/pad.d.ts.map +0 -0
- /package/{lib → dist}/participation.d.ts +0 -0
- /package/{lib → dist}/participation.d.ts.map +0 -0
- /package/{lib → dist}/tabs.d.ts +0 -0
- /package/{lib → dist}/tabs.d.ts.map +0 -0
- /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
- /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
- /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
- /package/{lib → dist}/utils/label.d.ts +0 -0
- /package/{lib → dist}/utils/label.d.ts.map +0 -0
- /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
- /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
- /package/{lib → dist}/widgets/buttons.d.ts +0 -0
- /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
- /package/{lib → dist}/widgets/error.d.ts +0 -0
- /package/{lib → dist}/widgets/error.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
- /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
package/lib/acl/access-groups.js
DELETED
|
@@ -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":[]}
|