solid-panes 3.7.3 → 4.0.0-2fdba5cd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/RDFXMLPane.js +59 -0
- package/dist/RDFXMLPane.js.map +1 -0
- package/{lib → dist}/argument/argumentPane.js +14 -15
- package/dist/argument/argumentPane.js.map +1 -0
- package/{lib → dist}/attach/attachPane.js +83 -93
- package/dist/attach/attachPane.js.map +1 -0
- package/{lib → dist}/audio/audioPane.js +49 -50
- package/dist/audio/audioPane.js.map +1 -0
- package/{lib → dist}/classInstancePane.js +23 -24
- package/dist/classInstancePane.js.map +1 -0
- package/dist/dashboard/basicPreferences.js +147 -0
- package/dist/dashboard/basicPreferences.js.map +1 -0
- package/{lib → dist}/dashboard/dashboardPane.js +17 -21
- package/dist/dashboard/dashboardPane.js.map +1 -0
- package/dist/dashboard/homepage.js +54 -0
- package/dist/dashboard/homepage.js.map +1 -0
- package/{lib → dist}/dataContentPane.js +64 -63
- package/dist/dataContentPane.js.map +1 -0
- package/{lib → dist}/defaultPane.js +15 -16
- package/dist/defaultPane.js.map +1 -0
- package/{lib → dist}/dokieli/dokieliPane.js +49 -53
- package/dist/dokieli/dokieliPane.js.map +1 -0
- package/{src → dist}/dokieli/new.js +9 -3
- package/dist/dokieli/new.js.map +1 -0
- package/{lib → dist}/form/pane.js +44 -45
- package/dist/form/pane.js.map +1 -0
- package/dist/home/homePane.js +73 -0
- package/dist/home/homePane.js.map +1 -0
- package/dist/humanReadablePane.js +135 -0
- package/dist/humanReadablePane.js.map +1 -0
- package/dist/imagePane.js +70 -0
- package/dist/imagePane.js.map +1 -0
- package/{lib → dist}/index.js +17 -20
- package/dist/index.js.map +1 -0
- package/{lib → dist}/internal/internalPane.js +41 -41
- package/dist/internal/internalPane.js.map +1 -0
- package/{lib → dist}/mainPage/footer.js +2 -2
- package/{lib → dist}/mainPage/footer.js.map +1 -1
- package/dist/mainPage/header.js +86 -0
- package/dist/mainPage/header.js.map +1 -0
- package/{lib → dist}/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.js +25 -0
- package/dist/mainPage/index.js.map +1 -0
- package/{lib → dist}/microblogPane/microblogPane.js +270 -270
- package/dist/microblogPane/microblogPane.js.map +1 -0
- package/dist/n3Pane.js +57 -0
- package/dist/n3Pane.js.map +1 -0
- package/{lib → dist}/outline/context.js +4 -4
- package/{lib → dist}/outline/context.js.map +1 -1
- package/dist/outline/manager.js +1997 -0
- package/dist/outline/manager.js.map +1 -0
- package/{lib → dist}/outline/outlineIcons.js +2 -3
- package/dist/outline/outlineIcons.js.map +1 -0
- package/{lib → dist}/outline/propertyViews.js +4 -4
- package/dist/outline/propertyViews.js.map +1 -0
- package/{lib → dist}/outline/queryByExample.js +33 -33
- package/dist/outline/queryByExample.js.map +1 -0
- package/{lib → dist}/outline/userInput.js +268 -266
- package/dist/outline/userInput.js.map +1 -0
- package/dist/outline/viewAsImage.js +15 -0
- package/dist/outline/viewAsImage.js.map +1 -0
- package/dist/outline/viewAsMbox.js +22 -0
- package/dist/outline/viewAsMbox.js.map +1 -0
- package/{lib → dist}/pad/padPane.js +90 -96
- package/dist/pad/padPane.js.map +1 -0
- package/{lib → dist}/playlist/playlistPane.js +36 -37
- package/dist/playlist/playlistPane.js.map +1 -0
- package/{lib → dist}/registerPanes.js +29 -29
- package/dist/registerPanes.js.map +1 -0
- package/{lib → dist}/schedule/schedulePane.js +171 -178
- package/dist/schedule/schedulePane.js.map +1 -0
- package/{lib → dist}/sharing/sharingPane.js +12 -12
- package/dist/sharing/sharingPane.js.map +1 -0
- package/dist/slideshow/slideshowPane.js +80 -0
- package/dist/slideshow/slideshowPane.js.map +1 -0
- package/{lib → dist}/socialPane.js +142 -142
- package/dist/socialPane.js.map +1 -0
- package/dist/tabbed/tabbedPane.js +58 -0
- package/dist/tabbed/tabbedPane.js.map +1 -0
- package/{lib → dist}/tableViewPane.js +8 -9
- package/dist/tableViewPane.js.map +1 -0
- package/{lib → dist}/transaction/pane.js +117 -118
- package/dist/transaction/pane.js.map +1 -0
- package/{lib → dist}/transaction/period.js +82 -83
- package/dist/transaction/period.js.map +1 -0
- package/{lib → dist}/trip/tripPane.js +47 -48
- package/dist/trip/tripPane.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.dom.js +146 -0
- package/dist/trustedApplications/trustedApplications.dom.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.utils.js +24 -0
- package/dist/trustedApplications/trustedApplications.utils.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.view.js +56 -0
- package/dist/trustedApplications/trustedApplications.view.js.map +1 -0
- package/{lib → dist}/ui/pane.js +30 -31
- package/dist/ui/pane.js.map +1 -0
- package/dist/versionInfo.js +37 -0
- package/dist/versionInfo.js.map +1 -0
- package/dist/video/videoPane.js +43 -0
- package/dist/video/videoPane.js.map +1 -0
- package/package.json +47 -41
- package/Documentation/VisualLanguage.html +0 -538
- package/Documentation/conventions.md +0 -333
- package/coverage/clover.xml +0 -152
- package/coverage/coverage-final.json +0 -6
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -131
- package/coverage/lcov-report/outline/index.html +0 -161
- package/coverage/lcov-report/outline/outlineIcons.js.html +0 -565
- package/coverage/lcov-report/outline/propertyViews.ts.html +0 -196
- package/coverage/lcov-report/outline/viewAsImage.ts.html +0 -121
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +0 -127
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/trustedApplications/index.html +0 -116
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +0 -238
- package/coverage/lcov.info +0 -204
- package/dev/index.html +0 -28
- package/dev/loader.ts +0 -91
- package/dev/pane/index.ts +0 -10
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +0 -609
- package/eslint.config.mjs +0 -34
- package/jest.config.js +0 -27
- package/jest.setup.ts +0 -4
- package/lib/RDFXMLPane.js +0 -59
- package/lib/RDFXMLPane.js.map +0 -1
- package/lib/argument/argumentPane.js.map +0 -1
- package/lib/attach/attachPane.js.map +0 -1
- package/lib/audio/audioPane.js.map +0 -1
- package/lib/classInstancePane.js.map +0 -1
- package/lib/dashboard/basicPreferences.js +0 -229
- package/lib/dashboard/basicPreferences.js.map +0 -1
- package/lib/dashboard/dashboardPane.js.map +0 -1
- package/lib/dashboard/homepage.js +0 -86
- package/lib/dashboard/homepage.js.map +0 -1
- package/lib/dataContentPane.js.map +0 -1
- package/lib/defaultPane.js.map +0 -1
- package/lib/dokieli/dokieliPane.js.map +0 -1
- package/lib/dokieli/new.js +0 -9
- package/lib/dokieli/new.js.map +0 -1
- package/lib/form/pane.js.map +0 -1
- package/lib/global.d.js +0 -2
- package/lib/global.d.js.map +0 -1
- package/lib/home/homePane.js +0 -91
- package/lib/home/homePane.js.map +0 -1
- package/lib/humanReadablePane.js +0 -138
- package/lib/humanReadablePane.js.map +0 -1
- package/lib/imagePane.js +0 -71
- package/lib/imagePane.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/internal/internalPane.js.map +0 -1
- package/lib/mainPage/header.js +0 -152
- package/lib/mainPage/header.js.map +0 -1
- package/lib/mainPage/index.js +0 -42
- package/lib/mainPage/index.js.map +0 -1
- package/lib/microblogPane/microblogPane.js.map +0 -1
- package/lib/n3Pane.js +0 -57
- package/lib/n3Pane.js.map +0 -1
- package/lib/outline/manager.js +0 -2264
- package/lib/outline/manager.js.map +0 -1
- package/lib/outline/manager.test.d.ts +0 -2
- package/lib/outline/manager.test.d.ts.map +0 -1
- package/lib/outline/manager.test.js +0 -210
- package/lib/outline/manager.test.js.map +0 -1
- package/lib/outline/outlineIcons.js.map +0 -1
- package/lib/outline/propertyViews.js.map +0 -1
- package/lib/outline/propertyViews.test.d.ts +0 -2
- package/lib/outline/propertyViews.test.d.ts.map +0 -1
- package/lib/outline/propertyViews.test.js +0 -27
- package/lib/outline/propertyViews.test.js.map +0 -1
- package/lib/outline/queryByExample.js.map +0 -1
- package/lib/outline/userInput.js.map +0 -1
- package/lib/outline/viewAsImage.js +0 -17
- package/lib/outline/viewAsImage.js.map +0 -1
- package/lib/outline/viewAsMbox.js +0 -23
- package/lib/outline/viewAsMbox.js.map +0 -1
- package/lib/pad/padPane.js.map +0 -1
- package/lib/playlist/playlistPane.js.map +0 -1
- package/lib/registerPanes.js.map +0 -1
- package/lib/schedule/formsForSchedule.js +0 -8
- package/lib/schedule/formsForSchedule.js.map +0 -1
- package/lib/schedule/schedulePane.js.map +0 -1
- package/lib/sharing/sharingPane.js.map +0 -1
- package/lib/slideshow/slideshowPane.js +0 -84
- package/lib/slideshow/slideshowPane.js.map +0 -1
- package/lib/socialPane.js.map +0 -1
- package/lib/tabbed/tabbedPane.js +0 -72
- package/lib/tabbed/tabbedPane.js.map +0 -1
- package/lib/tableViewPane.js.map +0 -1
- package/lib/test-import-export/common.js +0 -12
- package/lib/test-import-export/common.js.map +0 -1
- package/lib/test-import-export/edit-importer.js +0 -25
- package/lib/test-import-export/edit-importer.js.map +0 -1
- package/lib/test-import-export/testImportExport.js +0 -2
- package/lib/test-import-export/testImportExport.js.map +0 -1
- package/lib/transaction/pane.js.map +0 -1
- package/lib/transaction/period.js.map +0 -1
- package/lib/trip/tripPane.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.dom.js +0 -177
- package/lib/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.test.d.ts +0 -2
- package/lib/trustedApplications/trustedApplications.test.d.ts.map +0 -1
- package/lib/trustedApplications/trustedApplications.test.js +0 -64
- package/lib/trustedApplications/trustedApplications.test.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.utils.js +0 -34
- package/lib/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.view.js +0 -87
- package/lib/trustedApplications/trustedApplications.view.js.map +0 -1
- package/lib/types.d.ts +0 -30
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -6
- package/lib/types.js.map +0 -1
- package/lib/ui/pane.js.map +0 -1
- package/lib/versionInfo.d.ts +0 -32
- package/lib/versionInfo.d.ts.map +0 -1
- package/lib/versionInfo.js +0 -37
- package/lib/versionInfo.js.map +0 -1
- package/lib/video/videoPane.js +0 -44
- package/lib/video/videoPane.js.map +0 -1
- package/src/RDFXMLPane.js +0 -60
- package/src/argument/argumentPane.js +0 -65
- package/src/argument/argument_icon_v04.jpg +0 -0
- package/src/argument/icon_argument.png +0 -0
- package/src/argument/transparentyingyang.png +0 -0
- package/src/attach/attachPane.js +0 -508
- package/src/attach/tbl-paperclip-128.png +0 -0
- package/src/attach/tbl-paperclip-22.png +0 -0
- package/src/attach/tbl-paperclip-22a.png +0 -0
- package/src/audio/audioPane.js +0 -197
- package/src/chatPreferencesForm.ttl +0 -12
- package/src/classInstancePane.js +0 -110
- package/src/dashboard/basicPreferences.ts +0 -201
- package/src/dashboard/dashboardPane.ts +0 -83
- package/src/dashboard/homepage.ts +0 -72
- package/src/dashboard/languages/codes.html +0 -8611
- package/src/dashboard/languages/codes.xml +0 -3563
- package/src/dashboard/languages/codes2.txt +0 -170
- package/src/dashboard/languages/foo +0 -70
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +0 -12
- package/src/dashboard/ontologyData.ttl +0 -35
- package/src/dashboard/preferencesFormText.ttl +0 -18
- package/src/dataContentPane.js +0 -290
- package/src/defaultPane.js +0 -102
- package/src/dokieli/Makefile +0 -6
- package/src/dokieli/dokieliPane.js +0 -190
- package/src/dokieli/new.html +0 -30
- package/src/form/form-22.png +0 -0
- package/src/form/form-b-22.png +0 -0
- package/src/form/form.graffle +0 -0
- package/src/form/form.png +0 -0
- package/src/form/pane.js +0 -217
- package/src/form/psuedocode-notes.txt +0 -57
- package/src/global.d.ts +0 -4
- package/src/home/homePane.ts +0 -72
- package/src/humanReadablePane.js +0 -150
- package/src/imagePane.js +0 -75
- package/src/index.ts +0 -71
- package/src/internal/internalPane.ts +0 -263
- package/src/mainPage/footer.ts +0 -19
- package/src/mainPage/header.ts +0 -79
- package/src/mainPage/index.ts +0 -20
- package/src/meeting/Makefile +0 -3
- package/src/meeting/test/meeting1/Actions/actions.ttl +0 -14
- package/src/meeting/test/meeting1/Actions/config.ttl +0 -16
- package/src/meeting/test/meeting1/Actions/state.ttl +0 -30
- package/src/meeting/test/meeting1/Schedule/details.ttl +0 -34
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -75
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/index.html +0 -72
- package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/results.ttl +0 -15
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -20
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -23
- package/src/meeting/test/meeting1/chat/chat.ttl +0 -1
- package/src/meeting/test/meeting1/details.ttl +0 -35
- package/src/meeting/test/meeting1/pad/pad.ttl +0 -16
- package/src/microblogPane/mbStyle.css +0 -267
- package/src/microblogPane/microblogPane.js +0 -1412
- package/src/n3Pane.js +0 -56
- package/src/outline/context.ts +0 -21
- package/src/outline/manager.js +0 -2384
- package/src/outline/manager.test.ts +0 -189
- package/src/outline/outlineIcons.js +0 -160
- package/src/outline/propertyViews.test.ts +0 -36
- package/src/outline/propertyViews.ts +0 -37
- package/src/outline/queryByExample.js +0 -296
- package/src/outline/userInput.js +0 -2373
- package/src/outline/viewAsImage.ts +0 -12
- package/src/outline/viewAsMbox.ts +0 -14
- package/src/pad/images/ColourOff.ai +2 -872
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +1 -935
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +0 -559
- package/src/playlist/playlistPane.js +0 -161
- package/src/registerPanes.js +0 -147
- package/src/schedule/Makefile +0 -6
- package/src/schedule/formsForSchedule.js +0 -117
- package/src/schedule/formsForSchedule.ttl +0 -115
- package/src/schedule/schedulePane.js +0 -1201
- package/src/sharing/sharingPane.ts +0 -49
- package/src/slideshow/slideshowPane.js +0 -80
- package/src/socialPane.js +0 -523
- package/src/style/tabbedtab.css +0 -1347
- package/src/tabbed/tabbedPane.ts +0 -60
- package/src/tableViewPane.js +0 -51
- package/src/test-import-export/common.js +0 -6
- package/src/test-import-export/edit-importer.js +0 -20
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +0 -629
- package/src/transaction/period.js +0 -374
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +0 -176
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -176
- package/src/trustedApplications/trustedApplications.dom.ts +0 -276
- package/src/trustedApplications/trustedApplications.test.ts +0 -82
- package/src/trustedApplications/trustedApplications.utils.ts +0 -51
- package/src/trustedApplications/trustedApplications.view.ts +0 -80
- package/src/types.ts +0 -34
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +0 -226
- package/src/versionInfo.ts +0 -30
- package/src/video/videoPane.js +0 -44
- package/timestamp.sh +0 -13
- package/travis/bumpversion.js +0 -29
- package/tsconfig.json +0 -78
- package/typings/raw-loader.d.ts +0 -4
- package/typings/solid-namespace/index.d.ts +0 -9
- package/webpack.config.js +0 -41
- /package/{lib → dist}/dashboard/basicPreferences.d.ts +0 -0
- /package/{lib → dist}/dashboard/basicPreferences.d.ts.map +0 -0
- /package/{lib → dist}/dashboard/dashboardPane.d.ts +0 -0
- /package/{lib → dist}/dashboard/dashboardPane.d.ts.map +0 -0
- /package/{lib → dist}/dashboard/homepage.d.ts +0 -0
- /package/{lib → dist}/dashboard/homepage.d.ts.map +0 -0
- /package/{lib → dist}/home/homePane.d.ts +0 -0
- /package/{lib → dist}/home/homePane.d.ts.map +0 -0
- /package/{lib → dist}/index.d.ts +0 -0
- /package/{lib → dist}/index.d.ts.map +0 -0
- /package/{lib → dist}/internal/internalPane.d.ts +0 -0
- /package/{lib → dist}/internal/internalPane.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/footer.d.ts +0 -0
- /package/{lib → dist}/mainPage/footer.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/header.d.ts +0 -0
- /package/{lib → dist}/mainPage/header.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/index.d.ts +0 -0
- /package/{lib → dist}/outline/context.d.ts +0 -0
- /package/{lib → dist}/outline/context.d.ts.map +0 -0
- /package/{lib → dist}/outline/propertyViews.d.ts +0 -0
- /package/{lib → dist}/outline/propertyViews.d.ts.map +0 -0
- /package/{lib → dist}/outline/viewAsImage.d.ts +0 -0
- /package/{lib → dist}/outline/viewAsImage.d.ts.map +0 -0
- /package/{lib → dist}/outline/viewAsMbox.d.ts +0 -0
- /package/{lib → dist}/outline/viewAsMbox.d.ts.map +0 -0
- /package/{lib → dist}/pad/padPane.d.ts +0 -0
- /package/{lib → dist}/pad/padPane.d.ts.map +0 -0
- /package/{lib → dist}/sharing/sharingPane.d.ts +0 -0
- /package/{lib → dist}/sharing/sharingPane.d.ts.map +0 -0
- /package/{lib → dist}/tabbed/tabbedPane.d.ts +0 -0
- /package/{lib → dist}/tabbed/tabbedPane.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userInput.js","names":["UI","_interopRequireWildcard","require","_solidLogic","panes","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","$rdf","rdf","UserInputFormula","TempFormula","UserInput","outline","myDocument","document","menuId","qp","str","console","log","ns","bibo","Namespace","dcelems","movedArrow","Formula","superFormula","store","IndexedFormula","name","updater","UpdateManager","sparqler","lastModified","lastModifiedStat","statIsInverse","addNewPredicateObject","utils","getTarget","className","This","target","insertTr","createElement","ancestor","insertBefore","tempTr","reqTerm1","generateRequest","appendChild","firstChild","reqTerm2","previousSibling","AJAR_statement","preStat","formUndetStat","subject","why","getAbout","parentNode","doc","sym","Util","uri","docpart","walk","info","getSelection","map","item","textContent","join","startFillInText","addNewObject","predicateTd","isInverse","AJAR_inverse","appendToPredicate","reqTerm","predicate","object","lastChild","Delete","selectedTd","deleteTriple","Enter","literalModification","Click","getTerm","termType","preventDefault","stopPropagation","pasteFromClipboard","address","termFrom","fromCode","term","clipboard","shift","warn","allArray","all","sameTerm","splice","Error","nextSibling","returnArray","insertTermTo","whatSortOfEditCell","emptyNode","createInputBoxIn","isNew","select","performAutoCompleteEdit","debug","indexOf","about","getStatementAbout","obj","trNode","error","tdNode","removeChild","value","match","textBox","createTextNode","setAttribute","length","toString","menu","addEventListener","getAutoCompleteHandler","backOut","clearMenu","getElementById","menuID","clearInputAndSave","s","defaultpropview","defaultValue","trCache","Statement","literal","views","defaults","update","success","errorBody","add","s1","s2","s3","valueCache","oldValue","st","replace","textTerm","selectedPredicate","elements","any","undefined","pageX","findPos","pageY","clientHeight","showMenu","dialogTerm","bnodeTerm","type","the","anyStatementMatching","remove","enclosingTd","defaultPane","byName","outlineExpand","pane","already","focusTd","fillInRequest","removeMany","upperTr","replaceTD","outlineObjectTD","isBackOut","removedTr","whether","link","removefromview","trIterator","childNodes","theNext","parseInt","getAttribute","clipboardInit","objects","predicates","copyToClipboard","unshift","isObject","AJAR_statemnet","stackString","statements","push","paneDiv","newTr","outlinePredicateTD","Refill","isPredicate","predicateQuery","subjectClass","sparqlText","endl","rdfs","variable","SPARQLToQuery","predicateTerm","owl","classQuery","mode","InputBox","enterEvent","setHighlightItem","lastHighlight","showURI","newText","keyCode","tagName","createNew","inputURI","jtitle","innerHTML","juri","slice","inputTerm","fillInType","String","fromCharCode","charCode","inputText","WildCardButtons","menuDiv","div","input1","input2","highlightInput","Keypress","targetOf","preRows","Mousedown","window","ctrlKey","switchMode","oncontextmenu","button","Mouseover","_tabulatorMode","preTd","style","cursor","border","borderColor","Mouseout","something","statement","defaultText","UpAndDown","OutlinerKeypressPanel","location","inputBox","_e","targetdoc","newTerm","nextSymbol","tiptext","typeURIhandler","newuri","isEnd","colspan","display","hasAttribute","table","bnode2symbol","bnode","symbol","copyTo","tipText","trNew","notShow","tp","newNode","menuType","inputQuery","extraInformation","_order","x","id","top","left","getOffset","el","_lf","_tp","oldlf","oldtp","newlf","newtp","isNaN","offsetLeft","offsetTop","scrollLeft","scrollTop","loc","body","highlightTr","selectItem","IDpredicate","IDterm","clickedTd","predicateChoices","tr","newTd","NameSpaces","each","forEach","ontology","label","addMenuItem","Label","predicateLabelForXML","theNamespace","string_startswith","th","toUpperCase","addPredicateChoice","selectedQuery","bindings","vars","width","h1","h1th","plist","statementsMatching","text","h2","h2th","ans1","ans2","labeller","searchAdv","results","tempQuery","tempBinding","Kenny","fromNT","NT","entries","search","types","thisNT","toNT","typeLabel","juris","matchedtitle","jtstr","matchstr","toLowerCase","jTitleLowerCase","choiceTerm","choices","nullFetcher","query","stat","newStat","doNext","eventhandler","_errorBody","newStats","inverse"],"sources":["../../src/outline/userInput.js"],"sourcesContent":["/* istanbul ignore file */\n// Original author: kennyluck\n//\n// Kenny's Notes:\n/* places to generate SPARQL update: clearInputAndSave() pasteFromClipboard()->insertTermTo();\n undetermined statement generated formUndetStat()\n ->fillInRequest()\n ontological issues\n temporarily using the tabont namespace\n clipboard: 'predicates' 'objects' 'all'(internal)\n request: 'from' 'to' 'message' 'Request'\n*/\n\nimport * as UI from 'solid-ui'\nimport { store } from 'solid-logic'\nimport * as panes from 'pane-registry'\n\nconst $rdf = UI.rdf\n\nlet UserInputFormula // Formula to store references of user's work\nlet TempFormula // Formula to store incomplete triples (Requests),\n// temporarily disjoint with kb to avoid bugs\n\nexport function UserInput (outline) {\n const myDocument = outline.document // is this ok?\n // UI.log.warn(\"myDocument when it's set is \"+myDocument.location);\n this.menuId = 'predicateMenu1'\n\n /* //namespace information, as a subgraph of the knowledge base, is built in showMenu\n this.namespaces={};\n\n for (var name in UI.ns) {\n this.namespaces[name] = UI.ns[name]('').uri;\n }\n var NameSpaces=this.namespaces;\n */\n\n // hq, print and trim functions\n const qp = function qp (str) {\n console.log(str + '\\n')\n }\n\n // var tabont = UI.ns.tabont;\n // var foaf = UI.ns.foaf\n const rdf = UI.ns.rdf\n // var RDFS = UI.ns.rdfs\n // var OWL = UI.ns.owl\n // var dc = UI.ns.dc\n // var rss = UI.ns.rss\n // var contact = UI.ns.contact\n // var mo = UI.ns.mo\n const bibo = UI.rdf.Namespace('http://purl.org/ontology/bibo/') // hql for pubsPane\n // var dcterms = UI.rdf.Namespace('http://purl.org/dc/terms/')\n const dcelems = UI.rdf.Namespace('http://purl.org/dc/elements/1.1/')\n\n let movedArrow = false // hq\n\n // var updateService=new updateCenter(kb);\n\n if (!UserInputFormula) {\n UserInputFormula = new UI.rdf.Formula()\n UserInputFormula.superFormula = store\n // UserInputFormula.registerFormula(\"Your Work\");\n }\n if (!TempFormula) TempFormula = new UI.rdf.IndexedFormula()\n // Use RDFIndexedFormula so add returns the statement\n TempFormula.name = 'TempFormula'\n if (!store.updater) store.updater = new UI.rdf.UpdateManager(store)\n\n return {\n // updateService: updateService,\n\n sparqler: store.updater,\n lastModified: null, // the last <input> being modified, .isNew indicates whether it's a new input\n lastModifiedStat: null, // the last statement being modified\n statIsInverse: false, // whether the statement is an inverse\n\n /**\n * Triggering Events: event entry points, should be called only from outline.js but not anywhere else\n * in userinput.js, should be as short as possible, function names to be discussed\n */\n\n // Called when the blue cross under the default pane is clicked.\n // Add a new row to a property list ( P and O)\n addNewPredicateObject: function addNewPredicateObject (e) {\n if (UI.utils.getTarget(e).className !== 'bottom-border-active') return\n const This = outline.UserInput\n const target = UI.utils.getTarget(e)\n\n // UI.log.warn(ancestor(target,'TABLE').textContent);\n const insertTr = myDocument.createElement('tr')\n UI.utils\n .ancestor(target, 'DIV')\n .insertBefore(insertTr, UI.utils.ancestor(target, 'TR'))\n const tempTr = myDocument.createElement('tr')\n const reqTerm1 = This.generateRequest('(TBD)', tempTr, true)\n insertTr.appendChild(tempTr.firstChild)\n const reqTerm2 = This.generateRequest(\n '(Enter text or drag an object onto this field)',\n tempTr,\n false\n )\n insertTr.appendChild(tempTr.firstChild)\n // there should be an elegant way of doing this\n\n // Take the why of the last TR and write to it.\n if (\n UI.utils.ancestor(target, 'TR').previousSibling && // there is a previous predicate/object line\n UI.utils.ancestor(target, 'TR').previousSibling.AJAR_statement\n ) {\n const preStat = UI.utils.ancestor(target, 'TR').previousSibling\n .AJAR_statement\n // This should always(?) input a non-inverse statement\n This.formUndetStat(\n insertTr,\n preStat.subject,\n reqTerm1,\n reqTerm2,\n preStat.why,\n false\n )\n } else {\n // no previous row: write to the document defining the subject\n const subject = UI.utils.getAbout(\n store,\n UI.utils.ancestor(target.parentNode.parentNode, 'TD')\n )\n const doc = store.sym(UI.rdf.Util.uri.docpart(subject.uri))\n This.formUndetStat(insertTr, subject, reqTerm1, reqTerm2, doc, false)\n }\n\n outline.walk('moveTo', insertTr.firstChild)\n UI.log.info(\n 'addNewPredicateObject: selection = ' +\n outline\n .getSelection()\n .map(function (item) {\n return item.textContent\n })\n .join(', ')\n )\n this.startFillInText(outline.getSelection()[0])\n },\n\n // Called when a blue cross on a predicate is clicked\n // tr.AJAR_inverse stores whether the clicked predicate is an inverse one\n // tr.AJAR_statement (an incomplete statement in TempFormula) stores the destination(why), now\n // determined by the preceding one (is this good?)\n addNewObject: function addNewObject (e) {\n const predicateTd = UI.utils.getTarget(e).parentNode.parentNode\n // var predicateTerm = UI.utils.getAbout(kb, predicateTd)\n const isInverse = predicateTd.parentNode.AJAR_inverse\n // var titleTerm=UI.utils.getAbout(kb,UI.utils.ancestor(predicateTd.parentNode,'TD'));\n // set pseudo lastModifiedStat here\n this.lastModifiedStat = predicateTd.parentNode.AJAR_statement\n\n const insertTr = this.appendToPredicate(predicateTd)\n const reqTerm = this.generateRequest(' (Error) ', insertTr, false)\n const preStat = insertTr.previousSibling.AJAR_statement\n if (!isInverse) {\n this.formUndetStat(\n insertTr,\n preStat.subject,\n preStat.predicate,\n reqTerm,\n preStat.why,\n false\n )\n } else {\n this.formUndetStat(\n insertTr,\n reqTerm,\n preStat.predicate,\n preStat.object,\n preStat.why,\n true\n )\n }\n\n outline.walk('moveTo', insertTr.lastChild)\n this.startFillInText(insertTr.lastChild)\n // this.statIsInverse=false;\n },\n\n // Called when delete is pressed\n Delete: function Delete (selectedTd) {\n this.deleteTriple(selectedTd, false)\n },\n // Called when enter is pressed\n Enter: function Enter (selectedTd) {\n this.literalModification(selectedTd)\n },\n // Called when a selected cell is clicked again\n Click: function Click (e) {\n const target = UI.utils.getTarget(e)\n if (UI.utils.getTerm(target).termType !== 'Literal') return\n this.literalModification(target)\n // this prevents the generated inputbox to be clicked again\n e.preventDefault()\n e.stopPropagation()\n },\n // Called when paste is called (Ctrl+v)\n pasteFromClipboard: function pasteFromClipboard (address, selectedTd) {\n function termFrom (fromCode) {\n const term = outline.clipboard[fromCode].shift()\n if (term === null) {\n UI.log.warn('no more element in clipboard!')\n return\n }\n switch (fromCode) {\n case 'predicates':\n case 'objects': {\n const allArray = outline.clipboard.all\n for (let i = 0; true; i++) {\n if (term.sameTerm(allArray[i])) {\n allArray.splice(i, 1)\n break\n }\n }\n break\n }\n case 'all':\n throw new Error(\n 'hostorical code not understood - what is theCollection?'\n )\n /*\n var isObject = term.sameTerm(theCollection('objects').elements[0])\n isObject ? outline.clipboard.objecs.shift() : outline.clipboard.predicates.shift() // drop the corresponding term\n return [term, isObject]\n break\n */\n }\n return term\n }\n let term\n switch (selectedTd.className) {\n case 'undetermined selected':\n term = selectedTd.nextSibling\n ? termFrom('predicates')\n : termFrom('objects')\n if (!term) return\n break\n case 'pred selected': // paste objects into this predicate\n term = termFrom('objects')\n if (!term) return\n break\n case 'selected': { // header <TD>, undetermined generated\n const returnArray = termFrom('all')\n if (!returnArray) return\n term = returnArray[0]\n this.insertTermTo(selectedTd, term, returnArray[1])\n return\n }\n }\n this.insertTermTo(selectedTd, term)\n },\n\n /**\n * Intermediate Processing:\n */\n\n // a general entry point for any event except Click&Enter(goes to literalModification)\n // do a little inference to pick the right input box\n startFillInText: function startFillInText (selectedTd) {\n switch (this.whatSortOfEditCell(selectedTd)) {\n case 'DatatypeProperty-like':\n // this.clearMenu();\n // selectedTd.className='';\n UI.utils.emptyNode(selectedTd)\n this.lastModified = this.createInputBoxIn(\n selectedTd,\n ' (Please Input) '\n )\n this.lastModified.isNew = false\n\n this.lastModified.select()\n break\n case 'predicate':\n // the goal is to bring back all the menus (with autocomplete functionality\n // this.performAutoCompleteEdit(selectedTd,['PredicateAutoComplete',\n // this.choiceQuery('SuggestPredicateByDomain')]);\n this.performAutoCompleteEdit(selectedTd, 'PredicateAutoComplete')\n break\n case 'ObjectProperty-like':\n case 'no-idea':\n // menu should be either function that\n this.performAutoCompleteEdit(selectedTd, 'GeneralAutoComplete')\n\n /*\n //<code time=\"original\">\n emptyNode(selectedTd);\n this.lastModified=this.createInputBoxIn(selectedTd,\"\");\n this.lastModified.select();\n this.lastModified.addEventListener('keypress',this.AutoComplete,false);\n //this pops up the autocomplete menu\n this.AutoComplete(1);\n //</code>\n */\n }\n },\n\n literalModification: function literalModification (selectedTd) {\n UI.log.debug(\n 'entering literal Modification with ' +\n selectedTd +\n selectedTd.textContent\n )\n // var This=outline.UserInput;\n if (selectedTd.className.indexOf(' pendingedit') !== -1) {\n UI.log.warn(\n 'The node you attempted to edit has a request still pending.\\n' +\n 'Please wait for the request to finish (the text will turn black)\\n' +\n 'before editing this node again.'\n )\n return true\n }\n\n const target = selectedTd\n const about = this.getStatementAbout(target) // timbl - to avoid alert from random clicks\n if (!about) return\n let obj\n let trNode\n try {\n obj = UI.utils.getTerm(target)\n trNode = UI.utils.ancestor(target, 'TR')\n } catch (e) {\n UI.log.warn('userinput.js: ' + e + UI.utils.getAbout(store, selectedTd))\n UI.log.error(target + ' getStatement Error:' + e)\n }\n\n let tdNode\n try {\n tdNode = trNode.lastChild\n } catch (e) {\n UI.log.error(e + '@' + target)\n }\n // seems to be a event handling problem of firefox3\n /*\n if (e.type!='keypress'&&(selectedTd.className=='undetermined selected'||selectedTd.className=='undetermined')){\n this.Refill(e,selectedTd);\n return;\n }\n */\n // ignore clicking trNode.firstChild (be careful for <div> or <span>)\n // if (e.type!='keypress'&&target!=tdNode && UI.utils.ancestor(target,'TD')!=tdNode) return;\n\n if (obj.termType === 'Literal') {\n tdNode.removeChild(tdNode.firstChild) // remove the text\n\n if (obj.value.match('\\n')) {\n // match a line feed and require <TEXTAREA>\n const textBox = myDocument.createElement('textarea')\n textBox.appendChild(myDocument.createTextNode(obj.value))\n textBox.setAttribute(\n 'rows',\n (obj.value.match(/\\n/g).length + 1).toString()\n )\n // g is for global(??)\n textBox.setAttribute('cols', '100') // should be the size of <TD>\n textBox.setAttribute('class', 'textinput')\n tdNode.appendChild(textBox)\n this.lastModified = textBox\n } else {\n this.lastModified = this.createInputBoxIn(tdNode, obj.value)\n }\n this.lastModified.isNew = false\n // Kenny: What should be expected after you click a editable text element?\n // Choice 1\n this.lastModified.select()\n // Choice 2 - direct the key cursor to where you click (failed attempt)\n // --------------------------------------------------------------------------\n // duplicate the event so user can edit without clicking twice\n // var e2=myDocument.createEvent(\"MouseEvents\");\n // e2.initMouseEvent(\"click\",true,true,window,0,0,0,0,0,false,false,false,false,0,null);\n // inputBox.dispatchEvent(e2);\n // ---------------------------------------------------------------------------\n }\n\n return true // this is not a valid modification\n },\n\n /**\n * UIs: input event handlers, menu generation\n */\n performAutoCompleteEdit: function performAutoCompleteEdit (\n selectedTd,\n menu\n ) {\n UI.utils.emptyNode(selectedTd)\n qp('perform AutoCompleteEdit. THIS IS=' + this)\n this.lastModified = this.createInputBoxIn(selectedTd, '')\n this.lastModified.select()\n this.lastModified.addEventListener(\n 'keypress',\n this.getAutoCompleteHandler(menu),\n false\n )\n /* keypress!?\n This is what I hate about UI programming.\n I shall write something about this but not now.\n */\n // this pops up the autocomplete menu\n // Pops up the menu even though no keypress has occurred\n // 1 is a dummy variable for the \"enterEvent\"\n this.getAutoCompleteHandler(menu)(1)\n },\n backOut: function backOut () {\n this.deleteTriple(this.lastModified.parentNode, true)\n this.lastModified = null\n },\n\n clearMenu: function clearMenu () {\n const menu = myDocument.getElementById(this.menuID)\n if (menu) {\n menu.parentNode.removeChild(menu)\n // emptyNode(menu);\n }\n },\n\n /* goes here when either this is a literal or escape from menu and then input text */\n clearInputAndSave: function clearInputAndSave (e) {\n let obj\n if (!this.lastModified) return\n if (!this.lastModified.isNew) {\n try {\n obj = this.getStatementAbout(this.lastModified).object\n } catch (e) {\n return\n }\n }\n let s = this.lastModifiedStat // when 'isNew' this is set at addNewObject()\n\n let defaultpropview\n let trNode\n let reqTerm\n let preStat\n if (this.lastModified.value !== this.lastModified.defaultValue) {\n let trCache\n if (this.lastModified.value === '') {\n // ToDo: remove this\n this.lastModified.value = this.lastModified.defaultValue\n this.clearInputAndSave()\n return\n } else if (this.lastModified.isNew) {\n s = new UI.rdf.Statement(\n s.subject,\n s.predicate,\n store.literal(this.lastModified.value),\n s.why\n )\n // TODO: DEFINE ERROR CALLBACK\n defaultpropview = this.views.defaults[s.predicate.uri]\n trCache = UI.utils.ancestor(this.lastModified, 'TR')\n try {\n store.updater.update([], [s], function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n UI.log.error(\n 'Error occurs while inserting ' +\n s +\n '\\n\\n' +\n errorBody +\n '\\n'\n )\n // UI.log.warn(\"Error occurs while inserting \"+s+'\\n\\n'+errorBody);\n outline.UserInput.deleteTriple(trCache.lastChild, true)\n }\n })\n } catch (e) {\n UI.log.error('Error inserting fact ' + s + ':\\n\\t' + e + '\\n')\n return\n }\n s = store.add(\n s.subject,\n s.predicate,\n store.literal(this.lastModified.value),\n s.why\n )\n } else {\n if (this.statIsInverse) {\n UI.log.error(\n \"Invalid Input: a literal can't be a subject in RDF/XML\"\n )\n this.backOut()\n return\n }\n let s1, s2, s3\n switch (obj.termType) {\n case 'Literal': {\n // generate path and nailing from current values\n\n // TODO: DEFINE ERROR CALLBACK\n const valueCache = this.lastModified.value\n trCache = UI.utils.ancestor(this.lastModified, 'TR')\n const oldValue = this.lastModified.defaultValue\n s2 = $rdf.st(\n s.subject,\n s.predicate,\n store.literal(this.lastModified.value),\n s.why\n )\n try {\n store.updater.update([s], [s2], function (\n uri,\n success,\n errorBody\n ) {\n if (success) {\n obj.value = valueCache\n } else {\n UI.log.warn(\n 'Error occurs while editing ' + s + '\\n\\n' + errorBody\n )\n trCache.lastChild.textContent = oldValue\n }\n trCache.lastChild.className = trCache.lastChild.className.replace(\n / pendingedit/g,\n ''\n )\n })\n } catch (e) {\n UI.log.warn('Error occurs while editing ' + s + ':\\n\\t' + e)\n return\n }\n // obj.value=this.lastModified.value;\n // UserInputFormula.statements.push(s);\n break\n }\n case 'BlankNode': { // a request refill with text\n // var newStat\n const textTerm = store.literal(this.lastModified.value, '')\n // <Feature about=\"labelChoice\">\n if (s.predicate.termType === 'Collection') {\n // case: add triple ????????? Weird - tbl\n const selectedPredicate = s.predicate.elements[0] // @@ TBL elements is a list on the predicate??\n if (store.any(undefined, selectedPredicate, textTerm)) {\n if (!e) {\n // keyboard\n const tdNode = this.lastModified.parentNode\n e = {}\n e.pageX = UI.utils.findPos(tdNode)[0]\n e.pageY = UI.utils.findPos(tdNode)[1] + tdNode.clientHeight\n }\n this.showMenu(e, 'DidYouMeanDialog', undefined, {\n dialogTerm: store.any(undefined, selectedPredicate, textTerm),\n bnodeTerm: s.subject\n })\n } else {\n s1 = UI.utils.ancestor(\n UI.utils.ancestor(this.lastModified, 'TR').parentNode,\n 'TR'\n ).AJAR_statement\n s2 = $rdf.st(s.subject, selectedPredicate, textTerm, s.why)\n const type = store.the(s.subject, rdf('type'))\n s3 = store.anyStatementMatching(\n s.subject,\n rdf('type'),\n type,\n s.why\n )\n // TODO: DEFINE ERROR CALLBACK\n // because the table is repainted, so...\n trCache = UI.utils.ancestor(\n UI.utils.ancestor(this.lastModified, 'TR'),\n 'TD'\n ).parentNode\n try {\n store.updater.update([], [s1, s2, s3], function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n console.log(\n 'Error occurs while editing ' +\n s1 +\n '\\n\\n' +\n errorBody\n )\n outline.UserInput.deleteTriple(trCache.lastChild, true) // @@@@ This\n }\n })\n } catch (e) {\n console.log(\n 'Error occurs while editing ' + s1 + ':\\n\\t' + e\n )\n return\n }\n store.remove(s)\n store.add(s.subject, selectedPredicate, textTerm, s.why) // was: newStat =\n // a subtle bug occurs here, if foaf:nick hasn't been dereferneced,\n // this add will cause a repainting\n }\n const enclosingTd = UI.utils.ancestor(\n this.lastModified.parentNode.parentNode,\n 'TD'\n )\n const defaultPane = panes.byName('default') // @@ check\n outline.outlineExpand(enclosingTd, s.subject, {\n pane: defaultPane,\n already: true\n })\n outline.walk('right', outline.focusTd)\n // </Feature>\n } else {\n this.fillInRequest(\n 'object',\n this.lastModified.parentNode,\n store.literal(this.lastModified.value)\n )\n return // The new Td is already generated by fillInRequest, so it's done.\n }\n break\n }\n }\n }\n } else if (this.lastModified.isNew) {\n // generate 'Request', there is no way you can input ' (Please Input) '\n trNode = UI.utils.ancestor(this.lastModified, 'TR')\n reqTerm = this.generateRequest(\n '(To be determined. Re-type of drag an object onto this field)'\n )\n preStat = trNode.previousSibling.AJAR_statement // the statement of the same predicate\n this.formUndetStat(\n trNode,\n preStat.subject,\n preStat.predicate,\n reqTerm,\n preStat.why,\n false\n )\n // this why being the same as the previous statement\n this.lastModified = null\n\n // UI.log.warn(\"test .isNew)\");\n return\n } else if (s.predicate.termType === 'Collection') {\n store.removeMany(s.subject)\n const upperTr = UI.utils.ancestor(\n UI.utils.ancestor(this.lastModified, 'TR').parentNode,\n 'TR'\n )\n preStat = upperTr.AJAR_statement\n reqTerm = this.generateRequest(\n '(To be determined. Re-type of drag an object onto this field)'\n )\n this.formUndetStat(\n upperTr,\n preStat.subject,\n preStat.predicate,\n reqTerm,\n preStat.why,\n false\n )\n outline.replaceTD(\n outline.outlineObjectTD(reqTerm, defaultpropview),\n upperTr.lastChild\n )\n this.lastModified = null\n return\n } else if (this.statIsInverse) {\n /*\n if ((s.object.termType === 'BlankNode' && !this.statIsInverse) ||\n s.subject.termType === 'BlankNode' && this.statIsInverse) {\n this.backOut()\n return\n */\n if (s.subject.termType === 'BlankNode') {\n this.backOut()\n return\n }\n } else {\n if (s.object.termType === 'BlankNode') {\n this.backOut()\n return\n }\n }\n // case modified - literal modification only(for now).\n trNode = UI.utils.ancestor(this.lastModified, 'TR')\n // var defaultpropview = this.views.defaults[s.predicate.uri]\n\n if (!this.statIsInverse) {\n // this is for an old feature\n // outline.replaceTD(outline.outlineObjectTD(s.object, defaultpropview),trNode.lastChild);\n outline.replaceTD(\n outline.outlineObjectTD(\n store.literal(this.lastModified.value),\n defaultpropview\n ),\n trNode.lastChild\n )\n } else {\n outline.replaceTD(\n outline.outlineObjectTD(s.subject, defaultpropview),\n trNode.lastChild\n )\n }\n if (this.lastModified.value !== this.lastModified.defaultValue) {\n trNode.lastChild.className += ' pendingedit'\n }\n // trNode.AJAR_statement=s;//you don't have to set AJAR_inverse because it's not changed\n // This is going to be painful when predicate-edit allowed\n this.lastModified = null\n },\n\n /* deletes the triple corresponding to selectedTd, remove that Td. */\n deleteTriple: function deleteTriple (selectedTd, isBackOut) {\n // ToDo: complete deletion of a node\n UI.log.debug('deleteTriple entered')\n\n // allow a pending node to be deleted if it's a backout sent by SPARQL update callback\n if (!isBackOut && selectedTd.className.indexOf(' pendingedit') !== -1) {\n console.log(\n 'The node you attempted to edit has a request still pending.\\n' +\n 'Please wait for the request to finish (the text will turn black)\\n' +\n 'before editing this node again.'\n )\n outline.walk('up')\n return\n }\n let removedTr\n // var afterTr\n const s = this.getStatementAbout(selectedTd)\n if (\n !isBackOut &&\n !store.whether(s.object, rdf('type'), UI.ns.link('Request')) &&\n // Better to check whether provenance is internal?\n !store.whether(s.predicate, rdf('type'), UI.ns.link('Request')) &&\n !store.whether(s.subject, rdf('type'), UI.ns.link('Request'))\n ) {\n UI.log.debug('about to send SPARQLUpdate')\n try {\n store.updater.update([s], [], function (uri, success, errorBody) {\n if (success) {\n removefromview()\n } else {\n // removedTr.AJAR_statement=kb.add(s.subject,s.predicate,s.object,s.why);\n console.log(\n 'Error occurs while deleting ' + s + '\\n\\n' + errorBody\n )\n selectedTd.className = selectedTd.className.replace(\n / pendingedit/g,\n ''\n )\n }\n })\n selectedTd.className += ' pendingedit'\n } catch (e) {\n UI.log.error(e)\n UI.log.warn('Error deleting statement ' + s + ':\\n\\t' + e)\n return\n }\n\n UI.log.debug('SPARQLUpdate sent')\n } else {\n // removal of an undetermined statement associated with pending TRs\n // TempFormula.remove(s);\n }\n UI.log.debug('about to remove ' + s)\n\n UI.log.debug('removed')\n outline.walk('up')\n \n removedTr = selectedTd.parentNode\n // afterTr = removedTr.nextSibling\n function removefromview () {\n let trIterator\n for (\n trIterator = removedTr;\n trIterator.childNodes.length === 1;\n trIterator = trIterator.previousSibling\n );\n let predicateTd\n if (trIterator === removedTr) {\n const theNext = trIterator.nextSibling\n if (theNext.nextSibling && theNext.childNodes.length === 1) {\n predicateTd = trIterator.firstChild\n predicateTd.setAttribute(\n 'rowspan',\n parseInt(predicateTd.getAttribute('rowspan')) - 1\n )\n theNext.insertBefore(trIterator.firstChild, theNext.firstChild)\n }\n removedTr.parentNode.removeChild(removedTr)\n } else {\n // !DisplayOptions[\"display:block on\"].enabled){\n predicateTd = trIterator.firstChild\n predicateTd.setAttribute(\n 'rowspan',\n parseInt(predicateTd.getAttribute('rowspan')) - 1\n )\n removedTr.parentNode.removeChild(removedTr)\n }\n }\n if (isBackOut) removefromview()\n },\n\n /* clipboard principle: copy wildly, paste carefully\n ToDoS:\n 1. register Subcollection?\n 2. copy from more than one selectedTd: 1.sequece 2.collection\n 3. make a clipboard class?\n */\n clipboardInit: function clipboardInit () {\n outline.clipboard = {}\n outline.clipboard.objects = []\n outline.clipboard.predicates = []\n outline.clipboard.all = []\n },\n\n copyToClipboard: function copyToClipboard (address, selectedTd) {\n /*\n var clip = Components.classes[\"@mozilla.org/widget/clipboard;1\"].getService(Components.interfaces.nsIClipboard);\n if (!clip) return false;\n var clipid = Components.interfaces.nsIClipboard;\n\n var trans = Components.classes[\"@mozilla.org/widget/transferable;1\"].createInstance(Components.interfaces.nsITransferable);\n if (!trans) return false;\n\n var copytext = \"Tabulator!!\";\n\n var str = Components.classes[\"@mozilla.org/supports-string;1\"].\n createInstance(Components.interfaces.nsISupportsString);\n if (!str) return false;\n\n str.data = copytext;\n\n trans.addDataFlavor(\"text/x-moz-url\");\n trans.setTransferData(\"text/x-mox-url\", str, copytext.length * 2);\n\n clip.setData(trans, null, clipid.kGlobalClipboard);\n */\n\n const term = UI.utils.getTerm(selectedTd)\n switch (selectedTd.className) {\n case 'selected': // table header\n case 'obj selected':\n // var objects = outline.clipboard.objects\n outline.clipboard.objects.unshift(term)\n break\n case 'pred selected':\n case 'pred internal selected':\n outline.clipboard.predicates.unshift(term)\n }\n\n outline.clipboard.all.unshift(term)\n },\n\n insertTermTo: function insertTermTo (selectedTd, term, isObject) {\n let defaultpropview\n let preStat\n switch (selectedTd.className) {\n case 'undetermined selected':\n defaultpropview = this.views.defaults[\n selectedTd.parentNode.AJAR_statement.predicate.uri\n ]\n this.fillInRequest(\n selectedTd.nextSibling ? 'predicate' : 'object',\n selectedTd,\n term\n )\n break\n case 'pred selected': { // paste objects into this predicate\n const insertTr = this.appendToPredicate(selectedTd)\n preStat = selectedTd.parentNode.AJAR_statement\n defaultpropview = this.views.defaults[preStat.predicate.uri]\n insertTr.appendChild(outline.outlineObjectTD(term, defaultpropview))\n // modify store and update here\n const isInverse = selectedTd.parentNode.AJAR_inverse\n if (!isInverse) {\n insertTr.AJAR_statement = store.add(\n preStat.subject,\n preStat.predicate,\n term,\n preStat.why\n )\n } else {\n insertTr.AJAR_statemnet = store.add(\n term,\n preStat.predicate,\n preStat.object,\n preStat.why\n )\n }\n\n try {\n store.updater.update([], [insertTr.AJAR_statement], function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n UI.log.error(\n 'userinput.js (pred selected): Fail trying to insert statement ' +\n insertTr.AJAR_statement +\n ': ' +\n errorBody\n )\n }\n })\n } catch (e) {\n UI.log.error(\n 'Exception trying to insert statement ' +\n insertTr.AJAR_statement +\n ': ' +\n UI.utils.stackString(e)\n )\n return\n }\n insertTr.AJAR_inverse = isInverse\n UserInputFormula.statements.push(insertTr.AJAR_statement)\n break\n }\n case 'selected': { // header <TD>, undetermined generated\n const paneDiv = UI.utils.ancestor(selectedTd, 'TABLE').lastChild\n const newTr = paneDiv.insertBefore(\n myDocument.createElement('tr'),\n paneDiv.lastChild\n )\n // var titleTerm=UI.utils.getAbout(kb,UI.utils.ancestor(newTr,'TD'));\n preStat = newTr.previousSibling.AJAR_statement\n if (typeof isObject === 'undefined') isObject = true\n if (isObject) {\n // object inserted\n this.formUndetStat(\n newTr,\n preStat.subject,\n this.generateRequest('(TBD)', newTr, true),\n term,\n preStat.why,\n false\n )\n // defaultpropview temporaily not dealt with\n newTr.appendChild(outline.outlineObjectTD(term))\n outline.walk('moveTo', newTr.firstChild)\n this.startFillInText(newTr.firstChild)\n } else {\n // predicate inserted\n // existing predicate not expected\n const reqTerm = this.generateRequest(\n '(To be determined. Re-type of drag an object onto this field)',\n newTr\n )\n this.formUndetStat(\n newTr,\n preStat.subject,\n term,\n reqTerm,\n preStat.why,\n false\n )\n\n newTr.insertBefore(\n outline.outlinePredicateTD(term, newTr, false, false),\n newTr.firstChild\n )\n outline.walk('moveTo', newTr.lastChild)\n this.startFillInText(newTr.lastChild)\n }\n break\n }\n }\n },\n\n Refill: function Refill (e, selectedTd) {\n UI.log.info('Refill' + selectedTd.textContent)\n const isPredicate = selectedTd.nextSibling\n let predicateQuery\n if (isPredicate) {\n // predicateTd\n let subject\n let subjectClass\n let sparqlText\n if (selectedTd.nextSibling.className === 'undetermined') {\n /* Make set of proprties to propose for a predicate.\n The naive approach is to take those which have a class\n of the subject as their domain. But in fact we must offer anything which\n is not explicitly excluded, by having a domain disjointWith a\n class of the subject. */\n\n /* SELECT ?pred\n WHERE{\n ?pred a rdf:Property.\n ?pred rdfs:domain subjectClass.\n }\n */\n /* SELECT ?pred ?class\n WHERE{\n ?pred a rdf:Property.\n subjectClass owl:subClassOf ?class.\n ?pred rdfs:domain ?class.\n }\n */\n /* SELECT ?pred\n WHERE{\n subject a ?subjectClass.\n ?pred rdfs:domain ?subjectClass.\n }\n */\n subject = UI.utils.getAbout(\n store,\n UI.utils.ancestor(selectedTd, 'TABLE').parentNode\n )\n subjectClass = store.any(subject, rdf('type'))\n sparqlText = []\n const endl = '.\\n'\n sparqlText[0] =\n 'SELECT ?pred WHERE{\\n?pred ' +\n rdf('type') +\n rdf('Property') +\n '.\\n' +\n '?pred ' +\n UI.ns.rdfs('domain') +\n subjectClass +\n '.}' // \\n is required? SPARQL parser bug?\n sparqlText[1] =\n 'SELECT ?pred ?class\\nWHERE{\\n' +\n '?pred ' +\n rdf('type') +\n rdf('Property') +\n '.\\n' +\n subjectClass +\n UI.ns.rdfs('subClassOf') +\n ' ?class.\\n' +\n '?pred ' +\n UI.ns.rdfs('domain') +\n ' ?class.\\n}'\n sparqlText[2] =\n 'SELECT ?pred WHERE{\\n' +\n subject +\n rdf('type') +\n store.variable('subjectClass') +\n endl +\n store.variable('pred') +\n UI.ns.rdfs('domain') +\n store.variable('subjectClass') +\n endl +\n '}'\n predicateQuery = sparqlText.map($rdf.SPARQLToQuery)\n } else {\n // ------selector\n /* SELECT ?pred\n WHERE{\n ?pred a rdf:Property.\n ?pred rdfs:domain subjectClass.\n ?pred rdfs:range objectClass.\n }\n */\n // Candidate\n /* SELECT ?pred\n WHERE{\n subject a ?subjectClass.\n object a ?objectClass.\n ?pred rdfs:domain ?subjectClass.\n ?pred rdfs:range ?objectClass.\n */\n subject = UI.utils.getAbout(\n store,\n UI.utils.ancestor(selectedTd, 'TABLE').parentNode\n )\n subjectClass = store.any(subject, rdf('type'))\n const object = selectedTd.parentNode.AJAR_statement.object\n // var objectClass = (object.termType === 'Literal') ? UI.ns.rdfs('Literal') : kb.any(object, rdf('type'))\n // var sparqlText=\"SELECT ?pred WHERE{\\n?pred \"+rdf('type')+rdf('Property')+\".\\n\"+\n // \"?pred \"+UI.ns.rdfs('domain')+subjectClass+\".\\n\"+\n // \"?pred \"+UI.ns.rdfs('range')+objectClass+\".\\n}\"; // \\n is required? SPARQL parser bug?\n sparqlText =\n 'SELECT ?pred WHERE{' +\n subject +\n rdf('type') +\n '?subjectClass' +\n '.\\n' +\n object +\n rdf('type') +\n '?objectClass' +\n '.\\n' +\n '?pred ' +\n UI.ns.rdfs('domain') +\n '?subjectClass' +\n '.\\n' +\n '?pred ' +\n UI.ns.rdfs('range') +\n '?objectClass' +\n '.\\n}' // \\n is required? SPARQL parser bug?\n predicateQuery = $rdf.SPARQLToQuery(sparqlText)\n }\n\n // -------presenter\n // ToDo: how to sort selected predicates?\n this.showMenu(e, 'GeneralPredicateChoice', predicateQuery, {\n isPredicate: isPredicate,\n selectedTd: selectedTd\n })\n } else {\n // objectTd\n const predicateTerm = selectedTd.parentNode.AJAR_statement.predicate\n if (\n store.whether(\n predicateTerm,\n rdf('type'),\n UI.ns.owl('DatatypeProperty')\n ) ||\n predicateTerm.termType === 'Collection' ||\n store.whether(predicateTerm, UI.ns.rdfs('range'), UI.ns.rdfs('Literal'))\n ) {\n selectedTd.className = ''\n UI.utils.emptyNode(selectedTd)\n this.lastModified = this.createInputBoxIn(\n selectedTd,\n ' (Please Input) '\n )\n this.lastModified.isNew = false\n\n this.lastModified.select()\n }\n\n // show menu for rdf:type\n if (\n selectedTd.parentNode.AJAR_statement.predicate.sameTerm(rdf('type'))\n ) {\n const sparqlText =\n 'SELECT ?class WHERE{?class ' +\n rdf('type') +\n UI.ns.rdfs('Class') +\n '.}'\n // I should just use kb.each\n const classQuery = $rdf.SPARQLToQuery(sparqlText)\n this.showMenu(e, 'TypeChoice', classQuery, {\n isPredicate: isPredicate,\n selectedTd: selectedTd\n })\n }\n }\n },\n\n // This is where pubsPane.js comes in, with: outline.UserInput.getAutoCompleteHandler(\"JournalTAC\")(e);\n getAutoCompleteHandler: function getAutoCompleteHandler (mode) {\n qp('\\n\\n***** In getAutoCompleteHandler ****** mode = ' + mode)\n if (mode === 'PredicateAutoComplete') {\n mode = 'predicate'\n } else if (mode !== 'JournalTAC') {\n // hq // why? -tim - not 'predicate' below\n mode = 'all'\n }\n\n let InputBox\n if (mode === 'JournalTAC') {\n // hq // Better to pass in InputBox as a param\n InputBox = myDocument.getElementById('inpid_journal_title')\n } else {\n InputBox = this.lastModified || outline.getSelection()[0].firstChild\n }\n qp('InputBox=' + InputBox) // hq\n qp('InputBox.value=' + InputBox.value) // hq\n\n return function (enterEvent) {\n qp('ENTER EVENT=' + enterEvent)\n // Firefox 2.0.0.6 makes this not working? 'this' becomes [object HTMLInputElement]\n // but not [wrapped ...]\n // var InputBox=(typeof enterEvent=='object')?this:this.lastModified;//'this' is the <input> element\n qp('1. outside (if eneterEvent)')\n const e = {}\n const tdNode = InputBox.parentNode\n if (!mode) mode = tdNode.nextSibling ? 'predicate' : 'all'\n e.pageX = UI.utils.findPos(tdNode)[0]\n e.pageY = UI.utils.findPos(tdNode)[1] + tdNode.clientHeight\n qp('epX=' + e.pageX + ', epY=' + e.pageY + ', mode=' + mode)\n let menu = myDocument.getElementById(outline.UserInput.menuID)\n function setHighlightItem (item) {\n if (!item) return // do not make changes\n if (menu.lastHighlight) menu.lastHighlight.className = ''\n menu.lastHighlight = item\n menu.lastHighlight.className = 'activeItem'\n outline.showURI(UI.utils.getAbout(store, menu.lastHighlight))\n }\n if (enterEvent) {\n // either the real event of the pseudo number passed by OutlineKeypressPanel\n qp('2. in (if enterEvent). with type = ' + typeof enterEvent)\n let newText = InputBox.value\n\n if (typeof enterEvent === 'object') {\n qp(\n '3. in typeof enterEvent is object, will switch to keys, arrows, etc. keycode = ' +\n enterEvent.keyCode\n )\n enterEvent.stopPropagation()\n if (menu && !menu.lastHighlight) {\n // this ensures the following operation valid\n setHighlightItem(menu.firstChild.firstChild)\n }\n switch (enterEvent.keyCode) {\n case 13: // enter\n case 9: // tab\n qp('handler: Enter or Tab')\n if (!menu) {\n outline.UserInput.clearInputAndSave()\n return\n }\n if (!menu.lastHighlight) {\n if (mode === 'JournalTAC') {\n outline.UserInput.clearMenu()\n qp('no lastH')\n return 'no lastH'\n }\n return\n } // warning?\n\n if (menu.lastHighlight.tagName === 'INPUT') {\n switch (menu.lastHighlight.value) {\n case 'New...':\n qp('subcase New')\n outline.UserInput.createNew()\n break\n case 'GiveURI':\n qp('subcase GiveURI')\n outline.UserInput.inputURI()\n break\n }\n } else {\n // pubsPane Stuff:\n if (mode === 'JournalTAC') {\n qp('movedArrow? ' + movedArrow)\n // Enter only works if arrows have been moved\n if (movedArrow && menu.lastHighlight) {\n // Get the title from the DOM\n // tr, th, div, innerHTML\n const jtitle =\n menu.lastHighlight.firstChild.firstChild.innerHTML\n // tr, th, td, innerHTML\n let juri =\n menu.lastHighlight.firstChild.nextSibling.innerHTML\n // clearing out the < and > from juri\n juri = juri.slice(4, -4)\n return ['gotdptitle', jtitle, juri]\n }\n // If doesn't qualify to be autocomplete, return this random string, since pubsPane checks for \"gotdptitle\"\n return 'asGivenTxt'\n }\n\n const inputTerm = UI.utils.getAbout(store, menu.lastHighlight)\n const fillInType = mode === 'predicate' ? 'predicate' : 'object'\n outline.UserInput.clearMenu()\n outline.UserInput.fillInRequest(\n fillInType,\n InputBox.parentNode,\n inputTerm\n )\n // if (outline.UserInput.fillInRequest(fillInType,InputBox.parentNode,inputTerm))\n // outline.UserInput.clearMenu();\n }\n qp('outside')\n return\n case 38: // up\n qp('handler: Arrow UP')\n movedArrow = true // hq\n if (\n newText === '' &&\n menu.lastHighlight.tagName === 'TR' &&\n !menu.lastHighlight.previousSibling\n ) {\n setHighlightItem(menu.firstChild.firstChild)\n } else {\n setHighlightItem(menu.lastHighlight.previousSibling)\n }\n return \"I'm a little Arrow Up\"\n case 40: // down\n qp('handler: Arrow Down')\n movedArrow = true // hq\n if (menu.lastHighlight.tagName === 'INPUT') {\n setHighlightItem(menu.childNodes[1].firstChild)\n } else {\n setHighlightItem(menu.lastHighlight.nextSibling)\n }\n return \"I'm a little Down Arrow\"\n case 37: // left\n case 39: // right\n qp('handler: Arrow left, right')\n if (menu.lastHighlight.tagName === 'INPUT') {\n if (enterEvent.keyCode === 37) {\n setHighlightItem(menu.lastHighlight.previousSibling)\n } else {\n setHighlightItem(menu.lastHighlight.nextSibling)\n }\n }\n return\n case 8: // backspace\n qp('handler: Backspace')\n newText = newText.slice(0, -1)\n break\n case 27: // esc to enter literal\n qp('handler: Esc')\n if (!menu) {\n outline.UserInput.backOut()\n return\n }\n outline.UserInput.clearMenu()\n // Not working? I don't know.\n // InputBox.removeEventListener('keypress',outline.UserInput.Autocomplete,false);\n return\n // break\n default:\n qp('handler: Default')\n movedArrow = false // hq\n // we need this because it is keypress, seeAlso performAutoCompleteEdit\n qp('oldtext=' + newText)\n newText += String.fromCharCode(enterEvent.charCode)\n qp('charcodent=' + enterEvent.charCode)\n qp('strcharcod=' + String.fromCharCode(enterEvent.charCode))\n console.log('DEFAULT txtstr=' + newText + '\\n') // hq\n }\n } // endif typeof(event) === object\n\n // UI.log.warn(InputBox.choices.length);\n // for(i=0;InputBox.choices[i].label<newText;i++); //O(n) ToDo: O(log n)\n if (mode === 'all') {\n qp('generalAC after switch, newText=' + newText + 'mode is all')\n outline.UserInput.clearMenu()\n // outline.UserInput.showMenu(e,'GeneralAutoComplete',undefined,{'isPredicate':false,'selectedTd':tdNode,'choices':InputBox.choices, 'index':i});\n outline.UserInput.showMenu(e, 'GeneralAutoComplete', undefined, {\n inputText: newText,\n selectedTd: tdNode\n })\n if (newText.length === 0) outline.UserInput.WildCardButtons()\n } else if (mode === 'predicate') {\n qp(\n 'predicateAC after switch, newText=' +\n newText +\n 'mode is predicate'\n )\n outline.UserInput.clearMenu()\n outline.UserInput.showMenu(e, 'PredicateAutoComplete', undefined, {\n inputText: newText,\n isPredicate: true,\n selectedTd: tdNode\n })\n } else if (mode === 'JournalTAC') {\n // hq\n qp('JouralTAC after switch, newText=' + newText)\n outline.UserInput.clearMenu()\n // Goto showMenu\n outline.UserInput.showMenu(\n e,\n 'JournalTitleAutoComplete',\n undefined,\n { inputText: newText },\n 'orderisuseless'\n )\n }\n menu = myDocument.getElementById(outline.UserInput.menuID)\n if (!menu) {\n qp('No menu element. Do not show menu.')\n return\n }\n qp('at end of handler\\n^^^^^^^^^^^^^^^^^\\n\\n')\n setHighlightItem(menu.firstChild.firstChild)\n outline.showURI(UI.utils.getAbout(store, menu.lastHighlight))\n return 'nothing to return'\n }\n } // end of return function\n },\n\n // Add the buttons which allow the suer to craete a new object\n // Or reference an exiting one with a URI.\n //\n WildCardButtons: function WildCardButtons () {\n const menuDiv = myDocument.getElementById(outline.UserInput.menuID)\n const div = menuDiv.insertBefore(\n myDocument.createElement('div'),\n menuDiv.firstChild\n )\n const input1 = div.appendChild(myDocument.createElement('input'))\n const input2 = div.appendChild(myDocument.createElement('input'))\n input1.type = 'button'\n input1.value = 'New...'\n input2.type = 'button'\n input2.value = 'Know its URI'\n\n function highlightInput (e) {\n // same as the one in newMenu()\n const menu = myDocument.getElementById(outline.UserInput.menuID)\n if (menu.lastHighlight) menu.lastHighlight.className = ''\n menu.lastHighlight = UI.utils.ancestor(UI.utils.getTarget(e), 'INPUT')\n if (!menu.lastHighlight) return // mouseover <TABLE>\n menu.lastHighlight.className = 'activeItem'\n }\n div.addEventListener('mouseover', highlightInput, false)\n input1.addEventListener('click', this.createNew, false)\n input2.addEventListener('click', this.inputURI, false)\n },\n // ToDo: shrink rows when \\n+backspace\n Keypress: function (e) {\n if (e.keyCode === 13) {\n if (outline.targetOf(e).tagName !== 'TEXTAREA') {\n this.clearInputAndSave()\n } else {\n // <TEXTAREA>\n const preRows = parseInt(this.lastModified.getAttribute('rows'))\n this.lastModified.setAttribute('rows', (preRows + 1).toString())\n e.stopPropagation()\n }\n }\n // Remark by Kenny: If the user wants to input more lines into an one-line-only blank.\n // Direct him/her to a new blank (how?)\n },\n\n Mousedown: function (e) {\n qp('MOUSING DOWN')\n // temporary key ctrl+s or q for swiching mode\n // This was in HCIOptions \"right click to switch mode\":\n window.addEventListener(\n 'keypress',\n function (e) {\n if (e.ctrlKey && (e.charCode === 115 || e.charCode === 113)) {\n UserInput.switchMode()\n }\n },\n false\n )\n window.addEventListener('mousedown', UserInput.Mousedown, false)\n document.getElementById('outline').oncontextmenu = function () {\n return false\n }\n\n if (e.button === 2) {\n // right click\n UserInput.switchMode()\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n },\n\n Mouseover: function Mouseover (e) {\n this.className = 'bottom-border-active'\n if (this._tabulatorMode === 1) {\n switch (UI.utils.getTarget(e).tagName) {\n case 'TD': {\n const preTd = UI.utils.getTarget(e)\n if (preTd.className === 'pred') preTd.style.cursor = 'copy'\n break\n }\n // Uh...I think I might have to give up this\n case 'DIV': {\n const border = UI.utils.getTarget(e)\n if (UI.utils.getTarget(e).className === 'bottom-border') {\n border.style.borderColor = 'rgb(100%,65%,0%)'\n border.style.cursor = 'copy'\n }\n break\n }\n default:\n }\n }\n },\n\n Mouseout: function (e) {\n this.className = 'bottom-border'\n if (this._tabulatorMode === 1) {\n const border = UI.utils.getTarget(e)\n if (UI.utils.getTarget(e).className === 'bottom-border') {\n border.style.borderColor = 'transparent'\n border.style.cursor = 'auto'\n }\n }\n },\n\n /**\n * Utilities\n */\n\n whatSortOfEditCell: function whatSortOfEditCell (selectedTd) {\n if (selectedTd.nextSibling) return 'predicate'\n const predicateTerm = this.getStatementAbout(selectedTd).predicate\n // var predicateTerm=selectedTd.parentNode.AJAR_statement.predicate;\n if (\n store.whether(\n predicateTerm,\n UI.ns.rdf('type'),\n UI.ns.owl('DatatypeProperty')\n ) ||\n store.whether(predicateTerm, UI.ns.rdfs('range'), UI.ns.rdfs('Literal')) ||\n predicateTerm.termType === 'Collection'\n ) {\n return 'DatatypeProperty-like'\n } else if (\n store.whether(predicateTerm, rdf('type'), UI.ns.owl('ObjectProperty'))\n ) {\n return 'ObjectProperty-like'\n } else {\n return 'no-idea'\n }\n },\n\n getStatementAbout: function getStatementAbout (something) {\n // var trNode=something.parentNode;\n const trNode = UI.utils.ancestor(something, 'TR')\n if (!trNode) {\n throw new Error('No ancestor TR for the TD we clicked on:' + something)\n }\n let statement\n try {\n statement = trNode.AJAR_statement\n } catch (e) {\n throw new Error(\n 'No AJAR_statement!' +\n something +\n something.textContent +\n ' has ancestor ' +\n trNode\n ) // was commented out @@\n // throw 'TR not a statement TR' // was commented out @@\n }\n // Set last modified here, I am not sure this will be ok.\n this.lastModifiedStat = trNode.AJAR_statement\n this.statIsInverse = trNode.AJAR_inverse\n\n return statement\n },\n\n createInputBoxIn: function createInputBoxIn (tdNode, defaultText) {\n function UpAndDown (e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n outline.OutlinerKeypressPanel(e)\n outline.UserInput.clearInputAndSave()\n }\n }\n UI.log.info(\n 'myDocument in createInputBoxIn is now ' + myDocument.location\n )\n UI.log.info('outline.document is now ' + outline.document.location)\n const inputBox = myDocument.createElement('input')\n inputBox.setAttribute('value', defaultText)\n inputBox.setAttribute('class', 'textinput')\n // inputBox.setAttribute('size','100');//should be the size of <TD>\n if (tdNode.className !== 'undetermined selected') {\n inputBox.setAttribute('size', '100') // should be the size of <TD>\n inputBox.addEventListener('keypress', UpAndDown, false)\n }\n tdNode.appendChild(inputBox)\n return inputBox\n },\n\n // called when 'New...' is clicked(eventlistener) or enter is pressed while 'New...' is highlighted\n createNew: function createNew (_e) {\n outline.UserInput.clearMenu()\n const selectedTd = outline.getSelection()[0]\n const targetdoc = selectedTd.parentNode.AJAR_statement.why\n const newTerm = store.nextSymbol(targetdoc)\n outline.UserInput.fillInRequest('object', selectedTd, newTerm)\n // selection is changed\n outline.outlineExpand(outline.getSelection()[0], newTerm)\n },\n\n inputURI: function inputURI (_e) {\n const This = outline.UserInput\n This.clearMenu()\n const selectedTd = outline.getSelection()[0]\n UI.utils.emptyNode(selectedTd)\n const tiptext = ' (Type a URI) '\n This.lastModified = This.createInputBoxIn(selectedTd, tiptext)\n This.lastModified.select()\n function typeURIhandler (e) {\n e.stopPropagation()\n switch (e.keyCode) {\n case 13: // enter\n case 9: // tab\n // this is input box\n if (this.value !== tiptext) {\n const newuri = this.value // @@ Removed URI \"fixup\" code\n This.fillInRequest('object', selectedTd, store.sym(newuri))\n }\n }\n }\n This.lastModified.addEventListener('keypress', typeURIhandler, false)\n /*\n if (false && UI.isExtension){\n var selectedTd = outline.getSelection()[0];\n emptyNode(selectedTd);\n var textbox = myDocument.createElementNS(kXULNS,'textbox');\n textbox.setAttribute('type','autocomplete');\n textbox.setAttribute('autocompletesearch','history');\n selectedTd.appendChild(textbox);\n\n urlbar = gURLBar.cloneNode(false);\n selectedTd.appendChild(urlbar);\n urlbar.mController = gURLBar.mController;\n\n }\n */\n },\n\n appendToPredicate: function appendToPredicate (predicateTd) {\n let isEnd = false\n let trIterator\n try {\n for (\n trIterator = predicateTd.parentNode.nextSibling;\n trIterator.childNodes.length === 1 && trIterator.AJAR_statement;\n // number of nodes as condition, also beware of toggle Trs that don't have AJAR_statement\n trIterator = trIterator.nextSibling\n ) {\n // ..\n }\n } catch (e) {\n isEnd = true\n }\n // if(!isEnd && HCIoptions[\"bottom insert highlights\"].enabled) trIterator=trIterator.previousSibling;\n\n const insertTr = myDocument.createElement('tr')\n // style stuff, I'll have to investigate appendPropertyTRs() somehow\n insertTr.style.colspan = '1'\n insertTr.style.display = 'block'\n\n insertTr.style.display = ''\n if (predicateTd.hasAttribute('rowspan')) {\n predicateTd.setAttribute(\n 'rowspan',\n parseInt(predicateTd.getAttribute('rowspan')) + 1\n )\n }\n\n if (!predicateTd.hasAttribute('rowspan')) {\n predicateTd.setAttribute('rowspan', '2')\n }\n\n if (!isEnd) {\n trIterator.parentNode.insertBefore(insertTr, trIterator)\n } else {\n const table = predicateTd.parentNode.parentNode\n if (table.className === 'defaultPane') {\n table.insertBefore(insertTr, table.lastChild)\n } else {\n table.appendChild(insertTr)\n }\n }\n\n return insertTr\n },\n\n bnode2symbol: function bnode2symbol (bnode, symbol) {\n store.copyTo(bnode, symbol, ['two-direction', 'delete'])\n },\n\n generateRequest: function generateRequest (\n tipText,\n trNew,\n isPredicate,\n notShow\n ) {\n let trNode\n if (!notShow) {\n if (trNew) {\n trNode = trNew\n } else {\n trNode = UI.utils.ancestor(this.lastModified, 'TR')\n }\n UI.utils.emptyNode(trNode)\n }\n\n // create the undetermined term\n // Choice 1:\n // var reqTerm=kb.literal(\"TBD\");\n // this is troblesome since RDFIndexedFormula does not allow me to add <x> <y> \"TBD\". twice\n // Choice 2: Use a variable.\n // Agreed. Kenny wonders whether there is RDF/XML representation of a variable.\n // labelPriority[UI.ns.link('message').uri] = 20;\n\n // We must get rid of this clutter in the store. \"OK, will be stroed in a seperate formula to avoid bugs\", Kenny says\n const tp = TempFormula\n const reqTerm = tp.bnode()\n tp.add(reqTerm, UI.ns.rdf('type'), UI.ns.link('Request'))\n if (tipText.length < 10) {\n tp.add(reqTerm, UI.ns.link('message'), tp.literal(tipText))\n } else {\n tp.add(reqTerm, UI.ns.link('message'), tp.literal(tipText))\n }\n tp.add(reqTerm, UI.ns.link('to'), tp.literal('The User'))\n tp.add(reqTerm, UI.ns.link('from'), tp.literal('The User'))\n\n // append the undetermined td\n if (!notShow) {\n let newNode\n if (isPredicate) {\n newNode = trNode.appendChild(\n outline.outlinePredicateTD(reqTerm, trNode, false, false)\n )\n } else {\n newNode = trNode.appendChild(outline.outlineObjectTD(reqTerm))\n }\n newNode.className = 'undetermined'\n newNode.textContent = tipText\n }\n\n return reqTerm\n },\n\n showMenu: function showMenu (\n e,\n menuType,\n inputQuery,\n extraInformation,\n _order\n ) {\n // ToDo:order, make a class?\n UI.log.info('myDocument is now ' + myDocument.location)\n UI.log.info('outline.doucment is now ' + outline.document.location)\n const This = this\n const menu = myDocument.createElement('div')\n qp('\\n**** In showMenu, menuType = ' + menuType + '\\n')\n if (extraInformation) {\n for (const x in extraInformation) {\n console.log('\\t extra ' + x + ': ' + extraInformation[x] + '\\n')\n }\n }\n console.log('CREATED MENU\\n') // hq\n menu.id = this.menuID\n menu.className = 'outlineMenu'\n // menu.addEventListener('click',false);\n menu.style.top = e.pageY + 'px'\n menu.style.left = e.pageX + 'px'\n\n /// /For pubsPane\n // This is for setting the location of the dropdown menu, because\n // JournalTitleAutoComplete is called with a keypress, and not mouse actions\n // Get Offset of an HTML element\n const getOffset = function getOffset (el) {\n let _lf = 0\n let _tp = 0\n let oldlf = 0\n let oldtp = 0\n let newlf = 0\n let newtp = 0\n\n // repeatedly get ancestor's positions\n // TODO: STILL a small offset/bug\n while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n newlf = el.offsetLeft\n newtp = el.offsetTop\n\n // only change if the new parent's offset is different\n if (newlf !== oldlf) {\n _lf += el.offsetLeft - el.scrollLeft\n }\n if (newtp !== oldtp) {\n _tp += el.offsetTop - el.scrollTop\n }\n\n oldlf = newlf\n oldtp = newtp\n\n el = el.parentNode\n }\n // there is a constant offset\n return { top: _tp + 54, left: _lf - 38 }\n }\n // Change the position of menu in pubsPane's journal Title AC\n if (menuType === 'JournalTitleAutoComplete') {\n // hql\n const loc = getOffset(myDocument.getElementById('inpid_journal_title'))\n loc.left -= myDocument.getElementById('inpid_journal_title').scrollTop\n menu.style.top = loc.top + 'px'\n menu.style.left = loc.left + 'px'\n }\n console.log(\n 'menu at top=' + menu.style.top + ' left=' + menu.style.left + '\\n'\n ) // hql\n // \\\\\\\\\\\\\\hql\n\n myDocument.body.appendChild(menu)\n const table = menu.appendChild(myDocument.createElement('table'))\n\n menu.lastHighlight = null\n function highlightTr (e) {\n if (menu.lastHighlight) menu.lastHighlight.className = ''\n menu.lastHighlight = UI.utils.ancestor(UI.utils.getTarget(e), 'TR')\n if (!menu.lastHighlight) return // mouseover <TABLE>\n menu.lastHighlight.className = 'activeItem'\n }\n\n table.addEventListener('mouseover', highlightTr, false)\n\n // setting for action after selecting item\n let selectItem\n switch (menuType) {\n case 'DidYouMeanDialog':\n selectItem = function selectItem (e) {\n qp('DID YOU MEAN SELECT ITEM!!!!!')\n const target = UI.utils.ancestor(UI.utils.getTarget(e), 'TR')\n if (target.childNodes.length === 2 && target.nextSibling) {\n // Yes\n store.add(bnodeTerm, IDpredicate, IDterm) // used to connect the two\n outline.UserInput.clearMenu()\n } else if (target.childNodes.length === 2) {\n outline.UserInput.clearMenu()\n }\n }\n break\n case 'LimitedPredicateChoice': {\n const clickedTd = extraInformation.clickedTd\n selectItem = function selectItem (e) {\n qp('LIMITED P SELECT ITEM!!!!')\n const selectedPredicate = UI.utils.getAbout(store, UI.utils.getTarget(e))\n const predicateChoices =\n clickedTd.parentNode.AJAR_statement.predicate.elements\n for (let i = 0; i < predicateChoices.length; i++) {\n if (predicateChoices[i].sameTerm(selectedPredicate)) {\n predicateChoices.unshift(predicateChoices.splice(i, 1)[0])\n }\n }\n outline.UserInput.clearMenu()\n\n // refresh the choice\n const tr = clickedTd.parentNode\n const newTd = outline.outlinePredicateTD(\n tr.AJAR_statement.predicate,\n tr\n )\n tr.insertBefore(newTd, clickedTd)\n tr.removeChild(clickedTd)\n This.lastModified.select()\n }\n break\n }\n case 'PredicateAutoComplete':\n case 'GeneralAutoComplete':\n case 'GeneralPredicateChoice':\n case 'JournalTitleAutoComplete': // hql\n case 'TypeChoice': {\n // Clickable menu\n const isPredicate = extraInformation.isPredicate\n const selectedTd = extraInformation.selectedTd\n selectItem = function selectItem (e) {\n qp('WOOHOO')\n const inputTerm = UI.utils.getAbout(store, UI.utils.getTarget(e))\n qp('GENERAL SELECT ITEM!!!!!!=' + inputTerm)\n qp('target=' + UI.utils.getTarget(e))\n if (isPredicate) {\n qp('1')\n if (\n outline.UserInput.fillInRequest(\n 'predicate',\n selectedTd,\n inputTerm\n )\n ) {\n qp('2')\n outline.UserInput.clearMenu()\n }\n } else {\n qp('3')\n // thisInput.fillInRequest('object',selectedTd,inputTerm); //why is this not working?\n if (\n outline.UserInput.fillInRequest('object', selectedTd, inputTerm)\n ) {\n qp('4')\n outline.UserInput.clearMenu()\n }\n }\n }\n break\n }\n default:\n throw new Error('userinput: unexpected mode')\n }\n // hq: this line makes the menu clickable\n table.addEventListener('click', selectItem, false)\n\n // Add Items to the list\n // build NameSpaces here from knowledge base\n const NameSpaces = {}\n // for each (ontology in ontologies)\n store.each(undefined, UI.ns.rdf('type'), UI.ns.owl('Ontology')).forEach(\n function (ontology) {\n const label = UI.utils.label(ontology)\n if (!label) return\n // this is like extracting metadata from URI. Maybe it's better not to take the abbrevs.\n const match = label.value.match(/\\((.+?)\\)/)\n if (match) {\n NameSpaces[match[1]] = ontology.uri\n } else {\n NameSpaces[label.value] = ontology.uri\n }\n }\n )\n function addMenuItem (predicate) {\n if (table.firstChild && table.firstChild.className === 'no-suggest') {\n table.removeChild(table.firstChild)\n }\n const Label = UI.utils.predicateLabelForXML(predicate, false)\n // Label = Label.slice(0,1).toUpperCase() + Label.slice(1);\n\n if (!predicate.uri) return // bnode\n let theNamespace = '??'\n for (const name in NameSpaces) {\n UI.log.debug(NameSpaces[name])\n if (UI.rdf.Util.string_startswith(predicate.uri, NameSpaces[name])) {\n theNamespace = name\n break\n }\n }\n\n const tr = table.appendChild(myDocument.createElement('tr'))\n tr.setAttribute('about', predicate)\n const th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(Label)\n )\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode(theNamespace.toUpperCase())\n )\n }\n function addPredicateChoice (selectedQuery) {\n return function (bindings) {\n const predicate = bindings[selectedQuery.vars[0]]\n addMenuItem(predicate)\n }\n }\n function clearMenu (e) {\n This.clearMenu()\n e.stopPropagation()\n }\n let inputText\n let bnodeTerm\n let IDpredicate\n let IDterm\n let tr\n let th\n switch (menuType) {\n case 'DidYouMeanDialog': {\n const dialogTerm = extraInformation.dialogTerm\n bnodeTerm = extraInformation.bnodeTerm\n // have to do style instruction passing\n menu.style.width = 'auto'\n\n const h1 = table.appendChild(myDocument.createElement('tr'))\n const h1th = h1.appendChild(myDocument.createElement('th'))\n h1th.appendChild(myDocument.createTextNode('Did you mean...'))\n const plist = store.statementsMatching(dialogTerm)\n let i\n for (i = 0; i < plist.length; i++) {\n if (\n store.whether(\n plist[i].predicate,\n rdf('type'),\n UI.ns.owl('InverseFunctionalProperty')\n )\n ) {\n break\n }\n }\n const IDpredicate = plist[i].predicate\n const IDterm = store.any(dialogTerm, plist[i].predicate)\n const text =\n UI.utils.label(dialogTerm) +\n ' who has ' +\n UI.utils.label(IDpredicate) +\n ' ' +\n IDterm +\n '?'\n const h2 = table.appendChild(myDocument.createElement('tr'))\n const h2th = h2.appendChild(myDocument.createElement('th'))\n h2th.appendChild(myDocument.createTextNode(text))\n h1th.setAttribute('colspan', '2')\n h2th.setAttribute('colspan', '2')\n const ans1 = table.appendChild(myDocument.createElement('tr'))\n ans1\n .appendChild(myDocument.createElement('th'))\n .appendChild(myDocument.createTextNode('Yes'))\n ans1\n .appendChild(myDocument.createElement('td'))\n .appendChild(myDocument.createTextNode('BOOLEAN'))\n const ans2 = table.appendChild(myDocument.createElement('tr'))\n ans2\n .appendChild(myDocument.createElement('th'))\n .appendChild(myDocument.createTextNode('No'))\n ans2\n .appendChild(myDocument.createElement('td'))\n .appendChild(myDocument.createTextNode('BOOLEAN'))\n break\n }\n case 'PredicateAutoComplete': // Prompt user for possible relationships for new data\n inputText = extraInformation.inputText\n /* The labeller functionality code ahs been lost or dropped -- reinstate this? */\n // @@ TODO: Write away the need for exception on next line\n \n const predicates = outline.labeller.searchAdv(\n inputText,\n undefined,\n 'predicate'\n )\n // @@ TODO: Write away the need for exception on next line\n \n let results = [] // @@ fixme\n for (let i = 0; i < predicates.length; i++) {\n const tempQuery = {}\n tempQuery.vars = []\n tempQuery.vars.push('Kenny')\n const tempBinding = {}\n tempBinding.Kenny = store.fromNT(predicates[i].NT)\n try {\n addPredicateChoice(tempQuery)(tempBinding)\n } catch (e) {\n throw new Error(\"I'll deal with bnodes later...[Kenny]\" + e)\n } // I'll deal with bnodes later...\n }\n\n // @@ TODO: Write away the need for exception on next line\n \n let entries = results[0]\n if (entries.length === 0) {\n console.log('cm length 0\\n') // hq\n this.clearMenu()\n return\n }\n for (let i = 0; i < entries.length && i < 10; i++) {\n // do not show more than 30 items\n addMenuItem(entries[i][1])\n }\n break\n case 'GeneralAutoComplete': {\n inputText = extraInformation.inputText\n try {\n results = outline.labeller.search(inputText)\n } catch (e) {\n console.log(\n 'GeneralAutoComplete: debug me ' +\n extraInformation.selectedTd.textContent +\n '\\n' +\n e +\n '\\n'\n )\n }\n entries = results[0] // [label, subject,priority]\n const types = results[1]\n if (entries.length === 0) {\n console.log('cm length 0\\n') // hq\n this.clearMenu()\n return\n }\n for (let i = 0; i < entries.length && i < 10; i++) {\n // do not show more than 30 items\n // console.log(\"\\nGEN ENTRIES[\"+i+\"] = \"+entries[i]+\"\\n\");//hq\n const thisNT = entries[i][1].toNT()\n // console.log(\"thisNT=\"+thisNT+\"\\n\");\n tr = table.appendChild(myDocument.createElement('tr'))\n tr.setAttribute('about', thisNT)\n th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(entries[i][0])\n )\n // var theTerm = entries[i][1]\n // var type=theTerm?kb.any(kb.fromNT(thisNT),rdf('type')):undefined;\n const type = types[i]\n const typeLabel = type ? UI.utils.label(type) : ''\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode(typeLabel)\n )\n }\n /* var choices=extraInformation.choices;\n var index=extraInformation.index;\n for (var i=index-10;i<index+20;i++){ //show 30 items\n if (i<0) i=0;\n if (i==choices.length) break;\n var thisNT=choices[i].NT;\n var tr=table.appendChild(myDocument.createElement('tr'));\n tr.setAttribute('about',thisNT);\n var th=tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(myDocument.createTextNode(choices[i].label));\n var theTerm=kb.fromNT(thisNT);\n var type=theTerm?kb.any(kb.fromNT(thisNT),rdf('type')):undefined;\n var typeLabel=type?label(type):\"\";\n tr.appendChild(myDocument.createElement('td')).appendChild(myDocument.createTextNode(typeLabel));\n }\n */\n break\n }\n case 'JournalTitleAutoComplete': { // hql\n // HEART OF JOURNAL TITLE AUTOCOMPLETE\n\n // extraInformatin is from above getAutoCompleteHandler\n inputText = extraInformation.inputText\n console.log('testing searching text= ' + inputText + ' =====\\n')\n console.log('\\n===start JournalTitleAutoComplete\\n')\n\n // Gets all the URI's with type Journal in the knowledge base\n const juris = store.each(undefined, rdf('type'), bibo('Journal'))\n\n const matchedtitle = [] // debugging display before inserts into menu\n\n for (let i = 0; i < juris.length; i++) {\n const juri = juris[i]\n const jtitle = store.each(juri, dcelems('title'), undefined)\n\n const jtstr = jtitle + ''\n\n const matchstr = inputText.toLowerCase()\n const jTitleLowerCase = jtstr.toLowerCase()\n\n // If the inputText as a whole is contained in a journal title\n if (jTitleLowerCase.search(matchstr) !== -1) {\n qp('FOUND A Journal Title Match!!!!!!')\n matchedtitle.push(jtitle)\n\n // Add it as a row to the menu:\n // === Title, URI ==\n const tr = table.appendChild(myDocument.createElement('tr'))\n tr.setAttribute('about', 'journalTitle')\n const th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(jtitle)\n )\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode(juri)\n )\n }\n }\n\n console.log('matched: ' + matchedtitle + '\\n')\n\n console.log(\"\\\\\\\\done showMenu's JTAutocomplete\\n\")\n break\n }\n case 'LimitedPredicateChoice': {\n const choiceTerm = UI.utils.getAbout(store, extraInformation.clickedTd)\n // because getAbout relies on kb.fromNT, which does not deal with\n // the 'Collection' termType. This termType is ambiguous anyway.\n choiceTerm.termType = 'Collection'\n const choices = store.each(choiceTerm, UI.ns.link('element'))\n for (let i = 0; i < choices.length; i++) {\n addMenuItem(choices[i])\n }\n break\n }\n default: {\n tr = table.appendChild(myDocument.createElement('tr'))\n tr.className = 'no-suggest'\n th = tr.appendChild(myDocument.createElement('th'))\n th.appendChild(myDocument.createElement('div')).appendChild(\n myDocument.createTextNode(\n 'No suggested choices. Try to type instead.'\n )\n )\n tr.appendChild(myDocument.createElement('td')).appendChild(\n myDocument.createTextNode('OK')\n )\n // var This = this\n tr.addEventListener('click', clearMenu, 'false')\n\n const nullFetcher = function () {}\n switch (inputQuery.constructor.name) {\n case 'Array':\n for (let i = 0; i < inputQuery.length; i++) {\n store.query(\n inputQuery[i],\n addPredicateChoice(inputQuery[i]),\n nullFetcher\n )\n }\n break\n case 'undefined':\n throw new Error('addPredicateChoice: query is not defined')\n // break\n default:\n store.query(inputQuery, addPredicateChoice(inputQuery), nullFetcher)\n }\n }\n }\n }, // funciton showMenu\n\n /* When a blank is filled. This happens even for blue-cross editing. */\n fillInRequest: function fillInRequest (type, selectedTd, inputTerm) {\n const tr = selectedTd.parentNode\n let stat\n let isInverse\n \n stat = tr.AJAR_statement\n \n isInverse = tr.AJAR_inverse\n\n const reqTerm = type === 'object' ? stat.object : stat.predicate\n let newStat\n let doNext = false\n\n // RDF Event\n\n let eventhandler\n if (store.any(reqTerm, UI.ns.link('onfillin'))) {\n /* 2017 -- Not sure what is supposed to happen here -- timbl @@@@\n eventhandler = function(subject) {\n return kb.any(reqTerm, UI.ns.link('onfillin')).value)\n }\n */\n }\n\n if (type === 'predicate') {\n // ToDo: How to link two things with an inverse relationship\n const newTd = outline.outlinePredicateTD(inputTerm, tr, false, false)\n if (selectedTd.nextSibling.className !== 'undetermined') {\n const s = new UI.rdf.Statement(\n stat.subject,\n inputTerm,\n stat.object,\n stat.why\n )\n\n try {\n store.updater.update([], [s], function (\n uri,\n success,\n errorBody\n ) {\n if (success) {\n newStat = store.anyStatementMatching(\n stat.subject,\n inputTerm,\n stat.object,\n stat.why\n )\n tr.AJAR_statement = newStat\n newTd.className = newTd.className.replace(/ pendingedit/g, '')\n } else {\n // outline.UserInput.deleteTriple(newTd,true);\n // Warn the user that the write has failed.\n UI.log.warn(\n 'Failure occurs (#2) while inserting ' +\n tr.AJAR_statement +\n '\\n\\n' +\n errorBody\n )\n }\n })\n } catch (e) {\n UI.log.error(e)\n // Warn the user that the write has failed.\n UI.log.warn(\n 'Error when insert (#2) of statement ' + s + ':\\n\\t' + e\n )\n return\n }\n\n newTd.className += ' pendingedit'\n this.lastModified = null\n } else {\n this.formUndetStat(\n tr,\n stat.subject,\n inputTerm,\n stat.object,\n stat.why,\n false\n )\n outline.walk('right')\n doNext = true\n }\n outline.replaceTD(newTd, selectedTd)\n TempFormula.remove(stat)\n } else if (type === 'object') {\n // Object value has been edited\n const newTd = outline.outlineObjectTD(inputTerm)\n outline.replaceTD(newTd, selectedTd)\n if (\n !selectedTd.previousSibling ||\n selectedTd.previousSibling.className !== 'undetermined'\n ) {\n let s\n if (!isInverse) {\n s = new UI.rdf.Statement(\n stat.subject,\n stat.predicate,\n inputTerm,\n stat.why\n )\n } else {\n s = new UI.rdf.Statement(\n inputTerm,\n stat.predicate,\n stat.object,\n stat.why\n )\n }\n\n try {\n store.updater.update([], [s], function (\n uri,\n success,\n _errorBody\n ) {\n UI.log.info(\n '@@ usinput.js (object) callback ok=' +\n success +\n ' for statement:' +\n s +\n '\\n '\n )\n let newStats\n if (success) {\n newTd.className = newTd.className.replace(/ pendingedit/g, '') // User feedback\n if (!isInverse) {\n newStats = store.statementsMatching(\n stat.subject,\n stat.predicate,\n inputTerm,\n stat.why\n )\n } else {\n newStats = store.statementsMatching(\n inputTerm,\n stat.predicate,\n stat.object,\n stat.why\n )\n }\n if (!newStats.length) {\n UI.log.error(\"userinput.js 1711: Can't find statememt!\")\n }\n tr.AJAR_statement = newStats[0]\n } else {\n UI.log.warn(\n 'userinput.js (object): Fail trying to insert statement ' + s\n )\n // outline.UserInput.deleteTriple(newTd,true);\n }\n })\n } catch (e) {\n // outline.UserInput.deleteTriple(newTd,true);\n UI.log.error(\n 'userinput.js (object): exception trying to insert statement ' +\n s +\n ': ' +\n UI.utils.stackString(e)\n )\n UI.log.warn('Error trying to insert statement ' + s + ':\\n' + e)\n return\n }\n\n this.lastModified = null\n newTd.className += ' pendingedit'\n } else {\n // ?this.formUndetStat(tr...)\n outline.walk('left')\n doNext = true\n }\n // removal of the undetermined statement\n TempFormula.remove(stat)\n }\n // do not throw away user's work even update fails\n UserInputFormula.statements.push(newStat)\n if (eventhandler) eventhandler(stat.subject)\n if (doNext) {\n this.startFillInText(outline.getSelection()[0])\n } else {\n return true\n } // can clearMenu\n },\n\n formUndetStat: function formUndetStat (\n trNode,\n subject,\n predicate,\n object,\n why,\n inverse\n ) {\n trNode.AJAR_inverse = inverse\n trNode.AJAR_statement = TempFormula.add(subject, predicate, object, why)\n return trNode.AJAR_statement\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
-
var _default = exports["default"] = function _default(dom) {
|
|
11
|
-
return function viewAsImage(obj) {
|
|
12
|
-
var img = UI.utils.AJARImage(obj.uri, UI.utils.label(obj), UI.utils.label(obj), dom);
|
|
13
|
-
img.setAttribute('class', 'outlineImage');
|
|
14
|
-
return img;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=viewAsImage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewAsImage.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","dom","viewAsImage","obj","img","utils","AJARImage","uri","label","setAttribute"],"sources":["../../src/outline/viewAsImage.ts"],"sourcesContent":["import * as UI from 'solid-ui'\n\nexport default (dom) => function viewAsImage (obj) {\n const img = UI.utils.AJARImage(\n obj.uri,\n UI.utils.label(obj),\n UI.utils.label(obj),\n dom\n )\n img.setAttribute('class', 'outlineImage')\n return img\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA8B,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,wBAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,IAAAmB,QAAA,GAAAC,OAAA,cAEf,SAAAD,SAACE,GAAG;EAAA,OAAK,SAASC,WAAWA,CAAEC,GAAG,EAAE;IACjD,IAAMC,GAAG,GAAG5B,EAAE,CAAC6B,KAAK,CAACC,SAAS,CAC5BH,GAAG,CAACI,GAAG,EACP/B,EAAE,CAAC6B,KAAK,CAACG,KAAK,CAACL,GAAG,CAAC,EACnB3B,EAAE,CAAC6B,KAAK,CAACG,KAAK,CAACL,GAAG,CAAC,EACnBF,GACF,CAAC;IACDG,GAAG,CAACK,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;IACzC,OAAOL,GAAG;EACZ,CAAC;AAAA","ignoreList":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _default = exports["default"] = function _default(dom) {
|
|
8
|
-
return function viewAsMbox(obj) {
|
|
9
|
-
var anchor = dom.createElement('a');
|
|
10
|
-
// previous implementation assumed email address was Literal. fixed.
|
|
11
|
-
|
|
12
|
-
// FOAF mboxs must NOT be literals -- must be mailto: URIs.
|
|
13
|
-
|
|
14
|
-
var address = obj.termType === 'NamedNode' ? obj.uri : obj.value; // this way for now
|
|
15
|
-
// if (!address) return viewAsBoringDefault(obj)
|
|
16
|
-
var index = address.indexOf('mailto:');
|
|
17
|
-
address = index >= 0 ? address.slice(index + 7) : address;
|
|
18
|
-
anchor.setAttribute('href', 'mailto:' + address);
|
|
19
|
-
anchor.appendChild(dom.createTextNode(address));
|
|
20
|
-
return anchor;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=viewAsMbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewAsMbox.js","names":["_default","dom","viewAsMbox","obj","anchor","createElement","address","termType","uri","value","index","indexOf","slice","setAttribute","appendChild","createTextNode"],"sources":["../../src/outline/viewAsMbox.ts"],"sourcesContent":["export default (dom) => function viewAsMbox (obj) {\n const anchor = dom.createElement('a')\n // previous implementation assumed email address was Literal. fixed.\n\n // FOAF mboxs must NOT be literals -- must be mailto: URIs.\n\n let address = obj.termType === 'NamedNode' ? obj.uri : obj.value // this way for now\n // if (!address) return viewAsBoringDefault(obj)\n const index = address.indexOf('mailto:')\n address = index >= 0 ? address.slice(index + 7) : address\n anchor.setAttribute('href', 'mailto:' + address)\n anchor.appendChild(dom.createTextNode(address))\n return anchor\n}\n"],"mappings":";;;;;;oCAAe,SAAAA,SAACC,GAAG;EAAA,OAAK,SAASC,UAAUA,CAAEC,GAAG,EAAE;IAChD,IAAMC,MAAM,GAAGH,GAAG,CAACI,aAAa,CAAC,GAAG,CAAC;IACrC;;IAEA;;IAEA,IAAIC,OAAO,GAAGH,GAAG,CAACI,QAAQ,KAAK,WAAW,GAAGJ,GAAG,CAACK,GAAG,GAAGL,GAAG,CAACM,KAAK,EAAC;IACjE;IACA,IAAMC,KAAK,GAAGJ,OAAO,CAACK,OAAO,CAAC,SAAS,CAAC;IACxCL,OAAO,GAAGI,KAAK,IAAI,CAAC,GAAGJ,OAAO,CAACM,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,GAAGJ,OAAO;IACzDF,MAAM,CAACS,YAAY,CAAC,MAAM,EAAE,SAAS,GAAGP,OAAO,CAAC;IAChDF,MAAM,CAACU,WAAW,CAACb,GAAG,CAACc,cAAc,CAACT,OAAO,CAAC,CAAC;IAC/C,OAAOF,MAAM;EACf,CAAC;AAAA","ignoreList":[]}
|
package/lib/pad/padPane.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"padPane.js","names":["_solidUi","require","_solidLogic","_rdflib","paneDef","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","t","session","store","findTypeURIs","mintClass","pad","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newPadDoc","doc","add","rdf","dc","Date","chunk","sioc","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","render","paneOptions","dom","complainIfBad","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","foaf","serialize","setACL","callbackFunction","aclDoc","any","fetcher","aclText","webOperation","data","contentType","then","err","load","newInstanceButton","button","createElement","textContent","addEventListener","showBootstrap","spawnArea","thisInstance","container","noun","appDetails","login","newAppInstance","workspace","initializeNewInstanceInWorkspace","NamedNode","p","baseField","setAttribute","size","autocomplete","_e","value","slice","initializeNewInstanceAtBase","ws","space","split","log","error","appPathSegment","now","getTime","here","base","newIndexDoc","toBeCopied","local","agenda","f","length","item","fun","copyItem","push","newURI","console","setThatACL","shift","webCopy","authn","checkUser","webId","createNewPadDataFile","PAD","padDoc","_uri2","body","innerHTML","showResults","exists","currentUser","title","vcard","solo","window","document","options","padEle","notepad","naviMain","partipationTarget","meeting","manageParticipation","naviMiddle2","setRefreshHandler","reloadAndSync","loadPadData","nowOrWhenFetched","response","status","holds","wf","naviMiddle3","structure","naviLoginoutTR","naviTop","naviMiddle","naviMiddle1","naviStatus","statusArea","naviSpawn","naviMenu","timingArea","_default","exports"],"sources":["../../src/pad/padPane.ts"],"sourcesContent":["import { icons, ns, pad, widgets, login } from 'solid-ui'\nimport { authn, AppDetails } from 'solid-logic'\nimport { graph, log, NamedNode, Namespace, sym, serialize, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\n/* pad Pane\n **\n */\n\nconst paneDef: PaneDefinition = {\n // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',\n icon: icons.iconBase + 'noun_79217.svg',\n\n name: 'pad',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an pad pane?\n label: function (subject, context) {\n const t = (context.session.store as Store).findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/pad#Notepad']) {\n return 'pad'\n }\n return null // No under other circumstances\n },\n\n mintClass: ns.pad('Notepad'),\n\n mintNew: function (context, newPaneOptions: any) {\n const store = context.session.store as Store\n const updater = store.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('notepad mintNew: Invalid userid')\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n store.sym(newPaneOptions.newBase + 'index.ttl#this'))\n // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');\n const newPadDoc = newInstance.doc()\n\n store.add(newInstance, ns.rdf('type'), ns.pad('Notepad'), newPadDoc)\n store.add(newInstance, ns.dc('title'), 'Shared Notes', newPadDoc)\n store.add(newInstance, ns.dc('created'), new Date() as any, newPadDoc) // @@ TODO Remove casting\n if (newPaneOptions.me) {\n store.add(newInstance, ns.dc('author'), newPaneOptions.me, newPadDoc)\n }\n // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);\n // linked list empty @@\n const chunk = store.sym(newInstance.uri + '_line0')\n store.add(newInstance, ns.pad('next'), chunk, newPadDoc) // Linked list has one entry\n store.add(chunk, ns.pad('next'), newInstance, newPadDoc)\n store.add(chunk, ns.dc('author'), newPaneOptions.me, newPadDoc)\n store.add(chunk, ns.sioc('content'), '', newPadDoc)\n\n return new Promise(function (resolve, reject) {\n if (!updater) {\n reject(new Error('Have no updater'))\n return\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n // and follow instructions there\n // @@ TODO Set better type for paneOptions\n render: function (subject, context, paneOptions: any) {\n const dom = context.dom\n const store = context.session.store as Store\n // Utility functions\n const complainIfBad = function (ok: boolean, message: string) {\n if (!ok) {\n div.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele: HTMLElement) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n // Access control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n const genACLtext = function (\n docURI: string,\n aclURI: string,\n allWrite: boolean\n ) {\n const g = graph()\n const auth = Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n // TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:\n return serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /**\n * @param docURI\n * @param allWrite\n * @param callbackFunction\n *\n * @returns {Promise<Response>}\n */\n const setACL = function setACL (\n docURI: string,\n allWrite: boolean,\n callbackFunction: Function\n ) {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode // @@ check that this get set by web.js\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch((err: Error) => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI);\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n const newInstanceButton = function () {\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start another pad'\n button.addEventListener('click', function () {\n return showBootstrap(subject, spawnArea, 'pad')\n })\n return button\n }\n\n // Option of either using the workspace system or just typing in a URI\n const showBootstrap = function showBootstrap (\n thisInstance: any,\n container: HTMLElement,\n noun: string\n ) {\n const div = clearElement(container)\n const appDetails = { noun: 'notepad' } as AppDetails\n div.appendChild(\n login.newAppInstance(dom, appDetails, (workspace: string | null, newBase) => {\n // FIXME: not sure if this will work at all, just\n // trying to get the types to match - Michiel.\n return initializeNewInstanceInWorkspace(new NamedNode(workspace || newBase))\n })\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the ' +\n noun +\n '? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n ;(baseField as any).label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start new ' + noun + ' at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // Create new document files for new instance of app\n const initializeNewInstanceInWorkspace = function (ws: NamedNode) {\n // @@ TODO Clean up type for newBase\n let newBase: any = store.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (\n thisInstance: any,\n newBase: string\n ) {\n const here = sym(thisInstance.uri.split('#')[0])\n const base = here // @@ ???\n\n const newPadDoc = store.sym(newBase + 'pad.ttl')\n const newIndexDoc = store.sym(newBase + 'index.html')\n\n const toBeCopied = [{ local: 'index.html', contentType: 'text/html' }]\n\n const newInstance = store.sym(newPadDoc.uri + '#thisPad')\n\n // log.debug(\"\\n Ready to put \" + kb.statementsMatching(undefined, undefined, undefined, there)); //@@\n\n const agenda: Function[] = []\n\n let f // @@ This needs some form of visible progress bar\n for (f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item: any) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL(newURI, false, function (ok: boolean, message: string) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()!() // beware too much nesting\n }\n })\n }\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createNewPadDataFile () {\n store.add(newInstance, ns.rdf('type'), PAD('Notepad'), newPadDoc)\n\n // TODO @@ Remove casting of add\n store.add(\n newInstance,\n ns.dc('created'),\n new Date() as any, // @@ TODO Remove casting\n newPadDoc\n )\n if (me) {\n store.add(newInstance, ns.dc('author'), me, newPadDoc)\n }\n store.add(newInstance, PAD('next'), newInstance, newPadDoc) // linked list empty\n\n // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy\n store.add(newInstance, ns.space('inspiration'), thisInstance, padDoc)\n store.add(newInstance, ns.space('inspiration'), thisInstance, newPadDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (_uri2, ok, message) {\n if (ok) {\n agenda.shift()!()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n setACL(newPadDoc.uri, true, function (ok: boolean, body: string) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on pad data file: ' + body\n )\n if (ok) agenda.shift()!()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n newIndexDoc.uri +\n \"'><b>new notepad</b></a> is ready. \" +\n \"<br/><br/><a href='\" +\n newIndexDoc.uri +\n \"'>Go to new pad</a>\"\n })\n\n agenda.shift()!()\n // Created new data files.\n }\n\n // Update on incoming changes\n const showResults = function (exists: boolean) {\n console.log('showResults()')\n\n me = authn.currentUser()\n\n authn.checkUser().then((webId: unknown) => {\n me = webId as string\n })\n\n const title =\n store.any(subject, ns.dc('title')) || store.any(subject, ns.vcard('fn'))\n if (paneOptions.solo && typeof window !== 'undefined' && title) {\n window.document.title = title.value\n }\n options.exists = exists\n padEle = pad.notepad(dom, padDoc, subject, me, options)\n naviMain.appendChild(padEle)\n\n const partipationTarget =\n store.any(subject, ns.meeting('parentMeeting')) || subject\n pad.manageParticipation(\n dom,\n naviMiddle2,\n padDoc,\n partipationTarget as any,\n me,\n options\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync) // initiated =\n }\n\n // Read or create empty data file\n const loadPadData = function () {\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (\n ok: boolean,\n body: string,\n response: any\n ) {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing results file ' + padDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(padDoc, [], 'text/turtle', function (\n _uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults(false)\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n if (store.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))) {\n showBootstrap(subject, naviMain, 'pad')\n }\n showResults(true)\n naviMiddle3.appendChild(newInstanceButton())\n }\n })\n }\n\n // Body of Pane\n const appPathSegment = 'app-pad.timbl.com' // how to allocate this string and connect to\n\n const fetcher = store.fetcher\n const updater = store.updater\n let me: any\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n const thisInstance = subject\n const padDoc = subject.doc()\n\n let padEle\n\n const div = dom.createElement('div')\n\n // Build the DOM\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td')) // naviLoginout1\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const naviTop = structure.appendChild(dom.createElement('tr')) // stuff\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMiddle = structure.appendChild(dom.createElement('tr')) // controls\n const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'))\n\n const naviStatus = structure.appendChild(dom.createElement('tr')) // status etc\n const statusArea = naviStatus.appendChild(dom.createElement('div'))\n\n const naviSpawn = structure.appendChild(dom.createElement('tr')) // create new\n const spawnArea = naviSpawn.appendChild(dom.createElement('div'))\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n // naviMenu.setAttribute('style', 'margin-top: 3em;');\n naviMenu.appendChild(dom.createElement('td')) // naviLeft\n naviMenu.appendChild(dom.createElement('td'))\n naviMenu.appendChild(dom.createElement('td'))\n\n const options: any = { statusArea: statusArea, timingArea: naviMiddle1 }\n\n loadPadData()\n\n return div\n }\n}\n// ends\n\nexport default paneDef\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA;AACA;AACA;;AAEA,IAAMG,OAAuB,GAAG;EAC9B;EACAC,IAAI,EAAEC,cAAK,CAACC,QAAQ,GAAG,gBAAgB;EAEvCC,IAAI,EAAE,KAAK;EAEXC,QAAQ,EAAE,CAACC,WAAE,CAACC,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjC;EACAC,KAAK,EAAE,SAAPA,KAAKA,CAAYC,OAAO,EAAEC,OAAO,EAAE;IACjC,IAAMC,CAAC,GAAID,OAAO,CAACE,OAAO,CAACC,KAAK,CAAWC,YAAY,CAACL,OAAO,CAAC;IAChE,IAAIE,CAAC,CAAC,sCAAsC,CAAC,EAAE;MAC7C,OAAO,KAAK;IACd;IACA,OAAO,IAAI,EAAC;EACd,CAAC;EAEDI,SAAS,EAAET,WAAE,CAACU,GAAG,CAAC,SAAS,CAAC;EAE5BC,OAAO,EAAE,SAATA,OAAOA,CAAYP,OAAO,EAAEQ,cAAmB,EAAE;IAC/C,IAAML,KAAK,GAAGH,OAAO,CAACE,OAAO,CAACC,KAAc;IAC5C,IAAMM,OAAO,GAAGN,KAAK,CAACM,OAAO;IAC7B,IAAID,cAAc,CAACE,EAAE,IAAI,CAACF,cAAc,CAACE,EAAE,CAACC,GAAG,EAAE;MAC/C,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,IAAMC,WAAW,GAAIL,cAAc,CAACK,WAAW,GAC7CL,cAAc,CAACK,WAAW,IAC1BV,KAAK,CAACW,GAAG,CAACN,cAAc,CAACO,OAAO,GAAG,gBAAgB,CAAE;IACvD;IACA,IAAMC,SAAS,GAAGH,WAAW,CAACI,GAAG,CAAC,CAAC;IAEnCd,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEvB,WAAE,CAACU,GAAG,CAAC,SAAS,CAAC,EAAEU,SAAS,CAAC;IACpEb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,EAAEJ,SAAS,CAAC;IACjEb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,SAAS,CAAC,EAAE,IAAIC,IAAI,CAAC,CAAC,EAASL,SAAS,CAAC,EAAC;IACvE,IAAIR,cAAc,CAACE,EAAE,EAAE;MACrBP,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,QAAQ,CAAC,EAAEZ,cAAc,CAACE,EAAE,EAAEM,SAAS,CAAC;IACvE;IACA;IACA;IACA,IAAMM,KAAK,GAAGnB,KAAK,CAACW,GAAG,CAACD,WAAW,CAACF,GAAG,GAAG,QAAQ,CAAC;IACnDR,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACU,GAAG,CAAC,MAAM,CAAC,EAAEgB,KAAK,EAAEN,SAAS,CAAC,EAAC;IACzDb,KAAK,CAACe,GAAG,CAACI,KAAK,EAAE1B,WAAE,CAACU,GAAG,CAAC,MAAM,CAAC,EAAEO,WAAW,EAAEG,SAAS,CAAC;IACxDb,KAAK,CAACe,GAAG,CAACI,KAAK,EAAE1B,WAAE,CAACwB,EAAE,CAAC,QAAQ,CAAC,EAAEZ,cAAc,CAACE,EAAE,EAAEM,SAAS,CAAC;IAC/Db,KAAK,CAACe,GAAG,CAACI,KAAK,EAAE1B,WAAE,CAAC2B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAEP,SAAS,CAAC;IAEnD,OAAO,IAAIQ,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;MAC5C,IAAI,CAACjB,OAAO,EAAE;QACZiB,MAAM,CAAC,IAAId,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC;MACF;MACAH,OAAO,CAACkB,GAAG,CACTX,SAAS,EACTb,KAAK,CAACyB,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEb,SAAS,CAAC,EACpE,aAAa,EACb,UAAUc,IAAI,EAAEC,EAAE,EAAEC,OAAO,EAAE;QAC3B,IAAID,EAAE,EAAE;UACNN,OAAO,CAACjB,cAAc,CAAC;QACzB,CAAC,MAAM;UACLkB,MAAM,CACJ,IAAId,KAAK,CAAC,8BAA8B,GAAGkB,IAAI,GAAG,KAAK,GAAGE,OAAO,CACnE,CAAC;QACH;MACF,CACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EACD;EACA;EACAC,MAAM,EAAE,SAARA,MAAMA,CAAYlC,OAAO,EAAEC,OAAO,EAAEkC,WAAgB,EAAE;IACpD,IAAMC,GAAG,GAAGnC,OAAO,CAACmC,GAAG;IACvB,IAAMhC,KAAK,GAAGH,OAAO,CAACE,OAAO,CAACC,KAAc;IAC5C;IACA,IAAMiC,aAAa,GAAG,SAAhBA,aAAaA,CAAaL,EAAW,EAAEC,OAAe,EAAE;MAC5D,IAAI,CAACD,EAAE,EAAE;QACPM,GAAG,CAACC,WAAW,CAACC,gBAAO,CAACC,iBAAiB,CAACL,GAAG,EAAEH,OAAO,EAAE,MAAM,CAAC,CAAC;MAClE;IACF,CAAC;IAED,IAAMS,YAAY,GAAG,SAAfA,YAAYA,CAAaC,GAAgB,EAAE;MAC/C,OAAOA,GAAG,CAACC,UAAU,EAAE;QACrBD,GAAG,CAACE,WAAW,CAACF,GAAG,CAACC,UAAU,CAAC;MACjC;MACA,OAAOD,GAAG;IACZ,CAAC;;IAED;;IAEA;IACA;IACA,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CACdC,MAAc,EACdC,MAAc,EACdC,QAAiB,EACjB;MACA,IAAMC,CAAC,GAAG,IAAAC,aAAK,EAAC,CAAC;MACjB,IAAMC,IAAI,GAAG,IAAAC,iBAAS,EAAC,gCAAgC,CAAC;MACxD,IAAIC,CAAC,GAAGJ,CAAC,CAACnC,GAAG,CAACiC,MAAM,GAAG,KAAK,CAAC;MAC7B,IAAMO,GAAG,GAAGL,CAAC,CAACnC,GAAG,CAACiC,MAAM,CAAC;MACzB,IAAM9B,GAAG,GAAGgC,CAAC,CAACnC,GAAG,CAACgC,MAAM,CAAC;MACzBG,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEzD,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEgC,IAAI,CAAC,eAAe,CAAC,EAAEG,GAAG,CAAC;MACpDL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,UAAU,CAAC,EAAElC,GAAG,EAAEqC,GAAG,CAAC;MACpCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,OAAO,CAAC,EAAEzC,EAAE,EAAE4C,GAAG,CAAC;MAChCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,MAAM,CAAC,EAAEG,GAAG,CAAC;MACzCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,OAAO,CAAC,EAAEG,GAAG,CAAC;MAC1CL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,SAAS,CAAC,EAAEG,GAAG,CAAC;MAE5CD,CAAC,GAAGJ,CAAC,CAACnC,GAAG,CAACiC,MAAM,GAAG,KAAK,CAAC;MACzBE,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEzD,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEgC,IAAI,CAAC,eAAe,CAAC,EAAEG,GAAG,CAAC;MACpDL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,UAAU,CAAC,EAAElC,GAAG,EAAEqC,GAAG,CAAC;MACpCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,YAAY,CAAC,EAAEvD,WAAE,CAAC2D,IAAI,CAAC,OAAO,CAAC,EAAED,GAAG,CAAC;MACnDL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,MAAM,CAAC,EAAEG,GAAG,CAAC;MACzC,IAAIN,QAAQ,EAAE;QACZC,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,OAAO,CAAC,EAAEG,GAAG,CAAC;MAC5C;MACA;MACA,OAAO,IAAAE,iBAAS,EAACF,GAAG,EAAEL,CAAC,EAAEF,MAAM,EAAE,aAAa,CAAC;IACjD,CAAC;;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAMU,MAAM,GAAG,SAASA,MAAMA,CAC5BX,MAAc,EACdE,QAAiB,EACjBU,gBAA0B,EAC1B;MACA,IAAMC,MAAM,GAAGxD,KAAK,CAACyD,GAAG,CACtB,IAAA9C,WAAG,EAACgC,MAAM,CAAC,EACX,IAAAhC,WAAG,EAAC,oDAAoD,CAC1D,CAAc,EAAC;MACf,IAAI,CAAC+C,OAAO,EAAE;QACZ,MAAM,IAAIjD,KAAK,CAAC,iBAAiB,CAAC;MACpC;MACA,IAAI+C,MAAM,EAAE;QACV;QACA,IAAMG,OAAO,GAAGjB,UAAU,CAACC,MAAM,EAAEa,MAAM,CAAChD,GAAG,EAAEqC,QAAQ,CAAC;QACxD,OAAOa,OAAO,CACXE,YAAY,CAAC,KAAK,EAAEJ,MAAM,CAAChD,GAAG,EAAE;UAC/BqD,IAAI,EAAEF,OAAO;UACbG,WAAW,EAAE;QACf,CAAC,CAAC,CACDC,IAAI,CAAC;UAAA,OAAMR,gBAAgB,CAAC,IAAI,CAAC;QAAA,EAAC,SAC7B,CAAC,UAAAS,GAAG,EAAI;UACZT,gBAAgB,CAAC,KAAK,EAAES,GAAG,CAACnC,OAAO,CAAC;QACtC,CAAC,CAAC;MACN,CAAC,MAAM;QACL,OAAO6B,OAAO,CACXO,IAAI,CAACtB,MAAM,CAAC,SACP,CAAC,UAACqB,GAAU,EAAK;UACrBT,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAGS,GAAG,CAAC;QAC5D,CAAC,CAAC,CACDD,IAAI,CAAC,YAAM;UACV,IAAMP,MAAM,GAAGxD,KAAK,CAACyD,GAAG,CACtB,IAAA9C,WAAG,EAACgC,MAAM,CAAC,EACX,IAAAhC,WAAG,EAAC,oDAAoD,CAC1D,CAAc;UAEd,IAAI,CAAC6C,MAAM,EAAE;YACX;YACA,MAAM,IAAI/C,KAAK,CAAC,6BAA6B,GAAGkC,MAAM,CAAC;UACzD;UAEA,IAAMgB,OAAO,GAAGjB,UAAU,CAACC,MAAM,EAAEa,MAAM,CAAChD,GAAG,EAAEqC,QAAQ,CAAC;UAExD,OAAOa,OAAO,CAACE,YAAY,CAAC,KAAK,EAAEJ,MAAM,CAAChD,GAAG,EAAE;YAC7CqD,IAAI,EAAEF,OAAO;YACbG,WAAW,EAAE;UACf,CAAC,CAAC;QACJ,CAAC,CAAC,CACDC,IAAI,CAAC;UAAA,OAAMR,gBAAgB,CAAC,IAAI,CAAC;QAAA,EAAC,SAC7B,CAAC,UAAAS,GAAG,EAAI;UACZT,gBAAgB,CAAC,KAAK,EAAES,GAAG,CAACnC,OAAO,CAAC;QACtC,CAAC,CAAC;MACN;IACF,CAAC;;IAED;IACA;IACA;IACA,IAAMqC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAe;MACpC,IAAMC,MAAM,GAAGjC,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,QAAQ,CAAC,CAAC;MAC3DD,MAAM,CAACE,WAAW,GAAG,mBAAmB;MACxCF,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,YAAY;QAC3C,OAAOC,aAAa,CAAC3E,OAAO,EAAE4E,SAAS,EAAE,KAAK,CAAC;MACjD,CAAC,CAAC;MACF,OAAOL,MAAM;IACf,CAAC;;IAED;IACA,IAAMI,aAAa,GAAG,SAASA,aAAaA,CAC1CE,YAAiB,EACjBC,SAAsB,EACtBC,IAAY,EACZ;MACA,IAAMzC,GAAG,GAAGI,YAAY,CAACoC,SAAS,CAAC;MACnC,IAAME,UAAU,GAAG;QAAED,IAAI,EAAE;MAAU,CAAe;MACpDzC,GAAG,CAACC,WAAW,CACb0C,cAAK,CAACC,cAAc,CAAC9C,GAAG,EAAE4C,UAAU,EAAE,UAACG,SAAwB,EAAEnE,OAAO,EAAK;QAC3E;QACA;QACA,OAAOoE,gCAAgC,CAAC,IAAIC,iBAAS,CAACF,SAAS,IAAInE,OAAO,CAAC,CAAC;MAC9E,CAAC,CACH,CAAC;MAEDsB,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;;MAEzC,IAAMc,CAAC,GAAGhD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,GAAG,CAAC,CAAC;MACjDc,CAAC,CAACb,WAAW,GACX,iDAAiD,GACjDM,IAAI,GACJ,KAAK,GACL,qEAAqE;MACvE,IAAMQ,SAAS,GAAGjD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,OAAO,CAAC,CAAC;MAC7De,SAAS,CAACC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;MACtCD,SAAS,CAACE,IAAI,GAAG,EAAE,CAAC;MAAA;MAClBF,SAAS,CAASxF,KAAK,GAAG,UAAU;MACtCwF,SAAS,CAACG,YAAY,GAAG,IAAI;MAE7BpD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;;MAEzC,IAAMD,MAAM,GAAGjC,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,QAAQ,CAAC,CAAC;MAC3DD,MAAM,CAACE,WAAW,GAAG,YAAY,GAAGM,IAAI,GAAG,cAAc;MACzDR,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAAUiB,EAAE,EAAE;QAC7C,IAAI3E,OAAO,GAAGuE,SAAS,CAACK,KAAK;QAC7B,IAAI5E,OAAO,CAAC6E,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;UAC7B7E,OAAO,IAAI,GAAG;QAChB;QACA8E,2BAA2B,CAACjB,YAAY,EAAE7D,OAAO,CAAC;MACpD,CAAC,CAAC;IACJ,CAAC;;IAED;IACA,IAAMoE,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAaW,EAAa,EAAE;MAChE;MACA,IAAI/E,OAAY,GAAGZ,KAAK,CAACyD,GAAG,CAACkC,EAAE,EAAElG,WAAE,CAACmG,KAAK,CAAC,WAAW,CAAC,CAAC;MACvD,IAAI,CAAChF,OAAO,EAAE;QACZA,OAAO,GAAG+E,EAAE,CAACnF,GAAG,CAACqF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAChC,CAAC,MAAM;QACLjF,OAAO,GAAGA,OAAO,CAAC4E,KAAK;MACzB;MACA,IAAI5E,OAAO,CAAC6E,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC7BK,WAAG,CAACC,KAAK,CAACC,cAAc,GAAG,6BAA6B,GAAGpF,OAAO,CAAC,EAAC;QACpEA,OAAO,GAAGA,OAAO,GAAG,GAAG;MACzB;MACA,IAAMqF,GAAG,GAAG,IAAI/E,IAAI,CAAC,CAAC;MACtBN,OAAO,IAAIoF,cAAc,GAAG,KAAK,GAAGC,GAAG,CAACC,OAAO,CAAC,CAAC,GAAG,GAAG,EAAC;;MAExDR,2BAA2B,CAACjB,YAAY,EAAE7D,OAAO,CAAC;IACpD,CAAC;IAED,IAAM8E,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC/BjB,YAAiB,EACjB7D,OAAe,EACf;MACA,IAAMuF,IAAI,GAAG,IAAAxF,WAAG,EAAC8D,YAAY,CAACjE,GAAG,CAACqF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAChD,IAAMO,IAAI,GAAGD,IAAI,EAAC;;MAElB,IAAMtF,SAAS,GAAGb,KAAK,CAACW,GAAG,CAACC,OAAO,GAAG,SAAS,CAAC;MAChD,IAAMyF,WAAW,GAAGrG,KAAK,CAACW,GAAG,CAACC,OAAO,GAAG,YAAY,CAAC;MAErD,IAAM0F,UAAU,GAAG,CAAC;QAAEC,KAAK,EAAE,YAAY;QAAEzC,WAAW,EAAE;MAAY,CAAC,CAAC;MAEtE,IAAMpD,WAAW,GAAGV,KAAK,CAACW,GAAG,CAACE,SAAS,CAACL,GAAG,GAAG,UAAU,CAAC;;MAEzD;;MAEA,IAAMgG,MAAkB,GAAG,EAAE;MAE7B,IAAIC,CAAC,EAAC;MACN,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,UAAU,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;QACtC,IAAME,IAAI,GAAGL,UAAU,CAACG,CAAC,CAAC;QAC1B,IAAMG,GAAG,GAAG,SAASC,QAAQA,CAAEF,IAAS,EAAE;UACxCH,MAAM,CAACM,IAAI,CAAC,YAAY;YACtB,IAAMC,MAAM,GAAGnG,OAAO,GAAG+F,IAAI,CAACJ,KAAK;YACnCS,OAAO,CAAClB,GAAG,CAAC,UAAU,GAAGM,IAAI,GAAGO,IAAI,CAACJ,KAAK,GAAG,MAAM,GAAGQ,MAAM,CAAC;YAE7D,IAAME,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAe;cAC7B3D,MAAM,CAACyD,MAAM,EAAE,KAAK,EAAE,UAAUnF,EAAW,EAAEC,OAAe,EAAE;gBAC5D,IAAI,CAACD,EAAE,EAAE;kBACPK,aAAa,CACXL,EAAE,EACF,oBAAoB,GAAGmF,MAAM,GAAG,KAAK,GAAGlF,OAC1C,CAAC;kBACDmF,OAAO,CAAClB,GAAG,CAAC,oBAAoB,GAAGiB,MAAM,GAAG,KAAK,GAAGlF,OAAO,CAAC;gBAC9D,CAAC,MAAM;kBACL2E,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC,EAAC;gBACpB;cACF,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAClH,KAAK,CAAC0D,OAAO,EAAE;cAClB,MAAM,IAAIjD,KAAK,CAAC,sBAAsB,CAAC;YACzC;YACAT,KAAK,CAAC0D,OAAO,CACVyD,OAAO,CACNf,IAAI,GAAGO,IAAI,CAACJ,KAAK,EACjB3F,OAAO,GAAG+F,IAAI,CAACJ,KAAK,EACpBI,IAAI,CAAC7C,WACP,CAAC,CACAC,IAAI,CAAC;cAAA,OAAMqD,iBAAK,CAACC,SAAS,CAAC,CAAC;YAAA,EAAC,CAC7BtD,IAAI,CAAC,UAAAuD,KAAK,EAAI;cACb/G,EAAE,GAAG+G,KAAK;cAEVL,UAAU,CAAC,CAAC;YACd,CAAC,CAAC,SACI,CAAC,UAAAjD,GAAG,EAAI;cACZgD,OAAO,CAAClB,GAAG,CACT,iBAAiB,GAAGM,IAAI,GAAGO,IAAI,CAACJ,KAAK,GAAG,KAAK,GAAGvC,GAAG,CAACnC,OACtD,CAAC;cACDI,aAAa,CACX,KAAK,EACL,iBAAiB,GAAGmE,IAAI,GAAGO,IAAI,CAACJ,KAAK,GAAG,KAAK,GAAGvC,GAAG,CAACnC,OACtD,CAAC;YACH,CAAC,CAAC;UACN,CAAC,CAAC;QACJ,CAAC;QACD+E,GAAG,CAACD,IAAI,CAAC;MACX;MAEAH,MAAM,CAACM,IAAI,CAAC,SAASS,oBAAoBA,CAAA,EAAI;QAC3CvH,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEwG,GAAG,CAAC,SAAS,CAAC,EAAE3G,SAAS,CAAC;;QAEjE;QACAb,KAAK,CAACe,GAAG,CACPL,WAAW,EACXjB,WAAE,CAACwB,EAAE,CAAC,SAAS,CAAC,EAChB,IAAIC,IAAI,CAAC,CAAC;QAAS;QACnBL,SACF,CAAC;QACD,IAAIN,EAAE,EAAE;UACNP,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,QAAQ,CAAC,EAAEV,EAAE,EAAEM,SAAS,CAAC;QACxD;QACAb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAE8G,GAAG,CAAC,MAAM,CAAC,EAAE9G,WAAW,EAAEG,SAAS,CAAC,EAAC;;QAE5D;QACAb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACmG,KAAK,CAAC,aAAa,CAAC,EAAEnB,YAAY,EAAEgD,MAAM,CAAC;QACrEzH,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACmG,KAAK,CAAC,aAAa,CAAC,EAAEnB,YAAY,EAAE5D,SAAS,CAAC;QACxE,IAAI,CAACP,OAAO,EAAE;UACZ,MAAM,IAAIG,KAAK,CAAC,iBAAiB,CAAC;QACpC;QACAH,OAAO,CAACkB,GAAG,CACTX,SAAS,EACTb,KAAK,CAACyB,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEb,SAAS,CAAC,EACpE,aAAa,EACb,UAAU6G,KAAK,EAAE9F,EAAE,EAAEC,OAAO,EAAE;UAC5B,IAAID,EAAE,EAAE;YACN4E,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC;UACnB,CAAC,MAAM;YACLjF,aAAa,CACXL,EAAE,EACF,iCAAiC,GAC/Bf,SAAS,CAACL,GAAG,GACb,KAAK,GACLqB,OACJ,CAAC;YACDmF,OAAO,CAAClB,GAAG,CACT,iCAAiC,GAC/BjF,SAAS,CAACL,GAAG,GACb,KAAK,GACLqB,OACJ,CAAC;UACH;QACF,CACF,CAAC;MACH,CAAC,CAAC;MAEF2E,MAAM,CAACM,IAAI,CAAC,YAAY;QACtBxD,MAAM,CAACzC,SAAS,CAACL,GAAG,EAAE,IAAI,EAAE,UAAUoB,EAAW,EAAE+F,IAAY,EAAE;UAC/D1F,aAAa,CACXL,EAAE,EACF,iDAAiD,GAAG+F,IACtD,CAAC;UACD,IAAI/F,EAAE,EAAE4E,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC;QAC3B,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFV,MAAM,CAACM,IAAI,CAAC,YAAY;QACtB;;QAEA,IAAM5B,CAAC,GAAGhD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjDc,CAAC,CAACE,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAC3CF,CAAC,CAAC0C,SAAS,GACT,gBAAgB,GAChBvB,WAAW,CAAC7F,GAAG,GACf,qCAAqC,GACrC,qBAAqB,GACrB6F,WAAW,CAAC7F,GAAG,GACf,qBAAqB;MACzB,CAAC,CAAC;MAEFgG,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC;MACjB;IACF,CAAC;;IAED;IACA,IAAMW,WAAW,GAAG,SAAdA,WAAWA,CAAaC,MAAe,EAAE;MAC7Cd,OAAO,CAAClB,GAAG,CAAC,eAAe,CAAC;MAE5BvF,EAAE,GAAG6G,iBAAK,CAACW,WAAW,CAAC,CAAC;MAExBX,iBAAK,CAACC,SAAS,CAAC,CAAC,CAACtD,IAAI,CAAC,UAACuD,KAAc,EAAK;QACzC/G,EAAE,GAAG+G,KAAe;MACtB,CAAC,CAAC;MAEF,IAAMU,KAAK,GACThI,KAAK,CAACyD,GAAG,CAAC7D,OAAO,EAAEH,WAAE,CAACwB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAIjB,KAAK,CAACyD,GAAG,CAAC7D,OAAO,EAAEH,WAAE,CAACwI,KAAK,CAAC,IAAI,CAAC,CAAC;MAC1E,IAAIlG,WAAW,CAACmG,IAAI,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAIH,KAAK,EAAE;QAC9DG,MAAM,CAACC,QAAQ,CAACJ,KAAK,GAAGA,KAAK,CAACxC,KAAK;MACrC;MACA6C,OAAO,CAACP,MAAM,GAAGA,MAAM;MACvBQ,MAAM,GAAGnI,YAAG,CAACoI,OAAO,CAACvG,GAAG,EAAEyF,MAAM,EAAE7H,OAAO,EAAEW,EAAE,EAAE8H,OAAO,CAAC;MACvDG,QAAQ,CAACrG,WAAW,CAACmG,MAAM,CAAC;MAE5B,IAAMG,iBAAiB,GACrBzI,KAAK,CAACyD,GAAG,CAAC7D,OAAO,EAAEH,WAAE,CAACiJ,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI9I,OAAO;MAC5DO,YAAG,CAACwI,mBAAmB,CACrB3G,GAAG,EACH4G,WAAW,EACXnB,MAAM,EACNgB,iBAAiB,EACjBlI,EAAE,EACF8H,OACF,CAAC;MACD,IAAI,CAACrI,KAAK,CAACM,OAAO,EAAE;QAClB,MAAM,IAAIG,KAAK,CAAC,sBAAsB,CAAC;MACzC;MAEAT,KAAK,CAACM,OAAO,CAACuI,iBAAiB,CAACpB,MAAM,EAAEa,MAAM,CAACQ,aAAa,CAAC,EAAC;IAChE,CAAC;;IAED;IACA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAe;MAC9B,IAAI,CAACrF,OAAO,EAAE;QACZ,MAAM,IAAIjD,KAAK,CAAC,iBAAiB,CAAC;MACpC;MACAiD,OAAO,CAACsF,gBAAgB,CAACvB,MAAM,CAACjH,GAAG,EAAEkB,SAAS,EAAE,UAC9CE,EAAW,EACX+F,IAAY,EACZsB,QAAa,EACb;QACA,IAAI,CAACrH,EAAE,EAAE;UACP,IAAIqH,QAAQ,CAACC,MAAM,KAAK,GAAG,EAAE;YAC3B;YACAlC,OAAO,CAAClB,GAAG,CAAC,4BAA4B,GAAG2B,MAAM,CAAC;YAClD,IAAI,CAACnH,OAAO,EAAE;cACZ,MAAM,IAAIG,KAAK,CAAC,iBAAiB,CAAC;YACpC;YACAH,OAAO,CAACkB,GAAG,CAACiG,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,UACrCC,KAAK,EACL9F,EAAE,EACFC,OAAO,EACP;cACA,IAAID,EAAE,EAAE;gBACNU,YAAY,CAACkG,QAAQ,CAAC;gBACtBX,WAAW,CAAC,KAAK,CAAC;cACpB,CAAC,MAAM;gBACL5F,aAAa,CACXL,EAAE,EACF,oCAAoC,GAClC6F,MAAM,CAACjH,GAAG,GACV,KAAK,GACLqB,OACJ,CAAC;gBACDmF,OAAO,CAAClB,GAAG,CACT,oCAAoC,GAClC2B,MAAM,CAACjH,GAAG,GACV,KAAK,GACLqB,OACJ,CAAC;cACH;YACF,CAAC,CAAC;UACJ,CAAC,MAAM;YACL;YACAI,aAAa,CAACL,EAAE,EAAE,+BAA+B,GAAG+F,IAAI,CAAC;UAC3D;QACF,CAAC,MAAM;UACL;UACArF,YAAY,CAACkG,QAAQ,CAAC;UACtB,IAAIxI,KAAK,CAACmJ,KAAK,CAACvJ,OAAO,EAAEH,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEvB,WAAE,CAAC2J,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;YACnE7E,aAAa,CAAC3E,OAAO,EAAE4I,QAAQ,EAAE,KAAK,CAAC;UACzC;UACAX,WAAW,CAAC,IAAI,CAAC;UACjBwB,WAAW,CAAClH,WAAW,CAAC+B,iBAAiB,CAAC,CAAC,CAAC;QAC9C;MACF,CAAC,CAAC;IACJ,CAAC;;IAED;IACA,IAAM8B,cAAc,GAAG,mBAAmB,EAAC;;IAE3C,IAAMtC,OAAO,GAAG1D,KAAK,CAAC0D,OAAO;IAC7B,IAAMpD,OAAO,GAAGN,KAAK,CAACM,OAAO;IAC7B,IAAIC,EAAO;IAEX,IAAMiH,GAAG,GAAG,IAAAvE,iBAAS,EAAC,+BAA+B,CAAC;IAEtD,IAAMwB,YAAY,GAAG7E,OAAO;IAC5B,IAAM6H,MAAM,GAAG7H,OAAO,CAACkB,GAAG,CAAC,CAAC;IAE5B,IAAIwH,MAAM;IAEV,IAAMpG,GAAG,GAAGF,GAAG,CAACoC,aAAa,CAAC,KAAK,CAAC;;IAEpC;IACA,IAAMkF,SAAS,GAAGpH,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAC;IAC9DkF,SAAS,CAAClE,YAAY,CACpB,OAAO,EACP,6FACF,CAAC;IAED,IAAMmE,cAAc,GAAGD,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrEmF,cAAc,CAACpH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IACpDmF,cAAc,CAACpH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACnDmF,cAAc,CAACpH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAMoF,OAAO,GAAGF,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAC/D,IAAMoE,QAAQ,GAAGgB,OAAO,CAACrH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7DoE,QAAQ,CAACpD,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC;IAErC,IAAMqE,UAAU,GAAGH,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAClE,IAAMsF,WAAW,GAAGD,UAAU,CAACtH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACnE,IAAMwE,WAAW,GAAGa,UAAU,CAACtH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACnE,IAAMiF,WAAW,GAAGI,UAAU,CAACtH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAMuF,UAAU,GAAGL,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAClE,IAAMwF,UAAU,GAAGD,UAAU,CAACxH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAMyF,SAAS,GAAGP,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IACjE,IAAMI,SAAS,GAAGqF,SAAS,CAAC1H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEjE,IAAM0F,QAAQ,GAAGR,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/D0F,QAAQ,CAAC1E,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;IAC1C;IACA0E,QAAQ,CAAC3H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAC9C0F,QAAQ,CAAC3H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C0F,QAAQ,CAAC3H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAMiE,OAAY,GAAG;MAAEuB,UAAU,EAAEA,UAAU;MAAEG,UAAU,EAAEL;IAAY,CAAC;IAExEX,WAAW,CAAC,CAAC;IAEb,OAAO7G,GAAG;EACZ;AACF,CAAC;AACD;AAAA,IAAA8H,QAAA,GAAAC,OAAA,cAEe9K,OAAO","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playlistPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","anyStatementMatching","rdf","sym","render","myDocument","dom","isVideo","src","_index","html5","youtube","match","vimeo","dailymotion","vk","link","contents","uri","a","createElement","setAttribute","appendChild","addEventListener","widgets","openHrefInOutlineMode","text","str","createTextNode","obj","any","index","video","div","img","replace","value","descDiv","sl","statementsMatching","slots","length","push","parseInt","object","pIndex","indexOf","nIndex","prev","split","indexDiv","innerHTML","next","tr"],"sources":["../../src/playlist/playlistPane.js"],"sourcesContent":["/* Playlist Pane\n **\n ** This pane allows playlists and playlists slots to be viewed\n ** seeAlso: http://smiy.sourceforge.net/pbo/spec/playbackontology.html\n */\n import * as UI from 'solid-ui'\n import * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_1619.svg',\n\n name: 'playlistSlot',\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n const kb = context.session.store\n\n if (\n !kb.anyStatementMatching(\n subject,\n UI.ns.rdf('type'),\n kb.sym('http://purl.org/ontology/pbo/core#PlaylistSlot')\n )\n ) {\n return null\n }\n\n return 'playlist slot'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n function isVideo (src, _index) {\n if (!src) {\n return {\n html5: true\n }\n }\n\n const youtube = src.match(\n /\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-_%]+)/i\n )\n const vimeo = src.match(/\\/\\/(?:www\\.)?vimeo.com\\/([0-9a-z\\-_]+)/i)\n const dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i)\n const vk = src.match(\n /\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i\n )\n\n if (youtube) {\n return {\n youtube: youtube\n }\n } else if (vimeo) {\n return {\n vimeo: vimeo\n }\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n }\n } else if (vk) {\n return {\n vk: vk\n }\n }\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = myDocument.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n return a\n }\n\n const text = function (str) {\n return myDocument.createTextNode(str)\n }\n\n const kb = context.session.store\n const obj = kb.any(\n subject,\n $rdf.sym('http://purl.org/ontology/pbo/core#playlist_item')\n )\n let index = kb.any(\n subject,\n $rdf.sym('http://purl.org/ontology/olo/core#index')\n )\n\n let uri = obj.uri\n const video = isVideo(uri)\n\n const div = myDocument.createElement('div')\n let img\n if (video && video.youtube) {\n uri = uri.replace('watch?v=', 'embed/')\n div.setAttribute('class', 'imageView')\n img = myDocument.createElement('IFRAME')\n img.setAttribute('src', uri)\n img.setAttribute('width', 560)\n img.setAttribute('height', 315)\n img.setAttribute('frameborder', 0)\n img.setAttribute('style', 'max-width: 850px; max-height: 100%;')\n img.setAttribute('allowfullscreen', 'true')\n } else {\n div.setAttribute('class', 'imageView')\n img = myDocument.createElement('IMG')\n img.setAttribute('src', obj.value)\n img.setAttribute('width', 560)\n img.setAttribute('height', 315)\n img.setAttribute('style', 'max-width: 560; max-height: 315;')\n }\n\n let descDiv\n if (index) {\n const sl = kb.statementsMatching(\n null,\n $rdf.sym('http://purl.org/ontology/olo/core#index')\n )\n const slots = []\n for (let i = 0; i < sl.length; i++) {\n if (sl[i]) {\n slots.push(parseInt(sl[i].object.value, 10))\n }\n }\n\n index = parseInt(index.value, 10)\n descDiv = myDocument.createElement('div')\n\n const pIndex =\n slots[(slots.indexOf(index) - 1 + slots.length) % slots.length]\n const nIndex =\n slots[(slots.indexOf(index) + 1 + slots.length) % slots.length]\n\n const prev = link(text('<<'), subject.uri.split('#')[0] + '#' + pIndex)\n\n descDiv.appendChild(prev)\n\n const indexDiv = myDocument.createElement('span')\n indexDiv.innerHTML = ' Playlist slot : ' + index + ' '\n\n descDiv.appendChild(indexDiv)\n\n const next = link(text('>>'), subject.uri.split('#')[0] + '#' + nIndex)\n descDiv.appendChild(next)\n }\n\n const tr = myDocument.createElement('TR') // why need tr?\n tr.appendChild(img)\n if (descDiv) {\n tr.appendChild(descDiv)\n }\n div.appendChild(tr)\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|