solid-panes 3.7.3-61993d3f → 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/{lib → dist}/schedule/formsForSchedule.js.map +1 -1
- 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 -8
- 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,44 +1,43 @@
|
|
|
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
|
/* Single audio play Pane
|
|
12
11
|
**
|
|
13
12
|
*/
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
var _default = exports
|
|
14
|
+
const ns = UI.ns;
|
|
15
|
+
var _default = exports.default = {
|
|
17
16
|
icon: UI.icons.iconBase + 'noun_534313.svg',
|
|
18
17
|
name: 'audio',
|
|
19
18
|
// Does the subject deserve an audio play pane?
|
|
20
|
-
label: function
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
for (
|
|
19
|
+
label: function (subject, context) {
|
|
20
|
+
const kb = context.session.store;
|
|
21
|
+
const typeURIs = kb.findTypeURIs(subject);
|
|
22
|
+
const prefix = $rdf.Util.mediaTypeClass('audio/*').uri.split('*')[0];
|
|
23
|
+
for (const t in typeURIs) {
|
|
25
24
|
if (t.startsWith(prefix)) return 'Play audio';
|
|
26
25
|
}
|
|
27
26
|
return null;
|
|
28
27
|
},
|
|
29
|
-
render: function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
render: function (subject, context) {
|
|
29
|
+
const kb = context.session.store;
|
|
30
|
+
const dom = context.dom;
|
|
31
|
+
const options = {
|
|
33
32
|
autoplay: false,
|
|
34
33
|
chain: true,
|
|
35
34
|
chainAlbums: true,
|
|
36
35
|
loop: false
|
|
37
36
|
};
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
const removeExtension = function (str) {
|
|
38
|
+
const dot = str.lastIndexOf('.');
|
|
40
39
|
if (dot < 0) return str; // if any
|
|
41
|
-
|
|
40
|
+
const slash = str.lastIndexOf('/');
|
|
42
41
|
if (dot < slash) return str;
|
|
43
42
|
return str.slice(0, dot);
|
|
44
43
|
};
|
|
@@ -46,14 +45,14 @@ var _default = exports["default"] = {
|
|
|
46
45
|
// True if there is another file like song.mp3 when this is "song 1.mp3"
|
|
47
46
|
// or this is song.m4a
|
|
48
47
|
//
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
const looksRedundant = function (x) {
|
|
49
|
+
const folder = kb.any(undefined, ns.ldp('contains'), x);
|
|
51
50
|
if (!folder) return false;
|
|
52
|
-
|
|
51
|
+
const contents = kb.each(folder, ns.ldp('contains'));
|
|
53
52
|
if (contents.length < 2) return false;
|
|
54
|
-
|
|
55
|
-
for (
|
|
56
|
-
|
|
53
|
+
const thisName = x.uri;
|
|
54
|
+
for (let k = 0; k < contents.length; k++) {
|
|
55
|
+
const otherName = contents[k].uri;
|
|
57
56
|
if (thisName.length > otherName.length && thisName.startsWith(removeExtension(otherName))) {
|
|
58
57
|
return true;
|
|
59
58
|
}
|
|
@@ -66,9 +65,9 @@ var _default = exports["default"] = {
|
|
|
66
65
|
|
|
67
66
|
// Alternative methods could include:
|
|
68
67
|
// Accesing metadata in the audio contol, or paring the audio file
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
const guessNames = function (x) {
|
|
69
|
+
const a = x.uri.split('/').slice(-3); // Hope artist, album, track
|
|
70
|
+
const decode = function (str) {
|
|
72
71
|
try {
|
|
73
72
|
return decodeURIComponent(str);
|
|
74
73
|
} catch (e) {
|
|
@@ -79,19 +78,19 @@ var _default = exports["default"] = {
|
|
|
79
78
|
albumRow.textContent = decode(a[1]);
|
|
80
79
|
trackRow.textContent = decode(removeExtension(a[2]));
|
|
81
80
|
};
|
|
82
|
-
|
|
81
|
+
const moveOn = function (current, level) {
|
|
83
82
|
return new Promise(function (resolve) {
|
|
84
83
|
level = level || 0;
|
|
85
84
|
if (!options.chain) return resolve(null);
|
|
86
85
|
// Ideally navigate graph else cheat with URI munging:
|
|
87
|
-
|
|
86
|
+
const folder = kb.any(undefined, ns.ldp('contains'), current) || current.dir();
|
|
88
87
|
if (!folder) return resolve(null);
|
|
89
88
|
kb.fetcher.load(folder).then(function (_xhr) {
|
|
90
|
-
|
|
89
|
+
const contents = kb.each(folder, ns.ldp('contains')); // @@ load if not loaded
|
|
91
90
|
// if (contents.length < 2) return resolve(null) NO might move on from 1-track album
|
|
92
|
-
|
|
91
|
+
let j;
|
|
93
92
|
contents.sort(); // sort by URI which hopefully will get tracks in order
|
|
94
|
-
for (
|
|
93
|
+
for (let i = 0; i < contents.length; i++) {
|
|
95
94
|
if (current.uri === contents[i].uri) {
|
|
96
95
|
j = (i + 1) % contents.length;
|
|
97
96
|
if (j === 0) {
|
|
@@ -103,10 +102,10 @@ var _default = exports["default"] = {
|
|
|
103
102
|
} else {
|
|
104
103
|
// chain albums
|
|
105
104
|
if (level === 1 || !options.chainAlbums) return resolve(null); // limit of navigating treee
|
|
106
|
-
|
|
105
|
+
moveOn(folder, level + 1).then(function (folder2) {
|
|
107
106
|
if (folder2) {
|
|
108
107
|
kb.fetcher.load(folder2).then(function (_xhr) {
|
|
109
|
-
|
|
108
|
+
const contents = kb.each(folder2, ns.ldp('contains'));
|
|
110
109
|
if (contents.length === 0) return resolve(null);
|
|
111
110
|
contents.sort();
|
|
112
111
|
console.log('New Album: ' + folder2);
|
|
@@ -123,12 +122,12 @@ var _default = exports["default"] = {
|
|
|
123
122
|
});
|
|
124
123
|
});
|
|
125
124
|
};
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
const endedListener = function (event) {
|
|
126
|
+
const current = kb.sym(event.target.getAttribute('src'));
|
|
128
127
|
if (!options.chain) return;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
const tryNext = function (cur) {
|
|
129
|
+
const current = cur;
|
|
130
|
+
moveOn(current).then(function (next) {
|
|
132
131
|
if (!next) {
|
|
133
132
|
console.log('No successor to ' + current);
|
|
134
133
|
return;
|
|
@@ -140,20 +139,20 @@ var _default = exports["default"] = {
|
|
|
140
139
|
controlRow.removeChild(event.target);
|
|
141
140
|
} else {
|
|
142
141
|
console.log('Ignoring redundant ' + next);
|
|
143
|
-
|
|
142
|
+
tryNext(next);
|
|
144
143
|
}
|
|
145
144
|
});
|
|
146
145
|
};
|
|
147
|
-
|
|
146
|
+
tryNext(current);
|
|
148
147
|
};
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
const audioControl = function (song, autoplay) {
|
|
149
|
+
const audio = dom.createElement('audio');
|
|
151
150
|
audio.setAttribute('controls', 'yes');
|
|
152
151
|
// get audio with authenticated fetch
|
|
153
152
|
kb.fetcher._fetch(song.uri).then(function (response) {
|
|
154
153
|
return response.blob();
|
|
155
154
|
}).then(function (myBlob) {
|
|
156
|
-
|
|
155
|
+
const objectURL = URL.createObjectURL(myBlob);
|
|
157
156
|
audio.setAttribute('src', objectURL); // w640 h480 //
|
|
158
157
|
});
|
|
159
158
|
if (autoplay) {
|
|
@@ -162,16 +161,16 @@ var _default = exports["default"] = {
|
|
|
162
161
|
audio.addEventListener('ended', endedListener, false);
|
|
163
162
|
return audio;
|
|
164
163
|
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
164
|
+
const div = dom.createElement('div');
|
|
165
|
+
const table = div.appendChild(dom.createElement('table'));
|
|
166
|
+
const labelStyle = 'padding: 0.3em; color:white; background-color: black;';
|
|
167
|
+
const artistRow = table.appendChild(dom.createElement('tr'));
|
|
169
168
|
artistRow.style.cssText = labelStyle;
|
|
170
|
-
|
|
169
|
+
const albumRow = table.appendChild(dom.createElement('tr'));
|
|
171
170
|
albumRow.style.cssText = labelStyle;
|
|
172
|
-
|
|
171
|
+
const trackRow = table.appendChild(dom.createElement('tr'));
|
|
173
172
|
trackRow.style.cssText = labelStyle;
|
|
174
|
-
|
|
173
|
+
const controlRow = table.appendChild(dom.createElement('tr'));
|
|
175
174
|
guessNames(subject);
|
|
176
175
|
controlRow.appendChild(audioControl(subject, options.autoplay));
|
|
177
176
|
if (!kb.holds(undefined, ns.ldp('contains'), subject) && subject.dir()) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioPane.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","label","subject","context","kb","session","store","typeURIs","findTypeURIs","prefix","Util","mediaTypeClass","uri","split","startsWith","render","dom","options","autoplay","chain","chainAlbums","loop","removeExtension","str","dot","lastIndexOf","slash","slice","looksRedundant","x","folder","any","undefined","ldp","contents","each","length","thisName","k","otherName","endsWith","guessNames","a","decode","decodeURIComponent","artistRow","textContent","albumRow","trackRow","moveOn","current","level","Promise","resolve","dir","fetcher","load","then","_xhr","j","sort","folder2","console","log","endedListener","event","sym","target","getAttribute","tryNext","cur","next","controlRow","appendChild","audioControl","removeChild","song","audio","createElement","setAttribute","_fetch","response","blob","myBlob","objectURL","URL","createObjectURL","addEventListener","div","table","labelStyle","style","cssText","holds"],"sources":["../../src/audio/audioPane.js"],"sourcesContent":["/* Single audio play Pane\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_534313.svg',\n\n name: 'audio',\n\n // Does the subject deserve an audio play pane?\n label: function (subject, context) {\n const kb = context.session.store\n const typeURIs = kb.findTypeURIs(subject)\n\n const prefix = $rdf.Util.mediaTypeClass('audio/*').uri.split('*')[0]\n for (const t in typeURIs) {\n if (t.startsWith(prefix)) return 'Play audio'\n }\n return null\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n const options = {\n autoplay: false,\n chain: true,\n chainAlbums: true,\n loop: false\n }\n\n const removeExtension = function (str) {\n const dot = str.lastIndexOf('.')\n if (dot < 0) return str // if any\n const slash = str.lastIndexOf('/')\n if (dot < slash) return str\n return str.slice(0, dot)\n }\n\n // True if there is another file like song.mp3 when this is \"song 1.mp3\"\n // or this is song.m4a\n //\n const looksRedundant = function (x) {\n const folder = kb.any(undefined, ns.ldp('contains'), x)\n if (!folder) return false\n const contents = kb.each(folder, ns.ldp('contains'))\n if (contents.length < 2) return false\n const thisName = x.uri\n for (let k = 0; k < contents.length; k++) {\n const otherName = contents[k].uri\n if (\n thisName.length > otherName.length &&\n thisName.startsWith(removeExtension(otherName))\n ) {\n return true\n }\n if (\n thisName.endsWith('.m4a') &&\n otherName.endsWith('.mp3') &&\n removeExtension(thisName) === removeExtension(otherName)\n ) {\n return true\n }\n }\n return false\n }\n\n // Alternative methods could include:\n // Accesing metadata in the audio contol, or paring the audio file\n const guessNames = function (x) {\n const a = x.uri.split('/').slice(-3) // Hope artist, album, track\n const decode = function (str) {\n try {\n return decodeURIComponent(str)\n } catch (e) {\n return str\n }\n }\n artistRow.textContent = decode(a[0])\n albumRow.textContent = decode(a[1])\n trackRow.textContent = decode(removeExtension(a[2]))\n }\n\n const moveOn = function (current, level) {\n return new Promise(function (resolve) {\n level = level || 0\n if (!options.chain) return resolve(null)\n // Ideally navigate graph else cheat with URI munging:\n const folder =\n kb.any(undefined, ns.ldp('contains'), current) || current.dir()\n if (!folder) return resolve(null)\n kb.fetcher.load(folder).then(function (_xhr) {\n const contents = kb.each(folder, ns.ldp('contains')) // @@ load if not loaded\n // if (contents.length < 2) return resolve(null) NO might move on from 1-track album\n let j\n contents.sort() // sort by URI which hopefully will get tracks in order\n for (let i = 0; i < contents.length; i++) {\n if (current.uri === contents[i].uri) {\n j = (i + 1) % contents.length\n if (j === 0) {\n if (!options.chainAlbums) {\n if (options.loop) {\n return resolve(contents[j])\n }\n return resolve(null) // No more music needed\n } else {\n // chain albums\n if (level === 1 || !options.chainAlbums) return resolve(null) // limit of navigating treee\n moveOn(folder, level + 1).then(function (folder2) {\n if (folder2) {\n kb.fetcher.load(folder2).then(function (_xhr) {\n const contents = kb.each(folder2, ns.ldp('contains'))\n if (contents.length === 0) return resolve(null)\n contents.sort()\n console.log('New Album: ' + folder2)\n return resolve(contents[0]) // Start off new album\n })\n }\n })\n }\n } else {\n return resolve(contents[j])\n }\n }\n } // for\n })\n })\n }\n const endedListener = function (event) {\n const current = kb.sym(event.target.getAttribute('src'))\n if (!options.chain) return\n const tryNext = function (cur) {\n const current = cur\n moveOn(current).then(function (next) {\n if (!next) {\n console.log('No successor to ' + current)\n return\n }\n if (!looksRedundant(next)) {\n console.log('Moving on to ' + next)\n guessNames(next)\n controlRow.appendChild(audioControl(next, true)) // Force autoplay\n controlRow.removeChild(event.target)\n } else {\n console.log('Ignoring redundant ' + next)\n tryNext(next)\n }\n })\n }\n tryNext(current)\n }\n\n const audioControl = function (song, autoplay) {\n const audio = dom.createElement('audio')\n audio.setAttribute('controls', 'yes')\n // get audio with authenticated fetch\n kb.fetcher._fetch(song.uri)\n .then(function (response) {\n return response.blob()\n })\n .then(function (myBlob) {\n const objectURL = URL.createObjectURL(myBlob)\n audio.setAttribute('src', objectURL) // w640 h480 //\n })\n\n if (autoplay) {\n audio.setAttribute('autoplay', 'autoplay') // Make this a personal preference\n }\n audio.addEventListener('ended', endedListener, false)\n return audio\n }\n\n const div = dom.createElement('div')\n const table = div.appendChild(dom.createElement('table'))\n const labelStyle = 'padding: 0.3em; color:white; background-color: black;'\n const artistRow = table.appendChild(dom.createElement('tr'))\n artistRow.style.cssText = labelStyle\n const albumRow = table.appendChild(dom.createElement('tr'))\n albumRow.style.cssText = labelStyle\n const trackRow = table.appendChild(dom.createElement('tr'))\n trackRow.style.cssText = labelStyle\n const controlRow = table.appendChild(dom.createElement('tr'))\n guessNames(subject)\n controlRow.appendChild(audioControl(subject, options.autoplay))\n\n if (!kb.holds(undefined, ns.ldp('contains'), subject) && subject.dir()) {\n kb.fetcher.load(subject.dir()) // Prefetch enclosing @@ or playlist\n }\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,54 +1,53 @@
|
|
|
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
6
|
exports.classInstancePane = 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
|
/* Class member Pane
|
|
12
11
|
**
|
|
13
12
|
** This outline pane lists the members of a class
|
|
14
13
|
*/
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const ns = UI.ns;
|
|
16
|
+
const classInstancePane = exports.classInstancePane = {
|
|
18
17
|
icon: UI.icons.originalIconBase + 'tango/22-folder-open.png',
|
|
19
18
|
name: 'classInstance',
|
|
20
19
|
// Create a new folder in a Solid system,
|
|
21
20
|
|
|
22
21
|
audience: [ns.solid('PowerUser')],
|
|
23
|
-
label: function
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
label: function (subject, context) {
|
|
23
|
+
const kb = context.session.store;
|
|
24
|
+
const n = kb.each(undefined, ns.rdf('type'), subject).length;
|
|
26
25
|
if (n > 0) return 'List (' + n + ')'; // Show how many in hover text
|
|
27
26
|
return null; // Suppress pane otherwise
|
|
28
27
|
},
|
|
29
|
-
render: function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
render: function (subject, context) {
|
|
29
|
+
const dom = context.dom;
|
|
30
|
+
const outliner = context.getOutliner(dom);
|
|
31
|
+
const kb = context.session.store;
|
|
32
|
+
const complain = function complain(message, color) {
|
|
33
|
+
const pre = dom.createElement('pre');
|
|
35
34
|
pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';');
|
|
36
35
|
div.appendChild(pre);
|
|
37
36
|
pre.appendChild(dom.createTextNode(message));
|
|
38
37
|
};
|
|
39
|
-
|
|
38
|
+
const div = dom.createElement('div');
|
|
40
39
|
div.setAttribute('class', 'instancePane');
|
|
41
40
|
div.setAttribute('style', ' border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em ');
|
|
42
41
|
|
|
43
42
|
// If this is a class, look for all both explicit and implicit
|
|
44
|
-
|
|
43
|
+
const sts = kb.statementsMatching(undefined, ns.rdf('type'), subject);
|
|
45
44
|
if (sts.length > 0) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
sts.forEach(
|
|
45
|
+
const already = {};
|
|
46
|
+
const more = [];
|
|
47
|
+
sts.forEach(st => {
|
|
49
48
|
already[st.subject.toNT()] = st;
|
|
50
49
|
});
|
|
51
|
-
for (
|
|
50
|
+
for (const nt in kb.findMembersNT(subject)) {
|
|
52
51
|
if (!already[nt]) {
|
|
53
52
|
more.push($rdf.st(kb.fromNT(nt), ns.rdf('type'), subject)); // @@ no provenance
|
|
54
53
|
}
|
|
@@ -59,19 +58,19 @@ var classInstancePane = exports.classInstancePane = {
|
|
|
59
58
|
if (subject.sameTerm(ns.rdf('Property'))) {
|
|
60
59
|
// / Do not find all properties used as properties .. unless look at kb index
|
|
61
60
|
} else if (subject.sameTerm(ns.rdfs('Class'))) {
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
const uses = kb.statementsMatching(undefined, ns.rdf('type'), undefined);
|
|
62
|
+
const usedTypes = {};
|
|
64
63
|
uses.forEach(function (st) {
|
|
65
64
|
usedTypes[st.object] = st;
|
|
66
65
|
}); // Get unique
|
|
67
|
-
|
|
68
|
-
for (
|
|
66
|
+
const used = [];
|
|
67
|
+
for (const i in usedTypes) {
|
|
69
68
|
used.push($rdf.st($rdf.sym(i), ns.rdf('type'), ns.rdfs('Class')));
|
|
70
69
|
}
|
|
71
70
|
complain('Total of ' + uses.length + ' type statements and ' + used.length + ' unique types.');
|
|
72
71
|
}
|
|
73
72
|
if (sts.length > 10) {
|
|
74
|
-
|
|
73
|
+
const tr = dom.createElement('TR');
|
|
75
74
|
tr.appendChild(dom.createTextNode('' + sts.length));
|
|
76
75
|
// tr.AJAR_statement=sts[i]
|
|
77
76
|
div.appendChild(tr);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classInstancePane.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","classInstancePane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","kb","session","store","each","undefined","rdf","length","render","dom","outliner","getOutliner","complain","message","color","pre","createElement","setAttribute","div","appendChild","createTextNode","sts","statementsMatching","already","more","forEach","st","toNT","nt","findMembersNT","push","fromNT","utils","sameTerm","rdfs","uses","usedTypes","object","used","sym","tr","appendPropertyTRs","_pred"],"sources":["../src/classInstancePane.js"],"sourcesContent":["/* Class member Pane\n **\n ** This outline pane lists the members of a class\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\n\nconst ns = UI.ns\n\nexport const classInstancePane = {\n icon: UI.icons.originalIconBase + 'tango/22-folder-open.png',\n\n name: 'classInstance',\n\n // Create a new folder in a Solid system,\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n const kb = context.session.store\n const n = kb.each(undefined, ns.rdf('type'), subject).length\n if (n > 0) return 'List (' + n + ')' // Show how many in hover text\n return null // Suppress pane otherwise\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const complain = function complain (message, color) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const div = dom.createElement('div')\n div.setAttribute('class', 'instancePane')\n div.setAttribute(\n 'style',\n ' border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em '\n )\n\n // If this is a class, look for all both explicit and implicit\n const sts = kb.statementsMatching(undefined, ns.rdf('type'), subject)\n if (sts.length > 0) {\n const already = {}\n const more = []\n sts.forEach(st => {\n already[st.subject.toNT()] = st\n })\n for (const nt in kb.findMembersNT(subject)) {\n if (!already[nt]) {\n more.push($rdf.st(kb.fromNT(nt), ns.rdf('type'), subject)) // @@ no provenance\n }\n }\n if (more.length) {\n complain(\n 'There are ' +\n sts.length +\n ' explicit and ' +\n more.length +\n ' implicit members of ' +\n UI.utils.label(subject)\n )\n }\n if (subject.sameTerm(ns.rdf('Property'))) {\n // / Do not find all properties used as properties .. unless look at kb index\n } else if (subject.sameTerm(ns.rdfs('Class'))) {\n const uses = kb.statementsMatching(undefined, ns.rdf('type'), undefined)\n const usedTypes = {}\n uses.forEach(function (st) {\n usedTypes[st.object] = st\n }) // Get unique\n const used = []\n for (const i in usedTypes) {\n used.push($rdf.st($rdf.sym(i), ns.rdf('type'), ns.rdfs('Class')))\n }\n complain(\n 'Total of ' +\n uses.length +\n ' type statements and ' +\n used.length +\n ' unique types.'\n )\n }\n\n if (sts.length > 10) {\n const tr = dom.createElement('TR')\n tr.appendChild(dom.createTextNode('' + sts.length))\n // tr.AJAR_statement=sts[i]\n div.appendChild(tr)\n }\n\n outliner.appendPropertyTRs(div, sts, true, function (_pred) {\n return true\n })\n\n if (more.length) {\n complain('Implicit:')\n outliner.appendPropertyTRs(div, more, true, function (_pred) {\n return true\n })\n }\n }\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,155 @@
|
|
|
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 { parse } from 'rdflib';
|
|
11
|
+
import { icons, login, ns, widgets } from 'solid-ui';
|
|
12
|
+
import ontologyData from './ontologyData.ttl';
|
|
13
|
+
import preferencesFormText from './preferencesFormText.ttl';
|
|
14
|
+
export const basicPreferencesPane = {
|
|
15
|
+
icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',
|
|
16
|
+
name: 'basicPreferences',
|
|
17
|
+
label: _subject => {
|
|
18
|
+
return null;
|
|
19
|
+
},
|
|
20
|
+
// Render the pane
|
|
21
|
+
// The subject should be the logged in user.
|
|
22
|
+
render: (subject, context) => {
|
|
23
|
+
const dom = context.dom;
|
|
24
|
+
const store = context.session.store;
|
|
25
|
+
function complainIfBad(ok, mess) {
|
|
26
|
+
if (ok)
|
|
27
|
+
return;
|
|
28
|
+
container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'));
|
|
29
|
+
}
|
|
30
|
+
const container = dom.createElement('div');
|
|
31
|
+
const formArea = setupUserTypesSection(container, dom);
|
|
32
|
+
function loadData(doc, turtle) {
|
|
33
|
+
doc = doc.doc(); // remove # from URI if nec
|
|
34
|
+
if (!store.holds(undefined, undefined, undefined, doc)) {
|
|
35
|
+
// If not loaded already
|
|
36
|
+
;
|
|
37
|
+
parse(turtle, store, doc.uri, 'text/turtle', null); // Load form directly
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const preferencesForm = store.sym('urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this');
|
|
41
|
+
loadData(preferencesForm, preferencesFormText);
|
|
42
|
+
const ontologyExtra = store.sym('urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT');
|
|
43
|
+
loadData(ontologyExtra, ontologyData);
|
|
44
|
+
function doRender() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const renderContext = yield login.ensureLoadedPreferences({
|
|
47
|
+
dom,
|
|
48
|
+
div: container
|
|
49
|
+
});
|
|
50
|
+
if (!renderContext.preferencesFile) {
|
|
51
|
+
// Could be CORS
|
|
52
|
+
console.log('Not doing private class preferences as no access to preferences file. ' +
|
|
53
|
+
renderContext.preferencesFileError);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const appendedForm = widgets.appendForm(dom, formArea, {}, renderContext.me, preferencesForm, renderContext.preferencesFile, complainIfBad);
|
|
57
|
+
appendedForm.style.borderStyle = 'none';
|
|
58
|
+
const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications');
|
|
59
|
+
if (trustedApplicationsView) {
|
|
60
|
+
container.appendChild(trustedApplicationsView.render(null, context));
|
|
61
|
+
}
|
|
62
|
+
// @@ TODO Remove need for casting as any and bang (!) syntax
|
|
63
|
+
addDeleteSection(container, store, renderContext.me, dom);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
doRender();
|
|
67
|
+
return container;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
function setupUserTypesSection(container, dom) {
|
|
71
|
+
const formContainer = createSection(container, dom, 'User types');
|
|
72
|
+
const description = formContainer.appendChild(dom.createElement('p'));
|
|
73
|
+
description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.';
|
|
74
|
+
const userTypesLink = formContainer.appendChild(dom.createElement('a'));
|
|
75
|
+
userTypesLink.href = 'https://github.com/solidos/userguide/#role';
|
|
76
|
+
userTypesLink.innerText = 'Read more';
|
|
77
|
+
const formArea = formContainer.appendChild(dom.createElement('div'));
|
|
78
|
+
return formArea;
|
|
79
|
+
}
|
|
80
|
+
export default basicPreferencesPane;
|
|
81
|
+
// ends
|
|
82
|
+
function addDeleteSection(container, store, profile, dom) {
|
|
83
|
+
const section = createSection(container, dom, 'Delete account');
|
|
84
|
+
const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc());
|
|
85
|
+
const podServers = podServerNodes.map(node => node.value);
|
|
86
|
+
const list = section.appendChild(dom.createElement('ul'));
|
|
87
|
+
podServers.forEach((server) => __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const deletionLink = yield generateDeletionLink(server, dom);
|
|
89
|
+
if (deletionLink) {
|
|
90
|
+
const listItem = list.appendChild(dom.createElement('li'));
|
|
91
|
+
listItem.appendChild(deletionLink);
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
function generateDeletionLink(podServer, dom) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const link = dom.createElement('a');
|
|
98
|
+
link.textContent = `Delete your account at ${podServer}`;
|
|
99
|
+
const deletionUrl = yield getDeletionUrlForServer(podServer);
|
|
100
|
+
if (typeof deletionUrl !== 'string') {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
link.href = deletionUrl;
|
|
104
|
+
return link;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Hacky way to get the deletion link to a Pod
|
|
109
|
+
*
|
|
110
|
+
* This function infers the deletion link by assuming the URL structure of Node Solid server.
|
|
111
|
+
* In the future, Solid will hopefully provide a standardised way of discovering the deletion link:
|
|
112
|
+
* https://github.com/solidos/data-interoperability-panel/issues/18
|
|
113
|
+
*
|
|
114
|
+
* If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for
|
|
115
|
+
* vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the
|
|
116
|
+
* deletion URL would be at vincent.dev.inrupt.net/account/delete.
|
|
117
|
+
*
|
|
118
|
+
* @param server Pod server containing the user's account.
|
|
119
|
+
* @returns URL of the page that Node Solid Server would offer to delete the account, or null if
|
|
120
|
+
* the URLs we tried give invalid responses.
|
|
121
|
+
*/
|
|
122
|
+
function getDeletionUrlForServer(server) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const singleUserUrl = new URL(server);
|
|
125
|
+
const multiUserUrl = new URL(server);
|
|
126
|
+
multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete';
|
|
127
|
+
const hostnameParts = multiUserUrl.hostname.split('.');
|
|
128
|
+
// Remove `vincent.` from `vincent.dev.inrupt.net`, for example:
|
|
129
|
+
multiUserUrl.hostname = hostnameParts.slice(1).join('.');
|
|
130
|
+
const multiUserNssResponse = yield fetch(multiUserUrl.href, {
|
|
131
|
+
method: 'HEAD'
|
|
132
|
+
});
|
|
133
|
+
if (multiUserNssResponse.ok) {
|
|
134
|
+
return multiUserUrl.href;
|
|
135
|
+
}
|
|
136
|
+
const singleUserNssResponse = yield fetch(singleUserUrl.href, {
|
|
137
|
+
method: 'HEAD'
|
|
138
|
+
});
|
|
139
|
+
if (singleUserNssResponse.ok) {
|
|
140
|
+
return singleUserUrl.href;
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function createSection(container, dom, title) {
|
|
146
|
+
const section = container.appendChild(dom.createElement('div'));
|
|
147
|
+
section.style.border = '0.3em solid #418d99';
|
|
148
|
+
section.style.borderRadius = '0.5em';
|
|
149
|
+
section.style.padding = '0.7em';
|
|
150
|
+
section.style.marginTop = '0.7em';
|
|
151
|
+
const titleElement = section.appendChild(dom.createElement('h3'));
|
|
152
|
+
titleElement.innerText = title;
|
|
153
|
+
return section;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=basicPreferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicPreferences.js","sourceRoot":"","sources":["../../src/dashboard/basicPreferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { icons } from 'solid-ui';
|
|
2
|
+
import { authn, authSession, store } from 'solid-logic';
|
|
3
|
+
import { generateHomepage } from './homepage';
|
|
4
|
+
export const dashboardPane = {
|
|
5
|
+
icon: icons.iconBase + 'noun_547570.svg',
|
|
6
|
+
name: 'dashboard',
|
|
7
|
+
label: subject => {
|
|
8
|
+
console.log();
|
|
9
|
+
if (subject.uri === subject.site().uri) {
|
|
10
|
+
return 'Dashboard';
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
},
|
|
14
|
+
render: (subject, context) => {
|
|
15
|
+
console.log('Dashboard Pane Render');
|
|
16
|
+
const dom = context.dom;
|
|
17
|
+
const container = dom.createElement('div');
|
|
18
|
+
const runBuildPage = () => {
|
|
19
|
+
container.innerHTML = '';
|
|
20
|
+
buildPage(container, authn.currentUser() || null, context, subject);
|
|
21
|
+
};
|
|
22
|
+
authSession.events.on('login', () => {
|
|
23
|
+
// console.log('On Login')
|
|
24
|
+
runBuildPage();
|
|
25
|
+
});
|
|
26
|
+
authSession.events.on('sessionRestore', () => {
|
|
27
|
+
// console.log('On Session Restore')
|
|
28
|
+
runBuildPage();
|
|
29
|
+
});
|
|
30
|
+
// console.log('Initial Load')
|
|
31
|
+
runBuildPage();
|
|
32
|
+
return container;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
function buildPage(container, webId, context, subject) {
|
|
36
|
+
// if uri then SolidOS is a browse.html web app
|
|
37
|
+
const uri = (new URL(window.location.href)).searchParams.get('uri');
|
|
38
|
+
if (webId && (uri || webId.site().uri === subject.site().uri)) {
|
|
39
|
+
return buildDashboard(container, context);
|
|
40
|
+
}
|
|
41
|
+
return buildHomePage(container, subject);
|
|
42
|
+
}
|
|
43
|
+
function buildDashboard(container, context) {
|
|
44
|
+
// console.log('build dashboard')
|
|
45
|
+
// @@ TODO get a proper type
|
|
46
|
+
const outliner = context.getOutliner(context.dom);
|
|
47
|
+
outliner
|
|
48
|
+
.getDashboard()
|
|
49
|
+
.then((dashboard) => container.appendChild(dashboard));
|
|
50
|
+
}
|
|
51
|
+
function buildHomePage(container, subject) {
|
|
52
|
+
// console.log('build home page')
|
|
53
|
+
const wrapper = document.createElement('div');
|
|
54
|
+
container.appendChild(wrapper);
|
|
55
|
+
const shadow = wrapper.attachShadow({ mode: 'open' });
|
|
56
|
+
const link = document.createElement('link');
|
|
57
|
+
link.rel = 'stylesheet';
|
|
58
|
+
link.href = '/common/css/bootstrap.min.css';
|
|
59
|
+
shadow.appendChild(link);
|
|
60
|
+
generateHomepage(subject, store, store.fetcher).then(homepage => shadow.appendChild(homepage));
|
|
61
|
+
}
|
|
62
|
+
export default dashboardPane;
|
|
63
|
+
//# sourceMappingURL=dashboardPane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboardPane.js","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAG7C,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,iBAAiB;IACxC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,OAAO,CAAC,EAAE;QACf,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;YACvC,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACvB,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,SAAS,CAAC,SAAS,GAAG,EAAE,CAAA;YACxB,SAAS,CACP,SAAS,EACT,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,EAC3B,OAAO,EACP,OAAO,CACR,CAAA;QACH,CAAC,CAAA;QAED,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClC,0BAA0B;YAC1B,YAAY,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;QACF,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC3C,oCAAoC;YACpC,YAAY,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;QACF,8BAA8B;QAC9B,YAAY,EAAE,CAAA;QAEd,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CAAA;AAED,SAAS,SAAS,CAChB,SAAsB,EACtB,KAAuB,EACvB,OAA2B,EAC3B,OAAkB;IAElB,+CAA+C;IAC/C,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACnE,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,cAAc,CAAE,SAAsB,EAAE,OAA2B;IAC1E,iCAAiC;IACjC,4BAA4B;IAC5B,MAAM,QAAQ,GAAQ,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACtD,QAAQ;SACL,YAAY,EAAE;SACd,IAAI,CAAC,CAAC,SAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,aAAa,CAAE,SAAsB,EAAE,OAAkB;IAChE,iCAAiC;IACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7C,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,GAAG,GAAG,YAAY,CAAA;IACvB,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;IAC3C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACxB,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACzE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC7B,CAAA;AACH,CAAC;AAED,eAAe,aAAa,CAAA"}
|