solid-panes 3.7.3 → 4.0.0-2fdba5cd
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 +59 -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 +147 -0
- package/dist/dashboard/basicPreferences.js.map +1 -0
- package/{lib → dist}/dashboard/dashboardPane.js +17 -21
- package/dist/dashboard/dashboardPane.js.map +1 -0
- package/dist/dashboard/homepage.js +54 -0
- package/dist/dashboard/homepage.js.map +1 -0
- package/{lib → dist}/dataContentPane.js +64 -63
- package/dist/dataContentPane.js.map +1 -0
- package/{lib → dist}/defaultPane.js +15 -16
- 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 +73 -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/{lib → dist}/index.js +17 -20
- package/dist/index.js.map +1 -0
- package/{lib → dist}/internal/internalPane.js +41 -41
- package/dist/internal/internalPane.js.map +1 -0
- package/{lib → dist}/mainPage/footer.js +2 -2
- package/{lib → dist}/mainPage/footer.js.map +1 -1
- package/dist/mainPage/header.js +86 -0
- package/dist/mainPage/header.js.map +1 -0
- package/{lib → dist}/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.js +25 -0
- package/dist/mainPage/index.js.map +1 -0
- package/{lib → dist}/microblogPane/microblogPane.js +270 -270
- package/dist/microblogPane/microblogPane.js.map +1 -0
- package/dist/n3Pane.js +57 -0
- package/dist/n3Pane.js.map +1 -0
- package/{lib → dist}/outline/context.js +4 -4
- package/{lib → dist}/outline/context.js.map +1 -1
- 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/{lib → dist}/outline/propertyViews.js +4 -4
- package/dist/outline/propertyViews.js.map +1 -0
- package/{lib → dist}/outline/queryByExample.js +33 -33
- package/dist/outline/queryByExample.js.map +1 -0
- package/{lib → dist}/outline/userInput.js +268 -266
- package/dist/outline/userInput.js.map +1 -0
- package/dist/outline/viewAsImage.js +15 -0
- package/dist/outline/viewAsImage.js.map +1 -0
- package/dist/outline/viewAsMbox.js +22 -0
- package/dist/outline/viewAsMbox.js.map +1 -0
- package/{lib → dist}/pad/padPane.js +90 -96
- 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/{lib → dist}/schedule/schedulePane.js +171 -178
- package/dist/schedule/schedulePane.js.map +1 -0
- package/{lib → dist}/sharing/sharingPane.js +12 -12
- 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 +142 -142
- package/dist/socialPane.js.map +1 -0
- package/dist/tabbed/tabbedPane.js +58 -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 +146 -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 +56 -0
- package/dist/trustedApplications/trustedApplications.view.js.map +1 -0
- package/{lib → dist}/ui/pane.js +30 -31
- package/dist/ui/pane.js.map +1 -0
- package/dist/versionInfo.js +37 -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 +47 -41
- 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.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.map +0 -1
- package/lib/internal/internalPane.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/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.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 +0 -23
- package/lib/outline/viewAsMbox.js.map +0 -1
- 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/formsForSchedule.js.map +0 -1
- package/lib/schedule/schedulePane.js.map +0 -1
- 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.d.ts +0 -30
- package/lib/types.d.ts.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.js +0 -117
- package/src/schedule/formsForSchedule.ttl +0 -115
- package/src/schedule/schedulePane.js +0 -1201
- package/src/sharing/sharingPane.ts +0 -49
- package/src/slideshow/slideshowPane.js +0 -80
- package/src/socialPane.js +0 -523
- package/src/style/tabbedtab.css +0 -1347
- package/src/tabbed/tabbedPane.ts +0 -60
- package/src/tableViewPane.js +0 -51
- package/src/test-import-export/common.js +0 -6
- package/src/test-import-export/edit-importer.js +0 -20
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +0 -629
- package/src/transaction/period.js +0 -374
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +0 -176
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -176
- package/src/trustedApplications/trustedApplications.dom.ts +0 -276
- package/src/trustedApplications/trustedApplications.test.ts +0 -82
- package/src/trustedApplications/trustedApplications.utils.ts +0 -51
- package/src/trustedApplications/trustedApplications.view.ts +0 -80
- package/src/types.ts +0 -34
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +0 -226
- package/src/versionInfo.ts +0 -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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microblogPane.js","names":["_solidLogic","require","UI","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","icon","icons","originalIconBase","name","label","subject","store","whether","ns","rdf","foaf","render","s","doc","SIOC","Namespace","SIOCt","FOAF","terms","RDF","kb","charCount","sf","fetcher","sparqlUpdater","updater","FollowList","user","userlist","uris","myFollows","each","sym","mf","add","any","uri","prototype","push","selectUser","length","Favorites","favorites","favoritesURI","split","created","c","favs","favorited","post","callback","batch","Statement","insert_statement","a","success","predicate","object","why","remove","delete_statement","Microblog","theUser","authn","currentUser","theAccount","preferences","getUser","User","avatar","id","getPost","Post","postLink","Date","anyValue","h","getHours","m","getMinutes","mo","da","ds","getDay","getDate","getMonth","getFullYear","date","mentions","message","String","creator","gen_random_uri","base","uriNonce","Math","floor","random","statusUpdate","statusMsg","replyTo","meta","myUserURI","getMyURI","myUser","newPost","microlist","micro","microlistelement","recipients","mblogs","mbl","replyBatch","b","me","console","log","myMicroblog","generateNewMB","loc","host","rememberMicroblog","cbgenUserMB","d","alert","triple","genUserMB","mb","myFavorites","myFollowList","Pane","microblogPane","TabManager","tablist","tabView","createElement","className","create","caption","view","isDefault","tab","innerHTML","change","addEventListener","evt","target","appendChild","getTabView","getElementById","replace","accounts","account","Ifollow","resourceType","thisIsMe","meUri","Tab","notify","messageString","xmsg","setTimeout","removeChild","header","that","lsFollowUser","username","mbconfirmFollow","_msg","followMe","removeMany","xfollowButton","disabled","followButtonLabel","doFollow","value","mbCancelNewMB","_evt","xupdateContainer","childNodes","xcreateNewMB","lsCreateNewMB","xcmb","xcmbName","xcmbId","xcmbAvatar","workspace","xcmbWritable","focus","mbSubmitPost","cbconfirmSubmit","responseText","xupdateSubmit","xupdateStatus","mbLetterCount","insertBefore","generatePost","words","mbUpdateWithReplies","xinReplyToContainer","_loop","word","match","atUser","recipient","xrecipients","xrecipientsSubmit","type","parentNode","recipChoice","recip","choice","v","toLowerCase","_ret","xupdateStatusCounter","style","color","xviewReply","headerContainer","xnotify","createTextNode","cols","xnewUser","subheaderContainer","creators","src","userName","setAttribute","xtabsList","_me","viewPost","xcloseContainer","xcloseButton","xpost","uholdsaccount","undefined","xuname","href","xunameText","xuavatar","xpostContent","postText","xpostLink","tags","mention","lookUpThing","postTags","postFunction","p","pop","person","replacePerson","RegExp","inReplyTo","xreplyTo","theReply","reply","genReplyTo","mbReplyTo","xconfirmDeletionDialog","mbDeletePost","lsconfirmNo","lsconfirmYes","reallyDelete","keyCode","confirmyes","confirmno","mbconfirmDeletePost","deleteThisNode","deleteMe","deleteContainerOf","deleteContainer","statementsMatching","getAttribute","batch_delete_statement","themaker","xreplyButton","xdeleteButton","mbFavorite","nid","favpost","xfavorite","cbFavorite","_c","_d","generatePostList","gmbPosts","postList","postlist","datelist","postDate","sort","reverse","followsView","getFollowed","userid","follow","fol","xfollows","creatorFollows","xfollowsList","thisPerson","streamView","postContainer","mbPosts","follows","smicroblogs","smb","concat","notificationsView","postNotificationContainer","postMentionContainer","mbnPosts","mbmPosts","microblogs","mbm","postNotificationList","postMentionList","build","microblogpane","ppane"],"sources":["../../src/microblogPane/microblogPane.js"],"sourcesContent":["/*\n Microblog pane\n Charles McKenzie <charles2@mit.edu>\n*/\n/* global alert */\nimport { authn, store } from 'solid-logic'\nimport * as UI from 'solid-ui'\n\nexport default {\n icon: UI.icons.originalIconBase + 'microblog/microblog.png',\n name: 'microblogPane',\n label: function (subject) {\n if (store.whether(subject, UI.ns.rdf('type'), UI.ns.foaf('Person'))) {\n return 'Microblog'\n } else {\n return null\n }\n },\n render: function (s, doc) {\n //* **********************************************\n // NAMESPACES SECTION\n //* **********************************************\n const SIOC = UI.rdf.Namespace('http://rdfs.org/sioc/ns#')\n const SIOCt = UI.rdf.Namespace('http://rdfs.org/sioc/types#')\n const FOAF = UI.rdf.Namespace('http://xmlns.com/foaf/0.1/')\n const terms = UI.rdf.Namespace('http://purl.org/dc/terms/')\n const RDF = UI.ns.rdf\n\n const kb = store\n const charCount = 140\n const sf = store.fetcher\n //* **********************************************\n // BACK END\n //* **********************************************\n const sparqlUpdater = kb.updater\n // ----------------------------------------------\n // FOLLOW LIST\n // store the URIs of followed users for\n // dereferencing the @replies\n // ----------------------------------------------\n const FollowList = function (user) {\n this.userlist = {}\n this.uris = {}\n const myFollows = kb.each(kb.sym(user), SIOC('follows'))\n for (const mf in myFollows) {\n this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri)\n }\n }\n FollowList.prototype.add = function (user, uri) {\n // add a user to the follows store\n if (this.userlist[user]) {\n if (!(uri in this.uris)) {\n this.userlist[user].push(uri)\n this.uris[uri] = ''\n }\n } else {\n this.userlist[user] = [uri]\n }\n }\n FollowList.prototype.selectUser = function (user) {\n // check if a user is in the follows list.\n if (this.userlist[user]) {\n return [this.userlist[user].length === 1, this.userlist[user]]\n } else {\n // user does not follow any users with this nick\n return [false, []]\n }\n }\n // ----------------------------------------------\n // FAVORITES\n // controls the list of favorites.\n // constructor expects a user as uri.\n // ----------------------------------------------\n const Favorites = function (user) {\n this.favorites = {}\n this.favoritesURI = ''\n if (!user) {\n // TODO is this even useful?\n return\n }\n this.user = user.split('#')[0]\n const created = kb.each(kb.sym(user), SIOC('creator_of'))\n for (const c in created) {\n if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {\n this.favoritesURI = created[c]\n const favs = kb.each(created[c], SIOC('container_of'))\n for (const f in favs) {\n this.favorites[favs[f]] = ''\n }\n break\n }\n }\n }\n Favorites.prototype.favorited = function (post) {\n /* Favorited- returns true if the post is a favorite\n false otherwise */\n return kb.sym(post) in this.favorites\n }\n Favorites.prototype.add = function (post, callback) {\n const batch = new UI.rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.insert_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n Favorites.prototype.remove = function (post, callback) {\n const batch = new UI.rdf.Statement(\n this.favoritesURI,\n SIOC('container_of'),\n kb.sym(post),\n kb.sym(this.user)\n )\n sparqlUpdater.delete_statement(batch, function (a, success, c) {\n if (success) {\n kb.add(batch.subject, batch.predicate, batch.object, batch.why)\n }\n callback(a, success, c)\n })\n }\n // ----------------------------------------------\n // MICROBLOG\n // store the uri's of followed users for\n // dereferencing the @replies.\n // ----------------------------------------------\n const Microblog = function (kb) {\n this.kb = kb\n\n // attempt to fetch user account from local preferences if just\n // in case the user's foaf was not writable. add it to the store\n // this will probably need to change.\n const theUser = authn.currentUser()\n\n if (theUser) {\n let theAccount = UI.preferences.get('acct')\n\n if (theAccount) {\n theAccount = kb.sym(theAccount)\n }\n\n if (theUser && theAccount) {\n kb.add(\n theUser,\n FOAF('holdsAccount'),\n theAccount,\n theUser.uri.split('#')[0]\n )\n }\n }\n }\n Microblog.prototype.getUser = function (uri) {\n const User = {}\n User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : ''\n User.avatar = kb.any(uri, SIOC('avatar'))\n ? kb.any(uri, SIOC('avatar'))\n : ''\n User.id = kb.any(uri, SIOC('id'))\n User.sym = uri\n return User\n }\n\n Microblog.prototype.getPost = function (uri) {\n const Post = {}\n // date ----------\n let postLink = new Date(kb.anyValue(uri, terms('created')))\n let h = postLink.getHours()\n const a = h > 12 ? ' PM' : ' AM'\n h = h > 12 ? h - 12 : h\n let m = postLink.getMinutes()\n m = m < 10 ? '0' + m : m\n const mo = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ]\n const da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n const ds =\n da[postLink.getDay()] +\n ' ' +\n postLink.getDate() +\n ' ' +\n mo[postLink.getMonth()] +\n ' ' +\n postLink.getFullYear()\n postLink = h + ':' + m + a + ' on ' + ds\n Post.date = postLink\n // ---------\n Post.mentions = ''\n Post.message = String(kb.any(uri, SIOC('content')))\n Post.creator = kb.any(uri, SIOC('has_creator'))\n Post.uri = ''\n return Post\n }\n Microblog.prototype.gen_random_uri = function (base) {\n // generate random uri\n const uriNonce = base + '#n' + Math.floor(Math.random() * 10e9)\n return kb.sym(uriNonce)\n }\n Microblog.prototype.statusUpdate = function (\n statusMsg,\n callback,\n replyTo,\n meta\n ) {\n const myUserURI = this.getMyURI()\n const myUser = kb.sym(myUserURI.split('#')[0])\n const newPost = this.gen_random_uri(myUser.uri)\n const microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'))\n let micro\n for (const microlistelement in microlist) {\n if (\n kb.whether(\n microlist[microlistelement],\n RDF('type'),\n SIOCt('Microblog')\n ) &&\n !kb.whether(\n microlist[microlistelement],\n SIOC('topic'),\n kb.sym(this.getMyURI())\n )\n ) {\n micro = microlist[microlistelement]\n break\n }\n }\n\n // generate new post\n const batch = [\n new UI.rdf.Statement(\n newPost,\n RDF('type'),\n SIOCt('MicroblogPost'),\n myUser\n ),\n new UI.rdf.Statement(\n newPost,\n SIOC('has_creator'),\n kb.sym(myUserURI),\n myUser\n ),\n new UI.rdf.Statement(newPost, SIOC('content'), statusMsg, myUser),\n new UI.rdf.Statement(newPost, terms('created'), new Date(), myUser),\n new UI.rdf.Statement(micro, SIOC('container_of'), newPost, myUser)\n ]\n\n // message replies\n if (replyTo) {\n batch.push(\n new UI.rdf.Statement(\n newPost,\n SIOC('reply_of'),\n kb.sym(replyTo),\n myUser\n )\n )\n }\n\n // @replies, #hashtags, !groupReplies\n for (const r in meta.recipients) {\n batch.push(\n new UI.rdf.Statement(\n newPost,\n SIOC('topic'),\n kb.sym(meta.recipients[r]),\n myUser\n )\n )\n batch.push(\n new UI.rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser)\n )\n const mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'))\n for (const mbl in mblogs) {\n if (\n kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))\n ) {\n const replyBatch = new UI.rdf.Statement(\n mblogs[mbl],\n SIOC('container_of'),\n newPost,\n kb.sym(meta.recipients[r].split('#')[0])\n )\n sparqlUpdater.insert_statement(replyBatch)\n }\n }\n }\n\n sparqlUpdater.insert_statement(batch, function (a, b, c) {\n callback(a, b, c, batch)\n })\n }\n Microblog.prototype.getMyURI = function () {\n const me = authn.currentUser()\n console.log(me)\n const myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'))\n console.log('\\n\\n' + myMicroblog)\n return myMicroblog ? myMicroblog.uri : false\n }\n Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {\n const host = loc + '/' + id\n const rememberMicroblog = function () {\n UI.preferences.set('acct', host + '#' + id)\n }\n const cbgenUserMB = function (a, success, c, d) {\n if (success) {\n alert(\n 'Microblog generated at ' +\n host +\n '#' +\n id +\n 'please add <b>' +\n host +\n '</b> to your foaf.'\n )\n // mbCancelNewMB() @@TBD\n // assume the foaf is not writable and store the microblog to the\n // preferences for later retrieval.\n // this will probably need to change.\n rememberMicroblog()\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n }\n }\n\n const genUserMB = [\n // user\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('type'),\n SIOC('User'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mb'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#mbn'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('creator_of'),\n kb.sym(host + '#fav'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('name'),\n name,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('id'),\n id,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n RDF('label'),\n id,\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n s,\n FOAF('holdsAccount'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // microblog\n new UI.rdf.Statement(\n kb.sym(host + '#mb'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mb'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // notification microblog\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n RDF('type'),\n SIOCt('Microblog'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('topic'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#mbn'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n ),\n // favorites container\n new UI.rdf.Statement(\n kb.sym(host + '#fav'),\n RDF('type'),\n SIOCt('FavouriteThings'),\n kb.sym(host)\n ),\n new UI.rdf.Statement(\n kb.sym(host + '#fav'),\n SIOC('has_creator'),\n kb.sym(host + '#' + id),\n kb.sym(host)\n )\n ]\n if (avatar) {\n // avatar optional\n genUserMB.push(\n new UI.rdf.Statement(\n kb.sym(host + '#' + id),\n SIOC('avatar'),\n kb.sym(avatar),\n kb.sym(host)\n )\n )\n }\n sparqlUpdater.insert_statement(genUserMB, cbgenUserMB)\n }\n const mb = new Microblog(kb)\n const myFavorites = new Favorites(mb.getMyURI())\n const myFollowList = new FollowList(mb.getMyURI())\n\n //* **********************************************\n // FRONT END FUNCTIONALITY\n //* **********************************************\n // ----------------------------------------------\n // PANE\n // User Interface for the Microblog Pane\n // ----------------------------------------------\n const Pane = function (s, doc, microblogPane) {\n const TabManager = function (doc) {\n this.tablist = {}\n this.doc = doc\n this.tabView = doc.createElement('ul')\n this.tabView.className = 'tabslist'\n }\n TabManager.prototype.create = function (id, caption, view, isDefault) {\n const tab = this.doc.createElement('li')\n tab.innerHTML = caption\n if (isDefault) {\n tab.className = 'active'\n }\n tab.id = id\n const change = this.change\n const tablist = this.tablist\n tab.addEventListener(\n 'click',\n function (evt) {\n change(evt.target.id, tablist, doc)\n },\n false\n )\n\n this.tablist[id] = { view: view.id, tab: tab }\n this.tabView.appendChild(tab)\n }\n TabManager.prototype.getTabView = function () {\n return this.tabView\n }\n TabManager.prototype.change = function (id, tablist, doc) {\n for (const tab in tablist) {\n if (tab === id) {\n tablist[id].tab.className = 'active'\n doc.getElementById(tablist[id].view).className += ' active'\n } else {\n const view = doc.getElementById(tablist[tab].view)\n view.className = view.className.replace(/\\w*active\\w*/, '')\n tablist[tab].tab.className = tablist[id].tab.className.replace(\n /\\w*active\\w*/,\n ''\n )\n }\n }\n }\n this.microblogPane = microblogPane\n const accounts = kb.each(s, FOAF('holdsAccount'))\n let account\n for (const a in accounts) {\n if (\n kb.whether(accounts[a], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(accounts[a], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n account = accounts[a]\n break\n }\n }\n this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account)\n const resourceType = kb.any(s, RDF('type'))\n if (\n resourceType.uri === SIOCt('Microblog').uri ||\n resourceType.uri === SIOCt('MicroblogPost').uri\n ) {\n this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI()\n } else if (resourceType.uri === SIOC('User').uri) {\n this.thisIsMe = s.uri === mb.getMyURI()\n } else if (resourceType.uri === FOAF('Person').uri) {\n const me = authn.currentUser()\n const meUri = me && me.uri\n this.thisIsMe = s.uri === meUri\n } else {\n this.thisIsMe = false\n }\n\n this.Tab = new TabManager(doc)\n }\n\n Pane.prototype.notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n\n Pane.prototype.header = function (s, doc) {\n const that = this\n function lsFollowUser () {\n const myUser = kb.sym(mb.getMyURI())\n // var Ifollow = that.Ifollow\n const username = that.creator.name\n const mbconfirmFollow = function (uri, success, _msg) {\n if (success === true) {\n if (!that.Ifollow) {\n // prevent duplicate entries from being added to kb (because that was happening)\n if (\n !kb.whether(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n ) {\n kb.add(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n } else {\n kb.removeMany(\n followMe.subject,\n followMe.predicate,\n followMe.object,\n followMe.why\n )\n }\n console.log(that.Ifollow)\n that.Ifollow = !that.Ifollow\n xfollowButton.disabled = false\n console.log(that.Ifollow)\n const followButtonLabel = that.Ifollow ? 'Unfollow ' : 'Follow '\n const doFollow = that.Ifollow ? 'now follow ' : 'no longer follow '\n xfollowButton.value = followButtonLabel + username\n that.notify('You ' + doFollow + username + '.')\n }\n }\n const followMe = new UI.rdf.Statement(\n myUser,\n SIOC('follows'),\n that.creator.sym,\n myUser\n )\n xfollowButton.disabled = true\n xfollowButton.value = 'Updating...'\n if (!that.Ifollow) {\n sparqlUpdater.insert_statement(followMe, mbconfirmFollow)\n } else {\n sparqlUpdater.delete_statement(followMe, mbconfirmFollow)\n }\n }\n const notify = function (messageString) {\n const xmsg = doc.createElement('li')\n xmsg.className = 'notify'\n xmsg.innerHTML = messageString\n doc.getElementById('notify-container').appendChild(xmsg)\n setTimeout(function () {\n doc.getElementById('notify-container').removeChild(xmsg)\n // delete xmsg;\n }, 4000)\n }\n const mbCancelNewMB = function (_evt) {\n xupdateContainer.removeChild(\n xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]\n )\n xcreateNewMB.disabled = false\n }\n const lsCreateNewMB = function (_evt) {\n // disable the create new microblog button.\n // then prefills the information.\n xcreateNewMB.disabled = true\n const xcmb = doc.createElement('div')\n const xcmbName = doc.createElement('input')\n if (kb.whether(s, FOAF('name'))) {\n // handle use of FOAF:NAME\n xcmbName.value = kb.any(s, FOAF('name'))\n } else {\n // handle use of family and given name\n xcmbName.value = kb.any(s, FOAF('givenname'))\n ? kb.any(s, FOAF('givenname')) + ' '\n : ''\n xcmbName.value += kb.any(s, FOAF('family_name'))\n ? kb.any(s, FOAF('givenname'))\n : ''\n xcmbName.value =\n kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'))\n }\n const xcmbId = doc.createElement('input')\n xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : ''\n const xcmbAvatar = doc.createElement('input')\n if (kb.whether(s, FOAF('img'))) {\n // handle use of img\n xcmbAvatar.value = kb.any(s, FOAF('img')).uri\n } else {\n // otherwise try depiction\n xcmbAvatar.value = kb.any(s, FOAF('depiction'))\n ? kb.any(s, FOAF('depiction')).uri\n : ''\n }\n let workspace\n // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION\n const xcmbWritable = doc.createElement('input')\n xcmbWritable.value =\n workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox' // @@@\n xcmb.innerHTML = `\n <form class =\"createNewMB\" id=\"createNewMB\">\n <p id=\"xcmbname\"><span class=\"\">Name: </span></p>\n <p id=\"xcmbid\">Id: </p>\n <p id=\"xcmbavatar\">Avatar: </p>\n <p id=\"xcmbwritable\">Host my microblog at: </p>\n <input type=\"button\" id=\"mbCancel\" value=\"Cancel\" />\n <input type=\"submit\" id=\"mbCreate\" value=\"Create!\" />\n </form>\n `\n xupdateContainer.appendChild(xcmb)\n doc.getElementById('xcmbname').appendChild(xcmbName)\n doc.getElementById('xcmbid').appendChild(xcmbId)\n doc.getElementById('xcmbavatar').appendChild(xcmbAvatar)\n doc.getElementById('xcmbwritable').appendChild(xcmbWritable)\n doc\n .getElementById('mbCancel')\n .addEventListener('click', mbCancelNewMB, false)\n doc.getElementById('createNewMB').addEventListener(\n 'submit',\n function () {\n mb.generateNewMB(\n xcmbId.value,\n xcmbName.value,\n xcmbAvatar.value,\n xcmbWritable.value\n )\n },\n false\n )\n xcmbName.focus()\n }\n const mbSubmitPost = function () {\n const meta = {\n recipients: []\n }\n // user has selected a microblog to post to\n if (mb.getMyURI()) {\n // let myUser = kb.sym(mb.getMyURI())\n // submission callback\n const cbconfirmSubmit = function (uri, success, responseText, d) {\n if (success === true) {\n for (const triple in d) {\n kb.add(\n d[triple].subject,\n d[triple].predicate,\n d[triple].object,\n d[triple].why\n )\n }\n xupdateSubmit.disabled = false\n xupdateStatus.value = ''\n mbLetterCount()\n notify('Microblog Updated.')\n if (that.thisIsMe) {\n doc\n .getElementById('postNotificationList')\n .insertBefore(\n that.generatePost(d[0].subject),\n doc.getElementById('postNotificationList').childNodes[0]\n )\n }\n } else {\n notify('There was a problem submitting your post.')\n }\n }\n const words = xupdateStatus.value.split(' ')\n const mbUpdateWithReplies = function () {\n xupdateSubmit.disabled = true\n xupdateSubmit.value = 'Updating...'\n mb.statusUpdate(\n xupdateStatus.value,\n cbconfirmSubmit,\n xinReplyToContainer.value,\n meta\n )\n }\n for (const word in words) {\n if (words[word].match(/@\\w+/)) {\n const atUser = words[word].replace(/\\W/g, '')\n const recipient = myFollowList.selectUser(atUser)\n if (recipient[0] === true) {\n meta.recipients.push(recipient[1][0])\n } else if (recipient[1].length > 1) {\n // if multiple users allow the user to choose\n const xrecipients = doc.createElement('select')\n const xrecipientsSubmit = doc.createElement('input')\n xrecipientsSubmit.type = 'button'\n xrecipientsSubmit.value = 'Continue'\n xrecipientsSubmit.addEventListener(\n 'click',\n function () {\n meta.recipients.push(recipient[1][xrecipients.value])\n mbUpdateWithReplies()\n xrecipients.parentNode.removeChild(xrecipientsSubmit)\n xrecipients.parentNode.removeChild(xrecipients)\n },\n false\n )\n const recipChoice = function (recip, c) {\n const name = kb.any(kb.sym(recip), SIOC('name'))\n const choice = doc.createElement('option')\n choice.value = c\n choice.innerHTML = name\n return choice\n }\n for (const r in recipient[1]) {\n xrecipients.appendChild(recipChoice(recipient[1][r], r))\n }\n xupdateContainer.appendChild(xrecipients)\n xupdateContainer.appendChild(xrecipientsSubmit)\n return\n } else {\n // no users known or self reference.\n if (\n String(\n kb.any(kb.sym(mb.getMyURI()), SIOC('id'))\n ).toLowerCase() === atUser.toLowerCase()\n ) {\n meta.recipients.push(mb.getMyURI())\n } else {\n notify(\n 'You do not follow ' +\n atUser +\n '. Try following ' +\n atUser +\n ' before mentioning them.'\n )\n return\n }\n }\n }\n /* else if(words[word].match(/\\#\\w+/)){\n //hashtag\n } else if(words[word].match(/\\!\\w+/)){\n //usergroup\n } */\n }\n mbUpdateWithReplies()\n } else {\n notify('Please set your microblog first.')\n }\n }\n const mbLetterCount = function () {\n xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length\n xupdateStatusCounter.style.color =\n charCount - xupdateStatus.value.length < 0 ? '#c33' : ''\n if (xupdateStatus.value.length === 0) {\n xinReplyToContainer.value = ''\n xupdateSubmit.value = 'Send'\n }\n }\n // reply viewer\n const xviewReply = doc.createElement('ul')\n xviewReply.className = 'replyView'\n xviewReply.addEventListener(\n 'click',\n function () {\n xviewReply.className = 'replyView'\n },\n false\n )\n this.xviewReply = xviewReply\n const headerContainer = doc.createElement('div')\n headerContainer.className = 'header-container'\n\n // ---create status update box---\n const xnotify = doc.createElement('ul')\n xnotify.id = 'notify-container'\n xnotify.className = 'notify-container'\n this.xnotify = xnotify\n const xupdateContainer = doc.createElement('form')\n xupdateContainer.className = 'update-container'\n xupdateContainer.innerHTML = '<h3>What are you up to?</h3>'\n let xinReplyToContainer\n let xupdateStatus\n let xupdateStatusCounter\n let xupdateSubmit\n let xcreateNewMB\n if (mb.getMyURI()) {\n xinReplyToContainer = doc.createElement('input')\n xinReplyToContainer.id = 'xinReplyToContainer'\n xinReplyToContainer.type = 'hidden'\n\n xupdateStatus = doc.createElement('textarea')\n xupdateStatus.id = 'xupdateStatus'\n\n xupdateStatusCounter = doc.createElement('span')\n xupdateStatusCounter.appendChild(doc.createTextNode(charCount))\n xupdateStatus.cols = 30\n xupdateStatus.addEventListener('keyup', mbLetterCount, false)\n xupdateStatus.addEventListener('focus', mbLetterCount, false)\n\n xupdateSubmit = doc.createElement('input')\n xupdateSubmit.id = 'xupdateSubmit'\n xupdateSubmit.type = 'submit'\n xupdateSubmit.value = 'Send'\n\n xupdateContainer.appendChild(xinReplyToContainer)\n xupdateContainer.appendChild(xupdateStatusCounter)\n xupdateContainer.appendChild(xupdateStatus)\n xupdateContainer.appendChild(xupdateSubmit)\n xupdateContainer.addEventListener('submit', mbSubmitPost, false)\n } else {\n const xnewUser = doc.createTextNode(\n \"Hi, it looks like you don't have a microblog, \" +\n ' would you like to create one? '\n )\n xcreateNewMB = doc.createElement('input')\n xcreateNewMB.type = 'button'\n xcreateNewMB.value = 'Create a new Microblog'\n xcreateNewMB.addEventListener('click', lsCreateNewMB, false)\n xupdateContainer.appendChild(xnewUser)\n xupdateContainer.appendChild(xcreateNewMB)\n }\n\n headerContainer.appendChild(xupdateContainer)\n\n const subheaderContainer = doc.createElement('div')\n subheaderContainer.className = 'subheader-container'\n\n // user header\n // this.creator\n const creators = kb.each(s, FOAF('holdsAccount'))\n let creator\n for (const c in creators) {\n if (\n kb.whether(creators[c], RDF('type'), SIOC('User')) &&\n kb.whether(\n kb.any(creators[c], SIOC('creator_of')),\n RDF('type'),\n SIOCt('Microblog')\n )\n ) {\n creator = creators[c]\n // var mb = kb.sym(creator.uri.split(\"#\")[0]);\n // store.fetcher.refresh(mb);\n break\n // TODO add support for more than one microblog in same foaf\n }\n }\n let xfollowButton\n if (creator) {\n this.creator = mb.getUser(creator)\n // ---display avatar, if available ---\n if (this.creator.avatar !== '') {\n const avatar = doc.createElement('img')\n avatar.src = this.creator.avatar.uri\n subheaderContainer.appendChild(avatar)\n }\n // ---generate name ---\n const userName = doc.createElement('h1')\n userName.className = 'fn'\n userName.appendChild(\n doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')')\n )\n subheaderContainer.appendChild(userName)\n // ---display follow button---\n if (!this.thisIsMe && mb.getMyURI()) {\n xfollowButton = doc.createElement('input')\n xfollowButton.setAttribute('type', 'button')\n const followButtonLabel = this.Ifollow ? 'Unfollow ' : 'Follow '\n xfollowButton.value = followButtonLabel + this.creator.name\n xfollowButton.addEventListener('click', lsFollowUser, false)\n subheaderContainer.appendChild(xfollowButton)\n }\n // user header end\n // header tabs\n const xtabsList = this.Tab.getTabView()\n headerContainer.appendChild(subheaderContainer)\n headerContainer.appendChild(xtabsList)\n }\n return headerContainer\n }\n Pane.prototype.generatePost = function (post, _me) {\n /*\n generatePost - Creates and formats microblog posts\n post - symbol of the uri the post in question\n */\n const that = this\n const viewPost = function (uris) {\n const xviewReply = that.xviewReply\n for (let i = 0; i < xviewReply.childNodes.length; i++) {\n xviewReply.removeChild(xviewReply.childNodes[0])\n }\n const xcloseContainer = doc.createElement('li')\n xcloseContainer.className = 'closeContainer'\n const xcloseButton = doc.createElement('span')\n xcloseButton.innerHTML = '×'\n xcloseButton.className = 'closeButton'\n xcloseContainer.appendChild(xcloseButton)\n xviewReply.appendChild(xcloseContainer)\n for (const uri in uris) {\n xviewReply.appendChild(\n that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view')\n )\n }\n xviewReply.className = 'replyView-active'\n that.microblogPane.appendChild(xviewReply)\n }\n // container for post\n const xpost = doc.createElement('li')\n xpost.className = 'post'\n xpost.setAttribute('id', String(post.uri).split('#')[1])\n const Post = mb.getPost(post)\n // username text\n // var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))\n const uholdsaccount = kb.any(\n undefined,\n FOAF('holdsAccount'),\n kb.any(post, SIOC('has_creator'))\n )\n const xuname = doc.createElement('a')\n xuname.href = uholdsaccount.uri\n xuname.className = 'userLink'\n const xunameText = doc.createTextNode(mb.getUser(Post.creator).id)\n xuname.appendChild(xunameText)\n // user image\n const xuavatar = doc.createElement('img')\n xuavatar.src = mb.getUser(Post.creator).avatar.uri\n xuavatar.className = 'postAvatar'\n // post content\n const xpostContent = doc.createElement('blockquote')\n let postText = Post.message\n // post date\n const xpostLink = doc.createElement('a')\n xpostLink.className = 'postLink'\n xpostLink.addEventListener(\n 'click',\n function () {\n viewPost([post.uri])\n },\n false\n )\n xpostLink.id = 'post_' + String(post.uri).split('#')[1]\n xpostLink.setAttribute('content', post.uri)\n xpostLink.setAttribute('property', 'permalink')\n const postLink = doc.createTextNode(\n Post.date ? Post.date : 'post date unknown'\n )\n xpostLink.appendChild(postLink)\n\n // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)\n const mentions = kb.each(post, SIOC('topic'))\n const tags = {}\n\n for (const mention in mentions) {\n sf.lookUpThing(mentions[mention])\n const id = kb.any(mentions[mention], SIOC('id'))\n tags['@' + id] = mentions[mention]\n }\n const postTags = postText.match(/(@|#|!)\\w+/g)\n const postFunction = function () {\n const p = postTags.pop()\n return tags[p]\n ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri\n : p\n }\n for (const t in tags) {\n const person = t.replace(/@/, '')\n const replacePerson = RegExp('(@|!|#)(' + person + ')')\n postText = postText.replace(\n replacePerson,\n '$1<a href=\"' + postFunction() + '\">$2</a>'\n )\n }\n xpostContent.innerHTML = postText\n\n // in reply to logic\n // This has the potential to support a post that replies to many messages.\n const inReplyTo = kb.each(post, SIOC('reply_of'))\n const xreplyTo = doc.createElement('span')\n let theReply\n for (const reply in inReplyTo) {\n theReply = String(inReplyTo[reply]).replace(/<|>/g, '')\n const genReplyTo = function () {\n const reply = doc.createElement('a')\n reply.innerHTML = ', <b>in reply to</b>'\n reply.addEventListener(\n 'click',\n function () {\n viewPost([post.uri, theReply])\n return false\n },\n false\n )\n return reply\n }\n xreplyTo.appendChild(genReplyTo())\n }\n\n // END LINK META DATA\n // add the reply to and delete buttons to the interface\n const mbReplyTo = function () {\n const id = mb.getUser(Post.creator).id\n const xupdateStatus = doc.getElementById('xupdateStatus')\n const xinReplyToContainer = doc.getElementById('xinReplyToContainer')\n const xupdateSubmit = doc.getElementById('xupdateSubmit')\n xupdateStatus.value = '@' + id + ' '\n xupdateStatus.focus()\n xinReplyToContainer.value = post.uri\n xupdateSubmit.value = 'Reply'\n }\n let xconfirmDeletionDialog\n const mbDeletePost = function (evt) {\n const lsconfirmNo = function () {\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n evt.target.disabled = false\n }\n const lsconfirmYes = function () {\n reallyDelete()\n doc\n .getElementById('notify-container')\n .removeChild(xconfirmDeletionDialog)\n }\n evt.target.disabled = true\n xconfirmDeletionDialog = doc.createElement('li')\n xconfirmDeletionDialog.className = 'notify conf'\n xconfirmDeletionDialog.innerHTML +=\n '<p>Are you sure you want to delete this post?</p>'\n xconfirmDeletionDialog.addEventListener(\n 'keyup',\n function (evt) {\n if (evt.keyCode === 27) {\n lsconfirmNo()\n }\n },\n false\n )\n const confirmyes = doc.createElement('input')\n confirmyes.type = 'button'\n confirmyes.className = 'confirm'\n confirmyes.value = 'Delete'\n confirmyes.addEventListener('click', lsconfirmYes, false)\n const confirmno = doc.createElement('input')\n confirmno.type = 'button'\n confirmno.className = 'confirm'\n confirmno.value = 'Cancel'\n confirmno.addEventListener('click', lsconfirmNo, false)\n xconfirmDeletionDialog.appendChild(confirmno)\n xconfirmDeletionDialog.appendChild(confirmyes)\n doc\n .getElementById('notify-container')\n .appendChild(xconfirmDeletionDialog)\n confirmno.focus()\n\n const reallyDelete = function () {\n // callback after deletion\n const mbconfirmDeletePost = function (a, success) {\n if (success) {\n that.notify('Post deleted.')\n // update the ui to reflect model changes.\n const deleteThisNode = evt.target.parentNode\n deleteThisNode.parentNode.removeChild(deleteThisNode)\n kb.removeMany(deleteMe)\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = true\n }\n }\n // delete references to post\n const deleteContainerOf = function (a, success) {\n if (success) {\n const deleteContainer = kb.statementsMatching(\n undefined,\n SIOC('container_of'),\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(\n deleteContainer,\n mbconfirmDeletePost\n )\n } else {\n that.notify('Oops, there was a problem, please try again')\n evt.target.disabled = false\n }\n }\n // delete attributes of post\n evt.target.disabled = true\n const deleteMe = kb.statementsMatching(\n kb.sym(\n doc\n .getElementById('post_' + evt.target.parentNode.id)\n .getAttribute('content')\n )\n )\n sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf)\n }\n }\n let themaker\n let xreplyButton\n let xdeleteButton\n if (mb.getMyURI()) {\n // If the microblog in question does not belong to the user,\n // display the delete post and reply to post buttons.\n themaker = kb.any(post, SIOC('has_creator'))\n if (mb.getMyURI() !== themaker.uri) {\n xreplyButton = doc.createElement('input')\n xreplyButton.type = 'button'\n xreplyButton.value = 'reply'\n xreplyButton.className = 'reply'\n xreplyButton.addEventListener('click', mbReplyTo, false)\n } else {\n xdeleteButton = doc.createElement('input')\n xdeleteButton.type = 'button'\n xdeleteButton.value = 'Delete'\n xdeleteButton.className = 'reply'\n xdeleteButton.addEventListener('click', mbDeletePost, false)\n }\n }\n\n const mbFavorite = function (evt) {\n const nid = evt.target.parentNode.id\n const favpost = doc.getElementById('post_' + nid).getAttribute('content')\n xfavorite.className += ' ing'\n const cbFavorite = function (a, success, _c, _d) {\n if (success) {\n xfavorite.className =\n xfavorite.className.split(' ')[1] === 'ed'\n ? 'favorit'\n : 'favorit ed'\n }\n }\n if (!myFavorites.favorited(favpost)) {\n myFavorites.add(favpost, cbFavorite)\n } else {\n myFavorites.remove(favpost, cbFavorite)\n }\n }\n const xfavorite = doc.createElement('a')\n xfavorite.innerHTML = '★'\n xfavorite.addEventListener('click', mbFavorite, false)\n if (myFavorites.favorited(post.uri)) {\n xfavorite.className = 'favorit ed'\n } else {\n xfavorite.className = 'favorit'\n }\n // build\n xpost.appendChild(xuavatar)\n xpost.appendChild(xpostContent)\n if (mb.getMyURI()) {\n xpost.appendChild(xfavorite)\n if (mb.getMyURI() !== themaker.uri) {\n xpost.appendChild(xreplyButton)\n } else {\n xpost.appendChild(xdeleteButton)\n }\n }\n xpost.appendChild(xuname)\n xpost.appendChild(xpostLink)\n if (inReplyTo !== '') {\n xpost.appendChild(xreplyTo)\n }\n return xpost\n }\n Pane.prototype.generatePostList = function (gmbPosts) {\n /*\n generatePostList - Generate the posts and\n display their results on the interface.\n */\n const postList = doc.createElement('ul')\n const postlist = {}\n const datelist = []\n for (const post in gmbPosts) {\n const postDate = kb.any(gmbPosts[post], terms('created'))\n if (postDate) {\n datelist.push(postDate)\n postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe)\n }\n }\n datelist.sort().reverse()\n for (const d in datelist) {\n postList.appendChild(postlist[datelist[d]])\n }\n return postList\n }\n Pane.prototype.followsView = function () {\n const getFollowed = function (user) {\n let userid = kb.any(user, SIOC('id'))\n const follow = doc.createElement('li')\n follow.className = 'follow'\n userid = userid || user.uri\n let fol = kb.any(undefined, FOAF('holdsAccount'), user)\n fol = fol ? fol.uri : user.uri\n follow.innerHTML = '<a href=\"' + fol + '\">' + userid + '</a>'\n return follow\n }\n const xfollows = doc.createElement('div')\n xfollows.id = 'xfollows'\n xfollows.className = 'followlist-container view-container'\n if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {\n const creatorFollows = kb.each(this.creator.sym, SIOC('follows'))\n const xfollowsList = doc.createElement('ul')\n for (const thisPerson in creatorFollows) {\n xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]))\n }\n xfollows.appendChild(xfollowsList)\n }\n this.Tab.create('tab-follows', 'Follows', xfollows, false)\n return xfollows\n }\n Pane.prototype.streamView = function (s, doc) {\n const postContainer = doc.createElement('div')\n postContainer.id = 'postContainer'\n postContainer.className = 'post-container view-container active'\n let mbPosts = []\n if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {\n sf.lookUpThing(kb.any(s, FOAF('holdsAccount')))\n const follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'))\n for (const f in follows) {\n sf.lookUpThing(follows[f])\n // look up people user follows\n const smicroblogs = kb.each(follows[f], SIOC('creator_of'))\n // get the follows microblogs\n for (const smb in smicroblogs) {\n sf.lookUpThing(smicroblogs[smb])\n if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {\n continue\n } else {\n mbPosts = mbPosts.concat(\n kb.each(smicroblogs[smb], SIOC('container_of'))\n )\n }\n }\n }\n }\n if (mbPosts.length > 0) {\n const postList = this.generatePostList(mbPosts)\n // generate stream\n postList.id = 'postList'\n postList.className = 'postList'\n postContainer.appendChild(postList)\n }\n this.Tab.create('tab-stream', 'By Follows', postContainer, true)\n return postContainer\n }\n Pane.prototype.notificationsView = function (s, doc) {\n const postNotificationContainer = doc.createElement('div')\n postNotificationContainer.id = 'postNotificationContainer'\n postNotificationContainer.className =\n 'notification-container view-container'\n const postMentionContainer = doc.createElement('div')\n postMentionContainer.id = 'postMentionContainer'\n postMentionContainer.className = 'mention-container view-container'\n let mbnPosts = []\n let mbmPosts = []\n // get mbs that I am the creator of.\n const theUser = kb.any(s, FOAF('holdsAccount'))\n const user = kb.any(theUser, SIOC('id'))\n const microblogs = kb.each(theUser, SIOC('creator_of'))\n for (const mbm in microblogs) {\n sf.lookUpThing(microblogs[mbm])\n if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {\n mbmPosts = mbmPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n } else {\n if (kb.whether(microblogs[mbm], RDF('type'), SIOCt('Microblog'))) {\n mbnPosts = mbnPosts.concat(\n kb.each(microblogs[mbm], SIOC('container_of'))\n )\n }\n }\n }\n const postNotificationList = this.generatePostList(mbnPosts)\n postNotificationList.id = 'postNotificationList'\n postNotificationList.className = 'postList'\n postNotificationContainer.appendChild(postNotificationList)\n\n const postMentionList = this.generatePostList(mbmPosts)\n postMentionList.id = 'postMentionList'\n postMentionList.className = 'postList'\n postMentionContainer.appendChild(postMentionList)\n this.postMentionContainer = postMentionContainer\n this.postNotificationContainer = postNotificationContainer\n this.Tab.create(\n 'tab-by-user',\n 'By ' + user,\n postNotificationContainer,\n false\n )\n this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false)\n }\n Pane.prototype.build = function () {\n const microblogPane = this.microblogPane\n this.headerContainer = this.header(s, doc)\n this.postContainer = this.streamView(s, doc)\n this.notificationsView(s, doc)\n this.xfollows = this.followsView()\n microblogPane.className = 'ppane'\n microblogPane.appendChild(this.xviewReply)\n microblogPane.appendChild(this.xnotify)\n microblogPane.appendChild(this.headerContainer)\n if (this.xfollows !== undefined) {\n microblogPane.appendChild(this.xfollows)\n }\n microblogPane.appendChild(this.postContainer)\n microblogPane.appendChild(this.postNotificationContainer)\n microblogPane.appendChild(this.postMentionContainer)\n }\n\n const microblogpane = doc.createElement('div')\n // var getusersfollows = function(uri){\n // var follows = new Object();\n // var followsa = {follows:0, matches:0};\n // var accounts = kb.each(s, FOAF(\"holdsAccount\"));\n // //get all of the accounts that a person holds\n // for (var acct in accounts){\n // var account = accounts[acct].uri;\n // var act = kb.each(kb.sym(account),SIOC(\"follows\"));\n // for (var a in act){\n // var thisuri = act[a].uri.split(\"#\")[0];\n // if (!follows[thisuri]){followsa.follows+=1;}\n // follows[thisuri] =true;\n // }\n // }\n //\n // var buildPaneUI = function(uri){\n // followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;\n // console.log(follows.toSource());\n // if(followsa.follows == followsa.matches ){\n const ppane = new Pane(s, doc, microblogpane)\n ppane.build()\n // return false;\n // }\n // else{\n // return true;\n // }\n // }\n // sf.addCallback('done',buildPaneUI);\n // sf.addCallback('fail',buildPaneUI);\n // //fetch each of the followers\n // for (var f in follows){\n // sf.refresh(kb.sym(f));\n // }\n // }(s);\n return microblogpane\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/n3Pane.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.n3Pane = void 0;
|
|
8
|
-
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
-
/* Notation3 content Pane
|
|
11
|
-
**
|
|
12
|
-
** This pane shows the content of a particular RDF resource
|
|
13
|
-
** or at least the RDF semantics we attribute to that resource,
|
|
14
|
-
** in generated N3 syntax.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
var ns = UI.ns;
|
|
18
|
-
var n3Pane = exports.n3Pane = {
|
|
19
|
-
icon: UI.icons.originalIconBase + 'w3c/n3_smaller.png',
|
|
20
|
-
name: 'n3',
|
|
21
|
-
audience: [ns.solid('Developer')],
|
|
22
|
-
label: function label(subject, context) {
|
|
23
|
-
var store = context.session.store;
|
|
24
|
-
if ('http://www.w3.org/2007/ont/link#ProtocolEvent' in store.findTypeURIs(subject)) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
var n = store.statementsMatching(undefined, undefined, undefined, subject).length;
|
|
28
|
-
if (n === 0) return null;
|
|
29
|
-
return 'Data (' + n + ') as N3';
|
|
30
|
-
},
|
|
31
|
-
render: function render(subject, context) {
|
|
32
|
-
var myDocument = context.dom;
|
|
33
|
-
var kb = context.session.store;
|
|
34
|
-
var div = myDocument.createElement('div');
|
|
35
|
-
div.setAttribute('class', 'n3Pane');
|
|
36
|
-
// Because of smushing etc, this will not be a copy of the original source
|
|
37
|
-
// We could instead either fetch and re-parse the source,
|
|
38
|
-
// or we could keep all the pre-smushed triples.
|
|
39
|
-
var sts = kb.statementsMatching(undefined, undefined, undefined, subject); // @@ slow with current store!
|
|
40
|
-
/*
|
|
41
|
-
var kludge = kb.formula([]) // No features
|
|
42
|
-
for (var i=0; i< sts.length; i++) {
|
|
43
|
-
s = sts[i]
|
|
44
|
-
kludge.add(s.subject, s.predicate, s.object)
|
|
45
|
-
}
|
|
46
|
-
*/
|
|
47
|
-
var sz = UI.rdf.Serializer(kb);
|
|
48
|
-
sz.suggestNamespaces(kb.namespaces);
|
|
49
|
-
sz.setBase(subject.uri);
|
|
50
|
-
var str = sz.statementsToN3(sts);
|
|
51
|
-
var pre = myDocument.createElement('PRE');
|
|
52
|
-
pre.appendChild(myDocument.createTextNode(str));
|
|
53
|
-
div.appendChild(pre);
|
|
54
|
-
return div;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=n3Pane.js.map
|
package/lib/n3Pane.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"n3Pane.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","n3Pane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","store","session","findTypeURIs","statementsMatching","undefined","length","render","myDocument","dom","kb","div","createElement","setAttribute","sts","sz","rdf","Serializer","suggestNamespaces","namespaces","setBase","uri","str","statementsToN3","pre","appendChild","createTextNode"],"sources":["../src/n3Pane.js"],"sourcesContent":["/* Notation3 content Pane\n **\n ** This pane shows the content of a particular RDF resource\n ** or at least the RDF semantics we attribute to that resource,\n ** in generated N3 syntax.\n */\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport const n3Pane = {\n icon: UI.icons.originalIconBase + 'w3c/n3_smaller.png',\n\n name: 'n3',\n\n audience: [ns.solid('Developer')],\n\n label: function (subject, context) {\n const store = context.session.store\n if (\n 'http://www.w3.org/2007/ont/link#ProtocolEvent' in\n store.findTypeURIs(subject)\n ) {\n return null\n }\n const n = store.statementsMatching(undefined, undefined, undefined, subject)\n .length\n if (n === 0) return null\n return 'Data (' + n + ') as N3'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.session.store\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'n3Pane')\n // Because of smushing etc, this will not be a copy of the original source\n // We could instead either fetch and re-parse the source,\n // or we could keep all the pre-smushed triples.\n const sts = kb.statementsMatching(undefined, undefined, undefined, subject) // @@ slow with current store!\n /*\n var kludge = kb.formula([]) // No features\n for (var i=0; i< sts.length; i++) {\n s = sts[i]\n kludge.add(s.subject, s.predicate, s.object)\n }\n */\n const sz = UI.rdf.Serializer(kb)\n sz.suggestNamespaces(kb.namespaces)\n sz.setBase(subject.uri)\n const str = sz.statementsToN3(sts)\n const pre = myDocument.createElement('PRE')\n pre.appendChild(myDocument.createTextNode(str))\n div.appendChild(pre)\n return div\n }\n}\n"],"mappings":"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","ignoreList":[]}
|