solid-ui 2.6.1-feda9062 → 3.0.0-3b4b518
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 +236 -30
- package/dist/acl/access-controller.js +238 -0
- package/dist/acl/access-controller.js.map +1 -0
- package/{lib → dist}/acl/access-groups.d.ts +2 -2
- package/{lib → dist}/acl/access-groups.d.ts.map +1 -1
- package/dist/acl/access-groups.js +323 -0
- package/dist/acl/access-groups.js.map +1 -0
- package/dist/acl/acl-control.js +173 -0
- package/dist/acl/acl-control.js.map +1 -0
- package/dist/acl/acl.js +495 -0
- package/dist/acl/acl.js.map +1 -0
- package/dist/acl/add-agent-buttons.js +217 -0
- package/dist/acl/add-agent-buttons.js.map +1 -0
- package/dist/acl/index.js +32 -0
- package/dist/acl/index.js.map +1 -0
- package/dist/acl/types.js +6 -0
- package/dist/acl/types.js.map +1 -0
- package/dist/chat/keys.js +106 -0
- package/dist/chat/keys.js.map +1 -0
- package/dist/chat/signature.js +63 -0
- package/dist/chat/signature.js.map +1 -0
- package/dist/create/create.js +249 -0
- package/dist/create/create.js.map +1 -0
- package/dist/create/index.js +5 -0
- package/dist/create/index.js.map +1 -0
- package/dist/create/types.js +2 -0
- package/dist/create/types.js.map +1 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +13 -0
- package/dist/debug.js.map +1 -0
- package/dist/footer/index.js +67 -0
- package/dist/footer/index.js.map +1 -0
- package/dist/header/empty-profile.js +11 -0
- package/dist/header/empty-profile.js.map +1 -0
- package/dist/header/index.js +260 -0
- package/dist/header/index.js.map +1 -0
- package/dist/iconBase.js +37 -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 +102 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/log.d.ts.map +1 -1
- package/dist/log.js +182 -0
- package/dist/log.js.map +1 -0
- package/dist/login/login.js +858 -0
- package/dist/login/login.js.map +1 -0
- package/dist/matrix/index.js +5 -0
- package/dist/matrix/index.js.map +1 -0
- package/dist/matrix/matrix.js +217 -0
- package/dist/matrix/matrix.js.map +1 -0
- package/dist/matrix/types.js +2 -0
- package/dist/matrix/types.js.map +1 -0
- package/dist/media/index.js +6 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-capture.js +161 -0
- package/dist/media/media-capture.js.map +1 -0
- package/dist/pad.js +775 -0
- package/dist/pad.js.map +1 -0
- package/{lib → dist}/participation.d.ts.map +1 -1
- package/dist/participation.js +184 -0
- package/dist/participation.js.map +1 -0
- package/dist/solid-ui.esm.js +25531 -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 +23479 -68930
- 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 +388 -0
- package/dist/tabs.js.map +1 -0
- package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +1 -1
- package/dist/utils/headerFooterHelpers.js +114 -0
- package/dist/utils/headerFooterHelpers.js.map +1 -0
- package/dist/utils/keyHelpers/accessData.js +64 -0
- package/dist/utils/keyHelpers/accessData.js.map +1 -0
- package/dist/utils/keyHelpers/acl.js +74 -0
- package/dist/utils/keyHelpers/acl.js.map +1 -0
- package/dist/utils/keyHelpers/otherHelpers.js +13 -0
- package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
- package/dist/utils/label.js +111 -0
- package/dist/utils/label.js.map +1 -0
- package/dist/versionInfo.js +30 -0
- package/dist/versionInfo.js.map +1 -0
- package/dist/widgets/buttons/iconLinks.js +44 -0
- package/dist/widgets/buttons/iconLinks.js.map +1 -0
- package/dist/widgets/buttons.js +1280 -0
- package/dist/widgets/buttons.js.map +1 -0
- package/dist/widgets/error.d.ts +14 -0
- package/dist/widgets/error.d.ts.map +1 -0
- package/dist/widgets/error.js +35 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js +123 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js +199 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js +256 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
- package/dist/widgets/forms/autocomplete/language.js +104 -0
- package/dist/widgets/forms/autocomplete/language.js.map +1 -0
- package/dist/widgets/forms/autocomplete/publicData.js +460 -0
- package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
- package/dist/widgets/forms/basic.js +241 -0
- package/dist/widgets/forms/basic.js.map +1 -0
- package/dist/widgets/forms/comment.js +46 -0
- package/dist/widgets/forms/comment.js.map +1 -0
- package/dist/widgets/forms/fieldFunction.js +44 -0
- package/dist/widgets/forms/fieldFunction.js.map +1 -0
- package/dist/widgets/forms/fieldParams.js +89 -0
- package/dist/widgets/forms/fieldParams.js.map +1 -0
- package/{lib → dist}/widgets/forms/formStyle.d.ts.map +1 -1
- package/dist/widgets/forms/formStyle.js +36 -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 +14 -25
- package/dist/widgets/widgetHelpers.js.map +1 -0
- package/package.json +48 -52
- 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.d.ts.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 +0 -213
- 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.d.ts +0 -2
- package/lib/widgets/error.d.ts.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.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/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/keys.d.ts +0 -0
- /package/{lib → dist}/chat/keys.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}/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}/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}/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/keyHelpers/accessData.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/accessData.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/keyHelpers/otherHelpers.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/otherHelpers.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/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/autocomplete/publicData.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/publicData.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/widgetHelpers.d.ts +0 -0
package/LICENSE.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Solid
|
|
2
4
|
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
6
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
package/README.md
CHANGED
|
@@ -7,13 +7,19 @@ User Interface widgets and utilities for Solid (solid-ui)
|
|
|
7
7
|
These are HTML5 widgets which connect to a solid store. Building blocks for solid-based apps.
|
|
8
8
|
Vanilla JS. Includes large widgets like chat, table, matrix, form fields, and small widgets.
|
|
9
9
|
|
|
10
|
-
See [Solid-Ui Storybook](http://solidos.github.io/solid-ui/examples/storybook/) for
|
|
11
|
-
See [Solid-UI API](https://solidos.github.io/solid-ui/
|
|
12
|
-
See [Forms introduction](./
|
|
10
|
+
See [Solid-Ui Storybook](http://solidos.github.io/solid-ui/examples/storybook/) for UI widgets.
|
|
11
|
+
See [Solid-UI API](https://solidos.github.io/solid-ui/docs/api/) for UI functions.
|
|
12
|
+
See [Forms introduction](./docs/FormsReadme.md) for UI vocabulary implementation.
|
|
13
13
|
|
|
14
|
-
Table of
|
|
15
|
-
- Getting
|
|
16
|
-
-
|
|
14
|
+
## Table of Contents
|
|
15
|
+
- [Getting Started](#getting-started)
|
|
16
|
+
- [Install via npm](#install-via-npm)
|
|
17
|
+
- [Use Directly in Browser](#use-directly-in-a-browser)
|
|
18
|
+
- [UMD Bundle](#umd-bundle-global-variable)
|
|
19
|
+
- [ESM Bundle](#esm-bundle-import-as-module)
|
|
20
|
+
- [Development](#development-new-components)
|
|
21
|
+
- [Testing](#adding-tests)
|
|
22
|
+
- [Further Documentation](#further-documentation)
|
|
17
23
|
|
|
18
24
|
|
|
19
25
|
## Getting started
|
|
@@ -21,38 +27,230 @@ Table of content:
|
|
|
21
27
|
Contributions of bug fixes and new functionality, documentation, and tests are
|
|
22
28
|
always appreciated.
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
## Install via npm
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
npm install solid-ui rdflib solid-logic
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Then import in your JavaScript/TypeScript code:
|
|
26
37
|
|
|
27
38
|
```js
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
import * as UI from 'solid-ui'
|
|
40
|
+
import * as $rdf from 'rdflib'
|
|
41
|
+
import * as SolidLogic from 'solid-logic'
|
|
31
42
|
|
|
43
|
+
// Example: Create a button
|
|
44
|
+
const button = UI.widgets.button(
|
|
45
|
+
document,
|
|
46
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
47
|
+
'Click me',
|
|
48
|
+
() => alert('Button clicked!')
|
|
49
|
+
)
|
|
50
|
+
document.body.appendChild(button)
|
|
32
51
|
```
|
|
33
|
-
### Directly in a webpage
|
|
34
|
-
Clone this repo, and in the repo root run:
|
|
35
52
|
|
|
36
|
-
|
|
37
|
-
* `npm run build`
|
|
53
|
+
## Use Directly in a Browser
|
|
38
54
|
|
|
39
|
-
|
|
40
|
-
Now run `npx serve` and go to http://localhost:3000/Documentation/ with your browser to see some examples.
|
|
55
|
+
Solid-UI provides both **UMD** and **ESM** bundles for direct browser usage. Both bundles externalize `rdflib` and `solid-logic`, which must be loaded separately.
|
|
41
56
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
57
|
+
### Available Files
|
|
58
|
+
|
|
59
|
+
- **UMD (Universal Module Definition)**:
|
|
60
|
+
- Development: `dist/solid-ui.js` (exposes global `window.UI`)
|
|
61
|
+
- Production: `dist/solid-ui.min.js` (minified)
|
|
62
|
+
|
|
63
|
+
- **ESM (ES Modules)**:
|
|
64
|
+
- Development: `dist/solid-ui.esm.js`
|
|
65
|
+
- Production: `dist/solid-ui.esm.min.js` (minified)
|
|
66
|
+
|
|
67
|
+
### UMD Bundle (Global Variable)
|
|
68
|
+
|
|
69
|
+
Load via `<script>` tags and access through global variables `window.$rdf`, `window.SolidLogic`, and `window.UI`.
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<!DOCTYPE html>
|
|
73
|
+
<html>
|
|
74
|
+
<head>
|
|
75
|
+
<title>Solid-UI UMD Example</title>
|
|
76
|
+
</head>
|
|
77
|
+
<body>
|
|
78
|
+
<div id="app"></div>
|
|
79
|
+
|
|
80
|
+
<!-- Load dependencies first -->
|
|
81
|
+
<script src="https://cdn.jsdelivr.net/npm/rdflib/dist/rdflib.min.js"></script>
|
|
82
|
+
<script src="https://unpkg.com/solid-logic/dist/solid-logic.min.js"></script>
|
|
83
|
+
|
|
84
|
+
<!-- Load solid-ui UMD bundle -->
|
|
85
|
+
<script src="https://unpkg.com/solid-ui/dist/solid-ui.min.js"></script>
|
|
86
|
+
|
|
87
|
+
<script>
|
|
88
|
+
// Access via global variables
|
|
89
|
+
const { store, authn } = window.SolidLogic
|
|
90
|
+
const { widgets } = window.UI
|
|
91
|
+
|
|
92
|
+
// Get the logged-in user
|
|
93
|
+
const webId = authn.currentUser()
|
|
94
|
+
|
|
95
|
+
if (webId) {
|
|
96
|
+
// User is logged in - create button with their WebID
|
|
97
|
+
const userButton = widgets.button(
|
|
98
|
+
document,
|
|
99
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
100
|
+
`Logged in as: ${webId.value}`,
|
|
101
|
+
() => alert(`Your WebID: ${webId.value}`)
|
|
102
|
+
)
|
|
103
|
+
document.getElementById('app').appendChild(userButton)
|
|
104
|
+
} else {
|
|
105
|
+
// User not logged in - create login button
|
|
106
|
+
const loginButton = widgets.button(
|
|
107
|
+
document,
|
|
108
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
109
|
+
'Login to Solid',
|
|
110
|
+
() => authn.checkUser().then(() => location.reload())
|
|
111
|
+
)
|
|
112
|
+
document.getElementById('app').appendChild(loginButton)
|
|
113
|
+
}
|
|
114
|
+
</script>
|
|
115
|
+
</body>
|
|
116
|
+
</html>
|
|
49
117
|
```
|
|
50
118
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
119
|
+
### ESM Bundle (Import as Module)
|
|
120
|
+
|
|
121
|
+
Use modern JavaScript modules with `import` statements.
|
|
122
|
+
|
|
123
|
+
```html
|
|
124
|
+
<!DOCTYPE html>
|
|
125
|
+
<html>
|
|
126
|
+
<head>
|
|
127
|
+
<title>Solid-UI ESM Example</title>
|
|
128
|
+
</head>
|
|
129
|
+
<body>
|
|
130
|
+
<div id="app"></div>
|
|
131
|
+
|
|
132
|
+
<script type="module">
|
|
133
|
+
// Import from CDN (esm.sh, unpkg, or jsdelivr)
|
|
134
|
+
import * as $rdf from 'https://esm.sh/rdflib'
|
|
135
|
+
import * as SolidLogic from 'https://esm.sh/solid-logic'
|
|
136
|
+
import * as UI from 'https://esm.sh/solid-ui'
|
|
137
|
+
|
|
138
|
+
// Get the logged-in user
|
|
139
|
+
const webId = SolidLogic.authn.currentUser()
|
|
140
|
+
|
|
141
|
+
if (webId) {
|
|
142
|
+
// User is logged in - create personalized button
|
|
143
|
+
const userName = await getUserName(webId)
|
|
144
|
+
const userButton = UI.widgets.button(
|
|
145
|
+
document,
|
|
146
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
147
|
+
userName || 'My Profile',
|
|
148
|
+
() => window.open(webId.value, '_blank')
|
|
149
|
+
)
|
|
150
|
+
document.getElementById('app').appendChild(userButton)
|
|
151
|
+
} else {
|
|
152
|
+
// User not logged in
|
|
153
|
+
const loginButton = UI.widgets.button(
|
|
154
|
+
document,
|
|
155
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
156
|
+
'Login to Solid',
|
|
157
|
+
async () => {
|
|
158
|
+
await SolidLogic.authn.checkUser()
|
|
159
|
+
location.reload()
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
document.getElementById('app').appendChild(loginButton)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Helper function to fetch user's name from their profile
|
|
166
|
+
async function getUserName(webId) {
|
|
167
|
+
try {
|
|
168
|
+
await SolidLogic.store.fetcher.load(webId.doc())
|
|
169
|
+
const name = SolidLogic.store.any(webId, $rdf.sym('http://xmlns.com/foaf/0.1/name'))
|
|
170
|
+
return name ? name.value : null
|
|
171
|
+
} catch (error) {
|
|
172
|
+
console.error('Error fetching user name:', error)
|
|
173
|
+
return null
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
</script>
|
|
177
|
+
</body>
|
|
178
|
+
</html>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### ESM Bundle with Import Maps
|
|
182
|
+
|
|
183
|
+
Use import maps for cleaner module specifiers:
|
|
184
|
+
|
|
185
|
+
```html
|
|
186
|
+
<!DOCTYPE html>
|
|
187
|
+
<html>
|
|
188
|
+
<head>
|
|
189
|
+
<title>Solid-UI ESM with Import Maps</title>
|
|
190
|
+
</head>
|
|
191
|
+
<body>
|
|
192
|
+
<div id="app"></div>
|
|
193
|
+
|
|
194
|
+
<!-- Define import map for bare specifiers -->
|
|
195
|
+
<script type="importmap">
|
|
196
|
+
{
|
|
197
|
+
"imports": {
|
|
198
|
+
"rdflib": "https://esm.sh/rdflib",
|
|
199
|
+
"solid-logic": "https://esm.sh/solid-logic",
|
|
200
|
+
"solid-ui": "https://esm.sh/solid-ui"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
</script>
|
|
204
|
+
|
|
205
|
+
<script type="module">
|
|
206
|
+
// Use clean bare specifiers
|
|
207
|
+
import * as $rdf from 'rdflib'
|
|
208
|
+
import * as SolidLogic from 'solid-logic'
|
|
209
|
+
import * as UI from 'solid-ui'
|
|
210
|
+
|
|
211
|
+
const app = document.getElementById('app')
|
|
212
|
+
|
|
213
|
+
// Create a profile button for logged-in user
|
|
214
|
+
async function createUserButton() {
|
|
215
|
+
const webId = SolidLogic.authn.currentUser()
|
|
216
|
+
|
|
217
|
+
if (!webId) {
|
|
218
|
+
const loginBtn = UI.widgets.button(
|
|
219
|
+
document,
|
|
220
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
221
|
+
'Login',
|
|
222
|
+
() => SolidLogic.authn.checkUser()
|
|
223
|
+
)
|
|
224
|
+
app.appendChild(loginBtn)
|
|
225
|
+
return
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// Fetch user profile
|
|
229
|
+
try {
|
|
230
|
+
await SolidLogic.store.fetcher.load(webId.doc())
|
|
231
|
+
const name = SolidLogic.store.any(
|
|
232
|
+
webId,
|
|
233
|
+
$rdf.sym('http://xmlns.com/foaf/0.1/name')
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
const profileBtn = UI.widgets.button(
|
|
237
|
+
document,
|
|
238
|
+
'https://solidproject.org/assets/img/solid-emblem.svg',
|
|
239
|
+
name ? name.value : 'My Profile',
|
|
240
|
+
() => {
|
|
241
|
+
alert(`WebID: ${webId.value}\nName: ${name ? name.value : 'Not set'}`)
|
|
242
|
+
}
|
|
243
|
+
)
|
|
244
|
+
app.appendChild(profileBtn)
|
|
245
|
+
} catch (error) {
|
|
246
|
+
console.error('Error loading profile:', error)
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
createUserButton()
|
|
251
|
+
</script>
|
|
252
|
+
</body>
|
|
253
|
+
</html>
|
|
56
254
|
```
|
|
57
255
|
|
|
58
256
|
### Development new components
|
|
@@ -70,10 +268,18 @@ When you want to test the component within a solid-pane, you can use the [develo
|
|
|
70
268
|
|
|
71
269
|
## Adding Tests
|
|
72
270
|
|
|
271
|
+
One can run extisting tests with:
|
|
272
|
+
```
|
|
273
|
+
npm run test
|
|
274
|
+
```
|
|
275
|
+
or with coverage
|
|
276
|
+
```
|
|
277
|
+
npm run test-coverage
|
|
278
|
+
```
|
|
73
279
|
The following document gives guidance on how to add and perform testing in solid-ui.
|
|
74
280
|
[Testing in solid-ui](https://github.com/SolidOS/solid-ui/blob/18070a02fa8159a2b83d9503ee400f8e046bf1f6/test/unit/README.md)
|
|
75
281
|
|
|
76
|
-
##
|
|
282
|
+
## GitHub Pages
|
|
77
283
|
|
|
78
284
|
* The github pages should contain the storybook and further documentation. In order to make sure it is deployed there is a step in the CI (gh-pages). This depends on the previous `build` step. It MUST contain `build-storybook` otherwise the storybook is not being published.
|
|
79
285
|
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains the [[AccessController]] class
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { adoptACLDefault, getProspectiveHolder, makeACLGraphbyCombo, sameACL } from './acl';
|
|
6
|
+
import { fetcher, graph, UpdateManager } from 'rdflib';
|
|
7
|
+
import { AccessGroups } from './access-groups';
|
|
8
|
+
import { shortNameForFolder } from './acl-control';
|
|
9
|
+
import * as utils from '../utils';
|
|
10
|
+
import * as debug from '../debug';
|
|
11
|
+
import { style } from '../style';
|
|
12
|
+
/**
|
|
13
|
+
* Rendered HTML component used in the databrowser's Sharing pane.
|
|
14
|
+
*/
|
|
15
|
+
export class AccessController {
|
|
16
|
+
constructor(subject, noun, context, statusElement, targetIsProtected, targetDoc, targetACLDoc, defaultHolder, defaultACLDoc, prospectiveDefaultHolder, store, dom) {
|
|
17
|
+
this.subject = subject;
|
|
18
|
+
this.noun = noun;
|
|
19
|
+
this.context = context;
|
|
20
|
+
this.statusElement = statusElement;
|
|
21
|
+
this.targetIsProtected = targetIsProtected;
|
|
22
|
+
this.targetDoc = targetDoc;
|
|
23
|
+
this.targetACLDoc = targetACLDoc;
|
|
24
|
+
this.defaultHolder = defaultHolder;
|
|
25
|
+
this.defaultACLDoc = defaultACLDoc;
|
|
26
|
+
this.prospectiveDefaultHolder = prospectiveDefaultHolder;
|
|
27
|
+
this.store = store;
|
|
28
|
+
this.dom = dom;
|
|
29
|
+
this.rootElement = dom.createElement('div');
|
|
30
|
+
this.rootElement.setAttribute('style', style.aclGroupContent);
|
|
31
|
+
this.isContainer = targetDoc.uri.slice(-1) === '/'; // Give default for all directories
|
|
32
|
+
if (defaultHolder && defaultACLDoc) {
|
|
33
|
+
this.isUsingDefaults = true;
|
|
34
|
+
const aclDefaultStore = adoptACLDefault(this.targetDoc, targetACLDoc, defaultHolder, defaultACLDoc);
|
|
35
|
+
this.mainCombo = new AccessGroups(targetDoc, targetACLDoc, this, aclDefaultStore, { defaults: this.isContainer });
|
|
36
|
+
this.defaultsCombo = null;
|
|
37
|
+
this.defaultsDiffer = false;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.isUsingDefaults = false;
|
|
41
|
+
this.mainCombo = new AccessGroups(targetDoc, targetACLDoc, this, store);
|
|
42
|
+
this.defaultsCombo = new AccessGroups(targetDoc, targetACLDoc, this, store, { defaults: this.isContainer });
|
|
43
|
+
this.defaultsDiffer = !sameACL(this.mainCombo.aclMap, this.defaultsCombo.aclMap);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
get isEditable() {
|
|
47
|
+
return !this.isUsingDefaults;
|
|
48
|
+
}
|
|
49
|
+
render() {
|
|
50
|
+
this.rootElement.innerHTML = '';
|
|
51
|
+
if (this.isUsingDefaults) {
|
|
52
|
+
this.renderStatus(`The sharing for this ${this.noun} is the default for folder `);
|
|
53
|
+
if (this.defaultHolder) {
|
|
54
|
+
const defaultHolderLink = this.statusElement.appendChild(this.dom.createElement('a'));
|
|
55
|
+
defaultHolderLink.href = this.defaultHolder.uri;
|
|
56
|
+
defaultHolderLink.innerText = shortNameForFolder(this.defaultHolder);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (!this.defaultsDiffer && this.isContainer) {
|
|
60
|
+
this.renderStatus('This is also the default for things in this folder.');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.renderStatus('');
|
|
64
|
+
}
|
|
65
|
+
this.rootElement.appendChild(this.mainCombo.render());
|
|
66
|
+
if (this.defaultsCombo && this.defaultsDiffer) {
|
|
67
|
+
this.rootElement.appendChild(this.renderRemoveDefaultsController());
|
|
68
|
+
this.rootElement.appendChild(this.defaultsCombo.render());
|
|
69
|
+
}
|
|
70
|
+
else if (this.isEditable && this.isContainer) {
|
|
71
|
+
this.rootElement.appendChild(this.renderAddDefaultsController());
|
|
72
|
+
}
|
|
73
|
+
if (!this.targetIsProtected && this.isUsingDefaults) {
|
|
74
|
+
this.rootElement.appendChild(this.renderAddAclsController());
|
|
75
|
+
}
|
|
76
|
+
else if (!this.targetIsProtected) {
|
|
77
|
+
this.rootElement.appendChild(this.renderRemoveAclsController());
|
|
78
|
+
}
|
|
79
|
+
return this.rootElement;
|
|
80
|
+
}
|
|
81
|
+
renderRemoveAclsController() {
|
|
82
|
+
const useDefaultButton = this.dom.createElement('button');
|
|
83
|
+
useDefaultButton.innerText = `Remove custom sharing settings for this ${this.noun} -- just use default${this.prospectiveDefaultHolder ? ` for ${utils.label(this.prospectiveDefaultHolder)}` : ''}`;
|
|
84
|
+
useDefaultButton.setAttribute('style', style.bigButton);
|
|
85
|
+
useDefaultButton.addEventListener('click', () => this.removeAcls()
|
|
86
|
+
.then(() => this.render())
|
|
87
|
+
.catch(error => this.renderStatus(error)));
|
|
88
|
+
return useDefaultButton;
|
|
89
|
+
}
|
|
90
|
+
renderAddAclsController() {
|
|
91
|
+
const addAclButton = this.dom.createElement('button');
|
|
92
|
+
addAclButton.innerText = `Set specific sharing for this ${this.noun}`;
|
|
93
|
+
addAclButton.setAttribute('style', style.bigButton);
|
|
94
|
+
addAclButton.addEventListener('click', () => this.addAcls()
|
|
95
|
+
.then(() => this.render())
|
|
96
|
+
.catch(error => this.renderStatus(error)));
|
|
97
|
+
return addAclButton;
|
|
98
|
+
}
|
|
99
|
+
renderAddDefaultsController() {
|
|
100
|
+
const containerElement = this.dom.createElement('div');
|
|
101
|
+
containerElement.setAttribute('style', style.defaultsController);
|
|
102
|
+
const noticeElement = containerElement.appendChild(this.dom.createElement('div'));
|
|
103
|
+
noticeElement.innerText = 'Sharing for things within the folder currently tracks sharing for the folder.';
|
|
104
|
+
noticeElement.setAttribute('style', style.defaultsControllerNotice);
|
|
105
|
+
const button = containerElement.appendChild(this.dom.createElement('button'));
|
|
106
|
+
button.innerText = 'Set the sharing of folder contents separately from the sharing for the folder';
|
|
107
|
+
button.setAttribute('style', style.bigButton);
|
|
108
|
+
button.addEventListener('click', () => this.addDefaults()
|
|
109
|
+
.then(() => this.render()));
|
|
110
|
+
return containerElement;
|
|
111
|
+
}
|
|
112
|
+
renderRemoveDefaultsController() {
|
|
113
|
+
const containerElement = this.dom.createElement('div');
|
|
114
|
+
containerElement.setAttribute('style', style.defaultsController);
|
|
115
|
+
const noticeElement = containerElement.appendChild(this.dom.createElement('div'));
|
|
116
|
+
noticeElement.innerText = 'Access to things within this folder:';
|
|
117
|
+
noticeElement.setAttribute('style', style.defaultsControllerNotice);
|
|
118
|
+
const button = containerElement.appendChild(this.dom.createElement('button'));
|
|
119
|
+
button.innerText = 'Set default for folder contents to just track the sharing for the folder';
|
|
120
|
+
button.setAttribute('style', style.bigButton);
|
|
121
|
+
button.addEventListener('click', () => this.removeDefaults()
|
|
122
|
+
.then(() => this.render())
|
|
123
|
+
.catch(error => this.renderStatus(error)));
|
|
124
|
+
return containerElement;
|
|
125
|
+
}
|
|
126
|
+
renderTemporaryStatus(message) {
|
|
127
|
+
// @@ TODO Introduce better system for error notification to user https://github.com/solidos/mashlib/issues/87
|
|
128
|
+
this.statusElement.setAttribute('style', style.aclControlBoxStatusRevealed);
|
|
129
|
+
this.statusElement.innerText = message;
|
|
130
|
+
this.statusElement.setAttribute('style', style.temporaryStatusInit);
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
this.statusElement.setAttribute('style', style.temporaryStatusEnd);
|
|
133
|
+
});
|
|
134
|
+
setTimeout(() => {
|
|
135
|
+
this.statusElement.innerText = '';
|
|
136
|
+
}, 5000);
|
|
137
|
+
}
|
|
138
|
+
renderStatus(message) {
|
|
139
|
+
// @@ TODO Introduce better system for error notification to user https://github.com/solidos/mashlib/issues/87
|
|
140
|
+
if (!message) {
|
|
141
|
+
this.statusElement.setAttribute('style', style.aclControlBoxStatusRevealed);
|
|
142
|
+
}
|
|
143
|
+
this.statusElement.innerText = message;
|
|
144
|
+
}
|
|
145
|
+
async addAcls() {
|
|
146
|
+
if (!this.defaultHolder || !this.defaultACLDoc) {
|
|
147
|
+
const message = 'Unable to find defaults to copy';
|
|
148
|
+
debug.error(message);
|
|
149
|
+
return Promise.reject(message);
|
|
150
|
+
}
|
|
151
|
+
const aclGraph = adoptACLDefault(this.targetDoc, this.targetACLDoc, this.defaultHolder, this.defaultACLDoc);
|
|
152
|
+
aclGraph.statements.forEach(st => this.store.add(st.subject, st.predicate, st.object, this.targetACLDoc));
|
|
153
|
+
try {
|
|
154
|
+
await this.store.fetcher.putBack(this.targetACLDoc);
|
|
155
|
+
this.isUsingDefaults = false;
|
|
156
|
+
return Promise.resolve();
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
const message = ` Error writing back access control file! ${error}`;
|
|
160
|
+
debug.error(message);
|
|
161
|
+
return Promise.reject(message);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async addDefaults() {
|
|
165
|
+
this.defaultsCombo = new AccessGroups(this.targetDoc, this.targetACLDoc, this, this.store, { defaults: true });
|
|
166
|
+
this.defaultsDiffer = true;
|
|
167
|
+
}
|
|
168
|
+
async removeAcls() {
|
|
169
|
+
try {
|
|
170
|
+
await this.store.fetcher.delete(this.targetACLDoc.uri, {});
|
|
171
|
+
this.isUsingDefaults = true;
|
|
172
|
+
try {
|
|
173
|
+
this.prospectiveDefaultHolder = await getProspectiveHolder(this.targetDoc.uri);
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
// No need to show this error in status, but good to warn about it in console
|
|
177
|
+
debug.warn(error);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
const message = `Error deleting access control file: ${this.targetACLDoc}: ${error}`;
|
|
182
|
+
debug.error(message);
|
|
183
|
+
return Promise.reject(message);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async removeDefaults() {
|
|
187
|
+
const fallbackCombo = this.defaultsCombo;
|
|
188
|
+
try {
|
|
189
|
+
this.defaultsCombo = null;
|
|
190
|
+
this.defaultsDiffer = false;
|
|
191
|
+
await this.save();
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
this.defaultsCombo = fallbackCombo;
|
|
195
|
+
this.defaultsDiffer = true;
|
|
196
|
+
debug.error(error);
|
|
197
|
+
return Promise.reject(error);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
save() {
|
|
201
|
+
// build graph
|
|
202
|
+
const newAClGraph = graph();
|
|
203
|
+
if (!this.isContainer) {
|
|
204
|
+
makeACLGraphbyCombo(newAClGraph, this.targetDoc, this.mainCombo.byCombo, this.targetACLDoc, true);
|
|
205
|
+
}
|
|
206
|
+
else if (this.defaultsCombo && this.defaultsDiffer) {
|
|
207
|
+
// Pair of controls
|
|
208
|
+
makeACLGraphbyCombo(newAClGraph, this.targetDoc, this.mainCombo.byCombo, this.targetACLDoc, true);
|
|
209
|
+
makeACLGraphbyCombo(newAClGraph, this.targetDoc, this.defaultsCombo.byCombo, this.targetACLDoc, false, true);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// Linked controls
|
|
213
|
+
makeACLGraphbyCombo(newAClGraph, this.targetDoc, this.mainCombo.byCombo, this.targetACLDoc, true, true);
|
|
214
|
+
}
|
|
215
|
+
// add authenticated fetcher
|
|
216
|
+
newAClGraph.fetcher = fetcher(newAClGraph, { fetch: this.store.fetcher._fetch });
|
|
217
|
+
const updater = newAClGraph.updater || new UpdateManager(newAClGraph);
|
|
218
|
+
// save ACL resource
|
|
219
|
+
return new Promise((resolve, reject) => {
|
|
220
|
+
updater.put(this.targetACLDoc, newAClGraph.statementsMatching(undefined, undefined, undefined, this.targetACLDoc), 'text/turtle', (uri, ok, message) => {
|
|
221
|
+
if (!ok) {
|
|
222
|
+
return reject(new Error(`ACL file save failed: ${message}`));
|
|
223
|
+
}
|
|
224
|
+
this.store.fetcher.unload(this.targetACLDoc);
|
|
225
|
+
this.store.add(newAClGraph.statements);
|
|
226
|
+
this.store.fetcher.requested[this.targetACLDoc.uri] = 'done'; // missing: save headers
|
|
227
|
+
this.mainCombo.store = this.store;
|
|
228
|
+
if (this.defaultsCombo) {
|
|
229
|
+
this.defaultsCombo.store = this.store;
|
|
230
|
+
}
|
|
231
|
+
this.defaultsDiffer = !!this.defaultsCombo && !sameACL(this.mainCombo.aclMap, this.defaultsCombo.aclMap);
|
|
232
|
+
debug.log('ACL modification: success!');
|
|
233
|
+
resolve();
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=access-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-controller.js","sourceRoot":"","sources":["../../src/acl/access-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export declare class AccessGroups {
|
|
|
20
20
|
private doc;
|
|
21
21
|
private aclDoc;
|
|
22
22
|
controller: AccessController;
|
|
23
|
-
private
|
|
23
|
+
private _options;
|
|
24
24
|
private readonly defaults;
|
|
25
25
|
byCombo: ComboList;
|
|
26
26
|
aclMap: AgentMapMap;
|
|
@@ -28,7 +28,7 @@ export declare class AccessGroups {
|
|
|
28
28
|
private readonly rootElement;
|
|
29
29
|
private _store;
|
|
30
30
|
constructor(doc: NamedNode, aclDoc: NamedNode, controller: AccessController, store: Store, // @@ was LiveStore
|
|
31
|
-
|
|
31
|
+
_options?: AccessGroupsOptions);
|
|
32
32
|
get store(): Store;
|
|
33
33
|
set store(store: Store);
|
|
34
34
|
render(): HTMLElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-groups.d.ts","sourceRoot":"","sources":["../../src/acl/access-groups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAO,KAAK,EAAE,MAAM,QAAQ,CAAA;AAI9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAsB,MAAM,SAAS,CAAA;AAiCpE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,YAAY;IASrB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACP,UAAU,EAAE,gBAAgB;IAEnC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"access-groups.d.ts","sourceRoot":"","sources":["../../src/acl/access-groups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAO,KAAK,EAAE,MAAM,QAAQ,CAAA;AAI9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAsB,MAAM,SAAS,CAAA;AAiCpE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,YAAY;IASrB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACP,UAAU,EAAE,gBAAgB;IAEnC,OAAO,CAAC,QAAQ;IAZlB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAC3B,OAAO,EAAE,SAAS,CAAA;IAClB,MAAM,EAAE,WAAW,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,MAAM,CAAO;gBAGX,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,SAAS,EAClB,UAAU,EAAE,gBAAgB,EACnC,KAAK,EAAE,KAAK,EAAE,mBAAmB;IACzB,QAAQ,GAAE,mBAAwB;IAW5C,IAAW,KAAK,UAEf;IAED,IAAW,KAAK,CAAE,KAAK,OAAA,EAItB;IAEM,MAAM,IAAK,WAAW;IAS7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,mBAAmB;IA4F3B,OAAO,CAAC,WAAW;YAWL,WAAW;IASZ,SAAS,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKrC,iBAAiB;YASjB,gBAAgB;IAqB9B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,qBAAqB;CAY9B"}
|