solid-panes 3.7.3-1bd42721 → 3.7.3-322e9b27
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/Documentation/VisualLanguage.html +538 -0
- package/Documentation/conventions.md +333 -0
- package/coverage/clover.xml +152 -0
- package/coverage/coverage-final.json +6 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +131 -0
- package/coverage/lcov-report/outline/index.html +161 -0
- package/coverage/lcov-report/outline/outlineIcons.js.html +565 -0
- package/coverage/lcov-report/outline/propertyViews.ts.html +196 -0
- package/coverage/lcov-report/outline/viewAsImage.ts.html +121 -0
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +127 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/trustedApplications/index.html +116 -0
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +238 -0
- package/coverage/lcov.info +204 -0
- package/dev/index.html +28 -0
- package/dev/loader.ts +91 -0
- package/dev/pane/index.ts +10 -0
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +609 -0
- package/eslint.config.mjs +34 -0
- package/jest.config.js +27 -0
- package/jest.setup.ts +4 -0
- package/lib/RDFXMLPane.js +59 -0
- package/lib/RDFXMLPane.js.map +1 -0
- package/{dist → lib}/argument/argumentPane.js +15 -14
- package/lib/argument/argumentPane.js.map +1 -0
- package/{dist → lib}/attach/attachPane.js +93 -83
- package/lib/attach/attachPane.js.map +1 -0
- package/{dist → lib}/audio/audioPane.js +50 -49
- package/lib/audio/audioPane.js.map +1 -0
- package/{dist → lib}/classInstancePane.js +24 -23
- package/lib/classInstancePane.js.map +1 -0
- package/lib/dashboard/basicPreferences.js +229 -0
- package/lib/dashboard/basicPreferences.js.map +1 -0
- package/lib/dashboard/dashboardPane.js +73 -0
- package/lib/dashboard/dashboardPane.js.map +1 -0
- package/lib/dashboard/homepage.js +86 -0
- package/lib/dashboard/homepage.js.map +1 -0
- package/{dist → lib}/dataContentPane.js +63 -63
- package/lib/dataContentPane.js.map +1 -0
- package/{dist → lib}/defaultPane.js +15 -14
- package/lib/defaultPane.js.map +1 -0
- package/{dist → lib}/dokieli/dokieliPane.js +53 -49
- package/lib/dokieli/dokieliPane.js.map +1 -0
- package/lib/dokieli/new.js +9 -0
- package/lib/dokieli/new.js.map +1 -0
- package/{dist → lib}/form/pane.js +45 -44
- package/lib/form/pane.js.map +1 -0
- package/lib/global.d.js +2 -0
- package/lib/global.d.js.map +1 -0
- package/lib/home/homePane.js +91 -0
- package/lib/home/homePane.js.map +1 -0
- package/lib/humanReadablePane.js +138 -0
- package/lib/humanReadablePane.js.map +1 -0
- package/lib/imagePane.js +71 -0
- package/lib/imagePane.js.map +1 -0
- package/lib/index.js +112 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/internalPane.js +184 -0
- package/lib/internal/internalPane.js.map +1 -0
- package/lib/mainPage/footer.js +22 -0
- package/lib/mainPage/footer.js.map +1 -0
- package/lib/mainPage/header.js +152 -0
- package/lib/mainPage/header.js.map +1 -0
- package/{dist → lib}/mainPage/index.d.ts.map +1 -1
- package/lib/mainPage/index.js +42 -0
- package/lib/mainPage/index.js.map +1 -0
- package/{dist → lib}/microblogPane/microblogPane.js +262 -261
- package/lib/microblogPane/microblogPane.js.map +1 -0
- package/lib/n3Pane.js +57 -0
- package/lib/n3Pane.js.map +1 -0
- package/lib/outline/context.js +19 -0
- package/lib/outline/context.js.map +1 -0
- package/lib/outline/manager.js +2264 -0
- package/lib/outline/manager.js.map +1 -0
- package/lib/outline/manager.test.d.ts +2 -0
- package/lib/outline/manager.test.d.ts.map +1 -0
- package/lib/outline/manager.test.js +210 -0
- package/lib/outline/manager.test.js.map +1 -0
- package/{dist → lib}/outline/outlineIcons.js +3 -2
- package/lib/outline/outlineIcons.js.map +1 -0
- package/lib/outline/propertyViews.js +44 -0
- package/lib/outline/propertyViews.js.map +1 -0
- package/lib/outline/propertyViews.test.d.ts +2 -0
- package/lib/outline/propertyViews.test.d.ts.map +1 -0
- package/lib/outline/propertyViews.test.js +27 -0
- package/lib/outline/propertyViews.test.js.map +1 -0
- package/{dist → lib}/outline/queryByExample.js +31 -30
- package/lib/outline/queryByExample.js.map +1 -0
- package/{dist → lib}/outline/userInput.js +260 -262
- package/lib/outline/userInput.js.map +1 -0
- package/lib/outline/viewAsImage.js +17 -0
- package/lib/outline/viewAsImage.js.map +1 -0
- package/{dist → lib}/outline/viewAsMbox.js +14 -4
- package/lib/outline/viewAsMbox.js.map +1 -0
- package/lib/pad/padPane.js +417 -0
- package/lib/pad/padPane.js.map +1 -0
- package/{dist → lib}/playlist/playlistPane.js +37 -36
- package/lib/playlist/playlistPane.js.map +1 -0
- package/{dist → lib}/registerPanes.js +29 -29
- package/lib/registerPanes.js.map +1 -0
- package/lib/schedule/formsForSchedule.js +8 -0
- package/{dist → lib}/schedule/formsForSchedule.js.map +1 -1
- package/{dist → lib}/schedule/schedulePane.js +177 -171
- package/lib/schedule/schedulePane.js.map +1 -0
- package/lib/sharing/sharingPane.js +49 -0
- package/lib/sharing/sharingPane.js.map +1 -0
- package/lib/slideshow/slideshowPane.js +84 -0
- package/lib/slideshow/slideshowPane.js.map +1 -0
- package/{dist → lib}/socialPane.js +142 -141
- package/lib/socialPane.js.map +1 -0
- package/lib/tabbed/tabbedPane.js +72 -0
- package/lib/tabbed/tabbedPane.js.map +1 -0
- package/{dist → lib}/tableViewPane.js +9 -8
- package/lib/tableViewPane.js.map +1 -0
- package/lib/test-import-export/common.js +12 -0
- package/lib/test-import-export/common.js.map +1 -0
- package/lib/test-import-export/edit-importer.js +25 -0
- package/lib/test-import-export/edit-importer.js.map +1 -0
- package/lib/test-import-export/testImportExport.js +2 -0
- package/lib/test-import-export/testImportExport.js.map +1 -0
- package/{dist → lib}/transaction/pane.js +118 -117
- package/lib/transaction/pane.js.map +1 -0
- package/{dist → lib}/transaction/period.js +83 -82
- package/lib/transaction/period.js.map +1 -0
- package/{dist → lib}/trip/tripPane.js +48 -47
- package/lib/trip/tripPane.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.dom.js +177 -0
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.test.d.ts +2 -0
- package/lib/trustedApplications/trustedApplications.test.d.ts.map +1 -0
- package/lib/trustedApplications/trustedApplications.test.js +64 -0
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.utils.js +34 -0
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.view.js +87 -0
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -0
- package/lib/types.js +6 -0
- package/lib/types.js.map +1 -0
- package/{dist → lib}/ui/pane.js +31 -30
- package/lib/ui/pane.js.map +1 -0
- package/lib/versionInfo.d.ts +32 -0
- package/lib/versionInfo.d.ts.map +1 -0
- package/lib/versionInfo.js +37 -0
- package/lib/versionInfo.js.map +1 -0
- package/lib/video/videoPane.js +44 -0
- package/lib/video/videoPane.js.map +1 -0
- package/package.json +13 -26
- package/src/RDFXMLPane.js +60 -0
- package/src/argument/argumentPane.js +65 -0
- 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 +508 -0
- 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 +197 -0
- package/src/chatPreferencesForm.ttl +12 -0
- package/src/classInstancePane.js +110 -0
- package/src/dashboard/basicPreferences.ts +201 -0
- package/src/dashboard/dashboardPane.ts +83 -0
- package/src/dashboard/homepage.ts +72 -0
- package/src/dashboard/languages/codes.html +8611 -0
- package/src/dashboard/languages/codes.xml +3563 -0
- package/src/dashboard/languages/codes2.txt +170 -0
- package/src/dashboard/languages/foo +70 -0
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +12 -0
- package/src/dashboard/ontologyData.ttl +35 -0
- package/src/dashboard/preferencesFormText.ttl +18 -0
- package/src/dataContentPane.js +290 -0
- package/src/defaultPane.js +102 -0
- package/src/dokieli/Makefile +6 -0
- package/src/dokieli/dokieliPane.js +190 -0
- package/src/dokieli/new.html +30 -0
- package/{dist → src}/dokieli/new.js +3 -9
- 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 +217 -0
- package/src/form/psuedocode-notes.txt +57 -0
- package/src/global.d.ts +4 -0
- package/src/home/homePane.ts +72 -0
- package/src/humanReadablePane.js +150 -0
- package/src/imagePane.js +75 -0
- package/src/index.ts +71 -0
- package/src/internal/internalPane.ts +263 -0
- package/src/mainPage/footer.ts +19 -0
- package/src/mainPage/header.ts +79 -0
- package/src/mainPage/index.ts +20 -0
- package/src/meeting/Makefile +3 -0
- package/src/meeting/test/meeting1/Actions/actions.ttl +14 -0
- package/src/meeting/test/meeting1/Actions/config.ttl +16 -0
- package/src/meeting/test/meeting1/Actions/state.ttl +30 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl +34 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl +75 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/index.html +72 -0
- package/src/meeting/test/meeting1/Schedule/index.html.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl +15 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +20 -0
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +23 -0
- package/src/meeting/test/meeting1/chat/chat.ttl +1 -0
- package/src/meeting/test/meeting1/details.ttl +35 -0
- package/src/meeting/test/meeting1/pad/pad.ttl +16 -0
- package/src/microblogPane/mbStyle.css +267 -0
- package/src/microblogPane/microblogPane.js +1412 -0
- package/src/n3Pane.js +56 -0
- package/src/outline/context.ts +21 -0
- package/src/outline/manager.js +2384 -0
- package/src/outline/manager.test.ts +189 -0
- package/src/outline/outlineIcons.js +160 -0
- package/src/outline/propertyViews.test.ts +36 -0
- package/src/outline/propertyViews.ts +37 -0
- package/src/outline/queryByExample.js +296 -0
- package/src/outline/userInput.js +2373 -0
- package/src/outline/viewAsImage.ts +12 -0
- package/src/outline/viewAsMbox.ts +14 -0
- package/src/pad/images/ColourOff.ai +873 -1
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +934 -2
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +559 -0
- package/src/playlist/playlistPane.js +161 -0
- package/src/registerPanes.js +147 -0
- package/src/schedule/Makefile +6 -0
- package/{dist → src}/schedule/formsForSchedule.js +2 -9
- package/src/schedule/formsForSchedule.ttl +115 -0
- package/src/schedule/schedulePane.js +1201 -0
- package/src/sharing/sharingPane.ts +49 -0
- package/src/slideshow/slideshowPane.js +80 -0
- package/src/socialPane.js +523 -0
- package/src/style/tabbedtab.css +1347 -0
- package/src/tabbed/tabbedPane.ts +60 -0
- package/src/tableViewPane.js +51 -0
- package/src/test-import-export/common.js +6 -0
- package/src/test-import-export/edit-importer.js +20 -0
- 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 +629 -0
- package/src/transaction/period.js +374 -0
- 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 +176 -0
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +176 -0
- package/src/trustedApplications/trustedApplications.dom.ts +276 -0
- package/src/trustedApplications/trustedApplications.test.ts +82 -0
- package/src/trustedApplications/trustedApplications.utils.ts +51 -0
- package/src/trustedApplications/trustedApplications.view.ts +80 -0
- package/src/types.ts +34 -0
- 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 +226 -0
- package/src/versionInfo.ts +30 -0
- package/src/video/videoPane.js +44 -0
- package/timestamp.sh +13 -0
- package/travis/bumpversion.js +29 -0
- package/tsconfig.json +78 -0
- package/typings/raw-loader.d.ts +4 -0
- package/typings/solid-namespace/index.d.ts +9 -0
- package/webpack.config.js +41 -0
- package/dist/RDFXMLPane.js +0 -58
- package/dist/RDFXMLPane.js.map +0 -1
- package/dist/argument/argumentPane.js.map +0 -1
- package/dist/attach/attachPane.js.map +0 -1
- package/dist/audio/audioPane.js.map +0 -1
- package/dist/classInstancePane.js.map +0 -1
- package/dist/dashboard/basicPreferences.js +0 -155
- package/dist/dashboard/basicPreferences.js.map +0 -1
- package/dist/dashboard/dashboardPane.js +0 -63
- package/dist/dashboard/dashboardPane.js.map +0 -1
- package/dist/dashboard/homepage.js +0 -63
- package/dist/dashboard/homepage.js.map +0 -1
- package/dist/dataContentPane.js.map +0 -1
- package/dist/defaultPane.js.map +0 -1
- package/dist/dokieli/dokieliPane.js.map +0 -1
- package/dist/dokieli/new.js.map +0 -1
- package/dist/form/pane.js.map +0 -1
- package/dist/home/homePane.js +0 -68
- package/dist/home/homePane.js.map +0 -1
- package/dist/humanReadablePane.js +0 -135
- package/dist/humanReadablePane.js.map +0 -1
- package/dist/imagePane.js +0 -70
- package/dist/imagePane.js.map +0 -1
- package/dist/index.js +0 -48
- package/dist/index.js.map +0 -1
- package/dist/internal/internalPane.js +0 -195
- package/dist/internal/internalPane.js.map +0 -1
- package/dist/mainPage/footer.js +0 -16
- package/dist/mainPage/footer.js.map +0 -1
- package/dist/mainPage/header.js +0 -84
- package/dist/mainPage/header.js.map +0 -1
- package/dist/mainPage/index.js +0 -30
- package/dist/mainPage/index.js.map +0 -1
- package/dist/microblogPane/microblogPane.js.map +0 -1
- package/dist/n3Pane.js +0 -56
- package/dist/n3Pane.js.map +0 -1
- package/dist/outline/context.js +0 -13
- package/dist/outline/context.js.map +0 -1
- package/dist/outline/manager.js +0 -1997
- package/dist/outline/manager.js.map +0 -1
- package/dist/outline/outlineIcons.js.map +0 -1
- package/dist/outline/propertyViews.js +0 -33
- package/dist/outline/propertyViews.js.map +0 -1
- package/dist/outline/queryByExample.js.map +0 -1
- package/dist/outline/userInput.js.map +0 -1
- package/dist/outline/viewAsImage.js +0 -7
- package/dist/outline/viewAsImage.js.map +0 -1
- package/dist/outline/viewAsMbox.js.map +0 -1
- package/dist/pad/padPane.js +0 -420
- package/dist/pad/padPane.js.map +0 -1
- package/dist/playlist/playlistPane.js.map +0 -1
- package/dist/registerPanes.js.map +0 -1
- package/dist/schedule/schedulePane.js.map +0 -1
- package/dist/sharing/sharingPane.js +0 -45
- package/dist/sharing/sharingPane.js.map +0 -1
- package/dist/slideshow/slideshowPane.js +0 -80
- package/dist/slideshow/slideshowPane.js.map +0 -1
- package/dist/socialPane.js.map +0 -1
- package/dist/tabbed/tabbedPane.js +0 -55
- package/dist/tabbed/tabbedPane.js.map +0 -1
- package/dist/tableViewPane.js.map +0 -1
- package/dist/transaction/pane.js.map +0 -1
- package/dist/transaction/period.js.map +0 -1
- package/dist/trip/tripPane.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.dom.js +0 -158
- package/dist/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.utils.js +0 -24
- package/dist/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.view.js +0 -62
- package/dist/trustedApplications/trustedApplications.view.js.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/ui/pane.js.map +0 -1
- package/dist/versionInfo.js +0 -31
- package/dist/versionInfo.js.map +0 -1
- package/dist/video/videoPane.js +0 -43
- package/dist/video/videoPane.js.map +0 -1
- /package/{dist → lib}/dashboard/basicPreferences.d.ts +0 -0
- /package/{dist → lib}/dashboard/basicPreferences.d.ts.map +0 -0
- /package/{dist → lib}/dashboard/dashboardPane.d.ts +0 -0
- /package/{dist → lib}/dashboard/dashboardPane.d.ts.map +0 -0
- /package/{dist → lib}/dashboard/homepage.d.ts +0 -0
- /package/{dist → lib}/dashboard/homepage.d.ts.map +0 -0
- /package/{dist → lib}/home/homePane.d.ts +0 -0
- /package/{dist → lib}/home/homePane.d.ts.map +0 -0
- /package/{dist → lib}/index.d.ts +0 -0
- /package/{dist → lib}/index.d.ts.map +0 -0
- /package/{dist → lib}/internal/internalPane.d.ts +0 -0
- /package/{dist → lib}/internal/internalPane.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/footer.d.ts +0 -0
- /package/{dist → lib}/mainPage/footer.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/header.d.ts +0 -0
- /package/{dist → lib}/mainPage/header.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/index.d.ts +0 -0
- /package/{dist → lib}/outline/context.d.ts +0 -0
- /package/{dist → lib}/outline/context.d.ts.map +0 -0
- /package/{dist → lib}/outline/propertyViews.d.ts +0 -0
- /package/{dist → lib}/outline/propertyViews.d.ts.map +0 -0
- /package/{dist → lib}/outline/viewAsImage.d.ts +0 -0
- /package/{dist → lib}/outline/viewAsImage.d.ts.map +0 -0
- /package/{dist → lib}/outline/viewAsMbox.d.ts +0 -0
- /package/{dist → lib}/outline/viewAsMbox.d.ts.map +0 -0
- /package/{dist → lib}/pad/padPane.d.ts +0 -0
- /package/{dist → lib}/pad/padPane.d.ts.map +0 -0
- /package/{dist → lib}/sharing/sharingPane.d.ts +0 -0
- /package/{dist → lib}/sharing/sharingPane.d.ts.map +0 -0
- /package/{dist → lib}/tabbed/tabbedPane.d.ts +0 -0
- /package/{dist → lib}/tabbed/tabbedPane.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- /package/{dist → lib}/types.d.ts +0 -0
- /package/{dist → lib}/types.d.ts.map +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
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); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.socialPane = void 0;
|
|
7
8
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
8
9
|
var _solidLogic = require("solid-logic");
|
|
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" !=
|
|
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); }
|
|
10
11
|
/* Social Pane
|
|
11
12
|
**
|
|
12
13
|
** This outline pane provides social network functions
|
|
@@ -17,24 +18,24 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
17
18
|
** -- todo: use common code to get username and load profile and set 'me'
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
var socialPane = exports.socialPane = {
|
|
21
22
|
icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',
|
|
22
23
|
name: 'social',
|
|
23
|
-
label: function (subject, context) {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
label: function label(subject, context) {
|
|
25
|
+
var kb = context.session.store;
|
|
26
|
+
var types = kb.findTypeURIs(subject);
|
|
26
27
|
if (types[UI.ns.foaf('Person').uri] || types[UI.ns.vcard('Individual').uri]) {
|
|
27
28
|
return 'Friends';
|
|
28
29
|
}
|
|
29
30
|
return null;
|
|
30
31
|
},
|
|
31
|
-
render: function (s, context) {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
render: function render(s, context) {
|
|
33
|
+
var dom = context.dom;
|
|
34
|
+
var common = function common(x, y) {
|
|
34
35
|
// Find common members of two lists
|
|
35
|
-
|
|
36
|
-
for (
|
|
37
|
-
for (
|
|
36
|
+
var both = [];
|
|
37
|
+
for (var i = 0; i < x.length; i++) {
|
|
38
|
+
for (var j = 0; j < y.length; j++) {
|
|
38
39
|
if (y[j].sameTerm(x[i])) {
|
|
39
40
|
both.push(y[j]);
|
|
40
41
|
break;
|
|
@@ -43,37 +44,37 @@ const socialPane = exports.socialPane = {
|
|
|
43
44
|
}
|
|
44
45
|
return both;
|
|
45
46
|
};
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
var people = function people(n) {
|
|
48
|
+
var res = ' ';
|
|
48
49
|
res += n || 'no';
|
|
49
50
|
if (n === 1) return res + ' person';
|
|
50
51
|
return res + ' people';
|
|
51
52
|
};
|
|
52
|
-
|
|
53
|
+
var say = function say(str) {
|
|
53
54
|
console.log(str);
|
|
54
|
-
|
|
55
|
+
var p = dom.createElement('p');
|
|
55
56
|
p.textContent = str;
|
|
56
57
|
tips.appendChild(p);
|
|
57
58
|
};
|
|
58
|
-
|
|
59
|
+
var link = function link(contents, uri) {
|
|
59
60
|
if (!uri) return contents;
|
|
60
|
-
|
|
61
|
+
var a = dom.createElement('a');
|
|
61
62
|
a.setAttribute('href', uri);
|
|
62
63
|
a.appendChild(contents);
|
|
63
64
|
return a;
|
|
64
65
|
};
|
|
65
|
-
|
|
66
|
+
var text = function text(str) {
|
|
66
67
|
return dom.createTextNode(str);
|
|
67
68
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
var buildCheckboxForm = function buildCheckboxForm(lab, statement, state) {
|
|
70
|
+
var f = dom.createElement('form');
|
|
71
|
+
var input = dom.createElement('input');
|
|
71
72
|
f.appendChild(input);
|
|
72
|
-
|
|
73
|
+
var tx = dom.createTextNode(lab);
|
|
73
74
|
tx.className = 'question';
|
|
74
75
|
f.appendChild(tx);
|
|
75
76
|
input.setAttribute('type', 'checkbox');
|
|
76
|
-
|
|
77
|
+
var boxHandler = function boxHandler(_e) {
|
|
77
78
|
tx.className = 'pendingedit';
|
|
78
79
|
// alert('Should be greyed out')
|
|
79
80
|
if (this.checked) {
|
|
@@ -117,74 +118,74 @@ const socialPane = exports.socialPane = {
|
|
|
117
118
|
input.addEventListener('click', boxHandler, false);
|
|
118
119
|
return f;
|
|
119
120
|
};
|
|
120
|
-
|
|
121
|
+
var oneFriend = function oneFriend(friend, _confirmed) {
|
|
121
122
|
return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {});
|
|
122
123
|
};
|
|
123
124
|
|
|
124
125
|
// ////////// Body of render():
|
|
125
126
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
var outliner = context.getOutliner(dom);
|
|
128
|
+
var kb = context.session.store;
|
|
129
|
+
var div = dom.createElement('div');
|
|
129
130
|
div.setAttribute('class', 'socialPane');
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
var foaf = UI.ns.foaf;
|
|
132
|
+
var vcard = UI.ns.vcard;
|
|
132
133
|
|
|
133
134
|
// extracted from tabbedtab.css 2017-03-21
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
135
|
+
var navBlockStyle = 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;';
|
|
136
|
+
var mainBlockStyle = 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;';
|
|
137
|
+
var foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;';
|
|
138
|
+
var structure = div.appendChild(dom.createElement('table'));
|
|
139
|
+
var tr = structure.appendChild(dom.createElement('tr'));
|
|
140
|
+
var left = tr.appendChild(dom.createElement('td'));
|
|
141
|
+
var middle = tr.appendChild(dom.createElement('td'));
|
|
142
|
+
var right = tr.appendChild(dom.createElement('td'));
|
|
143
|
+
var tools = left;
|
|
143
144
|
tools.style.cssText = navBlockStyle;
|
|
144
|
-
|
|
145
|
+
var mainTable = middle.appendChild(dom.createElement('table'));
|
|
145
146
|
mainTable.style.cssText = mainBlockStyle;
|
|
146
|
-
|
|
147
|
+
var tips = right;
|
|
147
148
|
tips.style.cssText = navBlockStyle;
|
|
148
149
|
|
|
149
150
|
// Image top left
|
|
150
|
-
|
|
151
|
+
var src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'));
|
|
151
152
|
if (src) {
|
|
152
|
-
|
|
153
|
+
var img = dom.createElement('IMG');
|
|
153
154
|
img.setAttribute('src', src.uri); // w640 h480
|
|
154
155
|
// img.className = 'foafPic'
|
|
155
156
|
img.style.cssText = foafPicStyle;
|
|
156
157
|
tools.appendChild(img);
|
|
157
158
|
}
|
|
158
|
-
|
|
159
|
-
|
|
159
|
+
var name = kb.anyValue(s, foaf('name')) || '???';
|
|
160
|
+
var h3 = dom.createElement('H3');
|
|
160
161
|
h3.appendChild(dom.createTextNode(name));
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
var me = _solidLogic.authn.currentUser();
|
|
163
|
+
var meUri = me ? me.uri : null;
|
|
163
164
|
|
|
164
165
|
// @@ Add: event handler to redraw the stuff below when me changes.
|
|
165
|
-
|
|
166
|
+
var loginOutButton = UI.login.loginStatusBox(dom, function (webIdUri) {
|
|
166
167
|
me = kb.sym(webIdUri);
|
|
167
168
|
// @@ To be written: redraw as a function the new me
|
|
168
169
|
// @@ refresh the sidebars
|
|
169
170
|
UI.widgets.refreshTree(div); // this refreshes the middle at least
|
|
170
171
|
});
|
|
171
172
|
tips.appendChild(loginOutButton);
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
var thisIsYou = me && kb.sameThings(me, s);
|
|
174
|
+
var knows = foaf('knows');
|
|
174
175
|
// var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
var familiar = kb.anyValue(s, foaf('givenname')) || kb.anyValue(s, foaf('firstName')) || kb.anyValue(s, foaf('nick')) || kb.anyValue(s, foaf('name')) || kb.anyValue(s, vcard('fn'));
|
|
177
|
+
var friends = kb.each(s, knows);
|
|
177
178
|
|
|
178
179
|
// Do I have a public profile document?
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
var profile = null; // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }
|
|
181
|
+
var editable = false;
|
|
182
|
+
var incoming;
|
|
183
|
+
var outgoing;
|
|
183
184
|
if (me) {
|
|
184
185
|
// The definition of FAF personal profile document is ..
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
for (
|
|
186
|
+
var works = kb.each(undefined, foaf('primaryTopic'), me); // having me as primary topic
|
|
187
|
+
var message = '';
|
|
188
|
+
for (var i = 0; i < works.length; i++) {
|
|
188
189
|
if (kb.whether(works[i], UI.ns.rdf('type'), foaf('PersonalProfileDocument'))) {
|
|
189
190
|
editable = outliner.UserInput.sparqler.editable(works[i].uri, kb);
|
|
190
191
|
if (!editable) {
|
|
@@ -196,7 +197,7 @@ const socialPane = exports.socialPane = {
|
|
|
196
197
|
}
|
|
197
198
|
}
|
|
198
199
|
if (!profile) {
|
|
199
|
-
say(message +
|
|
200
|
+
say(message + "\nI couldn't find your editable personal profile document.");
|
|
200
201
|
} else {
|
|
201
202
|
say('Editing your profile ' + profile + '.');
|
|
202
203
|
// Do I have an EDITABLE profile?
|
|
@@ -212,66 +213,66 @@ const socialPane = exports.socialPane = {
|
|
|
212
213
|
h3 = dom.createElement('h3');
|
|
213
214
|
h3.appendChild(dom.createTextNode('You and ' + familiar));
|
|
214
215
|
tools.appendChild(h3);
|
|
215
|
-
|
|
216
|
+
var cme = kb.canon(me);
|
|
216
217
|
incoming = kb.whether(s, knows, cme);
|
|
217
218
|
outgoing = false;
|
|
218
|
-
|
|
219
|
+
var outgoingSt = kb.statementsMatching(cme, knows, s);
|
|
219
220
|
if (outgoingSt.length) {
|
|
220
221
|
outgoing = true;
|
|
221
222
|
if (!profile) profile = outgoingSt[0].why;
|
|
222
223
|
}
|
|
223
|
-
|
|
224
|
-
tools.appendChild(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
var _tr = dom.createElement('tr');
|
|
225
|
+
tools.appendChild(_tr);
|
|
226
|
+
var youAndThem = function youAndThem() {
|
|
227
|
+
_tr.appendChild(link(text('You'), meUri));
|
|
228
|
+
_tr.appendChild(text(' and '));
|
|
229
|
+
_tr.appendChild(link(text(familiar), s.uri));
|
|
229
230
|
};
|
|
230
231
|
if (!incoming) {
|
|
231
232
|
if (!outgoing) {
|
|
232
233
|
youAndThem();
|
|
233
|
-
|
|
234
|
+
_tr.appendChild(text(' have not said you know each other.'));
|
|
234
235
|
} else {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
236
|
+
_tr.appendChild(link(text('You'), meUri));
|
|
237
|
+
_tr.appendChild(text(' know '));
|
|
238
|
+
_tr.appendChild(link(text(familiar), s.uri));
|
|
239
|
+
_tr.appendChild(text(' (unconfirmed)'));
|
|
239
240
|
}
|
|
240
241
|
} else {
|
|
241
242
|
if (!outgoing) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
243
|
+
_tr.appendChild(link(text(familiar), s.uri));
|
|
244
|
+
_tr.appendChild(text(' knows '));
|
|
245
|
+
_tr.appendChild(link(text('you'), meUri));
|
|
246
|
+
_tr.appendChild(text(' (unconfirmed).')); // @@
|
|
247
|
+
_tr.appendChild(text(' confirm you know '));
|
|
248
|
+
_tr.appendChild(link(text(familiar), s.uri));
|
|
249
|
+
_tr.appendChild(text('.'));
|
|
249
250
|
} else {
|
|
250
251
|
youAndThem();
|
|
251
|
-
|
|
252
|
+
_tr.appendChild(text(' say you know each other.'));
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
if (editable) {
|
|
255
|
-
|
|
256
|
+
var f = buildCheckboxForm('You know ' + familiar, new UI.rdf.Statement(me, knows, s, profile), outgoing);
|
|
256
257
|
tools.appendChild(f);
|
|
257
258
|
} // editable
|
|
258
259
|
|
|
259
260
|
// //////////////// Mutual friends
|
|
260
261
|
if (friends) {
|
|
261
|
-
|
|
262
|
+
var myFriends = kb.each(me, foaf('knows'));
|
|
262
263
|
if (myFriends.length) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
tools.appendChild(
|
|
266
|
-
|
|
264
|
+
var mutualFriends = common(friends, myFriends);
|
|
265
|
+
var _tr2 = dom.createElement('tr');
|
|
266
|
+
tools.appendChild(_tr2);
|
|
267
|
+
_tr2.appendChild(dom.createTextNode('You' + (familiar ? ' and ' + familiar : '') + ' know' + people(mutualFriends.length) + ' found in common'));
|
|
267
268
|
if (mutualFriends) {
|
|
268
|
-
for (
|
|
269
|
-
|
|
269
|
+
for (var _i = 0; _i < mutualFriends.length; _i++) {
|
|
270
|
+
_tr2.appendChild(dom.createTextNode(', ' + UI.utils.label(mutualFriends[_i])));
|
|
270
271
|
}
|
|
271
272
|
}
|
|
272
273
|
}
|
|
273
|
-
|
|
274
|
-
tools.appendChild(
|
|
274
|
+
var _tr3 = dom.createElement('tr');
|
|
275
|
+
tools.appendChild(_tr3);
|
|
275
276
|
} // friends
|
|
276
277
|
} // About someone else
|
|
277
278
|
} // me is defined
|
|
@@ -298,13 +299,13 @@ const socialPane = exports.socialPane = {
|
|
|
298
299
|
function _triageFriends(s) {
|
|
299
300
|
outgoing = kb.each(s, foaf('knows'));
|
|
300
301
|
incoming = kb.each(undefined, foaf('knows'), s); // @@ have to load the friends
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
for (
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
for (
|
|
302
|
+
var confirmed = [];
|
|
303
|
+
var unconfirmed = [];
|
|
304
|
+
var requests = [];
|
|
305
|
+
for (var _i2 = 0; _i2 < outgoing.length; _i2++) {
|
|
306
|
+
var friend = outgoing[_i2];
|
|
307
|
+
var found = false;
|
|
308
|
+
for (var j = 0; j < incoming.length; j++) {
|
|
308
309
|
if (incoming[j].sameTerm(friend)) {
|
|
309
310
|
found = true;
|
|
310
311
|
break;
|
|
@@ -313,38 +314,38 @@ const socialPane = exports.socialPane = {
|
|
|
313
314
|
if (found) confirmed.push(friend);else unconfirmed.push(friend);
|
|
314
315
|
} // outgoing
|
|
315
316
|
|
|
316
|
-
for (
|
|
317
|
-
|
|
317
|
+
for (var _i3 = 0; _i3 < incoming.length; _i3++) {
|
|
318
|
+
var _friend = incoming[_i3];
|
|
318
319
|
// var lab = UI.utils.label(friend)
|
|
319
|
-
|
|
320
|
-
for (
|
|
321
|
-
if (outgoing[
|
|
322
|
-
|
|
320
|
+
var _found = false;
|
|
321
|
+
for (var _j = 0; _j < outgoing.length; _j++) {
|
|
322
|
+
if (outgoing[_j].sameTerm(_friend)) {
|
|
323
|
+
_found = true;
|
|
323
324
|
break;
|
|
324
325
|
}
|
|
325
326
|
}
|
|
326
|
-
if (!
|
|
327
|
+
if (!_found) requests.push(_friend);
|
|
327
328
|
} // incoming
|
|
328
329
|
|
|
329
|
-
|
|
330
|
-
for (
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
if (
|
|
330
|
+
var cases = [['Acquaintances', outgoing], ['Mentioned as acquaintances by: ', requests]];
|
|
331
|
+
for (var _i4 = 0; _i4 < cases.length; _i4++) {
|
|
332
|
+
var thisCase = cases[_i4];
|
|
333
|
+
var _friends = thisCase[1];
|
|
334
|
+
if (_friends.length === 0) continue; // Skip empty sections (sure?)
|
|
334
335
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
htr.appendChild(
|
|
336
|
+
var _h = dom.createElement('h3');
|
|
337
|
+
_h.textContent = thisCase[0];
|
|
338
|
+
var htr = dom.createElement('tr');
|
|
339
|
+
htr.appendChild(_h);
|
|
339
340
|
mainTable.appendChild(htr);
|
|
340
|
-
|
|
341
|
-
for (
|
|
342
|
-
items.push([UI.utils.label(
|
|
341
|
+
var items = [];
|
|
342
|
+
for (var j9 = 0; j9 < _friends.length; j9++) {
|
|
343
|
+
items.push([UI.utils.label(_friends[j9]), _friends[j9]]);
|
|
343
344
|
}
|
|
344
345
|
items.sort();
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
for (
|
|
346
|
+
var last = null;
|
|
347
|
+
var fr = void 0;
|
|
348
|
+
for (var j7 = 0; j7 < items.length; j7++) {
|
|
348
349
|
fr = items[j7][1];
|
|
349
350
|
if (fr.sameTerm(last)) continue; // unique
|
|
350
351
|
last = fr;
|
|
@@ -368,42 +369,42 @@ const socialPane = exports.socialPane = {
|
|
|
368
369
|
// For each home page like thing make a label which will
|
|
369
370
|
// make sense and add the domain (like "w3.org blog") if there are more than one of the same type
|
|
370
371
|
//
|
|
371
|
-
|
|
372
|
-
for (
|
|
373
|
-
|
|
374
|
-
|
|
372
|
+
var preds = [UI.ns.foaf('homepage'), UI.ns.foaf('weblog'), UI.ns.foaf('workplaceHomepage'), UI.ns.foaf('schoolHomepage')];
|
|
373
|
+
for (var i6 = 0; i6 < preds.length; i6++) {
|
|
374
|
+
var pred = preds[i6];
|
|
375
|
+
var sts = kb.statementsMatching(s, pred);
|
|
375
376
|
if (sts.length === 0) {
|
|
376
377
|
// if (editable) say("No home page set. Use the blue + icon at the bottom of the main view to add information.")
|
|
377
378
|
} else {
|
|
378
|
-
|
|
379
|
-
for (
|
|
380
|
-
|
|
379
|
+
var uris = [];
|
|
380
|
+
for (var j5 = 0; j5 < sts.length; j5++) {
|
|
381
|
+
var st = sts[j5];
|
|
381
382
|
if (st.object.uri) uris.push(st.object.uri); // Ignore if not symbol
|
|
382
383
|
}
|
|
383
384
|
uris.sort();
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
for (
|
|
387
|
-
|
|
385
|
+
var last2 = '';
|
|
386
|
+
var lab2 = void 0;
|
|
387
|
+
for (var k = 0; k < uris.length; k++) {
|
|
388
|
+
var uri = uris[k];
|
|
388
389
|
if (uri === last2) continue; // uniques only
|
|
389
390
|
last2 = uri;
|
|
390
|
-
|
|
391
|
+
var hostlabel = '';
|
|
391
392
|
lab2 = UI.utils.label(pred);
|
|
392
393
|
if (uris.length > 1) {
|
|
393
|
-
|
|
394
|
+
var l = uri.indexOf('//');
|
|
394
395
|
if (l > 0) {
|
|
395
|
-
|
|
396
|
-
|
|
396
|
+
var r = uri.indexOf('/', l + 2);
|
|
397
|
+
var r2 = uri.lastIndexOf('.', r);
|
|
397
398
|
if (r2 > 0) r = r2;
|
|
398
399
|
hostlabel = uri.slice(l + 2, r);
|
|
399
400
|
}
|
|
400
401
|
}
|
|
401
402
|
if (hostlabel) lab2 = hostlabel + ' ' + lab2; // disambiguate
|
|
402
|
-
|
|
403
|
-
|
|
403
|
+
var t = dom.createTextNode(lab2);
|
|
404
|
+
var a = dom.createElement('a');
|
|
404
405
|
a.appendChild(t);
|
|
405
406
|
a.setAttribute('href', uri);
|
|
406
|
-
|
|
407
|
+
var d = dom.createElement('div');
|
|
407
408
|
// d.className = 'social_linkButton'
|
|
408
409
|
d.style.cssText = 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;';
|
|
409
410
|
d.appendChild(a);
|
|
@@ -411,10 +412,10 @@ const socialPane = exports.socialPane = {
|
|
|
411
412
|
}
|
|
412
413
|
}
|
|
413
414
|
}
|
|
414
|
-
|
|
415
|
-
for (
|
|
416
|
-
|
|
417
|
-
|
|
415
|
+
var preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')];
|
|
416
|
+
for (var i2 = 0; i2 < preds2.length; i2++) {
|
|
417
|
+
var _pred2 = preds2[i2];
|
|
418
|
+
var sts2 = kb.statementsMatching(s, _pred2);
|
|
418
419
|
if (sts2.length === 0) {
|
|
419
420
|
// if (editable) say("No home page set. Use the blue + icon at the bottom of the main view to add information.")
|
|
420
421
|
} else {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socialPane.js","names":["UI","_interopRequireWildcard","require","_solidLogic","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","socialPane","exports","icon","icons","originalIconBase","name","label","subject","context","kb","session","store","types","findTypeURIs","ns","foaf","uri","vcard","render","s","dom","common","x","y","both","length","j","sameTerm","push","people","res","say","str","console","log","p","createElement","textContent","tips","appendChild","link","contents","a","setAttribute","text","createTextNode","buildCheckboxForm","lab","statement","state","input","tx","className","boxHandler","_e","checked","outliner","UserInput","sparqler","insert_statement","success","errorBody","alert","add","predicate","object","why","error","delete_statement","removeMany","addEventListener","oneFriend","friend","_confirmed","widgets","personTR","getOutliner","div","navBlockStyle","mainBlockStyle","foafPicStyle","structure","tr","left","middle","right","tools","style","cssText","mainTable","src","any","img","anyValue","h3","me","authn","currentUser","meUri","loginOutButton","login","loginStatusBox","webIdUri","sym","refreshTree","thisIsYou","sameThings","knows","familiar","friends","each","profile","editable","incoming","outgoing","works","undefined","message","whether","rdf","utils","escapeForXML","cme","canon","outgoingSt","statementsMatching","youAndThem","Statement","myFriends","mutualFriends","attachmentList","doc","modify","noun","_triageFriends","confirmed","unconfirmed","requests","found","cases","thisCase","htr","items","j9","sort","last","fr","j7","preds","i6","pred","sts","uris","j5","st","last2","lab2","k","hostlabel","l","indexOf","r2","lastIndexOf","slice","d","preds2","i2","sts2","appendPropertyTRs","_pred"],"sources":["../src/socialPane.js"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport * as UI from 'solid-ui'\nimport { authn } from 'solid-logic'\n\nexport const socialPane = {\n icon: UI.icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[UI.ns.foaf('Person').uri] ||\n types[UI.ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x, y) {\n // Find common members of two lists\n const both = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const people = function (n) {\n let res = ' '\n res += n || 'no'\n if (n === 1) return res + ' person'\n return res + ' people'\n }\n const say = function (str) {\n console.log(str)\n const p = dom.createElement('p')\n p.textContent = str\n tips.appendChild(p)\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str) {\n return dom.createTextNode(str)\n }\n\n const buildCheckboxForm = function (lab, statement, state) {\n const f = dom.createElement('form')\n const input = dom.createElement('input')\n f.appendChild(input)\n const tx = dom.createTextNode(lab)\n tx.className = 'question'\n f.appendChild(tx)\n input.setAttribute('type', 'checkbox')\n const boxHandler = function (_e) {\n tx.className = 'pendingedit'\n // alert('Should be greyed out')\n if (this.checked) {\n // Add link\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n null,\n 'Message',\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n })\n } catch (e) {\n UI.log.error('Data write fails:' + e)\n UI.log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n // Remove link\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n UI.log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n this.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n }\n })\n } catch (e) {\n UI.log.alert('Delete fails:' + e)\n this.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n const oneFriend = function (friend, _confirmed) {\n return UI.widgets.personTR(dom, UI.ns.foaf('knows'), friend, {})\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const div = dom.createElement('div')\n div.setAttribute('class', 'socialPane')\n const foaf = UI.ns.foaf\n const vcard = UI.ns.vcard\n\n // extracted from tabbedtab.css 2017-03-21\n const navBlockStyle =\n 'background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;'\n const mainBlockStyle =\n 'background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;'\n const foafPicStyle = ' width: 100% ; border: none; margin: 0; padding: 0;'\n\n const structure = div.appendChild(dom.createElement('table'))\n const tr = structure.appendChild(dom.createElement('tr'))\n const left = tr.appendChild(dom.createElement('td'))\n const middle = tr.appendChild(dom.createElement('td'))\n const right = tr.appendChild(dom.createElement('td'))\n\n const tools = left\n tools.style.cssText = navBlockStyle\n const mainTable = middle.appendChild(dom.createElement('table'))\n mainTable.style.cssText = mainBlockStyle\n const tips = right\n tips.style.cssText = navBlockStyle\n\n // Image top left\n const src = kb.any(s, foaf('img')) || kb.any(s, foaf('depiction'))\n if (src) {\n const img = dom.createElement('IMG')\n img.setAttribute('src', src.uri) // w640 h480\n // img.className = 'foafPic'\n img.style.cssText = foafPicStyle\n tools.appendChild(img)\n }\n const name = kb.anyValue(s, foaf('name')) || '???'\n let h3 = dom.createElement('H3')\n h3.appendChild(dom.createTextNode(name))\n\n let me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n // @@ Add: event handler to redraw the stuff below when me changes.\n const loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n me = kb.sym(webIdUri)\n // @@ To be written: redraw as a function the new me\n // @@ refresh the sidebars\n UI.widgets.refreshTree(div) // this refreshes the middle at least\n })\n\n tips.appendChild(loginOutButton)\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n\n // Do I have a public profile document?\n let profile = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming\n let outgoing\n if (me) {\n // The definition of FAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n UI.ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n editable = outliner.UserInput.sparqler.editable(works[i].uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n UI.utils.escapeForXML(works[i].uri) +\n '> is not remotely editable.'\n } else {\n profile = works[i]\n break\n }\n }\n }\n\n if (!profile) {\n say(\n message + \"\\nI couldn't find your editable personal profile document.\"\n )\n } else {\n say('Editing your profile ' + profile + '.')\n // Do I have an EDITABLE profile?\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('You and ' + familiar))\n tools.appendChild(h3)\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n\n const youAndThem = function () {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' and '))\n tr.appendChild(link(text(familiar), s.uri))\n }\n\n if (!incoming) {\n if (!outgoing) {\n youAndThem()\n tr.appendChild(text(' have not said you know each other.'))\n } else {\n tr.appendChild(link(text('You'), meUri))\n tr.appendChild(text(' know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' (unconfirmed)'))\n }\n } else {\n if (!outgoing) {\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text(' knows '))\n tr.appendChild(link(text('you'), meUri))\n tr.appendChild(text(' (unconfirmed).')) // @@\n tr.appendChild(text(' confirm you know '))\n tr.appendChild(link(text(familiar), s.uri))\n tr.appendChild(text('.'))\n } else {\n youAndThem()\n tr.appendChild(text(' say you know each other.'))\n }\n }\n\n if (editable) {\n const f = buildCheckboxForm(\n 'You know ' + familiar,\n new UI.rdf.Statement(me, knows, s, profile),\n outgoing\n )\n tools.appendChild(f)\n } // editable\n\n // //////////////// Mutual friends\n if (friends) {\n const myFriends = kb.each(me, foaf('knows'))\n if (myFriends.length) {\n const mutualFriends = common(friends, myFriends)\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n tr.appendChild(\n dom.createTextNode(\n 'You' +\n (familiar ? ' and ' + familiar : '') +\n ' know' +\n people(mutualFriends.length) +\n ' found in common'\n )\n )\n if (mutualFriends) {\n for (let i = 0; i < mutualFriends.length; i++) {\n tr.appendChild(\n dom.createTextNode(', ' + UI.utils.label(mutualFriends[i]))\n )\n }\n }\n }\n const tr = dom.createElement('tr')\n tools.appendChild(tr)\n } // friends\n } // About someone else\n } // me is defined\n // End of you and s\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n // List all x such that s knows x.\n UI.widgets.attachmentList(dom, s, mainTable, {\n doc: profile,\n modify: !!editable,\n predicate: foaf('knows'),\n noun: 'friend'\n })\n\n // Figure out which are reciprocated:\n // @@ Does not look up profiles\n // Does distinguish reciprocated from unreciprocated friendships\n //\n function _triageFriends (s) {\n outgoing = kb.each(s, foaf('knows'))\n incoming = kb.each(undefined, foaf('knows'), s) // @@ have to load the friends\n const confirmed = []\n const unconfirmed = []\n const requests = []\n\n for (let i = 0; i < outgoing.length; i++) {\n const friend = outgoing[i]\n let found = false\n for (let j = 0; j < incoming.length; j++) {\n if (incoming[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (found) confirmed.push(friend)\n else unconfirmed.push(friend)\n } // outgoing\n\n for (let i = 0; i < incoming.length; i++) {\n const friend = incoming[i]\n // var lab = UI.utils.label(friend)\n let found = false\n for (let j = 0; j < outgoing.length; j++) {\n if (outgoing[j].sameTerm(friend)) {\n found = true\n break\n }\n }\n if (!found) requests.push(friend)\n } // incoming\n\n const cases = [\n ['Acquaintances', outgoing],\n ['Mentioned as acquaintances by: ', requests]\n ]\n for (let i = 0; i < cases.length; i++) {\n const thisCase = cases[i]\n const friends = thisCase[1]\n if (friends.length === 0) continue // Skip empty sections (sure?)\n\n const h3 = dom.createElement('h3')\n h3.textContent = thisCase[0]\n const htr = dom.createElement('tr')\n htr.appendChild(h3)\n mainTable.appendChild(htr)\n\n const items = []\n for (let j9 = 0; j9 < friends.length; j9++) {\n items.push([UI.utils.label(friends[j9]), friends[j9]])\n }\n items.sort()\n let last = null\n let fr\n for (let j7 = 0; j7 < items.length; j7++) {\n fr = items[j7][1]\n if (fr.sameTerm(last)) continue // unique\n last = fr\n if (UI.utils.label(fr) !== '...') {\n // This check is to avoid bnodes with no labels attached\n // appearing in the friends list with \"...\" - Oshani\n mainTable.appendChild(oneFriend(fr))\n }\n }\n }\n }\n /* if ($rdf.keepThisCodeForLaterButDisableFerossConstantConditionPolice) {\n triageFriends(s)\n } */\n // //////////////////////////////////// Basic info on left\n\n h3 = dom.createElement('h3')\n h3.appendChild(dom.createTextNode('Basic Information'))\n tools.appendChild(h3)\n\n // For each home page like thing make a label which will\n // make sense and add the domain (like \"w3.org blog\") if there are more than one of the same type\n //\n const preds = [\n UI.ns.foaf('homepage'),\n UI.ns.foaf('weblog'),\n UI.ns.foaf('workplaceHomepage'),\n UI.ns.foaf('schoolHomepage')\n ]\n for (let i6 = 0; i6 < preds.length; i6++) {\n const pred = preds[i6]\n const sts = kb.statementsMatching(s, pred)\n if (sts.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n const uris = []\n for (let j5 = 0; j5 < sts.length; j5++) {\n const st = sts[j5]\n if (st.object.uri) uris.push(st.object.uri) // Ignore if not symbol\n }\n uris.sort()\n let last2 = ''\n let lab2\n for (let k = 0; k < uris.length; k++) {\n const uri = uris[k]\n if (uri === last2) continue // uniques only\n last2 = uri\n let hostlabel = ''\n lab2 = UI.utils.label(pred)\n if (uris.length > 1) {\n const l = uri.indexOf('//')\n if (l > 0) {\n let r = uri.indexOf('/', l + 2)\n const r2 = uri.lastIndexOf('.', r)\n if (r2 > 0) r = r2\n hostlabel = uri.slice(l + 2, r)\n }\n }\n if (hostlabel) lab2 = hostlabel + ' ' + lab2 // disambiguate\n const t = dom.createTextNode(lab2)\n const a = dom.createElement('a')\n a.appendChild(t)\n a.setAttribute('href', uri)\n const d = dom.createElement('div')\n // d.className = 'social_linkButton'\n d.style.cssText =\n 'width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;'\n d.appendChild(a)\n tools.appendChild(d)\n }\n }\n }\n\n const preds2 = [UI.ns.foaf('openid'), UI.ns.foaf('nick')]\n for (let i2 = 0; i2 < preds2.length; i2++) {\n const pred = preds2[i2]\n const sts2 = kb.statementsMatching(s, pred)\n if (sts2.length === 0) {\n // if (editable) say(\"No home page set. Use the blue + icon at the bottom of the main view to add information.\")\n } else {\n outliner.appendPropertyTRs(tools, sts2, false, function (_pred) {\n return true\n })\n }\n }\n\n return div\n } // render()\n} //\n// ends\n"],"mappings":"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","ignoreList":[]}
|