solid-panes 3.7.3 → 4.0.0-32da9eb1
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":"manager.js","names":["paneRegistry","_interopRequireWildcard","require","$rdf","UI","_solidLogic","_propertyViews","_outlineIcons","_userInput","queryByExample","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t6","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","isArray","_regenerator","toStringTag","c","prototype","Generator","create","_regeneratorDefine2","p","y","G","v","d","bind","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_default","context","dom","document","outlineIcons","labeller","LanguagePreference","outline","thisOutline","selection","ancestor","utils","sparql","rdf","UpdateManager","kb","store","sf","fetcher","qs","QuerySource","UserInput","clipboardAddress","clipboardInit","outlineElement","init","table","getOutlineContainer","benchmark","lastkbsize","args","begin","Date","getTime","returnValue","end","log","info","statements","appendRemoveIcon","node","subject","removeNode","image","AJARImage","src","icon_remove_node","undefined","addEventListener","removeNodeIconMouseDownListener","setAttribute","toNT","style","marginLeft","marginRight","appendChild","appendAccessIcons","obj","termType","uris","sort","last","appendAccessIcon","uri","docuri","docpart","state","getState","icon","alt","listener","icon_unrequested","unrequestedIconMouseDownListener","icon_requested","failedIconMouseDownListener","icon_fetched","fetchedIconMouseDownListener","icon_failed","error","img","tooltips","replace","addButtonCallbacks","outlineObjectTD","view","deleteNode","statement","td","createElement","theClass","icons","originalIconBase","expandMouseDownListener","whether","ns","link","className","viewAsBoringDefault","tabulatorSelect","setSelected","tabulatorDeselect","selectableTDClickListener","outlinePredicateTD","predicate","newTr","inverse","internal","predicateTD","lab","predicateLabelForXML","elements","toUpperCase","labelTD","createTextNode","width","termWidget","construct","termWidgets","AJAR_statement","filter","addIcon","globalAppTabs","_globalAppTabs","_callee","options","div","me","items","renderTab","renderMain","_args","_context","_renderMain","containerDiv","item","pane","byName","paneName","innerHTML","authn","currentUser","GotoSubject","_renderTab","dataset","globalPaneName","tabName","textContent","label","console","alert","Error","getDashboardItems","tabs","tabWidget","ordered","orientation","backgroundColor","selectedTab","onClose","getDashboard","_getDashboardItems","_callee7","_yield$Promise$all","_yield$Promise$all2","books","pods","getPods","_getPods","getAddressBooks","_getAddressBooks","_context8","_getAddressBooks3","_callee6","_context6","_t3","_context7","login","findAppInstances","vcard","instances","map","book","index","concat","iconBase","_getAddressBooks2","_getPods3","_callee5","addPodStorage","_addPodStorage","addPodStorageFromUrl","_addPodStorageFromUrl","podUrl","uniques","_t","_t2","_context5","_uniques","nodes","uniqueNodes","forEach","find","uniqueNode","equals","_addPodStorageFromUrl3","_callee4","url","podStorage","pathStorage","_context4","URL","pathname","substring","lastIndexOf","sym","origin","_addPodStorageFromUrl2","_x8","_addPodStorage3","_callee3","pod","_context3","loadContainerRepresentation","holds","space","doc","_addPodStorage2","_x7","load","each","_ref","_callee2","_context2","_x9","window","location","href","searchParams","split","startsWith","_getPods2","all","showDashboard","_showDashboard","_callee8","dashboardContainer","outlineContainer","_tab","dashboard","tab","closeDashboard","_args8","_context9","_closeDashboard","display","getDashboardContainer","childNodes","querySelector","click","warn","authSession","events","on","getOrCreateContainer","id","getElementById","mainContainer","body","_x","_loadContainerRepresentation","_callee9","response","containerTurtle","_context0","any","ldp","webOperation","initFetchOptions","headers","accept","responseText","parse","getRelevantPanes","_x2","_x3","_getRelevantPanes","_callee0","panes","relevantPanes","filteredPanes","firstRelevantPaneIndex","firstFilteredPaneIndex","_context1","endsWith","session","list","global","filterAvailablePanes","indexOf","getPane","shouldGetFocus","expandedHeaderTR","_x4","_x5","_x6","_expandedHeaderTR","_callee10","requiredPane","renderPaneIconTray","_renderPaneIconTray","tr","header","showHeader","strong","_t5","_context11","_renderPaneIconTray3","_callee1","paneShownStyle","paneHiddenStyle","paneIconTray","paneNumber","_args1","_t4","_context10","hideList","firstPane","ico","listen","event","containingTable","parentNode","nodeName","removePanes","specific","firstChild","nextSibling","paneButton","removeAndRefresh","requireQueryButton","numberOfPanesRequiringQueryButton","renderPane","paneDiv","render","pre","stackString","removeAttribute","second","row","cell","insertBefore","getAttribute","shiftKey","_renderPaneIconTray2","_x0","hover","solo","collapseMouseDownListener","widgets","makeDraggable","par","placeholder","replaceChild","removeChild","propertyTable","debug","canon","tr1","propertyTR","st","AJAR_inverse","appendPropertyTRs","parent","plist","predicateFilter","sel","j","k","x","RDFComparePredicateSubject","object","RDFComparePredicateObject","max","_loop","s","defaultpropview","views","defaults","dups","langTagged","myLang","sameTerm","lang","showNobj","predDups","show","showLaterArray","displayed","trObj","colspan","moreTR","moreTD","small","predToggle","current","toggleObj","stopPropagation","showAllobj","_ret","iconTD","tooltip","parseInt","removeIcon","baseURI","elt","eltSrc","relativeIconSrc","join","replaceIcon","oldIcon","newIcon","QueryObj","pat","formula","vars","queries","target","fireOn","makeIconCallback","IconCallback","req","title","addCallback","selected","optOnIconMouseDownListener","targetOf","optOn","optOff","optOffIconMouseDownListener","setSelectedParent","inc","onIcon","offIcon","num","previousSibling","statusBarClick","getTarget","content","showURI","about","showSource","sourceWidget","sources","source","why","highlight","getSelection","newValue","cla","getTerm","editable","updater","addTri","deselectAll","srcElement","nodeType","walk","directionCode","inputTd","selectedTd","newSelTd","lastChild","tagName","newSelected","evaluate","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","OutlinerKeypressPanel","keyCode","setSelectedAfterward","_uri","getAbout","focusTd","removeCallback","Enter","Keypress","preventDefault","Delete","titleTd","outlineCollapse","outlineExpand","charCode","ctrlKey","copyToClipboard","pasteFromClipboard","PosY","findPos","clientHeight","scrollY","innerHeight","getEyeFocus","OutlinerMouseclickPanel","_tabulatorMode","TabulatorMousedown","Click","altKey","outlineRefocus","immediate","fetch","force","refresh","clearInputAndSave","detail","tname","clearMenu","lastModified","backOut","icon_show_choices","icon_add_triple","setUrlBarAndTitle","site","subject1","already","newTable","emptyNode","seeAlsoWhat","rdfs","lookUpThing","expand","cursubj","docTerm","relevant","as","rd","HTTPRedirects","anyStatementMatching","success","status","returnConditions","returnCode","isAudio","isVideo","nowOrWhenFetched","ok","message","level","myview","replaceTD","newTd","replacedTd","reselect","outer","GotoFormURI_enterKey","GotoFormURI","_e","GotoURI","GotoURIinit","referrer","GotoSubjectDefault","verticalAlign","defaultView","history","stateObj","pushState","propertyViews","rep","styles","integer","decimal","datatype","xsd","anchor","icon_telephone","linkIcon","numcell","statementsAsTables","createTabURI"],"sources":["../../src/outline/manager.js"],"sourcesContent":["/* istanbul ignore file */\n/* -*- coding: utf-8-dos -*-\n Outline Mode Manager\n*/\nimport * as paneRegistry from 'pane-registry'\nimport * as $rdf from 'rdflib'\nimport * as UI from 'solid-ui'\nimport { authn, authSession, store } from 'solid-logic'\nimport { propertyViews } from './propertyViews'\nimport { outlineIcons } from './outlineIcons.js' // @@ chec\nimport { UserInput } from './userInput.js'\nimport * as queryByExample from './queryByExample.js'\n\n/* global alert XPathResult sourceWidget */\n// XPathResult?\n\n// const iconHeight = '24px'\n\nexport default function (context) {\n const dom = context.dom\n\n this.document = context.dom\n this.outlineIcons = outlineIcons\n this.labeller = this.labeller || {}\n this.labeller.LanguagePreference = '' // for now\n const outline = this // Kenny: do we need this?\n const thisOutline = this\n let selection = []\n this.selection = selection\n this.ancestor = UI.utils.ancestor // make available as outline.ancestor in callbacks\n this.sparql = UI.rdf.UpdateManager\n this.kb = store\n const kb = store\n const sf = store.fetcher\n dom.outline = this\n this.qs = new queryByExample.QuerySource() // Track queries in queryByExample\n\n // var selection = [] // Array of statements which have been selected\n // this.focusTd // the <td> that is being observed\n this.UserInput = new UserInput(this)\n this.clipboardAddress = 'tabulator:clipboard' // Weird\n this.UserInput.clipboardInit(this.clipboardAddress)\n const outlineElement = this.outlineElement\n\n this.init = function () {\n const table = getOutlineContainer()\n table.outline = this\n }\n\n /** benchmark a function **/\n benchmark.lastkbsize = 0\n\n function benchmark (f) {\n const args = []\n for (let i = arguments.length - 1; i > 0; i--) args[i - 1] = arguments[i]\n // UI.log.debug('BENCHMARK: args=' + args.join());\n const begin = new Date().getTime()\n const returnValue = f.apply(f, args)\n const end = new Date().getTime()\n UI.log.info(\n 'BENCHMARK: kb delta: ' +\n (kb.statements.length - benchmark.lastkbsize) +\n ', time elapsed for ' +\n f +\n ' was ' +\n (end - begin) +\n 'ms'\n )\n benchmark.lastkbsize = kb.statements.length\n return returnValue\n } // benchmark\n\n // / ////////////////////// Representing data\n\n // Represent an object in summary form as a table cell\n\n function appendRemoveIcon (node, subject, removeNode) {\n const image = UI.utils.AJARImage(\n outlineIcons.src.icon_remove_node,\n 'remove',\n undefined,\n dom\n )\n image.addEventListener('click', removeNodeIconMouseDownListener)\n // image.setAttribute('align', 'right') Causes icon to be moved down\n image.node = removeNode\n image.setAttribute('about', subject.toNT())\n image.style.marginLeft = '5px'\n image.style.marginRight = '10px'\n // image.style.border='solid #777 1px';\n node.appendChild(image)\n return image\n }\n\n this.appendAccessIcons = function (kb, node, obj) {\n if (obj.termType !== 'NamedNode') return\n const uris = kb.uris(obj)\n uris.sort()\n let last = null\n for (let i = 0; i < uris.length; i++) {\n if (uris[i] === last) continue\n last = uris[i]\n thisOutline.appendAccessIcon(node, last)\n }\n }\n\n this.appendAccessIcon = function (node, uri) {\n if (!uri) return ''\n const docuri = UI.rdf.uri.docpart(uri)\n if (docuri.slice(0, 5) !== 'http:') return ''\n const state = sf.getState(docuri)\n let icon, alt, listener\n switch (state) {\n case 'unrequested':\n icon = outlineIcons.src.icon_unrequested\n alt = 'fetch'\n listener = unrequestedIconMouseDownListener\n break\n case 'requested':\n icon = outlineIcons.src.icon_requested\n alt = 'fetching'\n listener = failedIconMouseDownListener // new: can retry yello blob\n break\n case 'fetched':\n icon = outlineIcons.src.icon_fetched\n listener = fetchedIconMouseDownListener\n alt = 'loaded'\n break\n case 'failed':\n icon = outlineIcons.src.icon_failed\n alt = 'failed'\n listener = failedIconMouseDownListener\n break\n case 'unpermitted':\n icon = outlineIcons.src.icon_failed\n listener = failedIconMouseDownListener\n alt = 'no perm'\n break\n case 'unfetchable':\n icon = outlineIcons.src.icon_failed\n listener = failedIconMouseDownListener\n alt = 'cannot fetch'\n break\n default:\n UI.log.error('?? state = ' + state)\n break\n } // switch\n const img = UI.utils.AJARImage(\n icon,\n alt,\n outlineIcons.tooltips[icon].replace(/[Tt]his resource/, docuri),\n dom\n )\n img.setAttribute('uri', uri)\n img.addEventListener('click', listener) // @@ seemed to be missing 2017-08\n addButtonCallbacks(img, docuri)\n node.appendChild(img)\n return img\n } // appendAccessIcon\n\n /** make the td for an object (grammatical object)\n * @param obj - an RDF term\n * @param view - a VIEW function (rather than a bool asImage)\n **/\n\n this.outlineObjectTD = function outlineObjectTD (\n obj,\n view,\n deleteNode,\n statement\n ) {\n const td = dom.createElement('td')\n td.setAttribute(\n 'style',\n 'margin: 0.2em; border: none; padding: 0; vertical-align: top;'\n )\n td.setAttribute('notSelectable', 'false')\n let theClass = 'obj'\n\n // set about and put 'expand' icon\n if (\n obj.termType === 'NamedNode' ||\n obj.termType === 'BlankNode' ||\n (obj.termType === 'Literal' &&\n obj.value.slice &&\n (obj.value.slice(0, 6) === 'ftp://' ||\n obj.value.slice(0, 8) === 'https://' ||\n obj.value.slice(0, 7) === 'http://'))\n ) {\n td.setAttribute('about', obj.toNT())\n td.appendChild(\n UI.utils.AJARImage(\n UI.icons.originalIconBase + 'tbl-expand-trans.png',\n 'expand',\n undefined,\n dom\n )\n ).addEventListener('click', expandMouseDownListener)\n }\n td.setAttribute('class', theClass) // this is how you find an object\n // @@ TAKE CSS OUT OF STYLE SHEET\n if (kb.whether(obj, UI.ns.rdf('type'), UI.ns.link('Request'))) {\n td.className = 'undetermined'\n } // @@? why-timbl\n\n if (!view) {\n // view should be a function pointer\n view = viewAsBoringDefault\n }\n td.appendChild(view(obj))\n if (deleteNode) {\n appendRemoveIcon(td, obj, deleteNode)\n }\n\n // set DOM methods\n td.tabulatorSelect = function () {\n setSelected(this, true)\n }\n td.tabulatorDeselect = function () {\n setSelected(this, false)\n }\n\n td.addEventListener('click', selectableTDClickListener)\n return td\n } // outlineObjectTD\n\n this.outlinePredicateTD = function outlinePredicateTD (\n predicate,\n newTr,\n inverse,\n internal\n ) {\n const predicateTD = dom.createElement('TD')\n predicateTD.setAttribute('about', predicate.toNT())\n predicateTD.setAttribute('class', internal ? 'pred internal' : 'pred')\n\n let lab\n switch (predicate.termType) {\n case 'BlankNode': // TBD\n predicateTD.className = 'undetermined'\n break\n case 'NamedNode':\n lab = UI.utils.predicateLabelForXML(predicate, inverse)\n break\n case 'Collection': // some choices of predicate\n lab = UI.utils.predicateLabelForXML(predicate.elements[0], inverse)\n }\n lab = lab.slice(0, 1).toUpperCase() + lab.slice(1)\n // if (kb.statementsMatching(predicate,rdf('type'), UI.ns.link('Request')).length) predicateTD.className='undetermined';\n\n const labelTD = dom.createElement('TD')\n labelTD.setAttribute(\n 'style',\n 'margin: 0.2em; border: none; padding: 0; vertical-align: top;'\n )\n labelTD.setAttribute('notSelectable', 'true')\n labelTD.appendChild(dom.createTextNode(lab))\n predicateTD.appendChild(labelTD)\n labelTD.style.width = '100%'\n predicateTD.appendChild(termWidget.construct(dom)) // termWidget is global???\n for (const w in outlineIcons.termWidgets) {\n if (!newTr || !newTr.AJAR_statement) break // case for TBD as predicate\n // alert(Icon.termWidgets[w]+' '+Icon.termWidgets[w].filter)\n if (\n outlineIcons.termWidgets[w].filter &&\n outlineIcons.termWidgets[w].filter(\n newTr.AJAR_statement,\n 'pred',\n inverse\n )\n ) {\n termWidget.addIcon(predicateTD, outlineIcons.termWidgets[w])\n }\n }\n\n // set DOM methods\n predicateTD.tabulatorSelect = function () {\n setSelected(this, true)\n }\n predicateTD.tabulatorDeselect = function () {\n setSelected(this, false)\n }\n predicateTD.addEventListener('click', selectableTDClickListener)\n return predicateTD\n } // outlinePredicateTD\n\n /**\n * Render Tabbed set of home app panes\n *\n * @param {Object} [options] A set of options you can provide\n * @param {string} [options.selectedTab] To open a specific dashboard pane\n * @param {Function} [options.onClose] If given, will present an X for the dashboard, and call this method when clicked\n * @returns Promise<{Element}> - the div that holds the dashboard\n */\n async function globalAppTabs (options = {}) {\n console.log('globalAppTabs @@')\n const div = dom.createElement('div')\n const me = authn.currentUser()\n if (!me) {\n alert('Must be logged in for this')\n throw new Error('Not logged in')\n }\n const items = await getDashboardItems()\n\n function renderTab (div, item) {\n div.dataset.globalPaneName = item.tabName || item.paneName\n div.textContent = item.label\n }\n\n function renderMain (containerDiv, item) {\n // Items are pane names\n const pane = paneRegistry.byName(item.paneName) // 20190701\n containerDiv.innerHTML = ''\n const table = containerDiv.appendChild(dom.createElement('table'))\n const me = authn.currentUser()\n thisOutline.GotoSubject(\n item.subject || me,\n true,\n pane,\n false,\n undefined,\n table\n )\n }\n\n div.appendChild(\n UI.tabs.tabWidget({\n dom,\n subject: me,\n items,\n renderMain,\n renderTab,\n ordered: true,\n orientation: 0,\n backgroundColor: '#eeeeee', // black?\n selectedTab: options.selectedTab,\n onClose: options.onClose\n })\n )\n return div\n }\n this.getDashboard = globalAppTabs\n\n async function getDashboardItems () {\n const me = authn.currentUser()\n if (!me) return []\n const div = dom.createElement('div')\n const [books, pods] = await Promise.all([getAddressBooks(), getPods()])\n return [\n {\n paneName: 'home',\n label: 'Your stuff',\n icon: UI.icons.iconBase + 'noun_547570.svg'\n },\n {\n paneName: 'basicPreferences',\n label: 'Preferences',\n icon: UI.icons.iconBase + 'noun_Sliders_341315_00000.svg'\n },\n {\n paneName: 'profile',\n label: 'Your Profile',\n icon: UI.icons.iconBase + 'noun_15059.svg'\n },\n {\n paneName: 'editProfile',\n label: 'Edit your Profile',\n icon: UI.icons.iconBase + 'noun_492246.svg'\n }\n ]\n .concat(books)\n .concat(pods)\n\n async function getPods () {\n async function addPodStorage (pod) { // namedNode\n await loadContainerRepresentation(pod)\n if (kb.holds(pod, ns.rdf('type'), ns.space('Storage'), pod.doc())) {\n pods.push(pod)\n return true\n }\n return false\n }\n async function addPodStorageFromUrl (url) {\n const podStorage = new URL(url)\n // check for predicate pim:Storage in containers up the path tree\n let pathStorage = podStorage.pathname\n while (pathStorage.length) {\n pathStorage = pathStorage.substring(0, pathStorage.lastIndexOf('/'))\n if (await addPodStorage(kb.sym(`${podStorage.origin}${pathStorage}/`))) return\n }\n // TODO should url.origin be added to pods list when there are no pim:Storage ???\n }\n\n try {\n // need to make sure that profile is loaded\n await kb.fetcher.load(me.doc())\n } catch (err) {\n console.error('Unable to load profile', err)\n return []\n }\n // load pod's storages from profile\n let pods = kb.each(me, ns.space('storage'), null, me.doc())\n pods.map(async (pod) => {\n // TODO use addPodStorageFromUrl(pod.uri) to check for pim:Storage ???\n await loadContainerRepresentation(pod)\n })\n\n try {\n // if uri then SolidOS is a browse.html web app\n const uri = (new URL(window.location.href)).searchParams.get('uri')\n const podUrl = uri || window.location.href\n await addPodStorageFromUrl(podUrl)\n } catch (err) {\n console.error('cannot load container', err)\n }\n // remove namedNodes duplicates\n function uniques (nodes) {\n const uniqueNodes = []\n nodes.forEach(node => {\n if (!uniqueNodes.find(uniqueNode => uniqueNode.equals(node))) uniqueNodes.push(node)\n })\n return uniqueNodes\n }\n pods = uniques(pods)\n if (!pods.length) return []\n return pods.map((pod, index) => {\n function split (item) { return item.uri.split('//')[1].slice(0, -1) }\n const label = split(me).startsWith(split(pod)) ? 'Your storage' : split(pod)\n return {\n paneName: 'folder',\n tabName: `folder-${index}`,\n label,\n subject: pod,\n icon: UI.icons.iconBase + 'noun_Cabinet_251723.svg'\n }\n })\n }\n\n async function getAddressBooks () {\n try {\n const context = await UI.login.findAppInstances(\n { me, div, dom },\n ns.vcard('AddressBook')\n )\n return (context.instances || []).map((book, index) => ({\n paneName: 'contact',\n tabName: `contact-${index}`,\n label: 'Contacts',\n subject: book,\n icon: UI.icons.iconBase + 'noun_15695.svg'\n }))\n } catch (err) {\n console.error('oops in globalAppTabs AddressBook')\n }\n return []\n }\n }\n this.getDashboardItems = getDashboardItems\n\n /**\n * Call this method to show the global dashboard.\n *\n * @param {Object} [options] A set of options that can be passed\n * @param {string} [options.pane] To open a specific dashboard pane\n * @returns {Promise<void>}\n */\n async function showDashboard (options = {}) {\n const dashboardContainer = getDashboardContainer()\n const outlineContainer = getOutlineContainer()\n // reuse dashboard if already children already is inserted\n if (dashboardContainer.childNodes.length > 0 && options.pane) {\n outlineContainer.style.display = 'none'\n dashboardContainer.style.display = 'inherit'\n const tab = dashboardContainer.querySelector(\n `[data-global-pane-name=\"${options.pane}\"]`\n )\n if (tab) {\n tab.click()\n return\n }\n console.warn(\n 'Did not find the referred tab in global dashboard, will open first one'\n )\n }\n\n // create a new dashboard if not already present\n const dashboard = await globalAppTabs({\n selectedTab: options.pane,\n onClose: closeDashboard\n })\n\n // close the dashboard if user log out\n authSession.events.on(\"logout\", closeDashboard)\n\n // finally - switch to showing dashboard\n outlineContainer.style.display = 'none'\n dashboardContainer.appendChild(dashboard)\n const tab = dashboardContainer.querySelector(\n `[data-global-pane-name=\"${options.pane}\"]`\n )\n if (tab) {\n tab.click()\n }\n\n function closeDashboard () {\n dashboardContainer.style.display = 'none'\n outlineContainer.style.display = 'inherit'\n }\n }\n this.showDashboard = showDashboard\n\n function getDashboardContainer () {\n return getOrCreateContainer('GlobalDashboard')\n }\n\n function getOutlineContainer () {\n return getOrCreateContainer('outline')\n }\n\n /**\n * Get element with id or create a new on the fly with that id\n *\n * @param {string} id The ID of the element you want to get or create\n * @returns {HTMLElement}\n */\n function getOrCreateContainer (id) {\n return (\n document.getElementById(id) ||\n (() => {\n const dashboardContainer = document.createElement('div')\n dashboardContainer.id = id\n const mainContainer =\n document.querySelector('[role=\"main\"]') || document.body\n return mainContainer.appendChild(dashboardContainer)\n })()\n )\n }\n\n async function loadContainerRepresentation (subject) {\n // force reload for index.html with RDFa\n if (!kb.any(subject, ns.ldp('contains'), undefined, subject.doc())) {\n const response = await kb.fetcher.webOperation('GET', subject.uri, kb.fetcher.initFetchOptions(subject.uri, { headers: { accept: 'text/turtle' } }))\n const containerTurtle = response.responseText\n $rdf.parse(containerTurtle, kb, subject.uri, 'text/turtle')\n }\n }\n\n async function getRelevantPanes (subject, context) {\n // make sure container representation is loaded (when server returns index.html)\n if (subject.uri.endsWith('/')) { await loadContainerRepresentation(subject) }\n const panes = context.session.paneRegistry\n const relevantPanes = panes.list.filter(\n pane => pane.label(subject, context) && !pane.global\n )\n if (relevantPanes.length === 0) {\n // there are no relevant panes, simply return default pane (which ironically is internalPane)\n return [panes.byName('internal')]\n }\n const filteredPanes = await UI.login.filterAvailablePanes(relevantPanes)\n if (filteredPanes.length === 0) {\n // if no relevant panes are available panes because of user role, we still allow for the most relevant pane to be viewed\n return [relevantPanes[0]]\n }\n const firstRelevantPaneIndex = panes.list.indexOf(relevantPanes[0])\n const firstFilteredPaneIndex = panes.list.indexOf(filteredPanes[0])\n // if the first relevant pane is loaded before the panes available wrt role, we still want to offer the most relevant pane\n return firstRelevantPaneIndex < firstFilteredPaneIndex\n ? [relevantPanes[0]].concat(filteredPanes)\n : filteredPanes\n }\n\n function getPane (relevantPanes, subject) {\n return (\n relevantPanes.find(\n pane => pane.shouldGetFocus && pane.shouldGetFocus(subject)\n ) || relevantPanes[0]\n )\n }\n\n async function expandedHeaderTR (subject, requiredPane, options) {\n async function renderPaneIconTray (td, options = {}) {\n const paneShownStyle =\n 'width: 24px; border-radius: 0.5em; border-top: solid #222 1px; border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em; border-right: solid #eee 0.1em; margin-left: 1em; padding: 3px; background-color: #ffd;'\n const paneHiddenStyle =\n 'width: 24px; border-radius: 0.5em; margin-left: 1em; padding: 3px'\n const paneIconTray = td.appendChild(dom.createElement('nav'))\n paneIconTray.style =\n 'display:flex; justify-content: flex-start; align-items: center;'\n\n const relevantPanes = options.hideList\n ? []\n : await getRelevantPanes(subject, context)\n tr.firstPane = requiredPane || getPane(relevantPanes, subject)\n const paneNumber = relevantPanes.indexOf(tr.firstPane)\n\n if (relevantPanes.length !== 1) {\n // if only one, simplify interface\n relevantPanes.forEach((pane, index) => {\n const label = pane.label(subject, context)\n const ico = UI.utils.AJARImage(pane.icon, label, label, dom)\n ico.style = pane === tr.firstPane ? paneShownStyle : paneHiddenStyle // init to something at least\n // ico.setAttribute('align','right'); @@ Should be better, but ffox bug pushes them down\n // ico.style.width = iconHeight\n // ico.style.height = iconHeight\n const listen = function (ico, pane) {\n // Freeze scope for event time\n ico.addEventListener(\n 'click',\n function (event) {\n let containingTable\n // Find the containing table for this subject\n for (containingTable = td; containingTable.parentNode; containingTable = containingTable.parentNode) {\n if (containingTable.nodeName === 'TABLE') break\n }\n if (containingTable.nodeName !== 'TABLE') {\n throw new Error('outline: internal error.')\n }\n const removePanes = function (specific) {\n for (let d = containingTable.firstChild; d; d = d.nextSibling) {\n if (typeof d.pane !== 'undefined') {\n if (!specific || d.pane === specific) {\n if (d.paneButton) {\n d.paneButton.setAttribute('class', 'paneHidden')\n d.paneButton.style = paneHiddenStyle\n }\n removeAndRefresh(d)\n // If we just delete the node d, ffox doesn't refresh the display properly.\n // state = 'paneHidden';\n if (\n d.pane.requireQueryButton &&\n containingTable.parentNode.className /* outer table */ &&\n numberOfPanesRequiringQueryButton === 1 &&\n dom.getElementById('queryButton')\n ) {\n dom\n .getElementById('queryButton')\n .setAttribute('style', 'display:none;')\n }\n }\n }\n }\n }\n const renderPane = function (pane) {\n let paneDiv\n UI.log.info('outline: Rendering pane (2): ' + pane.name)\n\n try {\n paneDiv = pane.render(subject, context, options)\n } catch (e) {\n // Easier debugging for pane developers\n paneDiv = dom.createElement('div')\n paneDiv.setAttribute('class', 'exceptionPane')\n const pre = dom.createElement('pre')\n paneDiv.appendChild(pre)\n pre.appendChild(\n dom.createTextNode(UI.utils.stackString(e))\n )\n }\n\n if (\n pane.requireQueryButton &&\n dom.getElementById('queryButton')\n ) {\n dom.getElementById('queryButton').removeAttribute('style')\n }\n const second = containingTable.firstChild.nextSibling\n const row = dom.createElement('tr')\n const cell = row.appendChild(dom.createElement('td'))\n cell.appendChild(paneDiv)\n if (second) containingTable.insertBefore(row, second)\n else containingTable.appendChild(row)\n row.pane = pane\n row.paneButton = ico\n }\n const state = ico.getAttribute('class')\n if (state === 'paneHidden') {\n if (!event.shiftKey) {\n // shift means multiple select\n removePanes()\n }\n renderPane(pane)\n ico.setAttribute('class', 'paneShown')\n ico.style = paneShownStyle\n } else {\n removePanes(pane)\n ico.setAttribute('class', 'paneHidden')\n ico.style = paneHiddenStyle\n }\n\n let numberOfPanesRequiringQueryButton = 0\n for (let d = containingTable.firstChild; d; d = d.nextSibling) {\n if (d.pane && d.pane.requireQueryButton) {\n numberOfPanesRequiringQueryButton++\n }\n }\n },\n false\n )\n } // listen\n\n listen(ico, pane)\n ico.setAttribute(\n 'class',\n index !== paneNumber ? 'paneHidden' : 'paneShown'\n )\n if (index === paneNumber) tr.paneButton = ico\n paneIconTray.appendChild(ico)\n })\n }\n return paneIconTray\n } // renderPaneIconTray\n\n // Body of expandedHeaderTR\n const tr = dom.createElement('tr')\n if (options.hover) {\n // By default no hide till hover as community deems it confusing\n tr.setAttribute('class', 'hoverControl')\n }\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'margin: 0.2em; border: none; padding: 0; vertical-align: top;' +\n 'display:flex; justify-content: space-between; flex-direction: row;'\n )\n td.setAttribute('notSelectable', 'true')\n td.setAttribute('about', subject.toNT())\n td.setAttribute('colspan', '2')\n\n // Stuff at the right about the subject\n const header = td.appendChild(dom.createElement('div'))\n header.style =\n 'display:flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;'\n\n const showHeader = !!requiredPane\n\n if (!options.solo && !showHeader) {\n const icon = header.appendChild(\n UI.utils.AJARImage(\n UI.icons.originalIconBase + 'tbl-collapse.png',\n 'collapse',\n undefined,\n dom\n )\n )\n icon.addEventListener('click', collapseMouseDownListener)\n\n const strong = header.appendChild(dom.createElement('h1'))\n strong.appendChild(dom.createTextNode(UI.utils.label(subject)))\n strong.style =\n 'font-size: 150%; margin: 0 0.6em 0 0; padding: 0.1em 0.4em;'\n UI.widgets.makeDraggable(strong, subject)\n }\n\n header.appendChild(\n await renderPaneIconTray(td, {\n hideList: showHeader\n })\n )\n\n // set DOM methods\n tr.firstChild.tabulatorSelect = function () {\n setSelected(this, true)\n }\n tr.firstChild.tabulatorDeselect = function () {\n setSelected(this, false)\n }\n return tr\n } // expandedHeaderTR\n\n // / //////////////////////////////////////////////////////////////////////////\n\n /* PANES\n **\n ** Panes are regions of the outline view in which a particular subject is\n ** displayed in a particular way. They are like views but views are for query results.\n ** subject panes are currently stacked vertically.\n */\n\n // / //////////////////// Specific panes are in panes/*.js\n //\n // The defaultPane is the first one registered for which the label method exists\n // Those registered first take priority as a default pane.\n // That is, those earlier in this file\n\n /**\n * Pane registration\n */\n\n // the second argument indicates whether the query button is required\n\n // / ///////////////////////////////////////////////////////////////////////////\n\n // Remove a node from the DOM so that Firefox refreshes the screen OK\n // Just deleting it cause whitespace to accumulate.\n function removeAndRefresh (d) {\n const table = d.parentNode\n const par = table.parentNode\n const placeholder = dom.createElement('table')\n placeholder.setAttribute('style', 'width: 100%;')\n par.replaceChild(placeholder, table)\n table.removeChild(d)\n par.replaceChild(table, placeholder) // Attempt to\n }\n\n const propertyTable = (this.propertyTable = function propertyTable (\n subject,\n table,\n pane,\n options\n ) {\n UI.log.debug('Property table for: ' + subject)\n subject = kb.canon(subject)\n // if (!pane) pane = panes.defaultPane;\n\n if (!table) {\n // Create a new property table\n table = dom.createElement('table')\n table.setAttribute('style', 'width: 100%;')\n expandedHeaderTR(subject, pane, options).then(tr1 => {\n table.appendChild(tr1)\n\n if (tr1.firstPane) {\n let paneDiv\n try {\n UI.log.info('outline: Rendering pane (1): ' + tr1.firstPane.name)\n paneDiv = tr1.firstPane.render(subject, context, options)\n } catch (e) {\n // Easier debugging for pane developers\n paneDiv = dom.createElement('div')\n paneDiv.setAttribute('class', 'exceptionPane')\n const pre = dom.createElement('pre')\n paneDiv.appendChild(pre)\n pre.appendChild(dom.createTextNode(UI.utils.stackString(e)))\n }\n\n const row = dom.createElement('tr')\n const cell = row.appendChild(dom.createElement('td'))\n cell.appendChild(paneDiv)\n if (\n tr1.firstPane.requireQueryButton &&\n dom.getElementById('queryButton')\n ) {\n dom.getElementById('queryButton').removeAttribute('style')\n }\n table.appendChild(row)\n row.pane = tr1.firstPane\n row.paneButton = tr1.paneButton\n }\n })\n\n return table\n } else {\n // New display of existing table, keeping expanded bits\n UI.log.info('Re-expand: ' + table)\n // do some other stuff here\n return table\n }\n }) /* propertyTable */\n\n function propertyTR (doc, st, inverse) {\n const tr = doc.createElement('TR')\n tr.AJAR_statement = st\n tr.AJAR_inverse = inverse\n // tr.AJAR_variable = null; // @@ ?? was just 'tr.AJAR_variable'\n tr.setAttribute('predTR', 'true')\n const predicateTD = thisOutline.outlinePredicateTD(st.predicate, tr, inverse)\n tr.appendChild(predicateTD) // @@ add 'internal' to predicateTD's class for style? mno\n return tr\n }\n this.propertyTR = propertyTR\n\n // / ////////// Property list\n function appendPropertyTRs (parent, plist, inverse, predicateFilter) {\n // UI.log.info('@appendPropertyTRs, 'this' is %s, dom is %s, '+ // Gives 'can't access dead object'\n // 'thisOutline.document is %s', this, dom.location, thisOutline.document.location);\n // UI.log.info('@appendPropertyTRs, dom is now ' + this.document.location);\n // UI.log.info('@appendPropertyTRs, dom is now ' + thisOutline.document.location);\n UI.log.debug('Property list length = ' + plist.length)\n if (plist.length === 0) return ''\n let sel, j, k\n if (inverse) {\n sel = function (x) {\n return x.subject\n }\n plist = plist.sort(UI.utils.RDFComparePredicateSubject)\n } else {\n sel = function (x) {\n return x.object\n }\n plist = plist.sort(UI.utils.RDFComparePredicateObject)\n }\n\n const max = plist.length\n for (j = 0; j < max; j++) {\n // squishing together equivalent properties I think\n let s = plist[j]\n // if (s.object == parentSubject) continue; // that we knew\n\n // Avoid predicates from other panes\n if (predicateFilter && !predicateFilter(s.predicate, inverse)) continue\n\n const tr = propertyTR(dom, s, inverse)\n parent.appendChild(tr)\n const predicateTD = tr.firstChild // we need to kludge the rowspan later\n\n let defaultpropview = views.defaults[s.predicate.uri]\n\n // LANGUAGE PREFERENCES WAS AVAILABLE WITH FF EXTENSION - get from elsewhere?\n\n let dups = 0 // How many rows have the same predicate, -1?\n let langTagged = 0 // how many objects have language tags?\n let myLang = 0 // Is there one I like?\n\n for (\n k = 0;\n k + j < max && plist[j + k].predicate.sameTerm(s.predicate);\n k++\n ) {\n if (k > 0 && sel(plist[j + k]).sameTerm(sel(plist[j + k - 1]))) dups++\n if (sel(plist[j + k]).lang && outline.labeller.LanguagePreference) {\n langTagged += 1\n if (\n sel(plist[j + k]).lang.indexOf(\n outline.labeller.LanguagePreference\n ) >= 0\n ) {\n myLang++\n }\n }\n }\n\n /* Display only the one in the preferred language\n ONLY in the case (currently) when all the values are tagged.\n Then we treat them as alternatives. */\n\n if (myLang > 0 && langTagged === dups + 1) {\n for (let k = j; k <= j + dups; k++) {\n if (\n outline.labeller.LanguagePreference &&\n sel(plist[k]).lang.indexOf(outline.labeller.LanguagePreference) >= 0\n ) {\n tr.appendChild(\n thisOutline.outlineObjectTD(\n sel(plist[k]),\n defaultpropview,\n undefined,\n s\n )\n )\n break\n }\n }\n j += dups // extra push\n continue\n }\n\n tr.appendChild(\n thisOutline.outlineObjectTD(sel(s), defaultpropview, undefined, s)\n )\n\n /* Note: showNobj shows between n to 2n objects.\n * This is to prevent the case where you have a long list of objects\n * shown, and dangling at the end is '1 more' (which is easily ignored)\n * Therefore more objects are shown than hidden.\n */\n\n tr.showNobj = function (n) {\n const predDups = k - dups\n const show = 2 * n < predDups ? n : predDups\n const showLaterArray = []\n if (predDups !== 1) {\n predicateTD.setAttribute(\n 'rowspan',\n show === predDups ? predDups : n + 1\n )\n let l\n if (show < predDups && show === 1) {\n // what case is this...\n predicateTD.setAttribute('rowspan', 2)\n }\n let displayed = 0 // The number of cells generated-1,\n // all duplicate thing removed\n for (l = 1; l < k; l++) {\n // This detects the same things\n if (\n !kb\n .canon(sel(plist[j + l]))\n .sameTerm(kb.canon(sel(plist[j + l - 1])))\n ) {\n displayed++\n s = plist[j + l]\n defaultpropview = views.defaults[s.predicate.uri]\n const trObj = dom.createElement('tr')\n trObj.style.colspan = '1'\n trObj.appendChild(\n thisOutline.outlineObjectTD(\n sel(plist[j + l]),\n defaultpropview,\n undefined,\n s\n )\n )\n trObj.AJAR_statement = s\n trObj.AJAR_inverse = inverse\n parent.appendChild(trObj)\n if (displayed >= show) {\n trObj.style.display = 'none'\n showLaterArray.push(trObj)\n }\n } else {\n // ToDo: show all the data sources of this statement\n UI.log.info('there are duplicates here: %s', plist[j + l - 1])\n }\n }\n // @@a quick fix on the messing problem.\n if (show === predDups) {\n predicateTD.setAttribute('rowspan', displayed + 1)\n }\n } // end of if (predDups!==1)\n\n if (show < predDups) {\n // Add the x more <TR> here\n const moreTR = dom.createElement('tr')\n const moreTD = moreTR.appendChild(dom.createElement('td'))\n moreTD.setAttribute(\n 'style',\n 'margin: 0.2em; border: none; padding: 0; vertical-align: top;'\n )\n moreTD.setAttribute('notSelectable', 'false')\n if (predDups > n) {\n // what is this for??\n const small = dom.createElement('a')\n moreTD.appendChild(small)\n\n const predToggle = (function (f) {\n return f(predicateTD, k, dups, n)\n })(function (predicateTD, k, dups, n) {\n return function (display) {\n small.innerHTML = ''\n if (display === 'none') {\n small.appendChild(\n UI.utils.AJARImage(\n UI.icons.originalIconBase + 'tbl-more-trans.png',\n 'more',\n 'See all',\n dom\n )\n )\n small.appendChild(\n dom.createTextNode(predDups - n + ' more...')\n )\n predicateTD.setAttribute('rowspan', n + 1)\n } else {\n small.appendChild(\n UI.utils.AJARImage(\n UI.icons.originalIconBase + 'tbl-shrink.png',\n '(less)',\n undefined,\n dom\n )\n )\n predicateTD.setAttribute('rowspan', predDups + 1)\n }\n for (let i = 0; i < showLaterArray.length; i++) {\n const trObj = showLaterArray[i]\n trObj.style.display = display\n }\n }\n }) // ???\n let current = 'none'\n const toggleObj = function (event) {\n predToggle(current)\n current = current === 'none' ? '' : 'none'\n if (event) event.stopPropagation()\n return false // what is this for?\n }\n toggleObj()\n small.addEventListener('click', toggleObj, false)\n } // if(predDups>n)\n parent.appendChild(moreTR)\n } // if\n } // tr.showNobj\n\n tr.showAllobj = function () {\n tr.showNobj(k - dups)\n }\n\n tr.showNobj(10)\n\n j += k - 1 // extra push\n }\n } // appendPropertyTRs\n\n this.appendPropertyTRs = appendPropertyTRs\n\n /* termWidget\n **\n */\n const termWidget = {} // @@@@@@ global\n global.termWidget = termWidget\n termWidget.construct = function (dom) {\n dom = dom || document\n const td = dom.createElement('TD')\n td.setAttribute(\n 'style',\n 'margin: 0.2em; border: none; padding: 0; vertical-align: top;'\n )\n td.setAttribute('class', 'iconTD')\n td.setAttribute('notSelectable', 'true')\n td.style.width = '0px'\n return td\n }\n termWidget.addIcon = function (td, icon, listener) {\n const iconTD = td.childNodes[1]\n if (!iconTD) return\n let width = iconTD.style.width\n const img = UI.utils.AJARImage(icon.src, icon.alt, icon.tooltip, dom)\n width = parseInt(width)\n width = width + icon.width\n iconTD.style.width = width + 'px'\n iconTD.appendChild(img)\n if (listener) {\n img.addEventListener('click', listener)\n }\n }\n termWidget.removeIcon = function (td, icon) {\n const iconTD = td.childNodes[1]\n let baseURI\n if (!iconTD) return\n let width = iconTD.style.width\n width = parseInt(width)\n width = width - icon.width\n iconTD.style.width = width + 'px'\n for (let x = 0; x < iconTD.childNodes.length; x++) {\n const elt = iconTD.childNodes[x]\n const eltSrc = elt.src\n\n // ignore first '?' and everything after it //Kenny doesn't know what this is for\n try {\n baseURI = dom.location.href.split('?')[0]\n } catch (e) {\n console.log(e)\n baseURI = ''\n }\n const relativeIconSrc = UI.rdf.uri.join(icon.src, baseURI)\n if (eltSrc === relativeIconSrc) {\n iconTD.removeChild(elt)\n }\n }\n }\n termWidget.replaceIcon = function (td, oldIcon, newIcon, listener) {\n termWidget.removeIcon(td, oldIcon)\n termWidget.addIcon(td, newIcon, listener)\n }\n\n // / /////////////////////////////////////////////////// VALUE BROWSER VIEW\n\n // / /////////////////////////////////////////////////////// TABLE VIEW\n\n // Summarize a thing as a table cell\n\n /**********************\n\n query global vars\n\n ***********************/\n\n // const doesn't work in Opera\n // const BLANK_QUERY = { pat: kb.formula(), vars: [], orderBy: [] };\n // @ pat: the query pattern in an RDFIndexedFormula. Statements are in pat.statements\n // @ vars: the free variables in the query\n // @ orderBy: the variables to order the table\n\n function QueryObj () {\n this.pat = kb.formula()\n this.vars = []\n // this.orderBy = []\n }\n\n const queries = []\n queries[0] = new QueryObj()\n /*\n function querySave () {\n queries.push(queries[0])\n var choices = dom.getElementById('queryChoices')\n var next = dom.createElement('option')\n var box = dom.createElement('input')\n var index = queries.length - 1\n box.setAttribute('type', 'checkBox')\n box.setAttribute('value', index)\n choices.appendChild(box)\n choices.appendChild(dom.createTextNode('Saved query #' + index))\n choices.appendChild(dom.createElement('br'))\n next.setAttribute('value', index)\n next.appendChild(dom.createTextNode('Saved query #' + index))\n dom.getElementById('queryJump').appendChild(next)\n }\n*/\n /*\n function resetQuery () {\n function resetOutliner (pat) {\n var n = pat.statements.length\n var pattern, tr\n for (let i = 0; i < n; i++) {\n pattern = pat.statements[i]\n tr = pattern.tr\n // UI.log.debug('tr: ' + tr.AJAR_statement);\n if (typeof tr !== 'undefined') {\n delete tr.AJAR_pattern\n delete tr.AJAR_variable\n }\n }\n for (let x in pat.optional) { resetOutliner(pat.optional[x]) }\n }\n resetOutliner(myQuery.pat)\n UI.utils.clearVariableNames()\n queries[0] = myQuery = new QueryObj()\n }\n*/\n function addButtonCallbacks (target, fireOn) {\n UI.log.debug('Button callbacks for ' + fireOn + ' added')\n const makeIconCallback = function (icon) {\n return function IconCallback (req) {\n if (req.indexOf('#') >= 0) {\n console.log(\n '@@ makeIconCallback: Not expecting # in URI whose state changed: ' +\n req\n )\n // alert('Should have no hash in '+req)\n }\n if (!target) {\n return false\n }\n if (!outline.ancestor(target, 'DIV')) return false\n // if (term.termType != 'symbol') { return true } // should always ve\n if (req === fireOn) {\n target.src = icon\n target.title = outlineIcons.tooltips[icon]\n }\n return true\n }\n }\n sf.addCallback('request', makeIconCallback(outlineIcons.src.icon_requested))\n sf.addCallback('done', makeIconCallback(outlineIcons.src.icon_fetched))\n sf.addCallback('fail', makeIconCallback(outlineIcons.src.icon_failed))\n }\n\n // Selection support\n\n function selected (node) {\n const a = node.getAttribute('class')\n if (a && a.indexOf('selected') >= 0) return true\n return false\n }\n\n // These woulkd be simpler using closer variables below\n function optOnIconMouseDownListener (e) {\n // outlineIcons.src.icon_opton needed?\n const target = thisOutline.targetOf(e)\n const p = target.parentNode\n termWidget.replaceIcon(\n p.parentNode,\n outlineIcons.termWidgets.optOn,\n outlineIcons.termWidgets.optOff,\n optOffIconMouseDownListener\n )\n p.parentNode.parentNode.removeAttribute('optional')\n }\n\n function optOffIconMouseDownListener (e) {\n // outlineIcons.src.icon_optoff needed?\n const target = thisOutline.targetOf(e)\n const p = target.parentNode\n termWidget.replaceIcon(\n p.parentNode,\n outlineIcons.termWidgets.optOff,\n outlineIcons.termWidgets.optOn,\n optOnIconMouseDownListener\n )\n p.parentNode.parentNode.setAttribute('optional', 'true')\n }\n\n function setSelectedParent (node, inc) {\n const onIcon = outlineIcons.termWidgets.optOn\n const offIcon = outlineIcons.termWidgets.optOff\n for (let n = node; n.parentNode; n = n.parentNode) {\n while (true) {\n if (n.getAttribute('predTR')) {\n let num = n.getAttribute('parentOfSelected')\n if (!num) num = 0\n else num = parseInt(num)\n if (num === 0 && inc > 0) {\n termWidget.addIcon(\n n.childNodes[0],\n n.getAttribute('optional') ? onIcon : offIcon,\n n.getAttribute('optional')\n ? optOnIconMouseDownListener\n : optOffIconMouseDownListener\n )\n }\n num = num + inc\n n.setAttribute('parentOfSelected', num)\n if (num === 0) {\n n.removeAttribute('parentOfSelected')\n termWidget.removeIcon(\n n.childNodes[0],\n n.getAttribute('optional') ? onIcon : offIcon\n )\n }\n break\n } else if (n.previousSibling && n.previousSibling.nodeName === 'TR') {\n n = n.previousSibling\n } else break\n }\n }\n }\n\n this.statusBarClick = function (event) {\n const target = UI.utils.getTarget(event)\n if (target.label) {\n window.content.location = target.label\n // The following alternative does not work in the extension.\n // var s = store.sym(target.label);\n // outline.GotoSubject(s, true);\n }\n }\n\n this.showURI = function showURI (about) {\n if (about && dom.getElementById('UserURI')) {\n dom.getElementById('UserURI').value =\n about.termType === 'NamedNode' ? about.uri : '' // blank if no URI\n }\n }\n\n this.showSource = function showSource () {\n if (typeof sourceWidget === 'undefined') return\n // deselect all before going on, this is necessary because you would switch tab,\n // close tab or so on...\n for (const uri in sourceWidget.sources) {\n sourceWidget.sources[uri].setAttribute('class', '')\n } // .class doesn't work. Be careful!\n for (let i = 0; i < selection.length; i++) {\n if (!selection[i].parentNode) {\n console.log('showSource: EH? no parentNode? ' + selection[i] + '\\n')\n continue\n }\n const st = selection[i].parentNode.AJAR_statement\n if (!st) continue // for root TD\n const source = st.why\n if (source && source.uri) {\n sourceWidget.highlight(source, true)\n }\n }\n }\n\n this.getSelection = function getSelection () {\n return selection\n }\n\n function setSelected (node, newValue) {\n // UI.log.info('selection has ' +selection.map(function(item){return item.textContent;}).join(', '));\n // UI.log.debug('@outline setSelected, intended to '+(newValue?'select ':'deselect ')+node+node.textContent);\n // if (newValue === selected(node)) return; //we might not need this anymore...\n if (node.nodeName !== 'TD') {\n UI.log.debug('down' + node.nodeName)\n throw new Error(\n 'Expected TD in setSelected: ' +\n node.nodeName +\n ' : ' +\n node.textContent\n )\n }\n UI.log.debug('pass')\n let cla = node.getAttribute('class')\n if (!cla) cla = ''\n if (newValue) {\n cla += ' selected'\n if (cla.indexOf('pred') >= 0 || cla.indexOf('obj') >= 0) {\n setSelectedParent(node, 1)\n }\n selection.push(node)\n // UI.log.info('Selecting '+node.textContent)\n\n const about = UI.utils.getTerm(node) // show uri for a newly selectedTd\n thisOutline.showURI(about)\n\n let st = node.AJAR_statement // show blue cross when the why of that triple is editable\n if (typeof st === 'undefined' && node.parentNode) st = node.parentNode.AJAR_statement\n // if (typeof st === 'undefined') return; // @@ Kludge? Click in the middle of nowhere\n if (st) {\n // don't do these for headers or base nodes\n const source = st.why\n // var target = st.why\n const editable = store.updater.editable(source.uri, kb)\n if (!editable) {\n // let target = node.parentNode.AJAR_inverse ? st.object : st.subject\n } // left hand side\n // think about this later. Because we update to the why for now.\n // alert('Target='+target+', editable='+editable+'\\nselected statement:' + st)\n if (editable && cla.indexOf('pred') >= 0) {\n termWidget.addIcon(node, outlineIcons.termWidgets.addTri)\n } // Add blue plus\n }\n } else {\n UI.log.debug('cla=$' + cla + '$')\n if (cla === 'selected') cla = '' // for header <TD>\n cla = cla.replace(' selected', '')\n if (cla.indexOf('pred') >= 0 || cla.indexOf('obj') >= 0) {\n setSelectedParent(node, -1)\n }\n if (cla.indexOf('pred') >= 0) {\n termWidget.removeIcon(node, outlineIcons.termWidgets.addTri)\n }\n\n selection = selection.filter(function (x) {\n return x === node\n })\n\n UI.log.info('Deselecting ' + node.textContent)\n }\n if (typeof sourceWidget !== 'undefined') thisOutline.showSource() // Update the data sources display\n // UI.log.info('selection becomes [' +selection.map(function(item){return item.textContent;}).join(', ')+']');\n // UI.log.info('Setting className ' + cla);\n node.setAttribute('class', cla)\n }\n\n function deselectAll () {\n const n = selection.length\n for (let i = n - 1; i >= 0; i--) setSelected(selection[i], false)\n selection = []\n }\n\n /** Get the target of an event **/\n this.targetOf = function (e) {\n let target\n if (!e) e = window.event\n if (e.target) {\n target = e.target\n } else if (e.srcElement) {\n target = e.srcElement\n } else {\n UI.log.error(\"can't get target for event \" + e)\n return false\n } // fail\n if (target.nodeType === 3) {\n // defeat Safari bug [sic]\n target = target.parentNode\n }\n return target\n } // targetOf\n\n this.walk = function walk (directionCode, inputTd) {\n const selectedTd = inputTd || selection[0]\n let newSelTd\n switch (directionCode) {\n case 'down':\n try {\n newSelTd = selectedTd.parentNode.nextSibling.lastChild\n } catch (e) {\n this.walk('up')\n return\n } // end\n deselectAll()\n setSelected(newSelTd, true)\n break\n case 'up':\n try {\n newSelTd = selectedTd.parentNode.previousSibling.lastChild\n } catch (e) {\n return\n } // top\n deselectAll()\n setSelected(newSelTd, true)\n break\n case 'right':\n deselectAll()\n if (\n selectedTd.nextSibling ||\n selectedTd.lastChild.tagName === 'strong'\n ) {\n setSelected(selectedTd.nextSibling, true)\n } else {\n const newSelected = dom.evaluate(\n 'table/div/tr/td[2]',\n selectedTd,\n null,\n XPathResult.FIRST_ORDERED_NODE_TYPE,\n null\n ).singleNodeValue\n setSelected(newSelected, true)\n }\n break\n case 'left':\n deselectAll()\n if (\n selectedTd.previousSibling &&\n selectedTd.previousSibling.className === 'undetermined'\n ) {\n setSelected(selectedTd.previousSibling, true)\n return true // do not shrink signal\n } else {\n setSelected(UI.utils.ancestor(selectedTd.parentNode, 'TD'), true)\n } // supplied by thieOutline.focusTd\n break\n case 'moveTo':\n // UI.log.info(selection[0].textContent+'->'+inputTd.textContent);\n deselectAll()\n setSelected(inputTd, true)\n break\n }\n if (directionCode === 'down' || directionCode === 'up') {\n if (!newSelTd.tabulatorSelect) this.walk(directionCode)\n }\n // return newSelTd;\n }\n\n // Keyboard Input: we can consider this as...\n // 1. a fast way to modify data - enter will go to next predicate\n // 2. an alternative way to input - enter at the end of a predicate will create a new statement\n this.OutlinerKeypressPanel = function OutlinerKeypressPanel (e) {\n UI.log.info('Key ' + e.keyCode + ' pressed')\n\n function showURI (about) {\n if (about && dom.getElementById('UserURI')) {\n dom.getElementById('UserURI').value =\n about.termType === 'NamedNode' ? about.uri : '' // blank if no URI\n }\n }\n\n function setSelectedAfterward (_uri) {\n if (arguments[3]) return true\n walk('right', selectedTd)\n showURI(UI.utils.getAbout(kb, selection[0]))\n return true\n }\n let target, editable\n\n if (UI.utils.getTarget(e).tagName === 'TEXTAREA') return\n if (UI.utils.getTarget(e).id === 'UserURI') return\n if (selection.length > 1) return\n if (selection.length === 0) {\n if (\n e.keyCode === 13 ||\n e.keyCode === 38 ||\n e.keyCode === 40 ||\n e.keyCode === 37 ||\n e.keyCode === 39\n ) {\n this.walk('right', thisOutline.focusTd)\n showURI(UI.utils.getAbout(kb, selection[0]))\n }\n return\n }\n const selectedTd = selection[0]\n // if not done, Have to deal with redraw...\n sf.removeCallback('done', 'setSelectedAfterward')\n sf.removeCallback('fail', 'setSelectedAfterward')\n\n switch (e.keyCode) {\n case 13: // enter\n if (UI.utils.getTarget(e).tagName === 'HTML') {\n // I don't know why 'HTML'\n const object = UI.utils.getAbout(kb, selectedTd)\n target = selectedTd.parentNode.AJAR_statement.why\n editable = store.updater.editable(target.uri, kb)\n if (object) {\n // <Feature about='enterToExpand'>\n outline.GotoSubject(object, true)\n /* //deal with this later\n deselectAll();\n var newTr=dom.getElementById('outline').lastChild;\n setSelected(newTr.firstChild.firstChild.childNodes[1].lastChild,true);\n function setSelectedAfterward(uri){\n deselectAll();\n setSelected(newTr.firstChild.firstChild.childNodes[1].lastChild,true);\n showURI(getAbout(kb,selection[0]));\n return true;\n }\n sf.insertCallback('done',setSelectedAfterward);\n sf.insertCallback('fail',setSelectedAfterward);\n */\n // </Feature>\n } else if (editable) {\n // this is a text node and editable\n thisOutline.UserInput.Enter(selectedTd)\n }\n } else {\n // var newSelTd=thisOutline.UserInput.lastModified.parentNode.parentNode.nextSibling.lastChild;\n this.UserInput.Keypress(e)\n this.walk('down') // bug with input at the end\n // dom.getElementById('docHTML').focus(); //have to set this or focus blurs\n e.stopPropagation()\n }\n return\n case 38: // up\n // thisOutline.UserInput.clearInputAndSave();\n // ^^^ does not work because up and down not captured...\n this.walk('up')\n e.stopPropagation()\n e.preventDefault()\n break\n case 40: // down\n // thisOutline.UserInput.clearInputAndSave();\n this.walk('down')\n e.stopPropagation()\n e.preventDefault()\n } // switch\n\n if (UI.utils.getTarget(e).tagName === 'INPUT') return\n\n let walk\n switch (e.keyCode) {\n case 46: // delete\n case 8: // backspace\n target = selectedTd.parentNode.AJAR_statement.why\n editable = store.updater.editable(target.uri, kb)\n if (editable) {\n e.preventDefault() // prevent from going back\n this.UserInput.Delete(selectedTd)\n }\n break\n case 37: { // left\n if (this.walk('left')) return\n const titleTd = UI.utils.ancestor(selectedTd.parentNode, 'TD')\n outlineCollapse(selectedTd, UI.utils.getAbout(kb, titleTd))\n break\n }\n case 39: // right\n // @@ TODO: Write away the need for exception on next line\n \n const obj = UI.utils.getAbout(kb, selectedTd)\n if (obj) {\n walk = this.walk\n if (selectedTd.nextSibling) {\n // when selectedTd is a predicate\n this.walk('right')\n return\n }\n if (selectedTd.firstChild.tagName !== 'TABLE') {\n // not expanded\n sf.addCallback('done', setSelectedAfterward)\n sf.addCallback('fail', setSelectedAfterward)\n outlineExpand(selectedTd, obj, {\n pane: paneRegistry.byName('defaultPane')\n })\n }\n setSelectedAfterward()\n }\n break\n case 38: // up\n case 40: // down\n break\n default:\n switch (e.charCode) {\n case 99: // c for Copy\n if (e.ctrlKey) {\n thisOutline.UserInput.copyToClipboard(\n thisOutline.clipboardAddress,\n selectedTd\n )\n break\n }\n break\n case 118: // v\n case 112: // p for Paste\n if (e.ctrlKey) {\n thisOutline.UserInput.pasteFromClipboard(\n thisOutline.clipboardAddress,\n selectedTd\n )\n // dom.getElementById('docHTML').focus(); //have to set this or focus blurs\n // window.focus();\n // e.stopPropagation();\n break\n }\n break\n default:\n if (UI.utils.getTarget(e).tagName === 'HTML') {\n /*\n //<Feature about='typeOnSelectedToInput'>\n thisOutline.UserInput.Click(e,selectedTd);\n thisOutline.UserInput.lastModified.value=String.fromCharCode(e.charCode);\n if (selectedTd.className==='undetermined selected') thisOutline.UserInput.AutoComplete(e.charCode)\n //</Feature>\n */\n // Events are not reliable...\n // var e2=document.createEvent('KeyboardEvent');\n // e2.initKeyEvent('keypress',true,true,null,false,false,false,false,e.keyCode,0);\n // UserInput.lastModified.dispatchEvent(e2);\n }\n }\n } // end of switch\n\n showURI(UI.utils.getAbout(kb, selection[0]))\n // alert(window);alert(doc);\n /*\n var wm = Components.classes['@mozilla.org/appshell/window-mediator;1']\n .getService(Components.interfaces.nsIWindowMediator);\n var gBrowser = wm.getMostRecentWindow('navigator:browser') */\n // gBrowser.addTab('http://www.w3.org/');\n // alert(gBrowser.addTab);alert(gBrowser.scroll);alert(gBrowser.scrollBy)\n // gBrowser.scrollBy(0,100);\n\n // var thisHtml=selection[0].owner\n if (selection[0]) {\n const PosY = UI.utils.findPos(selection[0])[1]\n if (\n PosY + selection[0].clientHeight >\n window.scrollY + window.innerHeight\n ) {\n UI.utils.getEyeFocus(selection[0], true, true, window)\n }\n if (PosY < window.scrollY + 54) {\n UI.utils.getEyeFocus(selection[0], true, undefined, window)\n }\n }\n }\n this.OutlinerMouseclickPanel = function (e) {\n switch (thisOutline.UserInput._tabulatorMode) {\n case 0:\n TabulatorMousedown(e)\n break\n case 1:\n thisOutline.UserInput.Click(e)\n break\n default:\n }\n }\n\n /** things to do onmousedown in outline view **/\n /*\n ** To Do: This big event handler needs to be replaced by lots\n ** of little ones individually connected to each icon. This horrible\n ** switch below isn't modular. (Sorry!) - Tim\n */\n // expand\n // collapse\n // refocus\n // select\n // visit/open a page\n\n function expandMouseDownListener (e) {\n // For icon (UI.icons.originalIconBase + 'tbl-expand-trans.png')\n const target = thisOutline.targetOf(e)\n const p = target.parentNode\n const subject = UI.utils.getAbout(kb, target)\n const pane = e.altKey ? paneRegistry.byName('internal') : undefined // set later: was panes.defaultPane\n\n if (e.shiftKey) {\n // Shift forces a refocus - bring this to the top\n outlineRefocus(p, subject, pane)\n } else {\n if (e.altKey) {\n // To investigate screw ups, dont wait show internals\n outlineExpand(p, subject, {\n pane: paneRegistry.byName('internal'),\n immediate: true\n })\n } else {\n outlineExpand(p, subject)\n }\n }\n }\n\n function collapseMouseDownListener (e) {\n // for icon UI.icons.originalIconBase + 'tbl-collapse.png'\n const target = thisOutline.targetOf(e)\n const subject = UI.utils.getAbout(kb, target)\n const pane = e.altKey ? paneRegistry.byName('internal') : undefined\n const p = target.parentNode.parentNode\n outlineCollapse(p, subject, pane)\n }\n\n function failedIconMouseDownListener (e) {\n // outlineIcons.src.icon_failed\n const target = thisOutline.targetOf(e)\n const uri = target.getAttribute('uri') // Put on access buttons\n if (e.altKey) {\n sf.fetch(UI.rdf.uri.docpart(uri), {\n force: true\n }) // Add 'force' bit?\n } else {\n sf.refresh(kb.sym(UI.rdf.uri.docpart(uri))) // just one\n }\n }\n\n function fetchedIconMouseDownListener (e) {\n // outlineIcons.src.icon_fetched\n const target = thisOutline.targetOf(e)\n const uri = target.getAttribute('uri') // Put on access buttons\n if (e.altKey) {\n sf.fetch(UI.rdf.uri.docpart(uri), {\n force: true\n })\n } else {\n sf.refresh(kb.sym(UI.rdf.uri.docpart(uri))) // just one\n }\n }\n\n function unrequestedIconMouseDownListener (e) {\n const target = thisOutline.targetOf(e)\n const uri = target.getAttribute('uri') // Put on access buttons\n sf.fetch(UI.rdf.uri.docpart(uri))\n }\n\n function removeNodeIconMouseDownListener (e) {\n // icon_remove_node\n const target = thisOutline.targetOf(e)\n let node = target.node\n if (node.childNodes.length > 1) node = target.parentNode // parallel outline view @@ Hack\n removeAndRefresh(node) // @@ update icons for pane?\n }\n\n function selectableTDClickListener (e) {\n // Is we are in editing mode already\n if (thisOutline.UserInput._tabulatorMode) {\n return thisOutline.UserInput.Click(e)\n }\n\n const target = thisOutline.targetOf(e)\n // Originally this was set on the whole tree and could happen anywhere\n // var p = target.parentNode\n let node\n for (\n node = UI.utils.ancestor(target, 'TD');\n node && !(node.getAttribute('notSelectable') === 'false'); // Default now is not selectable\n node = UI.utils.ancestor(node.parentNode, 'TD')\n ) {\n // ...\n }\n if (!node) return\n\n // var node = target;\n\n const sel = selected(node)\n // var cla = node.getAttribute('class')\n UI.log.debug('Was node selected before: ' + sel)\n if (e.altKey) {\n setSelected(node, !selected(node))\n } else if (e.shiftKey) {\n setSelected(node, true)\n } else {\n // setSelected(node, !selected(node))\n deselectAll()\n thisOutline.UserInput.clearInputAndSave(e)\n setSelected(node, true)\n\n if (e.detail === 2) {\n // double click -> quit TabulatorMousedown()\n e.stopPropagation()\n return\n }\n // if the node is already selected and the corresponding statement is editable,\n // go to UserInput\n let st\n if (node.parentNode) st = node.parentNode.AJAR_statement\n if (!st) return // For example in the title TD of an expanded pane\n const target = st.why\n const editable = store.updater.editable(target.uri, kb)\n if (sel && editable) thisOutline.UserInput.Click(e, selection[0]) // was next 2 lines\n // var text='TabulatorMouseDown@Outline()';\n // HCIoptions['able to edit in Discovery Mode by mouse'].setupHere([sel,e,thisOutline,selection[0]],text);\n }\n UI.log.debug(\n 'Was node selected after: ' +\n selected(node) +\n ', count=' +\n selection.length\n )\n // var tr = node.parentNode\n /*\n if (tr.AJAR_statement) {\n // var why = tr.AJAR_statement.why\n // UI.log.info('Information from '+why);\n }\n */\n e.stopPropagation()\n // this is important or conflict between deselect and user input happens\n }\n\n function TabulatorMousedown (e) {\n UI.log.info('@TabulatorMousedown, dom.location is now ' + dom.location)\n const target = thisOutline.targetOf(e)\n if (!target) return\n const tname = target.tagName\n // UI.log.debug('TabulatorMousedown: ' + tname + ' shift='+e.shiftKey+' alt='+e.altKey+' ctrl='+e.ctrlKey);\n // var p = target.parentNode\n // var about = UI.utils.getAbout(kb, target)\n // var source = null\n if (tname === 'INPUT' || tname === 'TEXTAREA') {\n return\n }\n\n // not input then clear\n thisOutline.UserInput.clearMenu()\n\n // ToDo:remove this and recover X\n if (\n thisOutline.UserInput.lastModified &&\n thisOutline.UserInput.lastModified.parentNode.nextSibling\n ) {\n thisOutline.UserInput.backOut()\n }\n\n // if (typeof rav=='undefined') //uncomment this for javascript2rdf\n // have to put this here or this conflicts with deselectAll()\n\n if (\n !target.src ||\n (target.src.slice(target.src.indexOf('/icons/') + 1) !==\n outlineIcons.src.icon_show_choices &&\n target.src.slice(target.src.indexOf('/icons/') + 1) !==\n outlineIcons.src.icon_add_triple)\n ) {\n thisOutline.UserInput.clearInputAndSave(e)\n }\n\n if (\n !target.src ||\n target.src.slice(target.src.indexOf('/icons/') + 1) !==\n outlineIcons.src.icon_show_choices\n ) {\n thisOutline.UserInput.clearMenu()\n }\n\n if (e) e.stopPropagation()\n } // function TabulatorMousedown\n\n function setUrlBarAndTitle (subject) {\n dom.title = UI.utils.label(subject)\n if (dom.location.href.startsWith(subject.site().uri)) {\n // dom.location = subject.uri // No causes reload\n }\n }\n\n /** Expand an outline view\n * @param p {Element} - container\n */\n function outlineExpand (p, subject1, options) {\n options = options || {}\n const pane = options.pane\n let already = !!options.already\n const immediate = options.immediate\n\n UI.log.info('@outlineExpand, dom is now ' + dom.location)\n // remove callback to prevent unexpected repaint\n sf.removeCallback('done', 'expand')\n sf.removeCallback('fail', 'expand')\n\n let subject = kb.canon(subject1)\n // var requTerm = subject.uri ? kb.sym(UI.rdf.uri.docpart(subject.uri)) : subject\n\n function render () {\n subject = kb.canon(subject)\n if (!p || !p.parentNode || !p.parentNode.parentNode) return false\n\n let newTable\n UI.log.info('@@ REPAINTING ')\n if (!already) {\n // first expand\n newTable = propertyTable(subject, undefined, pane, options)\n } else {\n UI.log.info(' ... p is ' + p)\n for (\n newTable = p.firstChild;\n newTable.nextSibling;\n newTable = newTable.nextSibling\n ) {\n UI.log.info(' ... checking node ' + newTable)\n if (newTable.nodeName === 'table') break\n }\n newTable = propertyTable(subject, newTable, pane, options)\n }\n already = true\n if (\n UI.utils.ancestor(p, 'TABLE') &&\n UI.utils.ancestor(p, 'TABLE').style.backgroundColor === 'white'\n ) {\n newTable.style.backgroundColor = '#eee'\n } else {\n newTable.style.backgroundColor = 'white'\n }\n UI.utils.emptyNode(p).appendChild(newTable)\n thisOutline.focusTd = p // I don't know why I couldn't use 'this'...because not defined in callbacks\n UI.log.debug('expand: Node for ' + subject + ' expanded')\n // fetch seeAlso when render()\n // var seeAlsoStats = sf.store.statementsMatching(subject, UI.ns.rdfs('seeAlso'))\n // seeAlsoStats.map(function (x) {sf.lookUpThing(x.object, subject,false);})\n const seeAlsoWhat = kb.each(subject, UI.ns.rdfs('seeAlso'))\n for (let i = 0; i < seeAlsoWhat.length; i++) {\n if (i === 25) {\n UI.log.warn(\n 'expand: Warning: many (' +\n seeAlsoWhat.length +\n ') seeAlso links for ' +\n subject\n )\n // break; Not sure what limits the AJAX system has here\n }\n sf.lookUpThing(seeAlsoWhat[i], subject)\n }\n }\n\n function expand (uri) {\n if (arguments[3]) return true // already fetched indicator\n const cursubj = kb.canon(subject) // canonical identifier may have changed\n UI.log.info(\n '@@ expand: relevant subject=' +\n cursubj +\n ', uri=' +\n uri +\n ', already=' +\n already\n )\n // var term = kb.sym(uri)\n const docTerm = kb.sym(UI.rdf.uri.docpart(uri))\n if (uri.indexOf('#') >= 0) {\n throw new Error('Internal error: hash in ' + uri)\n }\n\n const relevant = function () {\n // Is the loading of this URI relevam to the display of subject?\n if (!cursubj.uri) return true // bnode should expand()\n const as = kb.uris(cursubj)\n if (!as) return false\n for (let i = 0; i < as.length; i++) {\n // canon'l uri or any alias\n for (\n let rd = UI.rdf.uri.docpart(as[i]);\n rd;\n rd = kb.HTTPRedirects[rd]\n ) {\n if (uri === rd) return true\n }\n }\n if (kb.anyStatementMatching(cursubj, undefined, undefined, docTerm)) {\n return true\n } // Kenny: inverse?\n return false\n }\n if (relevant()) {\n UI.log.success(\n '@@ expand OK: relevant subject=' +\n cursubj +\n ', uri=' +\n uri +\n ', source=' +\n already\n )\n\n render()\n return false // @@@@@@@@@@@ Will this allow just the first\n }\n return true\n }\n // Body of outlineExpand\n\n if (options.solo) {\n setUrlBarAndTitle(subject)\n }\n UI.log.debug('outlineExpand: dereferencing ' + subject)\n const status = dom.createElement('span')\n p.appendChild(status)\n sf.addCallback('done', expand) // @@@@@@@ This can really mess up existing work\n sf.addCallback('fail', expand) // Need to do if there s one a gentle resync of page with store\n\n const returnConditions = [] // this is quite a general way to do cut and paste programming\n // I might make a class for this\n if (subject.uri && subject.uri.split(':')[0] === 'rdf') {\n // what is this? -tim\n render()\n return\n }\n\n for (let i = 0; i < returnConditions.length; i++) {\n let returnCode\n if (returnCode === returnConditions[i](subject)) {\n render()\n UI.log.debug('outline 1815')\n if (returnCode[1]) outlineElement.removeChild(outlineElement.lastChild)\n return\n }\n }\n if (\n subject.uri &&\n !immediate &&\n !UI.widgets.isAudio(subject) &&\n !UI.widgets.isVideo(subject)\n ) {\n // Wait till at least the main URI is loaded before expanding:\n sf.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {\n if (ok) {\n sf.lookUpThing(subject)\n render() // inital open, or else full if re-open\n if (options.solo) {\n // Update window title with new information\n // dom.title = UI.utils.label(subject)\n setUrlBarAndTitle(subject)\n }\n } else {\n const message = dom.createElement('pre')\n message.textContent = body\n message.setAttribute('style', 'background-color: #fee;')\n message.textContent =\n 'Outline.expand: Unable to fetch ' + subject.doc() + ': ' + body\n p.appendChild(message)\n }\n })\n } else {\n render()\n }\n } // outlineExpand\n\n function outlineCollapse (p, subject) {\n let row = UI.utils.ancestor(p, 'TR')\n row = UI.utils.ancestor(row.parentNode, 'TR') // two levels up\n let statement\n if (row) statement = row.AJAR_statement\n let level // find level (the enclosing TD)\n for (\n level = p.parentNode;\n level.tagName !== 'TD';\n level = level.parentNode\n ) {\n if (typeof level === 'undefined') {\n alert('Not enclosed in TD!')\n return\n }\n }\n\n UI.log.debug('Collapsing subject ' + subject)\n let myview\n if (statement) {\n UI.log.debug('looking up pred ' + statement.predicate.uri + 'in defaults')\n myview = views.defaults[statement.predicate.uri]\n }\n UI.log.debug('view= ' + myview)\n let deleteNode\n if (level.parentNode.parentNode.id === 'outline') {\n deleteNode = level.parentNode\n }\n thisOutline.replaceTD(\n thisOutline.outlineObjectTD(subject, myview, deleteNode, statement),\n level\n )\n } // outlineCollapse\n\n this.replaceTD = function replaceTD (newTd, replacedTd) {\n let reselect\n if (selected(replacedTd)) reselect = true\n\n // deselects everything being collapsed. This goes backwards because\n // deselecting an element decreases selection.length\n for (let x = selection.length - 1; x > -1; x--) {\n for (let elt = selection[x]; elt.parentNode; elt = elt.parentNode) {\n if (elt === replacedTd) {\n setSelected(selection[x], false)\n }\n }\n }\n\n replacedTd.parentNode.replaceChild(newTd, replacedTd)\n if (reselect) setSelected(newTd, true)\n }\n\n function outlineRefocus (p, subject) {\n // Shift-expand or shift-collapse: Maximize\n let outer = null\n for (let level = p.parentNode; level; level = level.parentNode) {\n UI.log.debug('level ' + level.tagName)\n if (level.tagName === 'TD') outer = level\n } // find outermost td\n UI.utils.emptyNode(outer).appendChild(propertyTable(subject))\n setUrlBarAndTitle(subject)\n // dom.title = UI.utils.label(subject)\n outer.setAttribute('about', subject.toNT())\n } // outlineRefocus\n\n outline.outlineRefocus = outlineRefocus\n\n // Inversion is turning the outline view inside-out\n // It may be called eversion\n /*\n function outlineInversion (p, subject) { // re-root at subject\n function move_root (rootTR, childTR) { // swap root with child\n // @@\n }\n }\n*/\n this.GotoFormURI_enterKey = function (e) {\n if (e.keyCode === 13) outline.GotoFormURI(e)\n }\n this.GotoFormURI = function (_e) {\n GotoURI(dom.getElementById('UserURI').value)\n }\n\n function GotoURI (uri) {\n const subject = kb.sym(uri)\n this.GotoSubject(subject, true)\n }\n this.GotoURIinit = function (uri) {\n const subject = kb.sym(uri)\n this.GotoSubject(subject)\n }\n\n /** Display the subject in an outline view\n\n @param subject -- RDF term for teh thing to be presented\n @param expand -- flag -- open the subject rather than keep folded closed\n @param pane -- optional -- pane to be used for expanded display\n @param solo -- optional -- the window will be cleared out and only the subject displayed\n @param referer -- optional -- where did we hear about this from anyway?\n @param table -- option -- a table element in which to put the outline.\n*/\n this.GotoSubject = function (subject, expand, pane, solo, referrer, table) {\n table = table || dom.getElementById('outline') // if does not exist just add one? nowhere to out it\n if (solo) {\n UI.utils.emptyNode(table)\n table.style.width = '100%'\n }\n\n function GotoSubjectDefault () {\n const tr = dom.createElement('TR')\n tr.style.verticalAlign = 'top'\n table.appendChild(tr)\n const td = thisOutline.outlineObjectTD(subject, undefined, tr)\n tr.appendChild(td)\n return td\n }\n\n const td = GotoSubjectDefault()\n\n if (solo) setUrlBarAndTitle(subject) // dom.title = UI.utils.label(subject) // 'Tabulator: '+ No need to advertize\n\n if (expand) {\n outlineExpand(td, subject, {\n pane: pane,\n solo: solo\n })\n const tr = td.parentNode\n UI.utils.getEyeFocus(tr, false, undefined, window) // instantly: false\n }\n\n if (\n solo &&\n dom &&\n dom.defaultView &&\n dom.defaultView.history &&\n // Don't add the new location to the history if we arrived here through a direct link\n // (i.e. when static/databrowser.html in node-solid-server called this method):\n document.location.href !== subject.uri\n ) {\n const stateObj = pane ? { paneName: pane.name } : {}\n try {\n // can fail if different origin\n dom.defaultView.history.pushState(stateObj, subject.uri, subject.uri)\n } catch (e) {\n console.log(e)\n }\n }\n\n return subject\n }\n\n // / /////////////////////////////////////////////////////\n //\n //\n // VIEWS\n //\n //\n // / /////////////////////////////////////////////////////\n\n const ns = UI.ns\n\n const views = propertyViews(dom)\n\n // var thisOutline = this dup\n /** some builtin simple views **/\n\n function viewAsBoringDefault (obj) {\n // UI.log.debug('entered viewAsBoringDefault...');\n let rep // representation in html\n\n if (obj.termType === 'Literal') {\n const styles = {\n integer: 'text-align: right;',\n decimal: \"text-align: '.';\",\n double: \"text-align: '.';\"\n }\n rep = dom.createElement('span')\n rep.textContent = obj.value\n // Newlines have effect and overlong lines wrapped automatically\n let style = ''\n if (obj.datatype && obj.datatype.uri) {\n const xsd = UI.ns.xsd('').uri\n if (obj.datatype.uri.slice(0, xsd.length) === xsd) {\n style = styles[obj.datatype.uri.slice(xsd.length)]\n }\n }\n rep.setAttribute('style', style || 'white-space: pre-wrap;')\n } else if (obj.termType === 'NamedNode' || obj.termType === 'BlankNode') {\n rep = dom.createElement('span')\n rep.setAttribute('about', obj.toNT())\n thisOutline.appendAccessIcons(kb, rep, obj)\n\n if (obj.termType === 'NamedNode') {\n if (obj.uri.slice(0, 4) === 'tel:') {\n const num = obj.uri.slice(4)\n const anchor = dom.createElement('a')\n rep.appendChild(dom.createTextNode(num))\n anchor.setAttribute('href', obj.uri)\n anchor.appendChild(\n UI.utils.AJARImage(\n outlineIcons.src.icon_telephone,\n 'phone',\n 'phone ' + num,\n dom\n )\n )\n rep.appendChild(anchor)\n anchor.firstChild.setAttribute('class', 'phoneIcon')\n } else {\n // not tel:\n rep.appendChild(dom.createTextNode(UI.utils.label(obj)))\n const anchor = UI.widgets.linkIcon(dom, obj)\n rep.appendChild(anchor)\n UI.widgets.makeDraggable(rep, obj) // 2017\n }\n } else {\n // bnode\n rep.appendChild(dom.createTextNode(UI.utils.label(obj)))\n }\n } else if (obj.termType === 'Collection') {\n // obj.elements is an array of the elements in the collection\n rep = dom.createElement('table')\n rep.setAttribute('style', 'width: 100%;')\n rep.setAttribute('about', obj.toNT())\n /* Not sure which looks best -- with or without. I think without\n\n var tr = rep.appendChild(document.createElement('tr'));\n tr.appendChild(document.createTextNode(\n obj.elements.length ? '(' + obj.elements.length+')' : '(none)'));\n */\n for (let i = 0; i < obj.elements.length; i++) {\n const elt = obj.elements[i]\n const row = rep.appendChild(dom.createElement('tr'))\n const numcell = row.appendChild(dom.createElement('td'))\n numcell.setAttribute(\n 'style',\n 'margin: 0.2em; border: none; padding: 0; vertical-align: top;'\n )\n numcell.setAttribute('notSelectable', 'false')\n numcell.setAttribute('about', obj.toNT())\n numcell.innerHTML = i + 1 + ')'\n row.appendChild(thisOutline.outlineObjectTD(elt))\n }\n } else if (obj.termType === 'Graph') {\n rep = paneRegistry\n .byName('dataContentPane')\n .statementsAsTables(obj.statements, context)\n rep.setAttribute('class', 'nestedFormula')\n } else {\n UI.log.error('Object ' + obj + ' has unknown term type: ' + obj.termType)\n rep = dom.createTextNode('[unknownTermType:' + obj.termType + ']')\n } // boring defaults.\n UI.log.debug('contents: ' + rep.innerHTML)\n return rep\n } // boring_default\n\n this.createTabURI = function () {\n dom.getElementById('UserURI').value =\n dom.URL + '?uri=' + dom.getElementById('UserURI').value\n }\n\n // a way to expose variables to UserInput without making them propeties/methods\n this.UserInput.setSelected = setSelected\n this.UserInput.deselectAll = deselectAll\n this.UserInput.views = views\n this.outlineExpand = outlineExpand\n\n // this.panes = panes; // Allow external panes to register\n\n return this\n} // END OF OUTLINE\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.test.d.ts","sourceRoot":"","sources":["../../src/outline/manager.test.ts"],"names":[],"mappings":""}
|