solid-panes 3.7.2 → 3.7.3-3425a37d
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/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/dist/home/homePane.js +68 -0
- package/dist/home/homePane.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/dist/outline/context.js +13 -0
- package/dist/outline/context.js.map +1 -0
- package/dist/outline/propertyViews.js +33 -0
- package/dist/outline/propertyViews.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/dist/sharing/sharingPane.js +45 -0
- package/dist/sharing/sharingPane.js.map +1 -0
- package/dist/tabbed/tabbedPane.js +55 -0
- package/dist/tabbed/tabbedPane.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/dist/versionInfo.js +31 -0
- package/dist/versionInfo.js.map +1 -0
- package/package.json +34 -22
- 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 +0 -62
- package/lib/argument/argumentPane.js.map +0 -1
- package/lib/attach/attachPane.js +0 -404
- package/lib/attach/attachPane.js.map +0 -1
- package/lib/audio/audioPane.js +0 -183
- package/lib/audio/audioPane.js.map +0 -1
- package/lib/classInstancePane.js +0 -93
- 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 +0 -259
- package/lib/dataContentPane.js.map +0 -1
- package/lib/defaultPane.js +0 -76
- package/lib/defaultPane.js.map +0 -1
- package/lib/dokieli/dokieliPane.js +0 -173
- 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 +0 -186
- 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 +0 -1032
- 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 +0 -128
- 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 +0 -286
- package/lib/outline/queryByExample.js.map +0 -1
- package/lib/outline/userInput.js +0 -1817
- 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 +0 -125
- package/lib/playlist/playlistPane.js.map +0 -1
- package/lib/registerPanes.js +0 -146
- package/lib/registerPanes.js.map +0 -1
- package/lib/schedule/formsForSchedule.js +0 -8
- package/lib/schedule/formsForSchedule.js.map +0 -1
- package/lib/schedule/schedulePane.js +0 -895
- 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 +0 -431
- 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 +0 -58
- 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 +0 -479
- package/lib/transaction/pane.js.map +0 -1
- package/lib/transaction/period.js +0 -325
- package/lib/transaction/period.js.map +0 -1
- package/lib/trip/tripPane.js +0 -176
- 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 +0 -148
- package/lib/ui/pane.js.map +0 -1
- package/lib/versionInfo.d.ts +0 -34
- package/lib/versionInfo.d.ts.map +0 -1
- package/lib/versionInfo.js +0 -39
- 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/dokieli/new.js +0 -22
- 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.js +0 -117
- 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 -32
- 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
package/lib/trip/tripPane.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
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
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
|
-
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _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
|
-
/* Trip Pane
|
|
12
|
-
**
|
|
13
|
-
** This pane deals with trips themselves and also
|
|
14
|
-
** will look at transactions organized by trip.
|
|
15
|
-
**
|
|
16
|
-
** This outline pane allows a user to interact with a transaction
|
|
17
|
-
** downloaded from a bank statement, annotting it with classes and comments,
|
|
18
|
-
** trips, etc
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
var ns = UI.ns;
|
|
22
|
-
var _default = exports["default"] = {
|
|
23
|
-
icon: UI.icons.iconBase + 'noun_62007.svg',
|
|
24
|
-
name: 'travel expenses',
|
|
25
|
-
audience: [ns.solid('PowerUser')],
|
|
26
|
-
// Does the subject deserve this pane?
|
|
27
|
-
label: function label(subject, context) {
|
|
28
|
-
var kb = context.session.store;
|
|
29
|
-
var t = kb.findTypeURIs(subject);
|
|
30
|
-
|
|
31
|
-
// if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return "$$";
|
|
32
|
-
// if(kb.any(subject, UI.ns.qu('amount'))) return "$$$"; // In case schema not picked up
|
|
33
|
-
|
|
34
|
-
if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {
|
|
35
|
-
return 'by Trip';
|
|
36
|
-
}
|
|
37
|
-
if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $';
|
|
38
|
-
return null; // No under other circumstances (while testing at least!)
|
|
39
|
-
},
|
|
40
|
-
render: function render(subject, context) {
|
|
41
|
-
var myDocument = context.dom;
|
|
42
|
-
var kb = context.store;
|
|
43
|
-
var ns = UI.ns;
|
|
44
|
-
var CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#');
|
|
45
|
-
var TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#');
|
|
46
|
-
var div = myDocument.createElement('div');
|
|
47
|
-
div.setAttribute('class', 'transactionPane');
|
|
48
|
-
div.innerHTML = '<h2>Trip transactions</h2>';
|
|
49
|
-
var complain = function complain(message, style) {
|
|
50
|
-
if (style === undefined) style = 'color: grey';
|
|
51
|
-
var pre = myDocument.createElement('pre');
|
|
52
|
-
pre.setAttribute('style', style);
|
|
53
|
-
div.appendChild(pre);
|
|
54
|
-
pre.appendChild(myDocument.createTextNode(message));
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// //////////////////////////////////////////////////////////////////////////////
|
|
58
|
-
//
|
|
59
|
-
// Body of trip pane
|
|
60
|
-
|
|
61
|
-
var t = kb.findTypeURIs(subject);
|
|
62
|
-
|
|
63
|
-
// var me = authn.currentUser()
|
|
64
|
-
|
|
65
|
-
// Function: Render a single trip
|
|
66
|
-
|
|
67
|
-
var renderTrip = function renderTrip(subject, thisDiv) {
|
|
68
|
-
var query = new $rdf.Query(UI.utils.label(subject));
|
|
69
|
-
var vars = ['date', 'transaction', 'comment', 'type', 'in_USD'];
|
|
70
|
-
var v = {};
|
|
71
|
-
vars.forEach(function (x) {
|
|
72
|
-
query.vars.push(v[x] = $rdf.variable(x));
|
|
73
|
-
}); // Only used by UI
|
|
74
|
-
query.pat.add(v.transaction, TRIP('trip'), subject);
|
|
75
|
-
var opt = kb.formula();
|
|
76
|
-
opt.add(v.transaction, ns.rdf('type'), v.type); // Issue: this will get stored supertypes too
|
|
77
|
-
query.pat.optional.push(opt);
|
|
78
|
-
query.pat.add(v.transaction, UI.ns.qu('date'), v.date);
|
|
79
|
-
opt.add(v.transaction, ns.rdfs('comment'), v.comment);
|
|
80
|
-
query.pat.optional.push(opt);
|
|
81
|
-
|
|
82
|
-
// opt = kb.formula();
|
|
83
|
-
query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD);
|
|
84
|
-
// query.pat.optional.push(opt);
|
|
85
|
-
|
|
86
|
-
var calculations = function calculations() {
|
|
87
|
-
var total = {};
|
|
88
|
-
var trans = kb.each(undefined, TRIP('trip'), subject);
|
|
89
|
-
// complain("@@ Number of transactions in this trip: " + trans.length);
|
|
90
|
-
trans.forEach(function (t) {
|
|
91
|
-
var ty = kb.the(t, ns.rdf('type'));
|
|
92
|
-
// complain(" -- one trans: "+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));
|
|
93
|
-
if (!ty) ty = UI.ns.qu('ErrorNoType');
|
|
94
|
-
if (ty && ty.uri) {
|
|
95
|
-
var tyuri = ty.uri;
|
|
96
|
-
if (!total[tyuri]) total[tyuri] = 0.0;
|
|
97
|
-
var lit = kb.any(t, UI.ns.qu('in_USD'));
|
|
98
|
-
if (!lit) {
|
|
99
|
-
complain(' @@ No amount in USD: ' + lit + ' for ' + t);
|
|
100
|
-
}
|
|
101
|
-
if (lit) {
|
|
102
|
-
total[tyuri] = total[tyuri] + parseFloat(lit.value);
|
|
103
|
-
// complain(' Trans type ='+ty+'; in_USD "' + lit
|
|
104
|
-
// +'; total[tyuri] = '+total[tyuri]+';')
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
var str = '';
|
|
109
|
-
var types = 0;
|
|
110
|
-
var grandTotal = 0.0;
|
|
111
|
-
for (var uri in total) {
|
|
112
|
-
str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; ';
|
|
113
|
-
types++;
|
|
114
|
-
grandTotal += total[uri];
|
|
115
|
-
}
|
|
116
|
-
complain('Totals of ' + trans.length + ' transactions: ' + str, ''); // @@@@@ yucky -- need 2 col table
|
|
117
|
-
if (types > 1) {
|
|
118
|
-
complain('Overall net: ' + grandTotal, 'text-treatment: bold;');
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
var tableDiv = UI.table(myDocument, {
|
|
122
|
-
query: query,
|
|
123
|
-
onDone: calculations
|
|
124
|
-
});
|
|
125
|
-
thisDiv.appendChild(tableDiv);
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
// Render the set of trips which have transactions in this class
|
|
129
|
-
|
|
130
|
-
if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {
|
|
131
|
-
var ts = kb.each(undefined, ns.rdf('type'), subject);
|
|
132
|
-
var triples = [];
|
|
133
|
-
var index = [];
|
|
134
|
-
for (var i = 0; i < ts.length; i++) {
|
|
135
|
-
var trans = ts[i];
|
|
136
|
-
var trip = kb.any(trans, TRIP('trip'));
|
|
137
|
-
if (!trip) {
|
|
138
|
-
triples.push(trans);
|
|
139
|
-
} else {
|
|
140
|
-
if (!(trans in index)) index[trip] = {
|
|
141
|
-
total: 0,
|
|
142
|
-
transactions: []
|
|
143
|
-
};
|
|
144
|
-
var usd = kb.any(trans, UI.ns.qu('in_USD'));
|
|
145
|
-
if (usd) index[trip].total += usd;
|
|
146
|
-
var date = kb.any(trans, UI.ns.qu('date'));
|
|
147
|
-
index[trip.toNT()].transactions.push([date, trans]);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/* var byDate = function(a,b) {
|
|
151
|
-
return new Date(kb.any(a, CAL('dtstart'))) -
|
|
152
|
-
new Date(kb.any(b, CAL('dtstart')));
|
|
153
|
-
}
|
|
154
|
-
*/
|
|
155
|
-
var list = [];
|
|
156
|
-
for (var h1 in index) {
|
|
157
|
-
var t1 = kb.fromNT(h1);
|
|
158
|
-
list.push([kb.any(t1, CAL('dtstart')), t1]);
|
|
159
|
-
}
|
|
160
|
-
list.sort();
|
|
161
|
-
for (var j = 0; j < list.length; j++) {
|
|
162
|
-
var t2 = list[j][1];
|
|
163
|
-
renderTrip(t2, div);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Render a single trip
|
|
167
|
-
} else if (t['http://www.w3.org/ns/pim/trip#Trip']) {
|
|
168
|
-
renderTrip(subject, div);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// if (!me) complain("You do not have your Web Id set. Set your Web ID to make changes.");
|
|
172
|
-
|
|
173
|
-
return div;
|
|
174
|
-
}
|
|
175
|
-
}; // ends
|
|
176
|
-
//# sourceMappingURL=tripPane.js.map
|
package/lib/trip/tripPane.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tripPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","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: 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":[]}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createApplicationTable = createApplicationTable;
|
|
7
|
-
exports.createContainer = createContainer;
|
|
8
|
-
exports.createText = createText;
|
|
9
|
-
var _rdflib = require("rdflib");
|
|
10
|
-
var _solidUi = require("solid-ui");
|
|
11
|
-
var _solidLogic = require("solid-logic");
|
|
12
|
-
var _trustedApplications = require("./trustedApplications.utils");
|
|
13
|
-
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); }
|
|
14
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
-
function createApplicationTable(subject) {
|
|
20
|
-
var applicationsTable = createElement('table', {
|
|
21
|
-
"class": 'results'
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
// creating headers
|
|
25
|
-
var header = createContainer('tr', [createText('th', 'Application URL'), createText('th', 'Access modes'), createText('th', 'Actions')]);
|
|
26
|
-
applicationsTable.appendChild(header);
|
|
27
|
-
|
|
28
|
-
// creating rows
|
|
29
|
-
_solidLogic.store.each(subject, _solidUi.ns.acl('trustedApp'), undefined, undefined).flatMap(function (app) {
|
|
30
|
-
return _solidLogic.store.each(app, _solidUi.ns.acl('origin'), undefined, undefined).map(function (origin) {
|
|
31
|
-
return {
|
|
32
|
-
appModes: _solidLogic.store.each(app, _solidUi.ns.acl('mode'), undefined, undefined),
|
|
33
|
-
origin: origin
|
|
34
|
-
};
|
|
35
|
-
});
|
|
36
|
-
}).sort(function (a, b) {
|
|
37
|
-
return a.origin.value < b.origin.value ? -1 : 1;
|
|
38
|
-
}).forEach(function (_ref) {
|
|
39
|
-
var appModes = _ref.appModes,
|
|
40
|
-
origin = _ref.origin;
|
|
41
|
-
return applicationsTable.appendChild(createApplicationEntry(subject, origin, appModes, updateTable));
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
// adding a row for new applications
|
|
45
|
-
applicationsTable.appendChild(createApplicationEntry(subject, null, [_solidUi.ns.acl('Read')], updateTable));
|
|
46
|
-
return applicationsTable;
|
|
47
|
-
function updateTable() {
|
|
48
|
-
applicationsTable.parentElement.replaceChild(createApplicationTable(subject), applicationsTable);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function createApplicationEntry(subject, origin, appModes, updateTable) {
|
|
52
|
-
var trustedApplicationState = {
|
|
53
|
-
origin: origin,
|
|
54
|
-
appModes: appModes,
|
|
55
|
-
formElements: {
|
|
56
|
-
modes: [],
|
|
57
|
-
origin: undefined
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
return createContainer('tr', [createContainer('td', [createContainer('form', [createElement('input', {
|
|
61
|
-
"class": 'textinput',
|
|
62
|
-
placeholder: 'Write new URL here',
|
|
63
|
-
value: origin ? origin.value : ''
|
|
64
|
-
}, {}, function (element) {
|
|
65
|
-
trustedApplicationState.formElements.origin = element;
|
|
66
|
-
})], {}, {
|
|
67
|
-
submit: addOrEditApplication
|
|
68
|
-
})]), createContainer('td', [createContainer('form', createModesInput(trustedApplicationState), {}, {
|
|
69
|
-
submit: addOrEditApplication
|
|
70
|
-
})]), createContainer('td', [createContainer('form', origin ? [createText('button', 'Update', {
|
|
71
|
-
"class": 'controlButton',
|
|
72
|
-
style: 'background: LightGreen;'
|
|
73
|
-
}), createText('button', 'Delete', {
|
|
74
|
-
"class": 'controlButton',
|
|
75
|
-
style: 'background: LightCoral;'
|
|
76
|
-
}, {
|
|
77
|
-
click: removeApplication
|
|
78
|
-
})] : [createText('button', 'Add', {
|
|
79
|
-
"class": 'controlButton',
|
|
80
|
-
style: 'background: LightGreen;'
|
|
81
|
-
})], {}, {
|
|
82
|
-
submit: addOrEditApplication
|
|
83
|
-
})])]);
|
|
84
|
-
function addOrEditApplication(event) {
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
var origin;
|
|
87
|
-
try {
|
|
88
|
-
origin = (0, _rdflib.sym)(trustedApplicationState.formElements.origin.value);
|
|
89
|
-
} catch (err) {
|
|
90
|
-
return alert('Please provide an application URL you want to trust');
|
|
91
|
-
}
|
|
92
|
-
var modes = trustedApplicationState.formElements.modes.filter(function (checkbox) {
|
|
93
|
-
return checkbox.checked;
|
|
94
|
-
}).map(function (checkbox) {
|
|
95
|
-
return checkbox.value;
|
|
96
|
-
});
|
|
97
|
-
var deletions = (0, _trustedApplications.getStatementsToDelete)(trustedApplicationState.origin || origin, subject, _solidLogic.store, _solidUi.ns);
|
|
98
|
-
var additions = (0, _trustedApplications.getStatementsToAdd)(origin, (0, _trustedApplications.generateRandomString)(), modes, subject, _solidUi.ns);
|
|
99
|
-
if (!_solidLogic.store.updater) {
|
|
100
|
-
throw new Error('Store has no updater');
|
|
101
|
-
}
|
|
102
|
-
_solidLogic.store.updater.update(deletions, additions, handleUpdateResponse);
|
|
103
|
-
}
|
|
104
|
-
function removeApplication(event) {
|
|
105
|
-
event.preventDefault();
|
|
106
|
-
var origin;
|
|
107
|
-
try {
|
|
108
|
-
origin = (0, _rdflib.sym)(trustedApplicationState.formElements.origin.value);
|
|
109
|
-
} catch (err) {
|
|
110
|
-
return alert('Please provide an application URL you want to remove trust from');
|
|
111
|
-
}
|
|
112
|
-
var deletions = (0, _trustedApplications.getStatementsToDelete)(origin, subject, _solidLogic.store, _solidUi.ns);
|
|
113
|
-
if (!_solidLogic.store.updater) {
|
|
114
|
-
throw new Error('Store has no updater');
|
|
115
|
-
}
|
|
116
|
-
_solidLogic.store.updater.update(deletions, [], handleUpdateResponse);
|
|
117
|
-
}
|
|
118
|
-
function handleUpdateResponse(uri, success, errorBody) {
|
|
119
|
-
if (success) {
|
|
120
|
-
return updateTable();
|
|
121
|
-
}
|
|
122
|
-
console.error(uri, errorBody);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
function createElement(elementName) {
|
|
126
|
-
var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
127
|
-
var eventListeners = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
128
|
-
var onCreated = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
129
|
-
var element = document.createElement(elementName);
|
|
130
|
-
if (onCreated) {
|
|
131
|
-
onCreated(element);
|
|
132
|
-
}
|
|
133
|
-
Object.keys(attributes).forEach(function (attName) {
|
|
134
|
-
element.setAttribute(attName, attributes[attName]);
|
|
135
|
-
});
|
|
136
|
-
Object.keys(eventListeners).forEach(function (eventName) {
|
|
137
|
-
element.addEventListener(eventName, eventListeners[eventName]);
|
|
138
|
-
});
|
|
139
|
-
return element;
|
|
140
|
-
}
|
|
141
|
-
function createContainer(elementName, children) {
|
|
142
|
-
var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
143
|
-
var eventListeners = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
144
|
-
var onCreated = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
145
|
-
var element = createElement(elementName, attributes, eventListeners, onCreated);
|
|
146
|
-
children.forEach(function (child) {
|
|
147
|
-
return element.appendChild(child);
|
|
148
|
-
});
|
|
149
|
-
return element;
|
|
150
|
-
}
|
|
151
|
-
function createText(elementName, textContent) {
|
|
152
|
-
var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
153
|
-
var eventListeners = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
154
|
-
var onCreated = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
155
|
-
var element = createElement(elementName, attributes, eventListeners, onCreated);
|
|
156
|
-
element.textContent = textContent;
|
|
157
|
-
return element;
|
|
158
|
-
}
|
|
159
|
-
function createModesInput(_ref2) {
|
|
160
|
-
var appModes = _ref2.appModes,
|
|
161
|
-
formElements = _ref2.formElements;
|
|
162
|
-
return ['Read', 'Write', 'Append', 'Control'].map(function (mode) {
|
|
163
|
-
var isChecked = appModes.some(function (appMode) {
|
|
164
|
-
return appMode.value === _solidUi.ns.acl(mode).value;
|
|
165
|
-
});
|
|
166
|
-
return createContainer('label', [createElement('input', _objectSpread(_objectSpread({
|
|
167
|
-
type: 'checkbox'
|
|
168
|
-
}, isChecked ? {
|
|
169
|
-
checked: ''
|
|
170
|
-
} : {}), {}, {
|
|
171
|
-
value: _solidUi.ns.acl(mode).uri
|
|
172
|
-
}), {}, function (element) {
|
|
173
|
-
return formElements.modes.push(element);
|
|
174
|
-
}), createText('span', mode)]);
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=trustedApplications.dom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.dom.js","names":["_rdflib","require","_solidUi","_solidLogic","_trustedApplications","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","createApplicationTable","subject","applicationsTable","createElement","header","createContainer","createText","appendChild","store","each","ns","acl","undefined","flatMap","app","map","origin","appModes","sort","a","b","_ref","createApplicationEntry","updateTable","parentElement","replaceChild","trustedApplicationState","formElements","modes","placeholder","element","submit","addOrEditApplication","createModesInput","style","click","removeApplication","event","preventDefault","sym","err","alert","checkbox","checked","deletions","getStatementsToDelete","additions","getStatementsToAdd","generateRandomString","updater","Error","update","handleUpdateResponse","uri","success","errorBody","console","error","elementName","attributes","eventListeners","onCreated","document","attName","setAttribute","eventName","addEventListener","children","child","textContent","_ref2","mode","isChecked","some","appMode","type"],"sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"sourcesContent":["import { NamedNode, Statement, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils'\n\ninterface FormElements {\n modes: HTMLInputElement[]\n // This appears to be used to store either a node from the store,\n // or a reference to the input (checkbox) element for a particular mode.\n // These typings were created post-hoc, so I'm not sure if that was intentional.\n // Thus, this union type should be considered as descriptive rather than prescriptive.\n origin: undefined | NamedNode | HTMLInputElement\n}\n\nexport function createApplicationTable (subject: NamedNode) {\n const applicationsTable = createElement('table', {\n class: 'results'\n })\n\n // creating headers\n const header = createContainer('tr', [\n createText('th', 'Application URL'),\n createText('th', 'Access modes'),\n createText('th', 'Actions')\n ])\n applicationsTable.appendChild(header);\n\n // creating rows\n (store.each(subject, ns.acl('trustedApp'), undefined, undefined) as unknown as Statement[])\n .flatMap(app => store\n .each(app as any, ns.acl('origin'), undefined, undefined)\n .map(origin => ({\n appModes: store.each(app as any, ns.acl('mode'), undefined, undefined) as NamedNode[],\n origin: origin as NamedNode\n })))\n .sort((a: any, b: any) => (a.origin.value < b.origin.value ? -1 : 1))\n .forEach(\n ({ appModes, origin }: { appModes: NamedNode[]; origin: NamedNode }) =>\n applicationsTable.appendChild(\n createApplicationEntry(subject, origin, appModes, updateTable)\n )\n )\n\n // adding a row for new applications\n applicationsTable.appendChild(\n createApplicationEntry(subject, null, [ns.acl('Read')], updateTable)\n )\n\n return applicationsTable\n\n function updateTable () {\n applicationsTable.parentElement!.replaceChild(\n createApplicationTable(subject),\n applicationsTable\n )\n }\n}\n\nfunction createApplicationEntry (\n subject: NamedNode,\n origin: NamedNode | null,\n appModes: NamedNode[],\n updateTable: () => void\n): HTMLTableRowElement {\n const trustedApplicationState = {\n origin,\n appModes,\n formElements: {\n modes: [],\n origin: undefined\n } as FormElements\n }\n return createContainer('tr', [\n createContainer('td', [\n createContainer(\n 'form',\n [\n createElement(\n 'input',\n {\n class: 'textinput',\n placeholder: 'Write new URL here',\n value: origin ? origin.value : ''\n },\n {},\n element => {\n trustedApplicationState.formElements.origin = element\n }\n )\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n createModesInput(trustedApplicationState),\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n origin\n ? [\n createText('button', 'Update', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n }),\n createText(\n 'button',\n 'Delete',\n {\n class: 'controlButton',\n style: 'background: LightCoral;'\n },\n {\n click: removeApplication\n }\n )\n ]\n : [\n createText('button', 'Add', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n })\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ])\n ])\n\n function addOrEditApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert('Please provide an application URL you want to trust')\n }\n\n const modes = trustedApplicationState.formElements.modes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n\n const deletions = getStatementsToDelete(\n trustedApplicationState.origin || origin,\n subject,\n store,\n ns\n )\n const additions = getStatementsToAdd(\n origin,\n generateRandomString(),\n modes,\n subject,\n ns\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, additions, handleUpdateResponse)\n }\n\n function removeApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert(\n 'Please provide an application URL you want to remove trust from'\n )\n }\n\n const deletions = getStatementsToDelete(origin, subject, store, ns)\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, [], handleUpdateResponse)\n }\n\n function handleUpdateResponse (uri: any, success: boolean, errorBody: any) {\n if (success) {\n return updateTable()\n }\n console.error(uri, errorBody)\n }\n}\n\nfunction createElement<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n attributes: { [name: string]: string } = {},\n eventListeners: { [eventName: string]: globalThis.EventListener } = {},\n // eslint-disable-next-line no-unused-vars\n onCreated: null | ((createdElement: globalThis.HTMLElementTagNameMap[K]) => void) = null\n) {\n const element = document.createElement(elementName)\n if (onCreated) {\n onCreated(element)\n }\n Object.keys(attributes).forEach(attName => {\n element.setAttribute(attName, attributes[attName])\n })\n Object.keys(eventListeners).forEach(eventName => {\n element.addEventListener(eventName, eventListeners[eventName])\n })\n return element\n}\n\nexport function createContainer<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n children: HTMLElement[],\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n children.forEach(child => element.appendChild(child))\n return element\n}\n\nexport function createText<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n textContent: string | null,\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n element.textContent = textContent\n return element\n}\n\nfunction createModesInput ({ appModes, formElements }: {\n appModes: NamedNode[]\n formElements: FormElements\n}) {\n return ['Read', 'Write', 'Append', 'Control'].map(mode => {\n const isChecked = appModes.some(\n appMode => appMode.value === ns.acl(mode).value\n )\n return createContainer('label', [\n createElement(\n 'input',\n {\n type: 'checkbox',\n ...(isChecked ? { checked: '' } : {}),\n value: ns.acl(mode).uri\n },\n {},\n element => formElements.modes.push(element)\n ),\n createText('span', mode)\n ])\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.test.d.ts","sourceRoot":"","sources":["../../src/trustedApplications/trustedApplications.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
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
|
-
var _util = require("util");
|
|
5
|
-
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
6
|
-
var _solidNamespace = _interopRequireDefault(require("solid-namespace"));
|
|
7
|
-
var _trustedApplications = require("./trustedApplications.utils");
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _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); }
|
|
10
|
-
/* eslint-env jest */
|
|
11
|
-
|
|
12
|
-
global.TextEncoder = _util.TextEncoder;
|
|
13
|
-
global.TextDecoder = _util.TextDecoder;
|
|
14
|
-
var ns = (0, _solidNamespace["default"])($rdf);
|
|
15
|
-
describe('generateRandomString', function () {
|
|
16
|
-
it('generates a random string five characters long', function () {
|
|
17
|
-
expect((0, _trustedApplications.generateRandomString)().length).toBe(5);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe('getStatementsToDelete', function () {
|
|
21
|
-
it('should return an empty array when there are no statements', function () {
|
|
22
|
-
var mockStore = $rdf.graph();
|
|
23
|
-
var mockOrigin = $rdf.sym('https://origin.example');
|
|
24
|
-
var mockProfile = $rdf.sym('https://profile.example#me');
|
|
25
|
-
expect((0, _trustedApplications.getStatementsToDelete)(mockOrigin, mockProfile, mockStore, ns)).toEqual([]);
|
|
26
|
-
});
|
|
27
|
-
it('should return all statements for the given origin', function () {
|
|
28
|
-
var mockStore = $rdf.graph();
|
|
29
|
-
var mockApplication = $rdf.sym('https://app.example');
|
|
30
|
-
var mockOrigin = $rdf.sym('https://origin.example');
|
|
31
|
-
var mockProfile = $rdf.sym('https://profile.example#me');
|
|
32
|
-
mockStore.add(mockApplication, ns.acl('origin'), mockOrigin);
|
|
33
|
-
mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'));
|
|
34
|
-
mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication);
|
|
35
|
-
var statementsToDelete = (0, _trustedApplications.getStatementsToDelete)(mockOrigin, mockProfile, mockStore, ns);
|
|
36
|
-
expect(statementsToDelete.length).toBe(3);
|
|
37
|
-
expect(statementsToDelete).toMatchSnapshot();
|
|
38
|
-
});
|
|
39
|
-
it('should not return statements for a different origin', function () {
|
|
40
|
-
var mockStore = $rdf.graph();
|
|
41
|
-
var mockApplication = $rdf.sym('https://app.example');
|
|
42
|
-
var mockOrigin = $rdf.sym('https://origin.example');
|
|
43
|
-
var mockProfile = $rdf.sym('https://profile.example#me');
|
|
44
|
-
mockStore.add(mockApplication, ns.acl('origin'), mockOrigin);
|
|
45
|
-
mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'));
|
|
46
|
-
mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication);
|
|
47
|
-
var statementsToDelete = (0, _trustedApplications.getStatementsToDelete)($rdf.lit('A different origin'),
|
|
48
|
-
// @@ TODO Remove casting
|
|
49
|
-
mockProfile, mockStore, ns);
|
|
50
|
-
expect(statementsToDelete.length).toBe(0);
|
|
51
|
-
expect(statementsToDelete).toEqual([]);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('getStatementsToAdd', function () {
|
|
55
|
-
it('should return all required statements to add the given permissions for a given origin', function () {
|
|
56
|
-
var mockOrigin = $rdf.sym('https://origin.example');
|
|
57
|
-
var mockProfile = $rdf.sym('https://profile.example#me');
|
|
58
|
-
var modes = [ns.acl('Read').value, ns.acl('Write').value];
|
|
59
|
-
var statementsToAdd = (0, _trustedApplications.getStatementsToAdd)(mockOrigin, 'mock_app_id', modes, mockProfile, ns);
|
|
60
|
-
expect(statementsToAdd.length).toBe(4);
|
|
61
|
-
expect(statementsToAdd).toMatchSnapshot();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
//# sourceMappingURL=trustedApplications.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.test.js","names":["_util","require","$rdf","_interopRequireWildcard","_solidNamespace","_interopRequireDefault","_trustedApplications","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","global","TextEncoder","TextDecoder","ns","solidNamespace","describe","it","expect","generateRandomString","length","toBe","mockStore","graph","mockOrigin","sym","mockProfile","getStatementsToDelete","toEqual","mockApplication","add","acl","statementsToDelete","toMatchSnapshot","lit","modes","value","statementsToAdd","getStatementsToAdd"],"sources":["../../src/trustedApplications/trustedApplications.test.ts"],"sourcesContent":["/* eslint-env jest */\nimport { TextEncoder, TextDecoder } from 'util'\nglobal.TextEncoder = TextEncoder as any\nglobal.TextDecoder = TextDecoder as any\n\nimport * as $rdf from 'rdflib'\nimport solidNamespace from 'solid-namespace'\nimport { generateRandomString, getStatementsToDelete, getStatementsToAdd } from './trustedApplications.utils'\n\nconst ns = solidNamespace($rdf)\n\ndescribe('generateRandomString', () => {\n it('generates a random string five characters long', () => {\n expect(generateRandomString().length).toBe(5)\n })\n})\n\ndescribe('getStatementsToDelete', () => {\n it('should return an empty array when there are no statements', () => {\n const mockStore = $rdf.graph()\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n expect(\n getStatementsToDelete(mockOrigin, mockProfile, mockStore, ns)\n ).toEqual([])\n })\n\n it('should return all statements for the given origin', () => {\n const mockStore = $rdf.graph()\n const mockApplication = $rdf.sym('https://app.example')\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n mockStore.add(mockApplication, ns.acl('origin'), mockOrigin)\n mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'))\n mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication)\n const statementsToDelete = getStatementsToDelete(\n mockOrigin,\n mockProfile,\n mockStore,\n ns\n )\n expect(statementsToDelete.length).toBe(3)\n expect(statementsToDelete).toMatchSnapshot()\n })\n\n it('should not return statements for a different origin', () => {\n const mockStore = $rdf.graph()\n const mockApplication = $rdf.sym('https://app.example')\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n mockStore.add(mockApplication, ns.acl('origin'), mockOrigin)\n mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'))\n mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication)\n\n const statementsToDelete = getStatementsToDelete(\n $rdf.lit('A different origin'), // @@ TODO Remove casting\n mockProfile,\n mockStore,\n ns\n )\n expect(statementsToDelete.length).toBe(0)\n expect(statementsToDelete).toEqual([])\n })\n})\n\ndescribe('getStatementsToAdd', () => {\n it('should return all required statements to add the given permissions for a given origin', () => {\n const mockOrigin = $rdf.sym('https://origin.example')\n const mockProfile = $rdf.sym('https://profile.example#me')\n const modes = [ns.acl('Read').value, ns.acl('Write').value]\n\n const statementsToAdd = getStatementsToAdd(\n mockOrigin,\n 'mock_app_id',\n modes,\n mockProfile,\n ns\n )\n expect(statementsToAdd.length).toBe(4)\n expect(statementsToAdd).toMatchSnapshot()\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.generateRandomString = generateRandomString;
|
|
7
|
-
exports.getStatementsToAdd = getStatementsToAdd;
|
|
8
|
-
exports.getStatementsToDelete = getStatementsToDelete;
|
|
9
|
-
var _rdflib = require("rdflib");
|
|
10
|
-
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
11
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
|
-
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
14
|
-
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
15
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
-
function getStatementsToDelete(origin, person, kb, ns) {
|
|
17
|
-
var applicationStatements = kb.statementsMatching(null, ns.acl('origin'), origin);
|
|
18
|
-
var statementsToDelete = applicationStatements.reduce(function (memo, st) {
|
|
19
|
-
return memo.concat(kb.statementsMatching(person, ns.acl('trustedApp'), st.subject)).concat(kb.statementsMatching(st.subject));
|
|
20
|
-
}, []);
|
|
21
|
-
return statementsToDelete;
|
|
22
|
-
}
|
|
23
|
-
function getStatementsToAdd(origin, nodeName, modes, person, ns) {
|
|
24
|
-
var application = new _rdflib.BlankNode("bn_".concat(nodeName)); // NamedNode(`${person.doc().uri}#${nodeName}`)
|
|
25
|
-
return [(0, _rdflib.st)(person, ns.acl('trustedApp'), application, person.doc()), (0, _rdflib.st)(application, ns.acl('origin'), origin, person.doc())].concat(_toConsumableArray(modes.map(function (mode) {
|
|
26
|
-
return (0, _rdflib.sym)(mode);
|
|
27
|
-
}).map(function (mode) {
|
|
28
|
-
return (0, _rdflib.st)(application, ns.acl('mode'), mode, person.doc());
|
|
29
|
-
})));
|
|
30
|
-
}
|
|
31
|
-
function generateRandomString() {
|
|
32
|
-
return Math.random().toString(36).substr(2, 5);
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=trustedApplications.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.utils.js","names":["_rdflib","require","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","length","e","n","getStatementsToDelete","origin","person","kb","ns","applicationStatements","statementsMatching","acl","statementsToDelete","reduce","memo","st","concat","subject","getStatementsToAdd","nodeName","modes","application","BlankNode","doc","map","mode","sym","generateRandomString","Math","random","substr"],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`) // NamedNode(`${person.doc().uri}#${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":"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","ignoreList":[]}
|