solid-panes 3.7.3 → 4.0.0-cc645f25
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 +46 -40
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userInput.js","names":["UI","_interopRequireWildcard","require","_solidLogic","panes","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UserInputFormula","TempFormula","UserInput","outline","myDocument","document","menuId","qp","str","console","log","rdf","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","whether","link","removefromview","removedTr","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","constructor","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'\nimport * as $rdf from 'rdflib'\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 = $rdf.Namespace('http://purl.org/ontology/bibo/') // hql for pubsPane\n // var dcterms = $rdf.Namespace('http://purl.org/dc/terms/')\n const dcelems = $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 $rdf.Formula()\n UserInputFormula.superFormula = store\n // UserInputFormula.registerFormula(\"Your Work\");\n }\n if (!TempFormula) TempFormula = new $rdf.IndexedFormula()\n // Use RDFIndexedFormula so add returns the statement\n TempFormula.name = 'TempFormula'\n if (!store.updater) store.updater = new $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($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 $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 // 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 const 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,\n 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,\n 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 ($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 {\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 const 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 const 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 }\n case 'GeneralAutoComplete': {\n inputText = extraInformation.inputText\n let results\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 const 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 const stat = tr.AJAR_statement\n const 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 $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 $rdf.Statement(\n stat.subject,\n stat.predicate,\n inputTerm,\n stat.why\n )\n } else {\n s = new $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":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
9
|
+
var _default = dom => function viewAsImage(obj) {
|
|
10
|
+
const img = UI.utils.AJARImage(obj.uri, UI.utils.label(obj), UI.utils.label(obj), dom);
|
|
11
|
+
img.setAttribute('class', 'outlineImage');
|
|
12
|
+
return img;
|
|
13
|
+
};
|
|
14
|
+
exports.default = _default;
|
|
15
|
+
//# sourceMappingURL=viewAsImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewAsImage.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","dom","viewAsImage","obj","img","utils","AJARImage","uri","label","setAttribute","exports"],"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,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,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,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,IAAAkB,QAAA,GAEdC,GAAG,IAAK,SAASC,WAAWA,CAAEC,GAAG,EAAE;EACjD,MAAMC,GAAG,GAAG1B,EAAE,CAAC2B,KAAK,CAACC,SAAS,CAC5BH,GAAG,CAACI,GAAG,EACP7B,EAAE,CAAC2B,KAAK,CAACG,KAAK,CAACL,GAAG,CAAC,EACnBzB,EAAE,CAAC2B,KAAK,CAACG,KAAK,CAACL,GAAG,CAAC,EACnBF,GACF,CAAC;EACDG,GAAG,CAACK,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;EACzC,OAAOL,GAAG;AACZ,CAAC;AAAAM,OAAA,CAAAnB,OAAA,GAAAS,QAAA","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = dom => function viewAsMbox(obj) {
|
|
8
|
+
const anchor = dom.createElement('a');
|
|
9
|
+
// previous implementation assumed email address was Literal. fixed.
|
|
10
|
+
|
|
11
|
+
// FOAF mboxs must NOT be literals -- must be mailto: URIs.
|
|
12
|
+
|
|
13
|
+
let address = obj.termType === 'NamedNode' ? obj.uri : obj.value; // this way for now
|
|
14
|
+
// if (!address) return viewAsBoringDefault(obj)
|
|
15
|
+
const index = address.indexOf('mailto:');
|
|
16
|
+
address = index >= 0 ? address.slice(index + 7) : address;
|
|
17
|
+
anchor.setAttribute('href', 'mailto:' + address);
|
|
18
|
+
anchor.appendChild(dom.createTextNode(address));
|
|
19
|
+
return anchor;
|
|
20
|
+
};
|
|
21
|
+
exports.default = _default;
|
|
22
|
+
//# sourceMappingURL=viewAsMbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewAsMbox.js","names":["dom","viewAsMbox","obj","anchor","createElement","address","termType","uri","value","index","indexOf","slice","setAttribute","appendChild","createTextNode","exports","default","_default"],"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":";;;;;;eAAgBA,GAAG,IAAK,SAASC,UAAUA,CAAEC,GAAG,EAAE;EAChD,MAAMC,MAAM,GAAGH,GAAG,CAACI,aAAa,CAAC,GAAG,CAAC;EACrC;;EAEA;;EAEA,IAAIC,OAAO,GAAGH,GAAG,CAACI,QAAQ,KAAK,WAAW,GAAGJ,GAAG,CAACK,GAAG,GAAGL,GAAG,CAACM,KAAK,EAAC;EACjE;EACA,MAAMC,KAAK,GAAGJ,OAAO,CAACK,OAAO,CAAC,SAAS,CAAC;EACxCL,OAAO,GAAGI,KAAK,IAAI,CAAC,GAAGJ,OAAO,CAACM,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,GAAGJ,OAAO;EACzDF,MAAM,CAACS,YAAY,CAAC,MAAM,EAAE,SAAS,GAAGP,OAAO,CAAC;EAChDF,MAAM,CAACU,WAAW,CAACb,GAAG,CAACc,cAAc,CAACT,OAAO,CAAC,CAAC;EAC/C,OAAOF,MAAM;AACf,CAAC;AAAAY,OAAA,CAAAC,OAAA,GAAAC,QAAA","ignoreList":[]}
|