solid-panes 3.7.3-18da570b → 3.7.3-322e9b27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Documentation/VisualLanguage.html +538 -0
- package/Documentation/conventions.md +333 -0
- package/coverage/clover.xml +152 -0
- package/coverage/coverage-final.json +6 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +131 -0
- package/coverage/lcov-report/outline/index.html +161 -0
- package/coverage/lcov-report/outline/outlineIcons.js.html +565 -0
- package/coverage/lcov-report/outline/propertyViews.ts.html +196 -0
- package/coverage/lcov-report/outline/viewAsImage.ts.html +121 -0
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +127 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/trustedApplications/index.html +116 -0
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +238 -0
- package/coverage/lcov.info +204 -0
- package/dev/index.html +28 -0
- package/dev/loader.ts +91 -0
- package/dev/pane/index.ts +10 -0
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +609 -0
- package/eslint.config.mjs +34 -0
- package/jest.config.js +27 -0
- package/jest.setup.ts +4 -0
- package/lib/RDFXMLPane.js +59 -0
- package/lib/RDFXMLPane.js.map +1 -0
- package/{dist → lib}/argument/argumentPane.js +15 -14
- package/lib/argument/argumentPane.js.map +1 -0
- package/{dist → lib}/attach/attachPane.js +93 -83
- package/lib/attach/attachPane.js.map +1 -0
- package/{dist → lib}/audio/audioPane.js +50 -49
- package/lib/audio/audioPane.js.map +1 -0
- package/{dist → lib}/classInstancePane.js +24 -23
- package/lib/classInstancePane.js.map +1 -0
- package/lib/dashboard/basicPreferences.js +229 -0
- package/lib/dashboard/basicPreferences.js.map +1 -0
- package/{dist → lib}/dashboard/dashboardPane.js +21 -17
- package/lib/dashboard/dashboardPane.js.map +1 -0
- package/lib/dashboard/homepage.js +86 -0
- package/lib/dashboard/homepage.js.map +1 -0
- package/{dist → lib}/dataContentPane.js +63 -63
- package/lib/dataContentPane.js.map +1 -0
- package/{dist → lib}/defaultPane.js +15 -14
- package/lib/defaultPane.js.map +1 -0
- package/{dist → lib}/dokieli/dokieliPane.js +53 -49
- package/lib/dokieli/dokieliPane.js.map +1 -0
- package/lib/dokieli/new.js +9 -0
- package/lib/dokieli/new.js.map +1 -0
- package/{dist → lib}/form/pane.js +45 -44
- package/lib/form/pane.js.map +1 -0
- package/lib/home/homePane.js +91 -0
- package/lib/home/homePane.js.map +1 -0
- package/lib/humanReadablePane.js +138 -0
- package/lib/humanReadablePane.js.map +1 -0
- package/lib/imagePane.js +71 -0
- package/lib/imagePane.js.map +1 -0
- package/{dist → lib}/index.js +20 -17
- package/lib/index.js.map +1 -0
- package/{dist → lib}/internal/internalPane.js +41 -41
- package/lib/internal/internalPane.js.map +1 -0
- package/{dist → lib}/mainPage/footer.js +2 -2
- package/{dist → lib}/mainPage/footer.js.map +1 -1
- package/lib/mainPage/header.js +152 -0
- package/lib/mainPage/header.js.map +1 -0
- package/{dist → lib}/mainPage/index.d.ts.map +1 -1
- package/lib/mainPage/index.js +42 -0
- package/lib/mainPage/index.js.map +1 -0
- package/{dist → lib}/microblogPane/microblogPane.js +262 -261
- package/lib/microblogPane/microblogPane.js.map +1 -0
- package/lib/n3Pane.js +57 -0
- package/lib/n3Pane.js.map +1 -0
- package/{dist → lib}/outline/context.js +4 -4
- package/{dist → lib}/outline/context.js.map +1 -1
- package/lib/outline/manager.js +2264 -0
- package/lib/outline/manager.js.map +1 -0
- package/lib/outline/manager.test.d.ts +2 -0
- package/lib/outline/manager.test.d.ts.map +1 -0
- package/lib/outline/manager.test.js +210 -0
- package/lib/outline/manager.test.js.map +1 -0
- package/{dist → lib}/outline/outlineIcons.js +3 -2
- package/lib/outline/outlineIcons.js.map +1 -0
- package/{dist → lib}/outline/propertyViews.js +4 -4
- package/lib/outline/propertyViews.js.map +1 -0
- package/lib/outline/propertyViews.test.d.ts +2 -0
- package/lib/outline/propertyViews.test.d.ts.map +1 -0
- package/lib/outline/propertyViews.test.js +27 -0
- package/lib/outline/propertyViews.test.js.map +1 -0
- package/{dist → lib}/outline/queryByExample.js +31 -30
- package/lib/outline/queryByExample.js.map +1 -0
- package/{dist → lib}/outline/userInput.js +260 -262
- package/lib/outline/userInput.js.map +1 -0
- package/lib/outline/viewAsImage.js +17 -0
- package/lib/outline/viewAsImage.js.map +1 -0
- package/lib/outline/viewAsMbox.js +23 -0
- package/lib/outline/viewAsMbox.js.map +1 -0
- package/{dist → lib}/pad/padPane.js +96 -90
- package/lib/pad/padPane.js.map +1 -0
- package/{dist → lib}/playlist/playlistPane.js +37 -36
- package/lib/playlist/playlistPane.js.map +1 -0
- package/{dist → lib}/registerPanes.js +29 -29
- package/lib/registerPanes.js.map +1 -0
- package/lib/schedule/formsForSchedule.js +8 -0
- package/lib/schedule/formsForSchedule.js.map +1 -0
- package/{dist → lib}/schedule/schedulePane.js +178 -171
- package/lib/schedule/schedulePane.js.map +1 -0
- package/{dist → lib}/sharing/sharingPane.js +12 -12
- package/lib/sharing/sharingPane.js.map +1 -0
- package/lib/slideshow/slideshowPane.js +84 -0
- package/lib/slideshow/slideshowPane.js.map +1 -0
- package/{dist → lib}/socialPane.js +142 -141
- package/lib/socialPane.js.map +1 -0
- package/lib/tabbed/tabbedPane.js +72 -0
- package/lib/tabbed/tabbedPane.js.map +1 -0
- package/{dist → lib}/tableViewPane.js +9 -8
- package/lib/tableViewPane.js.map +1 -0
- package/lib/test-import-export/common.js +12 -0
- package/lib/test-import-export/common.js.map +1 -0
- package/lib/test-import-export/edit-importer.js +25 -0
- package/lib/test-import-export/edit-importer.js.map +1 -0
- package/lib/test-import-export/testImportExport.js +2 -0
- package/lib/test-import-export/testImportExport.js.map +1 -0
- package/{dist → lib}/transaction/pane.js +118 -117
- package/lib/transaction/pane.js.map +1 -0
- package/{dist → lib}/transaction/period.js +83 -82
- package/lib/transaction/period.js.map +1 -0
- package/{dist → lib}/trip/tripPane.js +48 -47
- package/lib/trip/tripPane.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.dom.js +177 -0
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.test.d.ts +2 -0
- package/lib/trustedApplications/trustedApplications.test.d.ts.map +1 -0
- package/lib/trustedApplications/trustedApplications.test.js +64 -0
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.utils.js +34 -0
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.view.js +87 -0
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -0
- package/lib/types.js.map +1 -0
- package/{dist → lib}/ui/pane.js +31 -30
- package/lib/ui/pane.js.map +1 -0
- package/lib/versionInfo.d.ts +32 -0
- package/lib/versionInfo.d.ts.map +1 -0
- package/lib/versionInfo.js +37 -0
- package/lib/versionInfo.js.map +1 -0
- package/lib/video/videoPane.js +44 -0
- package/lib/video/videoPane.js.map +1 -0
- package/package.json +14 -27
- package/src/RDFXMLPane.js +60 -0
- package/src/argument/argumentPane.js +65 -0
- package/src/argument/argument_icon_v04.jpg +0 -0
- package/src/argument/icon_argument.png +0 -0
- package/src/argument/transparentyingyang.png +0 -0
- package/src/attach/attachPane.js +508 -0
- package/src/attach/tbl-paperclip-128.png +0 -0
- package/src/attach/tbl-paperclip-22.png +0 -0
- package/src/attach/tbl-paperclip-22a.png +0 -0
- package/src/audio/audioPane.js +197 -0
- package/src/chatPreferencesForm.ttl +12 -0
- package/src/classInstancePane.js +110 -0
- package/src/dashboard/basicPreferences.ts +201 -0
- package/src/dashboard/dashboardPane.ts +83 -0
- package/src/dashboard/homepage.ts +72 -0
- package/src/dashboard/languages/codes.html +8611 -0
- package/src/dashboard/languages/codes.xml +3563 -0
- package/src/dashboard/languages/codes2.txt +170 -0
- package/src/dashboard/languages/foo +70 -0
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +12 -0
- package/src/dashboard/ontologyData.ttl +35 -0
- package/src/dashboard/preferencesFormText.ttl +18 -0
- package/src/dataContentPane.js +290 -0
- package/src/defaultPane.js +102 -0
- package/src/dokieli/Makefile +6 -0
- package/src/dokieli/dokieliPane.js +190 -0
- package/src/dokieli/new.html +30 -0
- package/{dist → src}/dokieli/new.js +3 -9
- package/src/form/form-22.png +0 -0
- package/src/form/form-b-22.png +0 -0
- package/src/form/form.graffle +0 -0
- package/src/form/form.png +0 -0
- package/src/form/pane.js +217 -0
- package/src/form/psuedocode-notes.txt +57 -0
- package/src/global.d.ts +4 -0
- package/src/home/homePane.ts +72 -0
- package/src/humanReadablePane.js +150 -0
- package/src/imagePane.js +75 -0
- package/src/index.ts +71 -0
- package/src/internal/internalPane.ts +263 -0
- package/src/mainPage/footer.ts +19 -0
- package/src/mainPage/header.ts +79 -0
- package/src/mainPage/index.ts +20 -0
- package/src/meeting/Makefile +3 -0
- package/src/meeting/test/meeting1/Actions/actions.ttl +14 -0
- package/src/meeting/test/meeting1/Actions/config.ttl +16 -0
- package/src/meeting/test/meeting1/Actions/state.ttl +30 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl +34 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl +75 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/index.html +72 -0
- package/src/meeting/test/meeting1/Schedule/index.html.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl +15 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +20 -0
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +23 -0
- package/src/meeting/test/meeting1/chat/chat.ttl +1 -0
- package/src/meeting/test/meeting1/details.ttl +35 -0
- package/src/meeting/test/meeting1/pad/pad.ttl +16 -0
- package/src/microblogPane/mbStyle.css +267 -0
- package/src/microblogPane/microblogPane.js +1412 -0
- package/src/n3Pane.js +56 -0
- package/src/outline/context.ts +21 -0
- package/src/outline/manager.js +2384 -0
- package/src/outline/manager.test.ts +189 -0
- package/src/outline/outlineIcons.js +160 -0
- package/src/outline/propertyViews.test.ts +36 -0
- package/src/outline/propertyViews.ts +37 -0
- package/src/outline/queryByExample.js +296 -0
- package/src/outline/userInput.js +2373 -0
- package/src/outline/viewAsImage.ts +12 -0
- package/src/outline/viewAsMbox.ts +14 -0
- package/src/pad/images/ColourOff.ai +873 -1
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +934 -2
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +559 -0
- package/src/playlist/playlistPane.js +161 -0
- package/src/registerPanes.js +147 -0
- package/src/schedule/Makefile +6 -0
- package/src/schedule/formsForSchedule.js +117 -0
- package/src/schedule/formsForSchedule.ttl +115 -0
- package/src/schedule/schedulePane.js +1201 -0
- package/src/sharing/sharingPane.ts +49 -0
- package/src/slideshow/slideshowPane.js +80 -0
- package/src/socialPane.js +523 -0
- package/src/style/tabbedtab.css +1347 -0
- package/src/tabbed/tabbedPane.ts +60 -0
- package/src/tableViewPane.js +51 -0
- package/src/test-import-export/common.js +6 -0
- package/src/test-import-export/edit-importer.js +20 -0
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +629 -0
- package/src/transaction/period.js +374 -0
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +176 -0
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +176 -0
- package/src/trustedApplications/trustedApplications.dom.ts +276 -0
- package/src/trustedApplications/trustedApplications.test.ts +82 -0
- package/src/trustedApplications/trustedApplications.utils.ts +51 -0
- package/src/trustedApplications/trustedApplications.view.ts +80 -0
- package/src/types.ts +34 -0
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +226 -0
- package/src/versionInfo.ts +30 -0
- package/src/video/videoPane.js +44 -0
- package/timestamp.sh +13 -0
- package/travis/bumpversion.js +29 -0
- package/tsconfig.json +78 -0
- package/typings/raw-loader.d.ts +4 -0
- package/typings/solid-namespace/index.d.ts +9 -0
- package/webpack.config.js +41 -0
- package/dist/RDFXMLPane.js +0 -58
- package/dist/RDFXMLPane.js.map +0 -1
- package/dist/argument/argumentPane.js.map +0 -1
- package/dist/attach/attachPane.js.map +0 -1
- package/dist/audio/audioPane.js.map +0 -1
- package/dist/classInstancePane.js.map +0 -1
- package/dist/dashboard/basicPreferences.js +0 -147
- package/dist/dashboard/basicPreferences.js.map +0 -1
- package/dist/dashboard/dashboardPane.js.map +0 -1
- package/dist/dashboard/homepage.js +0 -54
- package/dist/dashboard/homepage.js.map +0 -1
- package/dist/dataContentPane.js.map +0 -1
- package/dist/defaultPane.js.map +0 -1
- package/dist/dokieli/dokieliPane.js.map +0 -1
- package/dist/dokieli/new.js.map +0 -1
- package/dist/form/pane.js.map +0 -1
- package/dist/home/homePane.js +0 -73
- package/dist/home/homePane.js.map +0 -1
- package/dist/humanReadablePane.js +0 -135
- package/dist/humanReadablePane.js.map +0 -1
- package/dist/imagePane.js +0 -70
- package/dist/imagePane.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/internalPane.js.map +0 -1
- package/dist/mainPage/header.js +0 -85
- package/dist/mainPage/header.js.map +0 -1
- package/dist/mainPage/index.js +0 -25
- package/dist/mainPage/index.js.map +0 -1
- package/dist/microblogPane/microblogPane.js.map +0 -1
- package/dist/n3Pane.js +0 -56
- package/dist/n3Pane.js.map +0 -1
- package/dist/outline/manager.js +0 -1997
- package/dist/outline/manager.js.map +0 -1
- package/dist/outline/outlineIcons.js.map +0 -1
- package/dist/outline/propertyViews.js.map +0 -1
- package/dist/outline/queryByExample.js.map +0 -1
- package/dist/outline/userInput.js.map +0 -1
- package/dist/outline/viewAsImage.js +0 -15
- package/dist/outline/viewAsImage.js.map +0 -1
- package/dist/outline/viewAsMbox.js +0 -22
- package/dist/outline/viewAsMbox.js.map +0 -1
- package/dist/pad/padPane.js.map +0 -1
- package/dist/playlist/playlistPane.js.map +0 -1
- package/dist/registerPanes.js.map +0 -1
- package/dist/schedule/schedulePane.js.map +0 -1
- package/dist/sharing/sharingPane.js.map +0 -1
- package/dist/slideshow/slideshowPane.js +0 -80
- package/dist/slideshow/slideshowPane.js.map +0 -1
- package/dist/socialPane.js.map +0 -1
- package/dist/tabbed/tabbedPane.js +0 -58
- package/dist/tabbed/tabbedPane.js.map +0 -1
- package/dist/tableViewPane.js.map +0 -1
- package/dist/transaction/pane.js.map +0 -1
- package/dist/transaction/period.js.map +0 -1
- package/dist/trip/tripPane.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.dom.js +0 -146
- package/dist/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.utils.js +0 -24
- package/dist/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.view.js +0 -56
- package/dist/trustedApplications/trustedApplications.view.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/ui/pane.js.map +0 -1
- package/dist/versionInfo.js +0 -37
- package/dist/versionInfo.js.map +0 -1
- package/dist/video/videoPane.js +0 -43
- package/dist/video/videoPane.js.map +0 -1
- /package/{dist → lib}/dashboard/basicPreferences.d.ts +0 -0
- /package/{dist → lib}/dashboard/basicPreferences.d.ts.map +0 -0
- /package/{dist → lib}/dashboard/dashboardPane.d.ts +0 -0
- /package/{dist → lib}/dashboard/dashboardPane.d.ts.map +0 -0
- /package/{dist → lib}/dashboard/homepage.d.ts +0 -0
- /package/{dist → lib}/dashboard/homepage.d.ts.map +0 -0
- /package/{dist → lib}/global.d.js +0 -0
- /package/{dist → lib}/global.d.js.map +0 -0
- /package/{dist → lib}/home/homePane.d.ts +0 -0
- /package/{dist → lib}/home/homePane.d.ts.map +0 -0
- /package/{dist → lib}/index.d.ts +0 -0
- /package/{dist → lib}/index.d.ts.map +0 -0
- /package/{dist → lib}/internal/internalPane.d.ts +0 -0
- /package/{dist → lib}/internal/internalPane.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/footer.d.ts +0 -0
- /package/{dist → lib}/mainPage/footer.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/header.d.ts +0 -0
- /package/{dist → lib}/mainPage/header.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/index.d.ts +0 -0
- /package/{dist → lib}/outline/context.d.ts +0 -0
- /package/{dist → lib}/outline/context.d.ts.map +0 -0
- /package/{dist → lib}/outline/propertyViews.d.ts +0 -0
- /package/{dist → lib}/outline/propertyViews.d.ts.map +0 -0
- /package/{dist → lib}/outline/viewAsImage.d.ts +0 -0
- /package/{dist → lib}/outline/viewAsImage.d.ts.map +0 -0
- /package/{dist → lib}/outline/viewAsMbox.d.ts +0 -0
- /package/{dist → lib}/outline/viewAsMbox.d.ts.map +0 -0
- /package/{dist → lib}/pad/padPane.d.ts +0 -0
- /package/{dist → lib}/pad/padPane.d.ts.map +0 -0
- /package/{dist → lib}/sharing/sharingPane.d.ts +0 -0
- /package/{dist → lib}/sharing/sharingPane.d.ts.map +0 -0
- /package/{dist → lib}/tabbed/tabbedPane.d.ts +0 -0
- /package/{dist → lib}/tabbed/tabbedPane.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- /package/{dist → lib}/types.d.ts +0 -0
- /package/{dist → lib}/types.d.ts.map +0 -0
- /package/{dist → lib}/types.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","any","qu","render","dom","fetcher","Q","Namespace","TRIP","div","createElement","setAttribute","mention","message","style","undefined","pre","appendChild","createTextNode","complain","plist","statementsMatching","qlist","predicateURIsDone","donePredicate","pred","uri","setPaneStyle","account","mystyle","backgroundColor","ui","value","d2","s","indexOf","split","slice","numericCell","amount","suppressZero","td","textContent","headerCell","str","oderByDate","x","y","dx","dy","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","filter","table","transactionRow","setTRStyle","c0","date","c1","payee","a1","c3","addEventListener","shiftKey","list2","sort","rdf","statement","nav","navLink","obj","a","utils","preds","map","inner","labelForXML","join","innerHTML","complainIfBad","ok","body","nowOrWhenFetched","calendarYear","renderCatgorySelectors","widgets","makeSelectForNestedCategory","rdfs","Classified","load","then","_xhrs","each","catch","console","log","makeDescription","trips","st","object","trips2","concat","sortedBy","reverse","l2","key","pair","cal","makeSelectForOptions","multiple","nullLabel","mint","mintClass","mintStatementsFun","trip","is","push","doc","outliner","getOutliner","attachmentList","wf","appendPropertyTRs","_inverse","calculations","total","yearTotal","yearCategoryTotal","trans","bankStatements","forEach","the","year","ty","tyuri","lit","parseFloat","types","grandTotal","years","prototype","ny","cell","header","z","cat","sym","tab"],"sources":["../../src/transaction/pane.js"],"sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n '\\'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n '>,\\nso I can\\'t tell how to annotate it.)'\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log('Can\\'t get categories, because no calendarYear')\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(yearCategoryTotal, y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(total, uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"period.js","names":["UI","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","render","dom","div","createElement","setAttribute","mention","message","style","pre","appendChild","createTextNode","happy","complain","renderPeriod","dtstart","any","cal","undefined","uri","dtend","predicateURIsDone","donePredicate","pred","rdf","inPeriod","date","d2","s","indexOf","split","slice","transactionInPeriod","x","qu","oderByDate","y","dx","dy","value","h2","textContent","insertedPane","paneName","p","paneRegistry","byName","d","expandAfterRow","row","solo","siblings","parentNode","children","j","length","expanded","removeChild","tr","td","cols","nextSibling","insertBefore","expandAfterRowOrCollapse","transactionTable","list","table","transactionRow","setTRStyle","account","mystyle","backgroundColor","ui","c0","c1","payee","a1","c3","amount","addEventListener","shiftKey","list2","filter","sort","dummies","xURIs","findMemberURIs","unclassifiedIn","unclassifiedOut","usd","z","prototype","sym","tt","each","classified","push","tab","count","catSymbol","catTail","cats","findSubClassesNT","cat","checkCatHasField","guilty","utils","trip","needed","rdfs","console","log","fetcher","load","then"],"sources":["../../src/transaction/period.js"],"sourcesContent":["/* Financial Period Pane\n **\n ** This outline pane allows a user to interact with a period\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_142708.svg',\n\n name: 'period',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return 'period'\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'periodPane')\n\n const mention = function mention (message, style) {\n if (!style) style = 'color: grey;'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const happy = function happy (message) {\n return mention('✓ ' + message, 'color: #010; background-color: #efe')\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n /*\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n*/\n const renderPeriod = function () {\n const dtstart = kb.any(subject, ns.cal('dtstart'))\n if (dtstart === undefined) {\n complain(\n '(Error: There is no start date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n const dtend = kb.any(subject, ns.cal('dtend'))\n if (dtend === undefined) {\n complain(\n '(Error: There is no end date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n // var store = kb.any(subject, UI.ns.qu('annotationStore')) || null\n\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n donePredicate(ns.rdf('type'))\n\n const inPeriod = function (date) {\n return !!(date && date >= dtstart && date < dtend)\n }\n\n const d2 = function (n) {\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const transactionInPeriod = function (x) {\n return inPeriod(kb.any(x, ns.qu('date')))\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n /*\n var setPaneStyle = function (account) {\n var mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n var backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle();\n*/\n const h2 = div.appendChild(dom.createElement('h2'))\n h2.textContent =\n 'Period ' +\n dtstart.value.slice(0, 10) +\n ' - ' +\n dtend.value.slice(0, 10)\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'margin-left: 100; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \";\n let mystyle = 'margin-left: 8em; padding-left: 5em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = list.filter(transactionInPeriod)\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // List unclassified transactions\n\n const dummies = {\n 'http://www.w3.org/2000/10/swap/pim/qif#Transaction': true, // (we knew)\n 'http://www.w3.org/2000/10/swap/pim/qif#Unclassified': true, // pseudo classifications we may phase out\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing': true,\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome': true\n }\n const xURIs = kb.findMemberURIs(ns.qu('Transaction'))\n const unclassifiedIn = []\n const unclassifiedOut = []\n let usd, z\n for (const y in xURIs) {\n // For each thing which can be inferred to be a transaction\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(xURIs, y)) {\n z = kb.sym(y)\n const tt = kb.each(z, ns.rdf('type')) // What EXPLICIT definitions\n let classified = false\n for (let j = 0; j < tt.length; j++) {\n const t = tt[j]\n if (dummies[t.uri] === undefined) {\n classified = true\n }\n }\n if (!classified) {\n usd = kb.any(z, ns.qu('in_USD'))\n if (usd === undefined) {\n usd = kb.any(z, ns.qu('amount'))\n }\n if (usd && ('' + usd.value).indexOf('-') >= 0) {\n unclassifiedOut.push(kb.sym(y))\n } else {\n unclassifiedIn.push(kb.sym(y))\n }\n }\n }\n }\n let tab, count\n if (unclassifiedIn.length) {\n tab = transactionTable(dom, unclassifiedIn)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Income' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified income')\n }\n if (unclassifiedOut.length) {\n tab = transactionTable(dom, unclassifiedOut)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Outgoings' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified outgoings ')\n }\n\n // /////////////// Check some categories of transaction for having given fields\n\n const catSymbol = function (catTail) {\n const cats = kb.findSubClassesNT(ns.qu('Transaction'))\n for (const cat in cats) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(cats, cat)) {\n if (cat.slice(1, -1).split('#')[1] === catTail) {\n return kb.sym(cat.slice(1, -1))\n }\n }\n }\n return null\n }\n\n const checkCatHasField = function (catTail, pred) {\n const cat = catSymbol(catTail)\n let tab\n const guilty = []\n let count = 0\n if (!cat) {\n complain('Error: No category correspnding to ' + catTail)\n return null\n }\n const list = kb.each(undefined, ns.rdf('type'), cat)\n for (let i = 0; i < list.length; i++) {\n if (!kb.any(list[i], pred)) {\n guilty.push(list[i])\n }\n }\n if (guilty.length) {\n tab = transactionTable(dom, guilty)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n UI.utils.label(cat) +\n ' with no ' +\n UI.utils.label(pred) +\n (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n }\n return count\n }\n\n // Load dynamically as properties of period\n if (checkCatHasField('Reimbursables', ns.trip('trip')) === 0) {\n happy('Reimbursables all have trips')\n }\n if (checkCatHasField('Other_Inc_Speaking', ns.trip('trip')) === 0) {\n happy('Speaking income all has trips')\n }\n // end of render period instance\n } // renderPeriod\n\n // //////////////////////////////////////////////////////////////////////////////\n\n // var me = authn.currentUser()\n\n // Render a single Period\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) {\n const needed = kb.each(subject, ns.rdfs('seeAlso'))\n console.log('Loading before render: ' + needed.length)\n kb.fetcher.load(needed).then(function () {\n renderPeriod()\n })\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tripPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","qu","findSuperClassesNT","render","myDocument","dom","CAL","Namespace","TRIP","div","createElement","setAttribute","innerHTML","complain","message","style","undefined","pre","appendChild","createTextNode","renderTrip","thisDiv","query","Query","utils","vars","v","forEach","x","push","variable","pat","add","transaction","opt","formula","rdf","type","optional","date","rdfs","comment","in_USD","calculations","total","trans","each","ty","the","uri","tyuri","lit","any","parseFloat","value","str","types","grandTotal","sym","length","tableDiv","table","onDone","ts","triples","index","trip","transactions","usd","toNT","list","h1","t1","fromNT","sort","j","t2"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return \"$$\";\n // if(kb.any(subject, UI.ns.qu('amount'))) return \"$$$\"; // In case schema not picked up\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\n }\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const opt = kb.formula()\n opt.add(v.transaction, ns.rdf('type'), v.type) // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v.transaction, UI.ns.qu('date'), v.date)\n\n opt.add(v.transaction, ns.rdfs('comment'), v.comment)\n query.pat.optional.push(opt)\n\n // opt = kb.formula();\n query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD)\n // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('type'))\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!total[tyuri]) total[tyuri] = 0.0\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain(' @@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createApplicationTable = createApplicationTable;
|
|
7
|
-
exports.createContainer = createContainer;
|
|
8
|
-
exports.createText = createText;
|
|
9
|
-
var _rdflib = require("rdflib");
|
|
10
|
-
var _solidUi = require("solid-ui");
|
|
11
|
-
var _solidLogic = require("solid-logic");
|
|
12
|
-
var _trustedApplications = require("./trustedApplications.utils");
|
|
13
|
-
function createApplicationTable(subject) {
|
|
14
|
-
const applicationsTable = createElement('table', {
|
|
15
|
-
class: 'results'
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// creating headers
|
|
19
|
-
const header = createContainer('tr', [createText('th', 'Application URL'), createText('th', 'Access modes'), createText('th', 'Actions')]);
|
|
20
|
-
applicationsTable.appendChild(header);
|
|
21
|
-
|
|
22
|
-
// creating rows
|
|
23
|
-
_solidLogic.store.each(subject, _solidUi.ns.acl('trustedApp'), undefined, undefined).flatMap(app => _solidLogic.store.each(app, _solidUi.ns.acl('origin'), undefined, undefined).map(origin => ({
|
|
24
|
-
appModes: _solidLogic.store.each(app, _solidUi.ns.acl('mode'), undefined, undefined),
|
|
25
|
-
origin: origin
|
|
26
|
-
}))).sort((a, b) => a.origin.value < b.origin.value ? -1 : 1).forEach(({
|
|
27
|
-
appModes,
|
|
28
|
-
origin
|
|
29
|
-
}) => applicationsTable.appendChild(createApplicationEntry(subject, origin, appModes, updateTable)));
|
|
30
|
-
|
|
31
|
-
// adding a row for new applications
|
|
32
|
-
applicationsTable.appendChild(createApplicationEntry(subject, null, [_solidUi.ns.acl('Read')], updateTable));
|
|
33
|
-
return applicationsTable;
|
|
34
|
-
function updateTable() {
|
|
35
|
-
applicationsTable.parentElement.replaceChild(createApplicationTable(subject), applicationsTable);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function createApplicationEntry(subject, origin, appModes, updateTable) {
|
|
39
|
-
const trustedApplicationState = {
|
|
40
|
-
origin,
|
|
41
|
-
appModes,
|
|
42
|
-
formElements: {
|
|
43
|
-
modes: [],
|
|
44
|
-
origin: undefined
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
return createContainer('tr', [createContainer('td', [createContainer('form', [createElement('input', {
|
|
48
|
-
class: 'textinput',
|
|
49
|
-
placeholder: 'Write new URL here',
|
|
50
|
-
value: origin ? origin.value : ''
|
|
51
|
-
}, {}, element => {
|
|
52
|
-
trustedApplicationState.formElements.origin = element;
|
|
53
|
-
})], {}, {
|
|
54
|
-
submit: addOrEditApplication
|
|
55
|
-
})]), createContainer('td', [createContainer('form', createModesInput(trustedApplicationState), {}, {
|
|
56
|
-
submit: addOrEditApplication
|
|
57
|
-
})]), createContainer('td', [createContainer('form', origin ? [createText('button', 'Update', {
|
|
58
|
-
class: 'controlButton',
|
|
59
|
-
style: 'background: LightGreen;'
|
|
60
|
-
}), createText('button', 'Delete', {
|
|
61
|
-
class: 'controlButton',
|
|
62
|
-
style: 'background: LightCoral;'
|
|
63
|
-
}, {
|
|
64
|
-
click: removeApplication
|
|
65
|
-
})] : [createText('button', 'Add', {
|
|
66
|
-
class: 'controlButton',
|
|
67
|
-
style: 'background: LightGreen;'
|
|
68
|
-
})], {}, {
|
|
69
|
-
submit: addOrEditApplication
|
|
70
|
-
})])]);
|
|
71
|
-
function addOrEditApplication(event) {
|
|
72
|
-
event.preventDefault();
|
|
73
|
-
let origin;
|
|
74
|
-
try {
|
|
75
|
-
origin = (0, _rdflib.sym)(trustedApplicationState.formElements.origin.value);
|
|
76
|
-
} catch (err) {
|
|
77
|
-
return alert('Please provide an application URL you want to trust');
|
|
78
|
-
}
|
|
79
|
-
const modes = trustedApplicationState.formElements.modes.filter(checkbox => checkbox.checked).map(checkbox => checkbox.value);
|
|
80
|
-
const deletions = (0, _trustedApplications.getStatementsToDelete)(trustedApplicationState.origin || origin, subject, _solidLogic.store, _solidUi.ns);
|
|
81
|
-
const additions = (0, _trustedApplications.getStatementsToAdd)(origin, (0, _trustedApplications.generateRandomString)(), modes, subject, _solidUi.ns);
|
|
82
|
-
if (!_solidLogic.store.updater) {
|
|
83
|
-
throw new Error('Store has no updater');
|
|
84
|
-
}
|
|
85
|
-
_solidLogic.store.updater.update(deletions, additions, handleUpdateResponse);
|
|
86
|
-
}
|
|
87
|
-
function removeApplication(event) {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
let origin;
|
|
90
|
-
try {
|
|
91
|
-
origin = (0, _rdflib.sym)(trustedApplicationState.formElements.origin.value);
|
|
92
|
-
} catch (err) {
|
|
93
|
-
return alert('Please provide an application URL you want to remove trust from');
|
|
94
|
-
}
|
|
95
|
-
const deletions = (0, _trustedApplications.getStatementsToDelete)(origin, subject, _solidLogic.store, _solidUi.ns);
|
|
96
|
-
if (!_solidLogic.store.updater) {
|
|
97
|
-
throw new Error('Store has no updater');
|
|
98
|
-
}
|
|
99
|
-
_solidLogic.store.updater.update(deletions, [], handleUpdateResponse);
|
|
100
|
-
}
|
|
101
|
-
function handleUpdateResponse(uri, success, errorBody) {
|
|
102
|
-
if (success) {
|
|
103
|
-
return updateTable();
|
|
104
|
-
}
|
|
105
|
-
// console.error(uri, errorBody)
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function createElement(elementName, attributes = {}, eventListeners = {}, onCreated = null) {
|
|
109
|
-
const element = document.createElement(elementName);
|
|
110
|
-
if (onCreated) {
|
|
111
|
-
onCreated(element);
|
|
112
|
-
}
|
|
113
|
-
Object.keys(attributes).forEach(attName => {
|
|
114
|
-
element.setAttribute(attName, attributes[attName]);
|
|
115
|
-
});
|
|
116
|
-
Object.keys(eventListeners).forEach(eventName => {
|
|
117
|
-
element.addEventListener(eventName, eventListeners[eventName]);
|
|
118
|
-
});
|
|
119
|
-
return element;
|
|
120
|
-
}
|
|
121
|
-
function createContainer(elementName, children, attributes = {}, eventListeners = {}, onCreated = null) {
|
|
122
|
-
const element = createElement(elementName, attributes, eventListeners, onCreated);
|
|
123
|
-
children.forEach(child => element.appendChild(child));
|
|
124
|
-
return element;
|
|
125
|
-
}
|
|
126
|
-
function createText(elementName, textContent, attributes = {}, eventListeners = {}, onCreated = null) {
|
|
127
|
-
const element = createElement(elementName, attributes, eventListeners, onCreated);
|
|
128
|
-
element.textContent = textContent;
|
|
129
|
-
return element;
|
|
130
|
-
}
|
|
131
|
-
function createModesInput({
|
|
132
|
-
appModes,
|
|
133
|
-
formElements
|
|
134
|
-
}) {
|
|
135
|
-
return ['Read', 'Write', 'Append', 'Control'].map(mode => {
|
|
136
|
-
const isChecked = appModes.some(appMode => appMode.value === _solidUi.ns.acl(mode).value);
|
|
137
|
-
return createContainer('label', [createElement('input', {
|
|
138
|
-
type: 'checkbox',
|
|
139
|
-
...(isChecked ? {
|
|
140
|
-
checked: ''
|
|
141
|
-
} : {}),
|
|
142
|
-
value: _solidUi.ns.acl(mode).uri
|
|
143
|
-
}, {}, element => formElements.modes.push(element)), createText('span', mode)]);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=trustedApplications.dom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.dom.js","names":["_rdflib","require","_solidUi","_solidLogic","_trustedApplications","createApplicationTable","subject","applicationsTable","createElement","class","header","createContainer","createText","appendChild","store","each","ns","acl","undefined","flatMap","app","map","origin","appModes","sort","a","b","value","forEach","createApplicationEntry","updateTable","parentElement","replaceChild","trustedApplicationState","formElements","modes","placeholder","element","submit","addOrEditApplication","createModesInput","style","click","removeApplication","event","preventDefault","sym","err","alert","filter","checkbox","checked","deletions","getStatementsToDelete","additions","getStatementsToAdd","generateRandomString","updater","Error","update","handleUpdateResponse","uri","success","errorBody","elementName","attributes","eventListeners","onCreated","document","Object","keys","attName","setAttribute","eventName","addEventListener","children","child","textContent","mode","isChecked","some","appMode","type","push"],"sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"sourcesContent":["import { NamedNode, Statement, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils'\n\ninterface FormElements {\n modes: HTMLInputElement[]\n // This appears to be used to store either a node from the store,\n // or a reference to the input (checkbox) element for a particular mode.\n // These typings were created post-hoc, so I'm not sure if that was intentional.\n // Thus, this union type should be considered as descriptive rather than prescriptive.\n origin: undefined | NamedNode | HTMLInputElement\n}\n\nexport function createApplicationTable (subject: NamedNode) {\n const applicationsTable = createElement('table', {\n class: 'results'\n })\n\n // creating headers\n const header = createContainer('tr', [\n createText('th', 'Application URL'),\n createText('th', 'Access modes'),\n createText('th', 'Actions')\n ])\n applicationsTable.appendChild(header);\n\n // creating rows\n (store.each(subject, ns.acl('trustedApp'), undefined, undefined) as unknown as Statement[])\n .flatMap(app => store\n .each(app as any, ns.acl('origin'), undefined, undefined)\n .map(origin => ({\n appModes: store.each(app as any, ns.acl('mode'), undefined, undefined) as NamedNode[],\n origin: origin as NamedNode\n })))\n .sort((a: any, b: any) => (a.origin.value < b.origin.value ? -1 : 1))\n .forEach(\n ({ appModes, origin }: { appModes: NamedNode[]; origin: NamedNode }) =>\n applicationsTable.appendChild(\n createApplicationEntry(subject, origin, appModes, updateTable)\n )\n )\n\n // adding a row for new applications\n applicationsTable.appendChild(\n createApplicationEntry(subject, null, [ns.acl('Read')], updateTable)\n )\n\n return applicationsTable\n\n function updateTable () {\n applicationsTable.parentElement!.replaceChild(\n createApplicationTable(subject),\n applicationsTable\n )\n }\n}\n\nfunction createApplicationEntry (\n subject: NamedNode,\n origin: NamedNode | null,\n appModes: NamedNode[],\n updateTable: () => void\n): HTMLTableRowElement {\n const trustedApplicationState = {\n origin,\n appModes,\n formElements: {\n modes: [],\n origin: undefined\n } as FormElements\n }\n return createContainer('tr', [\n createContainer('td', [\n createContainer(\n 'form',\n [\n createElement(\n 'input',\n {\n class: 'textinput',\n placeholder: 'Write new URL here',\n value: origin ? origin.value : ''\n },\n {},\n element => {\n trustedApplicationState.formElements.origin = element\n }\n )\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n createModesInput(trustedApplicationState),\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n origin\n ? [\n createText('button', 'Update', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n }),\n createText(\n 'button',\n 'Delete',\n {\n class: 'controlButton',\n style: 'background: LightCoral;'\n },\n {\n click: removeApplication\n }\n )\n ]\n : [\n createText('button', 'Add', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n })\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ])\n ])\n\n function addOrEditApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert('Please provide an application URL you want to trust')\n }\n\n const modes = trustedApplicationState.formElements.modes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n\n const deletions = getStatementsToDelete(\n trustedApplicationState.origin || origin,\n subject,\n store,\n ns\n )\n const additions = getStatementsToAdd(\n origin,\n generateRandomString(),\n modes,\n subject,\n ns\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, additions, handleUpdateResponse)\n }\n\n function removeApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert(\n 'Please provide an application URL you want to remove trust from'\n )\n }\n\n const deletions = getStatementsToDelete(origin, subject, store, ns)\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, [], handleUpdateResponse)\n }\n\n function handleUpdateResponse (uri: any, success: boolean, errorBody: any) {\n if (success) {\n return updateTable()\n }\n // console.error(uri, errorBody)\n }\n}\n\nfunction createElement<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n attributes: { [name: string]: string } = {},\n eventListeners: { [eventName: string]: globalThis.EventListener } = {},\n\n onCreated: null | ((createdElement: globalThis.HTMLElementTagNameMap[K]) => void) = null\n) {\n const element = document.createElement(elementName)\n if (onCreated) {\n onCreated(element)\n }\n Object.keys(attributes).forEach(attName => {\n element.setAttribute(attName, attributes[attName])\n })\n Object.keys(eventListeners).forEach(eventName => {\n element.addEventListener(eventName, eventListeners[eventName])\n })\n return element\n}\n\nexport function createContainer<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n children: HTMLElement[],\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n children.forEach(child => element.appendChild(child))\n return element\n}\n\nexport function createText<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n textContent: string | null,\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n element.textContent = textContent\n return element\n}\n\nfunction createModesInput ({ appModes, formElements }: {\n appModes: NamedNode[]\n formElements: FormElements\n}) {\n return ['Read', 'Write', 'Append', 'Control'].map(mode => {\n const isChecked = appModes.some(\n appMode => appMode.value === ns.acl(mode).value\n )\n return createContainer('label', [\n createElement(\n 'input',\n {\n type: 'checkbox',\n ...(isChecked ? { checked: '' } : {}),\n value: ns.acl(mode).uri\n },\n {},\n element => formElements.modes.push(element)\n ),\n createText('span', mode)\n ])\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.generateRandomString = generateRandomString;
|
|
7
|
-
exports.getStatementsToAdd = getStatementsToAdd;
|
|
8
|
-
exports.getStatementsToDelete = getStatementsToDelete;
|
|
9
|
-
var _rdflib = require("rdflib");
|
|
10
|
-
function getStatementsToDelete(origin, person, kb, ns) {
|
|
11
|
-
const applicationStatements = kb.statementsMatching(null, ns.acl('origin'), origin);
|
|
12
|
-
const statementsToDelete = applicationStatements.reduce((memo, st) => {
|
|
13
|
-
return memo.concat(kb.statementsMatching(person, ns.acl('trustedApp'), st.subject)).concat(kb.statementsMatching(st.subject));
|
|
14
|
-
}, []);
|
|
15
|
-
return statementsToDelete;
|
|
16
|
-
}
|
|
17
|
-
function getStatementsToAdd(origin, nodeName, modes, person, ns) {
|
|
18
|
-
const application = new _rdflib.BlankNode(`bn_${nodeName}`); // NamedNode(`${person.doc().uri}#${nodeName}`)
|
|
19
|
-
return [(0, _rdflib.st)(person, ns.acl('trustedApp'), application, person.doc()), (0, _rdflib.st)(application, ns.acl('origin'), origin, person.doc()), ...modes.map(mode => (0, _rdflib.sym)(mode)).map(mode => (0, _rdflib.st)(application, ns.acl('mode'), mode, person.doc()))];
|
|
20
|
-
}
|
|
21
|
-
function generateRandomString() {
|
|
22
|
-
return Math.random().toString(36).substr(2, 5);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=trustedApplications.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.utils.js","names":["_rdflib","require","getStatementsToDelete","origin","person","kb","ns","applicationStatements","statementsMatching","acl","statementsToDelete","reduce","memo","st","concat","subject","getStatementsToAdd","nodeName","modes","application","BlankNode","doc","map","mode","sym","generateRandomString","Math","random","toString","substr"],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`) // NamedNode(`${person.doc().uri}#${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAGO,SAASC,qBAAqBA,CACnCC,MAA2B,EAC3BC,MAAiB,EACjBC,EAAkB,EAClBC,EAAc,EACT;EACL,MAAMC,qBAAqB,GAAGF,EAAE,CAACG,kBAAkB,CACjD,IAAI,EACJF,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAChBN,MACF,CAAC;EACD,MAAMO,kBAAkB,GAAGH,qBAAqB,CAACI,MAAM,CACrD,CAACC,IAAI,EAAEC,EAAE,KAAK;IACZ,OAAOD,IAAI,CACRE,MAAM,CACLT,EAAE,CAACG,kBAAkB,CACnBJ,MAAM,EACNE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EACpBI,EAAE,CAACE,OACL,CACF,CAAC,CACAD,MAAM,CAACT,EAAE,CAACG,kBAAkB,CAACK,EAAE,CAACE,OAAO,CAAC,CAAC;EAC9C,CAAC,EACD,EACF,CAAC;EACD,OAAOL,kBAAkB;AAC3B;AAEO,SAASM,kBAAkBA,CAChCb,MAAiB,EACjBc,QAAgB,EAChBC,KAAe,EACfd,MAAiB,EACjBE,EAAc,EACT;EACL,MAAMa,WAAW,GAAG,IAAIC,iBAAS,CAAC,MAAMH,QAAQ,EAAE,CAAC,EAAC;EACpD,OAAO,CACL,IAAAJ,UAAE,EAACT,MAAM,EAAEE,EAAE,CAACG,GAAG,CAAC,YAAY,CAAC,EAAEU,WAAW,EAAEf,MAAM,CAACiB,GAAG,CAAC,CAAC,CAAC,EAC3D,IAAAR,UAAE,EAACM,WAAW,EAAEb,EAAE,CAACG,GAAG,CAAC,QAAQ,CAAC,EAAEN,MAAM,EAAEC,MAAM,CAACiB,GAAG,CAAC,CAAC,CAAC,EACvD,GAAGH,KAAK,CACLI,GAAG,CAACC,IAAI,IAAI,IAAAC,WAAG,EAACD,IAAI,CAAC,CAAC,CACtBD,GAAG,CAACC,IAAI,IAAI,IAAAV,UAAE,EAACM,WAAW,EAAEb,EAAE,CAACG,GAAG,CAAC,MAAM,CAAC,EAAEc,IAAI,EAAEnB,MAAM,CAACiB,GAAG,CAAC,CAAC,CAAC,CAAC,CACpE;AACH;AAEO,SAASI,oBAAoBA,CAAA,EAAI;EACtC,OAAOC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD","ignoreList":[]}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _solidUi = require("solid-ui");
|
|
8
|
-
var _solidLogic = require("solid-logic");
|
|
9
|
-
var _trustedApplications = require("./trustedApplications.dom");
|
|
10
|
-
const thisColor = '#418d99';
|
|
11
|
-
const trustedApplicationView = {
|
|
12
|
-
global: true,
|
|
13
|
-
icon: `${_solidUi.icons.iconBase}noun_15177.svg`,
|
|
14
|
-
name: 'trustedApplications',
|
|
15
|
-
label: () => null,
|
|
16
|
-
render: (subject, context) => {
|
|
17
|
-
const dom = context.dom;
|
|
18
|
-
const div = dom.createElement('div');
|
|
19
|
-
div.classList.add('trusted-applications-pane');
|
|
20
|
-
div.setAttribute('style', 'border: 0.3em solid ' + thisColor + '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;');
|
|
21
|
-
const table = div.appendChild(dom.createElement('table'));
|
|
22
|
-
const main = table.appendChild(dom.createElement('tr'));
|
|
23
|
-
const bottom = table.appendChild(dom.createElement('tr'));
|
|
24
|
-
const statusArea = bottom.appendChild(dom.createElement('div'));
|
|
25
|
-
statusArea.setAttribute('style', 'padding: 0.7em;');
|
|
26
|
-
render(dom, main, statusArea).catch(err => statusArea.appendChild(_solidUi.widgets.errorMessageBlock(dom, err)));
|
|
27
|
-
return div;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
async function render(dom, main, statusArea) {
|
|
31
|
-
const authContext = await _solidUi.login.ensureLoadedProfile({
|
|
32
|
-
dom,
|
|
33
|
-
div: main,
|
|
34
|
-
statusArea,
|
|
35
|
-
me: null
|
|
36
|
-
});
|
|
37
|
-
const subject = authContext.me;
|
|
38
|
-
const profile = subject.doc();
|
|
39
|
-
if (!_solidLogic.store.updater) {
|
|
40
|
-
throw new Error('Store has no updater');
|
|
41
|
-
}
|
|
42
|
-
const editable = _solidLogic.store.updater.editable(profile.uri, _solidLogic.store);
|
|
43
|
-
main.appendChild((0, _trustedApplications.createText)('h3', 'Manage your trusted applications'));
|
|
44
|
-
if (!editable) {
|
|
45
|
-
main.appendChild(_solidUi.widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`));
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
main.appendChild((0, _trustedApplications.createText)('p', 'Here you can manage the applications you trust.'));
|
|
49
|
-
const applicationsTable = (0, _trustedApplications.createApplicationTable)(subject);
|
|
50
|
-
main.appendChild(applicationsTable);
|
|
51
|
-
main.appendChild((0, _trustedApplications.createText)('h4', 'Notes'));
|
|
52
|
-
main.appendChild((0, _trustedApplications.createContainer)('ol', [main.appendChild((0, _trustedApplications.createText)('li', 'Trusted applications will get access to all resources that you have access to.')), main.appendChild((0, _trustedApplications.createText)('li', 'You can limit which modes they have by default.')), main.appendChild((0, _trustedApplications.createText)('li', 'They will not gain more access than you have.'))]));
|
|
53
|
-
main.appendChild((0, _trustedApplications.createText)('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.'));
|
|
54
|
-
}
|
|
55
|
-
var _default = exports.default = trustedApplicationView;
|
|
56
|
-
//# sourceMappingURL=trustedApplications.view.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.view.js","names":["_solidUi","require","_solidLogic","_trustedApplications","thisColor","trustedApplicationView","global","icon","icons","iconBase","name","label","render","subject","context","dom","div","createElement","classList","add","setAttribute","table","appendChild","main","bottom","statusArea","catch","err","widgets","errorMessageBlock","authContext","login","ensureLoadedProfile","me","profile","doc","store","updater","Error","editable","uri","createText","applicationsTable","createApplicationTable","createContainer","_default","exports","default"],"sources":["../../src/trustedApplications/trustedApplications.view.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { NamedNode } from 'rdflib'\nimport { icons, login, widgets } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { createApplicationTable, createContainer, createText } from './trustedApplications.dom'\n\nconst thisColor = '#418d99'\n\nconst trustedApplicationView: PaneDefinition = {\n global: true,\n icon: `${icons.iconBase}noun_15177.svg`,\n name: 'trustedApplications',\n label: () => null,\n render: (subject, context) => {\n const dom = context.dom\n const div = dom.createElement('div')\n div.classList.add('trusted-applications-pane')\n div.setAttribute(\n 'style',\n 'border: 0.3em solid ' +\n thisColor +\n '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;'\n )\n const table = div.appendChild(dom.createElement('table'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)))\n return div\n }\n}\n\nasync function render (dom, main, statusArea): Promise<void> {\n const authContext = await login.ensureLoadedProfile({ dom, div: main, statusArea, me: null })\n const subject = authContext.me as NamedNode\n\n const profile = subject.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n const editable = store.updater.editable(profile.uri, store)\n\n main.appendChild(createText('h3', 'Manage your trusted applications'))\n\n if (!editable) {\n main.appendChild(\n widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`)\n )\n return\n }\n\n main.appendChild(createText('p', 'Here you can manage the applications you trust.'))\n\n const applicationsTable = createApplicationTable(subject)\n main.appendChild(applicationsTable)\n\n main.appendChild(createText('h4', 'Notes'))\n main.appendChild(\n createContainer('ol', [\n main.appendChild(\n createText(\n 'li',\n 'Trusted applications will get access to all resources that you have access to.'\n )\n ),\n main.appendChild(\n createText('li', 'You can limit which modes they have by default.')\n ),\n main.appendChild(\n createText('li', 'They will not gain more access than you have.')\n )\n ])\n )\n main.appendChild(\n createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.')\n )\n}\n\nexport default trustedApplicationView\n"],"mappings":"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","ignoreList":[]}
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["interface SolidAuthorization {\n\n access_token: string\n\n client_id: string\n\n id_token: string\n}\n\ninterface SolidClaim {\n\n at_hash: string\n aud: string\n azp: string\n cnf: {\n jwk: string\n }\n exp: number\n iat: number\n iss: string\n jti: string\n nonce: string\n sub: string\n}\n\nexport interface SolidSession {\n authorization: SolidAuthorization\n credentialType: string\n idClaims: SolidClaim\n idp: string\n issuer: string\n sessionKey: string\n webId: string\n}\n"],"mappings":"","ignoreList":[]}
|
package/dist/ui/pane.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","findTypeURIs","rdfs","uri","ui","render","dom","box","createElement","setAttribute","utils","mention","complain","message","style","pre","appendChild","textContent","complainIfBad","ok","body","docuri","Util","docpart","updater","editable","sym","any","link","widgets","defaultAnnotationStore","pred","wait","fetcher","nowOrWhenFetched","removeChild","displayFormsForRelation","allowCreation","sts","statementsMatching","outliner","getOutliner","length","appendPropertyTRs","form","object","cell","lastChild","newButton","formdef","rdf","editFormButton","why","appendForm"],"sources":["../../src/ui/pane.js"],"sourcesContent":["/* Form building/editing Pane\n **\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // noun_170702.svg' builder noun_122196.svg form\n icon: UI.icons.iconBase + 'noun_170702.svg',\n\n name: 'ui',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const ns = UI.ns\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t[ns.rdfs('Class').uri]) return 'creation forms'\n // if (t[ns.rdf('Property').uri]) return \"user interface\";\n if (t[ns.ui('Form').uri]) return 'edit form'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n\n const box = dom.createElement('div')\n box.setAttribute('class', 'formPane') // Share styles\n const label = UI.utils.label(subject)\n\n const mention = function complain (message, style) {\n const pre = dom.createElement('p')\n pre.setAttribute('style', style || 'color: grey; background-color: white')\n box.appendChild(pre).textContent = message\n return pre\n }\n\n const complain = function complain (message, style) {\n mention(message, 'style', style || 'color: grey; background-color: #fdd')\n }\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store);\n // rerender(box); // Deleted forms at the moment\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n\n const t = kb.findTypeURIs(subject)\n\n let store = null\n let docuri\n if (subject.uri) {\n docuri = $rdf.Util.uri.docpart(subject.uri)\n if (subject.uri !== docuri && kb.updater.editable(docuri)) {\n store = kb.sym($rdf.Util.uri.docpart(subject.uri))\n } // an editable ontology with hash\n }\n if (!store) store = kb.any(kb.sym(docuri), ns.link('annotationStore'))\n if (!store) store = UI.widgets.defaultAnnotationStore(subject)\n\n if (!store) {\n store = kb.sym(\n 'https://formsregistry.solid.community/public/formRegistry/'\n ) // fallback\n }\n // if (!store) store = kb.sym('http://tabulator.org/wiki/ontologyAnnotation/common') // fallback\n\n // A fallback which gives a different store page for each ontology would be good @@\n\n let pred\n if (t[ns.rdfs('Class').uri]) {\n // Stuff we can do before we load the store\n }\n\n const wait = mention('(Loading data from: ' + store + ')')\n\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) {\n complain('Cannot load store ' + store + ' :' + body)\n return\n }\n box.removeChild(wait)\n\n // Render a Class -- the forms associated with it\n\n if (t[ns.rdfs('Class').uri]) {\n // For each creation form, allow one to create a new object with it, and also to edit the form.\n const displayFormsForRelation = function displayFormsForRelation (\n pred,\n allowCreation\n ) {\n const sts = kb.statementsMatching(subject, pred)\n const outliner = context.getOutliner(dom)\n if (sts.length) {\n for (let i = 0; i < sts.length; i++) {\n outliner.appendPropertyTRs(box, [sts[i]])\n const form = sts[i].object\n const cell = dom.createElement('td')\n box.lastChild.appendChild(cell)\n if (allowCreation) {\n cell.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n null,\n null,\n subject,\n form,\n store,\n function (ok, body) {\n if (ok) {\n // dom.outlineManager.GotoSubject(newThing@@, true, undefined, true, undefined);\n // rerender(box); // Deleted forms at the moment\n } else {\n complain('Sorry, failed to save your change:\\n' + body)\n }\n }\n )\n )\n }\n let formdef = kb.statementsMatching(form, ns.rdf('type'))\n if (!formdef.length) formdef = kb.statementsMatching(form)\n if (!formdef.length) complain('No data about form')\n else {\n UI.widgets.editFormButton(\n dom,\n box,\n form,\n formdef[0].why,\n complainIfBad\n )\n }\n }\n box.appendChild(dom.createElement('hr'))\n } else {\n mention(\n 'There are currently no known forms to make a ' + label + '.'\n )\n }\n }\n\n pred = ns.ui('creationForm')\n box.appendChild(dom.createElement('h2')).textContent = UI.utils.label(\n pred\n )\n mention(\n 'Creation forms allow you to add information about a new thing,' +\n ' in this case a new ' +\n label +\n '.'\n )\n displayFormsForRelation(pred, true)\n box.appendChild(dom.createElement('hr'))\n mention('You can make a new creation form:')\n box.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n subject,\n pred,\n ns.ui('Form'),\n null,\n store,\n complainIfBad\n )\n )\n\n box.appendChild(dom.createElement('hr'))\n\n pred = ns.ui('annotationForm')\n box.appendChild(dom.createElement('h2')).textContent = UI.utils.label(\n pred\n )\n mention(\n 'Annotaion forms allow you to add extra information about a ,' +\n label +\n ' we already know about.'\n )\n displayFormsForRelation(pred, false)\n box.appendChild(dom.createElement('hr'))\n mention('You can make a new annotation form:')\n box.appendChild(\n UI.widgets.newButton(\n dom,\n kb,\n subject,\n pred,\n ns.ui('Form'),\n null,\n store,\n complainIfBad\n )\n )\n\n mention('(Storing new forms in: ' + store + ')')\n\n // Render a Form\n } else if (t[ns.ui('Form').uri]) {\n UI.widgets.appendForm(\n dom,\n box,\n kb,\n subject,\n ns.ui('FormForm'),\n store,\n complainIfBad\n )\n } else {\n complain('ui/pane internal error -- Eh?')\n }\n }) // end: when store loded\n\n return box\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
package/dist/versionInfo.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _default = exports.default = {
|
|
8
|
-
buildTime: '2025-10-06T13:56:14Z',
|
|
9
|
-
commit: '18da570b481d446ffa3642ae4680b2edcdaf13cd',
|
|
10
|
-
npmInfo: {
|
|
11
|
-
'\'solid-panes\'': '\'3.7.3\',',
|
|
12
|
-
npm: '\'10.8.2\',',
|
|
13
|
-
node: '\'20.19.5\',',
|
|
14
|
-
acorn: '\'8.15.0\',',
|
|
15
|
-
ada: '\'2.9.2\',',
|
|
16
|
-
ares: '\'1.34.5\',',
|
|
17
|
-
brotli: '\'1.1.0\',',
|
|
18
|
-
cjs_module_lexer: '\'2.1.0\',',
|
|
19
|
-
cldr: '\'47.0\',',
|
|
20
|
-
icu: '\'77.1\',',
|
|
21
|
-
llhttp: '\'9.3.0\',',
|
|
22
|
-
modules: '\'115\',',
|
|
23
|
-
napi: '\'9\',',
|
|
24
|
-
nghttp2: '\'1.61.0\',',
|
|
25
|
-
openssl: '\'3.0.16\',',
|
|
26
|
-
simdutf: '\'6.4.2\',',
|
|
27
|
-
tz: '\'2025b\',',
|
|
28
|
-
undici: '\'6.21.2\',',
|
|
29
|
-
unicode: '\'16.0\',',
|
|
30
|
-
uv: '\'1.46.0\',',
|
|
31
|
-
uvwasi: '\'0.0.21\',',
|
|
32
|
-
v8: '\'11.3.244.8-node.30\',',
|
|
33
|
-
zlib: '\'1.3.1-470d3a2\'',
|
|
34
|
-
'}': '}'
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=versionInfo.js.map
|