solid-panes 3.7.3-cc40de56 → 3.7.3-f251a0e3
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/dist/RDFXMLPane.js +58 -0
- package/dist/RDFXMLPane.js.map +1 -0
- package/{lib → dist}/argument/argumentPane.js +14 -15
- package/dist/argument/argumentPane.js.map +1 -0
- package/{lib → dist}/attach/attachPane.js +83 -93
- package/dist/attach/attachPane.js.map +1 -0
- package/{lib → dist}/audio/audioPane.js +49 -50
- package/dist/audio/audioPane.js.map +1 -0
- package/{lib → dist}/classInstancePane.js +23 -24
- package/dist/classInstancePane.js.map +1 -0
- package/dist/dashboard/basicPreferences.js +155 -0
- package/dist/dashboard/basicPreferences.js.map +1 -0
- package/dist/dashboard/dashboardPane.js +63 -0
- package/dist/dashboard/dashboardPane.js.map +1 -0
- package/dist/dashboard/homepage.js +63 -0
- package/dist/dashboard/homepage.js.map +1 -0
- package/{lib → dist}/dataContentPane.js +63 -63
- package/dist/dataContentPane.js.map +1 -0
- package/{lib → dist}/defaultPane.js +14 -15
- package/dist/defaultPane.js.map +1 -0
- package/{lib → dist}/dokieli/dokieliPane.js +49 -53
- package/dist/dokieli/dokieliPane.js.map +1 -0
- package/{src → dist}/dokieli/new.js +9 -3
- package/dist/dokieli/new.js.map +1 -0
- package/{lib → dist}/form/pane.js +44 -45
- package/dist/form/pane.js.map +1 -0
- package/dist/home/homePane.js +68 -0
- package/dist/home/homePane.js.map +1 -0
- package/dist/humanReadablePane.js +135 -0
- package/dist/humanReadablePane.js.map +1 -0
- package/dist/imagePane.js +70 -0
- package/dist/imagePane.js.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/internalPane.js +195 -0
- package/dist/internal/internalPane.js.map +1 -0
- package/dist/mainPage/footer.js +16 -0
- package/dist/mainPage/footer.js.map +1 -0
- package/dist/mainPage/header.js +84 -0
- package/dist/mainPage/header.js.map +1 -0
- package/{lib → dist}/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.js +30 -0
- package/dist/mainPage/index.js.map +1 -0
- package/{lib → dist}/microblogPane/microblogPane.js +261 -262
- package/dist/microblogPane/microblogPane.js.map +1 -0
- package/dist/n3Pane.js +56 -0
- package/dist/n3Pane.js.map +1 -0
- package/dist/outline/context.js +13 -0
- package/dist/outline/context.js.map +1 -0
- package/dist/outline/manager.js +1997 -0
- package/dist/outline/manager.js.map +1 -0
- package/{lib → dist}/outline/outlineIcons.js +2 -3
- package/dist/outline/outlineIcons.js.map +1 -0
- package/dist/outline/propertyViews.js +33 -0
- package/dist/outline/propertyViews.js.map +1 -0
- package/{lib → dist}/outline/queryByExample.js +30 -31
- package/dist/outline/queryByExample.js.map +1 -0
- package/{lib → dist}/outline/userInput.js +262 -260
- package/dist/outline/userInput.js.map +1 -0
- package/dist/outline/viewAsImage.js +7 -0
- package/dist/outline/viewAsImage.js.map +1 -0
- package/{lib → dist}/outline/viewAsMbox.js +4 -14
- package/dist/outline/viewAsMbox.js.map +1 -0
- package/dist/pad/padPane.js +420 -0
- package/dist/pad/padPane.js.map +1 -0
- package/{lib → dist}/playlist/playlistPane.js +36 -37
- package/dist/playlist/playlistPane.js.map +1 -0
- package/{lib → dist}/registerPanes.js +29 -29
- package/dist/registerPanes.js.map +1 -0
- package/{src → dist}/schedule/formsForSchedule.js +9 -2
- package/dist/schedule/formsForSchedule.js.map +1 -0
- package/{lib → dist}/schedule/schedulePane.js +171 -177
- package/dist/schedule/schedulePane.js.map +1 -0
- package/dist/sharing/sharingPane.js +45 -0
- package/dist/sharing/sharingPane.js.map +1 -0
- package/dist/slideshow/slideshowPane.js +80 -0
- package/dist/slideshow/slideshowPane.js.map +1 -0
- package/{lib → dist}/socialPane.js +141 -142
- package/dist/socialPane.js.map +1 -0
- package/dist/tabbed/tabbedPane.js +55 -0
- package/dist/tabbed/tabbedPane.js.map +1 -0
- package/{lib → dist}/tableViewPane.js +8 -9
- package/dist/tableViewPane.js.map +1 -0
- package/{lib → dist}/transaction/pane.js +117 -118
- package/dist/transaction/pane.js.map +1 -0
- package/{lib → dist}/transaction/period.js +82 -83
- package/dist/transaction/period.js.map +1 -0
- package/{lib → dist}/trip/tripPane.js +47 -48
- package/dist/trip/tripPane.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.dom.js +158 -0
- package/dist/trustedApplications/trustedApplications.dom.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.utils.js +24 -0
- package/dist/trustedApplications/trustedApplications.utils.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.view.js +62 -0
- package/dist/trustedApplications/trustedApplications.view.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/{lib → dist}/ui/pane.js +30 -31
- package/dist/ui/pane.js.map +1 -0
- package/dist/versionInfo.js +31 -0
- package/dist/versionInfo.js.map +1 -0
- package/dist/video/videoPane.js +43 -0
- package/dist/video/videoPane.js.map +1 -0
- package/package.json +26 -13
- package/Documentation/VisualLanguage.html +0 -538
- package/Documentation/conventions.md +0 -333
- package/coverage/clover.xml +0 -152
- package/coverage/coverage-final.json +0 -6
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -131
- package/coverage/lcov-report/outline/index.html +0 -161
- package/coverage/lcov-report/outline/outlineIcons.js.html +0 -565
- package/coverage/lcov-report/outline/propertyViews.ts.html +0 -196
- package/coverage/lcov-report/outline/viewAsImage.ts.html +0 -121
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +0 -127
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/trustedApplications/index.html +0 -116
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +0 -238
- package/coverage/lcov.info +0 -204
- package/dev/index.html +0 -28
- package/dev/loader.ts +0 -91
- package/dev/pane/index.ts +0 -10
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +0 -609
- package/eslint.config.mjs +0 -34
- package/jest.config.js +0 -27
- package/jest.setup.ts +0 -4
- package/lib/RDFXMLPane.js +0 -59
- package/lib/RDFXMLPane.js.map +0 -1
- package/lib/argument/argumentPane.js.map +0 -1
- package/lib/attach/attachPane.js.map +0 -1
- package/lib/audio/audioPane.js.map +0 -1
- package/lib/classInstancePane.js.map +0 -1
- package/lib/dashboard/basicPreferences.js +0 -229
- package/lib/dashboard/basicPreferences.js.map +0 -1
- package/lib/dashboard/dashboardPane.js +0 -73
- package/lib/dashboard/dashboardPane.js.map +0 -1
- package/lib/dashboard/homepage.js +0 -86
- package/lib/dashboard/homepage.js.map +0 -1
- package/lib/dataContentPane.js.map +0 -1
- package/lib/defaultPane.js.map +0 -1
- package/lib/dokieli/dokieliPane.js.map +0 -1
- package/lib/dokieli/new.js +0 -9
- package/lib/dokieli/new.js.map +0 -1
- package/lib/form/pane.js.map +0 -1
- package/lib/global.d.js +0 -2
- package/lib/global.d.js.map +0 -1
- package/lib/home/homePane.js +0 -91
- package/lib/home/homePane.js.map +0 -1
- package/lib/humanReadablePane.js +0 -138
- package/lib/humanReadablePane.js.map +0 -1
- package/lib/imagePane.js +0 -71
- package/lib/imagePane.js.map +0 -1
- package/lib/index.js +0 -112
- package/lib/index.js.map +0 -1
- package/lib/internal/internalPane.js +0 -184
- package/lib/internal/internalPane.js.map +0 -1
- package/lib/mainPage/footer.js +0 -22
- package/lib/mainPage/footer.js.map +0 -1
- package/lib/mainPage/header.js +0 -152
- package/lib/mainPage/header.js.map +0 -1
- package/lib/mainPage/index.js +0 -42
- package/lib/mainPage/index.js.map +0 -1
- package/lib/microblogPane/microblogPane.js.map +0 -1
- package/lib/n3Pane.js +0 -57
- package/lib/n3Pane.js.map +0 -1
- package/lib/outline/context.js +0 -19
- package/lib/outline/context.js.map +0 -1
- package/lib/outline/manager.js +0 -2264
- package/lib/outline/manager.js.map +0 -1
- package/lib/outline/manager.test.d.ts +0 -2
- package/lib/outline/manager.test.d.ts.map +0 -1
- package/lib/outline/manager.test.js +0 -210
- package/lib/outline/manager.test.js.map +0 -1
- package/lib/outline/outlineIcons.js.map +0 -1
- package/lib/outline/propertyViews.js +0 -44
- package/lib/outline/propertyViews.js.map +0 -1
- package/lib/outline/propertyViews.test.d.ts +0 -2
- package/lib/outline/propertyViews.test.d.ts.map +0 -1
- package/lib/outline/propertyViews.test.js +0 -27
- package/lib/outline/propertyViews.test.js.map +0 -1
- package/lib/outline/queryByExample.js.map +0 -1
- package/lib/outline/userInput.js.map +0 -1
- package/lib/outline/viewAsImage.js +0 -17
- package/lib/outline/viewAsImage.js.map +0 -1
- package/lib/outline/viewAsMbox.js.map +0 -1
- package/lib/pad/padPane.js +0 -417
- package/lib/pad/padPane.js.map +0 -1
- package/lib/playlist/playlistPane.js.map +0 -1
- package/lib/registerPanes.js.map +0 -1
- package/lib/schedule/formsForSchedule.js +0 -4
- package/lib/schedule/formsForSchedule.js.map +0 -1
- package/lib/schedule/schedulePane.js.map +0 -1
- package/lib/sharing/sharingPane.js +0 -49
- package/lib/sharing/sharingPane.js.map +0 -1
- package/lib/slideshow/slideshowPane.js +0 -84
- package/lib/slideshow/slideshowPane.js.map +0 -1
- package/lib/socialPane.js.map +0 -1
- package/lib/tabbed/tabbedPane.js +0 -72
- package/lib/tabbed/tabbedPane.js.map +0 -1
- package/lib/tableViewPane.js.map +0 -1
- package/lib/test-import-export/common.js +0 -12
- package/lib/test-import-export/common.js.map +0 -1
- package/lib/test-import-export/edit-importer.js +0 -25
- package/lib/test-import-export/edit-importer.js.map +0 -1
- package/lib/test-import-export/testImportExport.js +0 -2
- package/lib/test-import-export/testImportExport.js.map +0 -1
- package/lib/transaction/pane.js.map +0 -1
- package/lib/transaction/period.js.map +0 -1
- package/lib/trip/tripPane.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.dom.js +0 -177
- package/lib/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.test.d.ts +0 -2
- package/lib/trustedApplications/trustedApplications.test.d.ts.map +0 -1
- package/lib/trustedApplications/trustedApplications.test.js +0 -64
- package/lib/trustedApplications/trustedApplications.test.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.utils.js +0 -34
- package/lib/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.view.js +0 -87
- package/lib/trustedApplications/trustedApplications.view.js.map +0 -1
- package/lib/types.js +0 -6
- package/lib/types.js.map +0 -1
- package/lib/ui/pane.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/video/videoPane.js +0 -44
- package/lib/video/videoPane.js.map +0 -1
- package/src/RDFXMLPane.js +0 -60
- package/src/argument/argumentPane.js +0 -65
- package/src/argument/argument_icon_v04.jpg +0 -0
- package/src/argument/icon_argument.png +0 -0
- package/src/argument/transparentyingyang.png +0 -0
- package/src/attach/attachPane.js +0 -508
- package/src/attach/tbl-paperclip-128.png +0 -0
- package/src/attach/tbl-paperclip-22.png +0 -0
- package/src/attach/tbl-paperclip-22a.png +0 -0
- package/src/audio/audioPane.js +0 -197
- package/src/chatPreferencesForm.ttl +0 -12
- package/src/classInstancePane.js +0 -110
- package/src/dashboard/basicPreferences.ts +0 -201
- package/src/dashboard/dashboardPane.ts +0 -83
- package/src/dashboard/homepage.ts +0 -72
- package/src/dashboard/languages/codes.html +0 -8611
- package/src/dashboard/languages/codes.xml +0 -3563
- package/src/dashboard/languages/codes2.txt +0 -170
- package/src/dashboard/languages/foo +0 -70
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +0 -12
- package/src/dashboard/ontologyData.ttl +0 -35
- package/src/dashboard/preferencesFormText.ttl +0 -18
- package/src/dataContentPane.js +0 -290
- package/src/defaultPane.js +0 -102
- package/src/dokieli/Makefile +0 -6
- package/src/dokieli/dokieliPane.js +0 -190
- package/src/dokieli/new.html +0 -30
- package/src/form/form-22.png +0 -0
- package/src/form/form-b-22.png +0 -0
- package/src/form/form.graffle +0 -0
- package/src/form/form.png +0 -0
- package/src/form/pane.js +0 -217
- package/src/form/psuedocode-notes.txt +0 -57
- package/src/global.d.ts +0 -4
- package/src/home/homePane.ts +0 -72
- package/src/humanReadablePane.js +0 -150
- package/src/imagePane.js +0 -75
- package/src/index.ts +0 -71
- package/src/internal/internalPane.ts +0 -263
- package/src/mainPage/footer.ts +0 -19
- package/src/mainPage/header.ts +0 -79
- package/src/mainPage/index.ts +0 -20
- package/src/meeting/Makefile +0 -3
- package/src/meeting/test/meeting1/Actions/actions.ttl +0 -14
- package/src/meeting/test/meeting1/Actions/config.ttl +0 -16
- package/src/meeting/test/meeting1/Actions/state.ttl +0 -30
- package/src/meeting/test/meeting1/Schedule/details.ttl +0 -34
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -75
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/index.html +0 -72
- package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/results.ttl +0 -15
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -20
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -23
- package/src/meeting/test/meeting1/chat/chat.ttl +0 -1
- package/src/meeting/test/meeting1/details.ttl +0 -35
- package/src/meeting/test/meeting1/pad/pad.ttl +0 -16
- package/src/microblogPane/mbStyle.css +0 -267
- package/src/microblogPane/microblogPane.js +0 -1412
- package/src/n3Pane.js +0 -56
- package/src/outline/context.ts +0 -21
- package/src/outline/manager.js +0 -2384
- package/src/outline/manager.test.ts +0 -189
- package/src/outline/outlineIcons.js +0 -160
- package/src/outline/propertyViews.test.ts +0 -36
- package/src/outline/propertyViews.ts +0 -37
- package/src/outline/queryByExample.js +0 -296
- package/src/outline/userInput.js +0 -2373
- package/src/outline/viewAsImage.ts +0 -12
- package/src/outline/viewAsMbox.ts +0 -14
- package/src/pad/images/ColourOff.ai +2 -872
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +1 -935
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +0 -559
- package/src/playlist/playlistPane.js +0 -161
- package/src/registerPanes.js +0 -147
- package/src/schedule/Makefile +0 -6
- package/src/schedule/formsForSchedule.ttl +0 -115
- package/src/schedule/schedulePane.js +0 -1201
- package/src/sharing/sharingPane.ts +0 -49
- package/src/slideshow/slideshowPane.js +0 -80
- package/src/socialPane.js +0 -523
- package/src/style/tabbedtab.css +0 -1347
- package/src/tabbed/tabbedPane.ts +0 -60
- package/src/tableViewPane.js +0 -51
- package/src/test-import-export/common.js +0 -6
- package/src/test-import-export/edit-importer.js +0 -20
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +0 -629
- package/src/transaction/period.js +0 -374
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +0 -176
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -176
- package/src/trustedApplications/trustedApplications.dom.ts +0 -276
- package/src/trustedApplications/trustedApplications.test.ts +0 -82
- package/src/trustedApplications/trustedApplications.utils.ts +0 -51
- package/src/trustedApplications/trustedApplications.view.ts +0 -80
- package/src/types.ts +0 -34
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +0 -226
- package/src/versionInfo.ts +0 -30
- package/src/video/videoPane.js +0 -44
- package/timestamp.sh +0 -13
- package/travis/bumpversion.js +0 -29
- package/tsconfig.json +0 -78
- package/typings/raw-loader.d.ts +0 -4
- package/typings/solid-namespace/index.d.ts +0 -9
- package/webpack.config.js +0 -41
- /package/{lib → dist}/dashboard/basicPreferences.d.ts +0 -0
- /package/{lib → dist}/dashboard/basicPreferences.d.ts.map +0 -0
- /package/{lib → dist}/dashboard/dashboardPane.d.ts +0 -0
- /package/{lib → dist}/dashboard/dashboardPane.d.ts.map +0 -0
- /package/{lib → dist}/dashboard/homepage.d.ts +0 -0
- /package/{lib → dist}/dashboard/homepage.d.ts.map +0 -0
- /package/{lib → dist}/home/homePane.d.ts +0 -0
- /package/{lib → dist}/home/homePane.d.ts.map +0 -0
- /package/{lib → dist}/index.d.ts +0 -0
- /package/{lib → dist}/index.d.ts.map +0 -0
- /package/{lib → dist}/internal/internalPane.d.ts +0 -0
- /package/{lib → dist}/internal/internalPane.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/footer.d.ts +0 -0
- /package/{lib → dist}/mainPage/footer.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/header.d.ts +0 -0
- /package/{lib → dist}/mainPage/header.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/index.d.ts +0 -0
- /package/{lib → dist}/outline/context.d.ts +0 -0
- /package/{lib → dist}/outline/context.d.ts.map +0 -0
- /package/{lib → dist}/outline/propertyViews.d.ts +0 -0
- /package/{lib → dist}/outline/propertyViews.d.ts.map +0 -0
- /package/{lib → dist}/outline/viewAsImage.d.ts +0 -0
- /package/{lib → dist}/outline/viewAsImage.d.ts.map +0 -0
- /package/{lib → dist}/outline/viewAsMbox.d.ts +0 -0
- /package/{lib → dist}/outline/viewAsMbox.d.ts.map +0 -0
- /package/{lib → dist}/pad/padPane.d.ts +0 -0
- /package/{lib → dist}/pad/padPane.d.ts.map +0 -0
- /package/{lib → dist}/sharing/sharingPane.d.ts +0 -0
- /package/{lib → dist}/sharing/sharingPane.d.ts.map +0 -0
- /package/{lib → dist}/tabbed/tabbedPane.d.ts +0 -0
- /package/{lib → dist}/tabbed/tabbedPane.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- /package/{lib → dist}/types.d.ts +0 -0
- /package/{lib → dist}/types.d.ts.map +0 -0
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
8
7
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
8
|
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
10
|
/* Trip Pane
|
|
12
11
|
**
|
|
13
12
|
** This pane deals with trips themselves and also
|
|
@@ -18,15 +17,15 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
18
17
|
** trips, etc
|
|
19
18
|
*/
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
var _default = exports
|
|
20
|
+
const ns = UI.ns;
|
|
21
|
+
var _default = exports.default = {
|
|
23
22
|
icon: UI.icons.iconBase + 'noun_62007.svg',
|
|
24
23
|
name: 'travel expenses',
|
|
25
24
|
audience: [ns.solid('PowerUser')],
|
|
26
25
|
// Does the subject deserve this pane?
|
|
27
|
-
label: function
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
label: function (subject, context) {
|
|
27
|
+
const kb = context.session.store;
|
|
28
|
+
const t = kb.findTypeURIs(subject);
|
|
30
29
|
|
|
31
30
|
// if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return "$$";
|
|
32
31
|
// if(kb.any(subject, UI.ns.qu('amount'))) return "$$$"; // In case schema not picked up
|
|
@@ -37,18 +36,18 @@ var _default = exports["default"] = {
|
|
|
37
36
|
if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $';
|
|
38
37
|
return null; // No under other circumstances (while testing at least!)
|
|
39
38
|
},
|
|
40
|
-
render: function
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
render: function (subject, context) {
|
|
40
|
+
const myDocument = context.dom;
|
|
41
|
+
const kb = context.store;
|
|
42
|
+
const ns = UI.ns;
|
|
43
|
+
const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#');
|
|
44
|
+
const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#');
|
|
45
|
+
const div = myDocument.createElement('div');
|
|
47
46
|
div.setAttribute('class', 'transactionPane');
|
|
48
47
|
div.innerHTML = '<h2>Trip transactions</h2>';
|
|
49
|
-
|
|
48
|
+
const complain = function complain(message, style) {
|
|
50
49
|
if (style === undefined) style = 'color: grey';
|
|
51
|
-
|
|
50
|
+
const pre = myDocument.createElement('pre');
|
|
52
51
|
pre.setAttribute('style', style);
|
|
53
52
|
div.appendChild(pre);
|
|
54
53
|
pre.appendChild(myDocument.createTextNode(message));
|
|
@@ -58,21 +57,21 @@ var _default = exports["default"] = {
|
|
|
58
57
|
//
|
|
59
58
|
// Body of trip pane
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
const t = kb.findTypeURIs(subject);
|
|
62
61
|
|
|
63
62
|
// var me = authn.currentUser()
|
|
64
63
|
|
|
65
64
|
// Function: Render a single trip
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
const renderTrip = function renderTrip(subject, thisDiv) {
|
|
67
|
+
const query = new $rdf.Query(UI.utils.label(subject));
|
|
68
|
+
const vars = ['date', 'transaction', 'comment', 'type', 'in_USD'];
|
|
69
|
+
const v = {};
|
|
71
70
|
vars.forEach(function (x) {
|
|
72
71
|
query.vars.push(v[x] = $rdf.variable(x));
|
|
73
72
|
}); // Only used by UI
|
|
74
73
|
query.pat.add(v.transaction, TRIP('trip'), subject);
|
|
75
|
-
|
|
74
|
+
const opt = kb.formula();
|
|
76
75
|
opt.add(v.transaction, ns.rdf('type'), v.type); // Issue: this will get stored supertypes too
|
|
77
76
|
query.pat.optional.push(opt);
|
|
78
77
|
query.pat.add(v.transaction, UI.ns.qu('date'), v.date);
|
|
@@ -83,18 +82,18 @@ var _default = exports["default"] = {
|
|
|
83
82
|
query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD);
|
|
84
83
|
// query.pat.optional.push(opt);
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
const calculations = function () {
|
|
86
|
+
const total = {};
|
|
87
|
+
const trans = kb.each(undefined, TRIP('trip'), subject);
|
|
89
88
|
// complain("@@ Number of transactions in this trip: " + trans.length);
|
|
90
89
|
trans.forEach(function (t) {
|
|
91
|
-
|
|
90
|
+
let ty = kb.the(t, ns.rdf('type'));
|
|
92
91
|
// complain(" -- one trans: "+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));
|
|
93
92
|
if (!ty) ty = UI.ns.qu('ErrorNoType');
|
|
94
93
|
if (ty && ty.uri) {
|
|
95
|
-
|
|
94
|
+
const tyuri = ty.uri;
|
|
96
95
|
if (!total[tyuri]) total[tyuri] = 0.0;
|
|
97
|
-
|
|
96
|
+
const lit = kb.any(t, UI.ns.qu('in_USD'));
|
|
98
97
|
if (!lit) {
|
|
99
98
|
complain(' @@ No amount in USD: ' + lit + ' for ' + t);
|
|
100
99
|
}
|
|
@@ -105,10 +104,10 @@ var _default = exports["default"] = {
|
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
for (
|
|
107
|
+
let str = '';
|
|
108
|
+
let types = 0;
|
|
109
|
+
let grandTotal = 0.0;
|
|
110
|
+
for (const uri in total) {
|
|
112
111
|
str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; ';
|
|
113
112
|
types++;
|
|
114
113
|
grandTotal += total[uri];
|
|
@@ -118,8 +117,8 @@ var _default = exports["default"] = {
|
|
|
118
117
|
complain('Overall net: ' + grandTotal, 'text-treatment: bold;');
|
|
119
118
|
}
|
|
120
119
|
};
|
|
121
|
-
|
|
122
|
-
query
|
|
120
|
+
const tableDiv = UI.table(myDocument, {
|
|
121
|
+
query,
|
|
123
122
|
onDone: calculations
|
|
124
123
|
});
|
|
125
124
|
thisDiv.appendChild(tableDiv);
|
|
@@ -128,12 +127,12 @@ var _default = exports["default"] = {
|
|
|
128
127
|
// Render the set of trips which have transactions in this class
|
|
129
128
|
|
|
130
129
|
if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
for (
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
const ts = kb.each(undefined, ns.rdf('type'), subject);
|
|
131
|
+
const triples = [];
|
|
132
|
+
const index = [];
|
|
133
|
+
for (let i = 0; i < ts.length; i++) {
|
|
134
|
+
const trans = ts[i];
|
|
135
|
+
const trip = kb.any(trans, TRIP('trip'));
|
|
137
136
|
if (!trip) {
|
|
138
137
|
triples.push(trans);
|
|
139
138
|
} else {
|
|
@@ -141,9 +140,9 @@ var _default = exports["default"] = {
|
|
|
141
140
|
total: 0,
|
|
142
141
|
transactions: []
|
|
143
142
|
};
|
|
144
|
-
|
|
143
|
+
const usd = kb.any(trans, UI.ns.qu('in_USD'));
|
|
145
144
|
if (usd) index[trip].total += usd;
|
|
146
|
-
|
|
145
|
+
const date = kb.any(trans, UI.ns.qu('date'));
|
|
147
146
|
index[trip.toNT()].transactions.push([date, trans]);
|
|
148
147
|
}
|
|
149
148
|
}
|
|
@@ -152,14 +151,14 @@ var _default = exports["default"] = {
|
|
|
152
151
|
new Date(kb.any(b, CAL('dtstart')));
|
|
153
152
|
}
|
|
154
153
|
*/
|
|
155
|
-
|
|
156
|
-
for (
|
|
157
|
-
|
|
154
|
+
const list = [];
|
|
155
|
+
for (const h1 in index) {
|
|
156
|
+
const t1 = kb.fromNT(h1);
|
|
158
157
|
list.push([kb.any(t1, CAL('dtstart')), t1]);
|
|
159
158
|
}
|
|
160
159
|
list.sort();
|
|
161
|
-
for (
|
|
162
|
-
|
|
160
|
+
for (let j = 0; j < list.length; j++) {
|
|
161
|
+
const t2 = list[j][1];
|
|
163
162
|
renderTrip(t2, div);
|
|
164
163
|
}
|
|
165
164
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tripPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","qu","findSuperClassesNT","render","myDocument","dom","CAL","Namespace","TRIP","div","createElement","setAttribute","innerHTML","complain","message","style","undefined","pre","appendChild","createTextNode","renderTrip","thisDiv","query","Query","utils","vars","v","forEach","x","push","variable","pat","add","transaction","opt","formula","rdf","type","optional","date","rdfs","comment","in_USD","calculations","total","trans","each","ty","the","uri","tyuri","lit","any","parseFloat","value","str","types","grandTotal","sym","length","tableDiv","table","onDone","ts","triples","index","trip","transactions","usd","toNT","list","h1","t1","fromNT","sort","j","t2"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return \"$$\";\n // if(kb.any(subject, UI.ns.qu('amount'))) return \"$$$\"; // In case schema not picked up\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\n }\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const opt = kb.formula()\n opt.add(v.transaction, ns.rdf('type'), v.type) // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v.transaction, UI.ns.qu('date'), v.date)\n\n opt.add(v.transaction, ns.rdfs('comment'), v.comment)\n query.pat.optional.push(opt)\n\n // opt = kb.formula();\n query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD)\n // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('type'))\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!total[tyuri]) total[tyuri] = 0.0\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain(' @@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { sym } from 'rdflib';
|
|
2
|
+
import { ns } from 'solid-ui';
|
|
3
|
+
import { store } from 'solid-logic';
|
|
4
|
+
import { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils';
|
|
5
|
+
export function createApplicationTable(subject) {
|
|
6
|
+
const applicationsTable = createElement('table', {
|
|
7
|
+
class: 'results'
|
|
8
|
+
});
|
|
9
|
+
// creating headers
|
|
10
|
+
const header = createContainer('tr', [
|
|
11
|
+
createText('th', 'Application URL'),
|
|
12
|
+
createText('th', 'Access modes'),
|
|
13
|
+
createText('th', 'Actions')
|
|
14
|
+
]);
|
|
15
|
+
applicationsTable.appendChild(header);
|
|
16
|
+
// creating rows
|
|
17
|
+
store.each(subject, ns.acl('trustedApp'), undefined, undefined)
|
|
18
|
+
.flatMap(app => store
|
|
19
|
+
.each(app, ns.acl('origin'), undefined, undefined)
|
|
20
|
+
.map(origin => ({
|
|
21
|
+
appModes: store.each(app, ns.acl('mode'), undefined, undefined),
|
|
22
|
+
origin: origin
|
|
23
|
+
})))
|
|
24
|
+
.sort((a, b) => (a.origin.value < b.origin.value ? -1 : 1))
|
|
25
|
+
.forEach(({ appModes, origin }) => applicationsTable.appendChild(createApplicationEntry(subject, origin, appModes, updateTable)));
|
|
26
|
+
// adding a row for new applications
|
|
27
|
+
applicationsTable.appendChild(createApplicationEntry(subject, null, [ns.acl('Read')], updateTable));
|
|
28
|
+
return applicationsTable;
|
|
29
|
+
function updateTable() {
|
|
30
|
+
applicationsTable.parentElement.replaceChild(createApplicationTable(subject), applicationsTable);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function createApplicationEntry(subject, origin, appModes, updateTable) {
|
|
34
|
+
const trustedApplicationState = {
|
|
35
|
+
origin,
|
|
36
|
+
appModes,
|
|
37
|
+
formElements: {
|
|
38
|
+
modes: [],
|
|
39
|
+
origin: undefined
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
return createContainer('tr', [
|
|
43
|
+
createContainer('td', [
|
|
44
|
+
createContainer('form', [
|
|
45
|
+
createElement('input', {
|
|
46
|
+
class: 'textinput',
|
|
47
|
+
placeholder: 'Write new URL here',
|
|
48
|
+
value: origin ? origin.value : ''
|
|
49
|
+
}, {}, element => {
|
|
50
|
+
trustedApplicationState.formElements.origin = element;
|
|
51
|
+
})
|
|
52
|
+
], {}, {
|
|
53
|
+
submit: addOrEditApplication
|
|
54
|
+
})
|
|
55
|
+
]),
|
|
56
|
+
createContainer('td', [
|
|
57
|
+
createContainer('form', createModesInput(trustedApplicationState), {}, {
|
|
58
|
+
submit: addOrEditApplication
|
|
59
|
+
})
|
|
60
|
+
]),
|
|
61
|
+
createContainer('td', [
|
|
62
|
+
createContainer('form', origin
|
|
63
|
+
? [
|
|
64
|
+
createText('button', 'Update', {
|
|
65
|
+
class: 'controlButton',
|
|
66
|
+
style: 'background: LightGreen;'
|
|
67
|
+
}),
|
|
68
|
+
createText('button', 'Delete', {
|
|
69
|
+
class: 'controlButton',
|
|
70
|
+
style: 'background: LightCoral;'
|
|
71
|
+
}, {
|
|
72
|
+
click: removeApplication
|
|
73
|
+
})
|
|
74
|
+
]
|
|
75
|
+
: [
|
|
76
|
+
createText('button', 'Add', {
|
|
77
|
+
class: 'controlButton',
|
|
78
|
+
style: 'background: LightGreen;'
|
|
79
|
+
})
|
|
80
|
+
], {}, {
|
|
81
|
+
submit: addOrEditApplication
|
|
82
|
+
})
|
|
83
|
+
])
|
|
84
|
+
]);
|
|
85
|
+
function addOrEditApplication(event) {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
let origin;
|
|
88
|
+
try {
|
|
89
|
+
origin = sym(trustedApplicationState.formElements.origin.value);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
return alert('Please provide an application URL you want to trust');
|
|
93
|
+
}
|
|
94
|
+
const modes = trustedApplicationState.formElements.modes
|
|
95
|
+
.filter(checkbox => checkbox.checked)
|
|
96
|
+
.map(checkbox => checkbox.value);
|
|
97
|
+
const deletions = getStatementsToDelete(trustedApplicationState.origin || origin, subject, store, ns);
|
|
98
|
+
const additions = getStatementsToAdd(origin, generateRandomString(), modes, subject, ns);
|
|
99
|
+
if (!store.updater) {
|
|
100
|
+
throw new Error('Store has no updater');
|
|
101
|
+
}
|
|
102
|
+
store.updater.update(deletions, additions, handleUpdateResponse);
|
|
103
|
+
}
|
|
104
|
+
function removeApplication(event) {
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
let origin;
|
|
107
|
+
try {
|
|
108
|
+
origin = sym(trustedApplicationState.formElements.origin.value);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
return alert('Please provide an application URL you want to remove trust from');
|
|
112
|
+
}
|
|
113
|
+
const deletions = getStatementsToDelete(origin, subject, store, ns);
|
|
114
|
+
if (!store.updater) {
|
|
115
|
+
throw new Error('Store has no updater');
|
|
116
|
+
}
|
|
117
|
+
store.updater.update(deletions, [], handleUpdateResponse);
|
|
118
|
+
}
|
|
119
|
+
function handleUpdateResponse(uri, success, errorBody) {
|
|
120
|
+
if (success) {
|
|
121
|
+
return updateTable();
|
|
122
|
+
}
|
|
123
|
+
// console.error(uri, errorBody)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function createElement(elementName, attributes = {}, eventListeners = {}, onCreated = null) {
|
|
127
|
+
const element = document.createElement(elementName);
|
|
128
|
+
if (onCreated) {
|
|
129
|
+
onCreated(element);
|
|
130
|
+
}
|
|
131
|
+
Object.keys(attributes).forEach(attName => {
|
|
132
|
+
element.setAttribute(attName, attributes[attName]);
|
|
133
|
+
});
|
|
134
|
+
Object.keys(eventListeners).forEach(eventName => {
|
|
135
|
+
element.addEventListener(eventName, eventListeners[eventName]);
|
|
136
|
+
});
|
|
137
|
+
return element;
|
|
138
|
+
}
|
|
139
|
+
export function createContainer(elementName, children, attributes = {}, eventListeners = {}, onCreated = null) {
|
|
140
|
+
const element = createElement(elementName, attributes, eventListeners, onCreated);
|
|
141
|
+
children.forEach(child => element.appendChild(child));
|
|
142
|
+
return element;
|
|
143
|
+
}
|
|
144
|
+
export function createText(elementName, textContent, attributes = {}, eventListeners = {}, onCreated = null) {
|
|
145
|
+
const element = createElement(elementName, attributes, eventListeners, onCreated);
|
|
146
|
+
element.textContent = textContent;
|
|
147
|
+
return element;
|
|
148
|
+
}
|
|
149
|
+
function createModesInput({ appModes, formElements }) {
|
|
150
|
+
return ['Read', 'Write', 'Append', 'Control'].map(mode => {
|
|
151
|
+
const isChecked = appModes.some(appMode => appMode.value === ns.acl(mode).value);
|
|
152
|
+
return createContainer('label', [
|
|
153
|
+
createElement('input', Object.assign(Object.assign({ type: 'checkbox' }, (isChecked ? { checked: '' } : {})), { value: ns.acl(mode).uri }), {}, element => formElements.modes.push(element)),
|
|
154
|
+
createText('span', mode)
|
|
155
|
+
]);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=trustedApplications.dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustedApplications.dom.js","sourceRoot":"","sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BlankNode, st, sym } from 'rdflib';
|
|
2
|
+
export function getStatementsToDelete(origin, person, kb, ns) {
|
|
3
|
+
const applicationStatements = kb.statementsMatching(null, ns.acl('origin'), origin);
|
|
4
|
+
const statementsToDelete = applicationStatements.reduce((memo, st) => {
|
|
5
|
+
return memo
|
|
6
|
+
.concat(kb.statementsMatching(person, ns.acl('trustedApp'), st.subject))
|
|
7
|
+
.concat(kb.statementsMatching(st.subject));
|
|
8
|
+
}, []);
|
|
9
|
+
return statementsToDelete;
|
|
10
|
+
}
|
|
11
|
+
export function getStatementsToAdd(origin, nodeName, modes, person, ns) {
|
|
12
|
+
const application = new BlankNode(`bn_${nodeName}`); // NamedNode(`${person.doc().uri}#${nodeName}`)
|
|
13
|
+
return [
|
|
14
|
+
st(person, ns.acl('trustedApp'), application, person.doc()),
|
|
15
|
+
st(application, ns.acl('origin'), origin, person.doc()),
|
|
16
|
+
...modes
|
|
17
|
+
.map(mode => sym(mode))
|
|
18
|
+
.map(mode => st(application, ns.acl('mode'), mode, person.doc()))
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
export function generateRandomString() {
|
|
22
|
+
return Math.random().toString(36).substr(2, 5);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=trustedApplications.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustedApplications.utils.js","sourceRoot":"","sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6B,EAAE,EAAW,GAAG,EAAa,MAAM,QAAQ,CAAA;AAG1F,MAAM,UAAU,qBAAqB,CACnC,MAA2B,EAC3B,MAAiB,EACjB,EAAkB,EAClB,EAAc;IAEd,MAAM,qBAAqB,GAAG,EAAE,CAAC,kBAAkB,CACjD,IAAI,EACJ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAChB,MAAM,CACP,CAAA;IACD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,CACrD,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;QACX,OAAO,IAAI;aACR,MAAM,CACL,EAAE,CAAC,kBAAkB,CACnB,MAAM,EACN,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EACpB,EAAE,CAAC,OAAoB,CACxB,CACF;aACA,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,CAAC,EACD,EAAsB,CACvB,CAAA;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,QAAgB,EAChB,KAAe,EACf,MAAiB,EACjB,EAAc;IAEd,MAAM,WAAW,GAAG,IAAI,SAAS,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA,CAAC,+CAA+C;IACnG,OAAO;QACL,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC3D,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACvD,GAAG,KAAK;aACL,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACtB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;KACpE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { icons, login, widgets } from 'solid-ui';
|
|
11
|
+
import { store } from 'solid-logic';
|
|
12
|
+
import { createApplicationTable, createContainer, createText } from './trustedApplications.dom';
|
|
13
|
+
const thisColor = '#418d99';
|
|
14
|
+
const trustedApplicationView = {
|
|
15
|
+
global: true,
|
|
16
|
+
icon: `${icons.iconBase}noun_15177.svg`,
|
|
17
|
+
name: 'trustedApplications',
|
|
18
|
+
label: () => null,
|
|
19
|
+
render: (subject, context) => {
|
|
20
|
+
const dom = context.dom;
|
|
21
|
+
const div = dom.createElement('div');
|
|
22
|
+
div.classList.add('trusted-applications-pane');
|
|
23
|
+
div.setAttribute('style', 'border: 0.3em solid ' +
|
|
24
|
+
thisColor +
|
|
25
|
+
'; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;');
|
|
26
|
+
const table = div.appendChild(dom.createElement('table'));
|
|
27
|
+
const main = table.appendChild(dom.createElement('tr'));
|
|
28
|
+
const bottom = table.appendChild(dom.createElement('tr'));
|
|
29
|
+
const statusArea = bottom.appendChild(dom.createElement('div'));
|
|
30
|
+
statusArea.setAttribute('style', 'padding: 0.7em;');
|
|
31
|
+
render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)));
|
|
32
|
+
return div;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
function render(dom, main, statusArea) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const authContext = yield login.ensureLoadedProfile({ dom, div: main, statusArea, me: null });
|
|
38
|
+
const subject = authContext.me;
|
|
39
|
+
const profile = subject.doc();
|
|
40
|
+
if (!store.updater) {
|
|
41
|
+
throw new Error('Store has no updater');
|
|
42
|
+
}
|
|
43
|
+
const editable = store.updater.editable(profile.uri, store);
|
|
44
|
+
main.appendChild(createText('h3', 'Manage your trusted applications'));
|
|
45
|
+
if (!editable) {
|
|
46
|
+
main.appendChild(widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`));
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
main.appendChild(createText('p', 'Here you can manage the applications you trust.'));
|
|
50
|
+
const applicationsTable = createApplicationTable(subject);
|
|
51
|
+
main.appendChild(applicationsTable);
|
|
52
|
+
main.appendChild(createText('h4', 'Notes'));
|
|
53
|
+
main.appendChild(createContainer('ol', [
|
|
54
|
+
main.appendChild(createText('li', 'Trusted applications will get access to all resources that you have access to.')),
|
|
55
|
+
main.appendChild(createText('li', 'You can limit which modes they have by default.')),
|
|
56
|
+
main.appendChild(createText('li', 'They will not gain more access than you have.'))
|
|
57
|
+
]));
|
|
58
|
+
main.appendChild(createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.'));
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export default trustedApplicationView;
|
|
62
|
+
//# sourceMappingURL=trustedApplications.view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustedApplications.view.js","sourceRoot":"","sources":["../../src/trustedApplications/trustedApplications.view.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/{lib → dist}/ui/pane.js
RENAMED
|
@@ -1,50 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
8
7
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
8
|
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
10
|
/* Form building/editing Pane
|
|
12
11
|
**
|
|
13
12
|
*/
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
var _default = exports
|
|
14
|
+
const ns = UI.ns;
|
|
15
|
+
var _default = exports.default = {
|
|
17
16
|
// noun_170702.svg' builder noun_122196.svg form
|
|
18
17
|
icon: UI.icons.iconBase + 'noun_170702.svg',
|
|
19
18
|
name: 'ui',
|
|
20
19
|
audience: [ns.solid('PowerUser')],
|
|
21
20
|
// Does the subject deserve this pane?
|
|
22
|
-
label: function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
label: function (subject, context) {
|
|
22
|
+
const ns = UI.ns;
|
|
23
|
+
const kb = context.session.store;
|
|
24
|
+
const t = kb.findTypeURIs(subject);
|
|
26
25
|
if (t[ns.rdfs('Class').uri]) return 'creation forms';
|
|
27
26
|
// if (t[ns.rdf('Property').uri]) return "user interface";
|
|
28
27
|
if (t[ns.ui('Form').uri]) return 'edit form';
|
|
29
28
|
return null; // No under other circumstances (while testing at least!)
|
|
30
29
|
},
|
|
31
|
-
render: function
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
render: function (subject, context) {
|
|
31
|
+
const dom = context.dom;
|
|
32
|
+
const kb = context.session.store;
|
|
33
|
+
const ns = UI.ns;
|
|
34
|
+
const box = dom.createElement('div');
|
|
36
35
|
box.setAttribute('class', 'formPane'); // Share styles
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
const label = UI.utils.label(subject);
|
|
37
|
+
const mention = function complain(message, style) {
|
|
38
|
+
const pre = dom.createElement('p');
|
|
40
39
|
pre.setAttribute('style', style || 'color: grey; background-color: white');
|
|
41
40
|
box.appendChild(pre).textContent = message;
|
|
42
41
|
return pre;
|
|
43
42
|
};
|
|
44
|
-
|
|
43
|
+
const complain = function complain(message, style) {
|
|
45
44
|
mention(message, 'style', style || 'color: grey; background-color: #fdd');
|
|
46
45
|
};
|
|
47
|
-
|
|
46
|
+
const complainIfBad = function (ok, body) {
|
|
48
47
|
if (ok) {
|
|
49
48
|
// setModifiedDate(store, kb, store);
|
|
50
49
|
// rerender(box); // Deleted forms at the moment
|
|
@@ -53,9 +52,9 @@ var _default = exports["default"] = {
|
|
|
53
52
|
|
|
54
53
|
// //////////////////////////////////////////////////////////////////////////////
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
const t = kb.findTypeURIs(subject);
|
|
56
|
+
let store = null;
|
|
57
|
+
let docuri;
|
|
59
58
|
if (subject.uri) {
|
|
60
59
|
docuri = $rdf.Util.uri.docpart(subject.uri);
|
|
61
60
|
if (subject.uri !== docuri && kb.updater.editable(docuri)) {
|
|
@@ -71,11 +70,11 @@ var _default = exports["default"] = {
|
|
|
71
70
|
|
|
72
71
|
// A fallback which gives a different store page for each ontology would be good @@
|
|
73
72
|
|
|
74
|
-
|
|
73
|
+
let pred;
|
|
75
74
|
if (t[ns.rdfs('Class').uri]) {
|
|
76
75
|
// Stuff we can do before we load the store
|
|
77
76
|
}
|
|
78
|
-
|
|
77
|
+
const wait = mention('(Loading data from: ' + store + ')');
|
|
79
78
|
kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {
|
|
80
79
|
if (!ok) {
|
|
81
80
|
complain('Cannot load store ' + store + ' :' + body);
|
|
@@ -87,14 +86,14 @@ var _default = exports["default"] = {
|
|
|
87
86
|
|
|
88
87
|
if (t[ns.rdfs('Class').uri]) {
|
|
89
88
|
// For each creation form, allow one to create a new object with it, and also to edit the form.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
const displayFormsForRelation = function displayFormsForRelation(pred, allowCreation) {
|
|
90
|
+
const sts = kb.statementsMatching(subject, pred);
|
|
91
|
+
const outliner = context.getOutliner(dom);
|
|
93
92
|
if (sts.length) {
|
|
94
|
-
for (
|
|
93
|
+
for (let i = 0; i < sts.length; i++) {
|
|
95
94
|
outliner.appendPropertyTRs(box, [sts[i]]);
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
const form = sts[i].object;
|
|
96
|
+
const cell = dom.createElement('td');
|
|
98
97
|
box.lastChild.appendChild(cell);
|
|
99
98
|
if (allowCreation) {
|
|
100
99
|
cell.appendChild(UI.widgets.newButton(dom, kb, null, null, subject, form, store, function (ok, body) {
|
|
@@ -106,7 +105,7 @@ var _default = exports["default"] = {
|
|
|
106
105
|
}
|
|
107
106
|
}));
|
|
108
107
|
}
|
|
109
|
-
|
|
108
|
+
let formdef = kb.statementsMatching(form, ns.rdf('type'));
|
|
110
109
|
if (!formdef.length) formdef = kb.statementsMatching(form);
|
|
111
110
|
if (!formdef.length) complain('No data about form');else {
|
|
112
111
|
UI.widgets.editFormButton(dom, box, form, formdef[0].why, complainIfBad);
|