solid-panes 3.7.2 → 3.7.3-3425a37d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard/basicPreferences.js +155 -0
- package/dist/dashboard/basicPreferences.js.map +1 -0
- package/dist/dashboard/dashboardPane.js +63 -0
- package/dist/dashboard/dashboardPane.js.map +1 -0
- package/dist/dashboard/homepage.js +63 -0
- package/dist/dashboard/homepage.js.map +1 -0
- package/dist/home/homePane.js +68 -0
- package/dist/home/homePane.js.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/internalPane.js +195 -0
- package/dist/internal/internalPane.js.map +1 -0
- package/dist/mainPage/footer.js +16 -0
- package/dist/mainPage/footer.js.map +1 -0
- package/dist/mainPage/header.js +84 -0
- package/dist/mainPage/header.js.map +1 -0
- package/{lib → dist}/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.js +30 -0
- package/dist/mainPage/index.js.map +1 -0
- package/dist/outline/context.js +13 -0
- package/dist/outline/context.js.map +1 -0
- package/dist/outline/propertyViews.js +33 -0
- package/dist/outline/propertyViews.js.map +1 -0
- package/dist/outline/viewAsImage.js +7 -0
- package/dist/outline/viewAsImage.js.map +1 -0
- package/{lib → dist}/outline/viewAsMbox.js +4 -14
- package/dist/outline/viewAsMbox.js.map +1 -0
- package/dist/pad/padPane.js +420 -0
- package/dist/pad/padPane.js.map +1 -0
- package/dist/sharing/sharingPane.js +45 -0
- package/dist/sharing/sharingPane.js.map +1 -0
- package/dist/tabbed/tabbedPane.js +55 -0
- package/dist/tabbed/tabbedPane.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.dom.js +158 -0
- package/dist/trustedApplications/trustedApplications.dom.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.utils.js +24 -0
- package/dist/trustedApplications/trustedApplications.utils.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.view.js +62 -0
- package/dist/trustedApplications/trustedApplications.view.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/versionInfo.js +31 -0
- package/dist/versionInfo.js.map +1 -0
- package/package.json +34 -22
- package/Documentation/VisualLanguage.html +0 -538
- package/Documentation/conventions.md +0 -333
- package/coverage/clover.xml +0 -152
- package/coverage/coverage-final.json +0 -6
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -131
- package/coverage/lcov-report/outline/index.html +0 -161
- package/coverage/lcov-report/outline/outlineIcons.js.html +0 -565
- package/coverage/lcov-report/outline/propertyViews.ts.html +0 -196
- package/coverage/lcov-report/outline/viewAsImage.ts.html +0 -121
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +0 -127
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/trustedApplications/index.html +0 -116
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +0 -238
- package/coverage/lcov.info +0 -204
- package/dev/index.html +0 -28
- package/dev/loader.ts +0 -91
- package/dev/pane/index.ts +0 -10
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +0 -609
- package/eslint.config.mjs +0 -34
- package/jest.config.js +0 -27
- package/jest.setup.ts +0 -4
- package/lib/RDFXMLPane.js +0 -59
- package/lib/RDFXMLPane.js.map +0 -1
- package/lib/argument/argumentPane.js +0 -62
- package/lib/argument/argumentPane.js.map +0 -1
- package/lib/attach/attachPane.js +0 -404
- package/lib/attach/attachPane.js.map +0 -1
- package/lib/audio/audioPane.js +0 -183
- package/lib/audio/audioPane.js.map +0 -1
- package/lib/classInstancePane.js +0 -93
- package/lib/classInstancePane.js.map +0 -1
- package/lib/dashboard/basicPreferences.js +0 -229
- package/lib/dashboard/basicPreferences.js.map +0 -1
- package/lib/dashboard/dashboardPane.js +0 -73
- package/lib/dashboard/dashboardPane.js.map +0 -1
- package/lib/dashboard/homepage.js +0 -86
- package/lib/dashboard/homepage.js.map +0 -1
- package/lib/dataContentPane.js +0 -259
- package/lib/dataContentPane.js.map +0 -1
- package/lib/defaultPane.js +0 -76
- package/lib/defaultPane.js.map +0 -1
- package/lib/dokieli/dokieliPane.js +0 -173
- package/lib/dokieli/dokieliPane.js.map +0 -1
- package/lib/dokieli/new.js +0 -9
- package/lib/dokieli/new.js.map +0 -1
- package/lib/form/pane.js +0 -186
- package/lib/form/pane.js.map +0 -1
- package/lib/global.d.js +0 -2
- package/lib/global.d.js.map +0 -1
- package/lib/home/homePane.js +0 -91
- package/lib/home/homePane.js.map +0 -1
- package/lib/humanReadablePane.js +0 -138
- package/lib/humanReadablePane.js.map +0 -1
- package/lib/imagePane.js +0 -71
- package/lib/imagePane.js.map +0 -1
- package/lib/index.js +0 -112
- package/lib/index.js.map +0 -1
- package/lib/internal/internalPane.js +0 -184
- package/lib/internal/internalPane.js.map +0 -1
- package/lib/mainPage/footer.js +0 -22
- package/lib/mainPage/footer.js.map +0 -1
- package/lib/mainPage/header.js +0 -152
- package/lib/mainPage/header.js.map +0 -1
- package/lib/mainPage/index.js +0 -42
- package/lib/mainPage/index.js.map +0 -1
- package/lib/microblogPane/microblogPane.js +0 -1032
- package/lib/microblogPane/microblogPane.js.map +0 -1
- package/lib/n3Pane.js +0 -57
- package/lib/n3Pane.js.map +0 -1
- package/lib/outline/context.js +0 -19
- package/lib/outline/context.js.map +0 -1
- package/lib/outline/manager.js +0 -2264
- package/lib/outline/manager.js.map +0 -1
- package/lib/outline/manager.test.d.ts +0 -2
- package/lib/outline/manager.test.d.ts.map +0 -1
- package/lib/outline/manager.test.js +0 -210
- package/lib/outline/manager.test.js.map +0 -1
- package/lib/outline/outlineIcons.js +0 -128
- package/lib/outline/outlineIcons.js.map +0 -1
- package/lib/outline/propertyViews.js +0 -44
- package/lib/outline/propertyViews.js.map +0 -1
- package/lib/outline/propertyViews.test.d.ts +0 -2
- package/lib/outline/propertyViews.test.d.ts.map +0 -1
- package/lib/outline/propertyViews.test.js +0 -27
- package/lib/outline/propertyViews.test.js.map +0 -1
- package/lib/outline/queryByExample.js +0 -286
- package/lib/outline/queryByExample.js.map +0 -1
- package/lib/outline/userInput.js +0 -1817
- package/lib/outline/userInput.js.map +0 -1
- package/lib/outline/viewAsImage.js +0 -17
- package/lib/outline/viewAsImage.js.map +0 -1
- package/lib/outline/viewAsMbox.js.map +0 -1
- package/lib/pad/padPane.js +0 -417
- package/lib/pad/padPane.js.map +0 -1
- package/lib/playlist/playlistPane.js +0 -125
- package/lib/playlist/playlistPane.js.map +0 -1
- package/lib/registerPanes.js +0 -146
- package/lib/registerPanes.js.map +0 -1
- package/lib/schedule/formsForSchedule.js +0 -8
- package/lib/schedule/formsForSchedule.js.map +0 -1
- package/lib/schedule/schedulePane.js +0 -895
- package/lib/schedule/schedulePane.js.map +0 -1
- package/lib/sharing/sharingPane.js +0 -49
- package/lib/sharing/sharingPane.js.map +0 -1
- package/lib/slideshow/slideshowPane.js +0 -84
- package/lib/slideshow/slideshowPane.js.map +0 -1
- package/lib/socialPane.js +0 -431
- package/lib/socialPane.js.map +0 -1
- package/lib/tabbed/tabbedPane.js +0 -72
- package/lib/tabbed/tabbedPane.js.map +0 -1
- package/lib/tableViewPane.js +0 -58
- package/lib/tableViewPane.js.map +0 -1
- package/lib/test-import-export/common.js +0 -12
- package/lib/test-import-export/common.js.map +0 -1
- package/lib/test-import-export/edit-importer.js +0 -25
- package/lib/test-import-export/edit-importer.js.map +0 -1
- package/lib/test-import-export/testImportExport.js +0 -2
- package/lib/test-import-export/testImportExport.js.map +0 -1
- package/lib/transaction/pane.js +0 -479
- package/lib/transaction/pane.js.map +0 -1
- package/lib/transaction/period.js +0 -325
- package/lib/transaction/period.js.map +0 -1
- package/lib/trip/tripPane.js +0 -176
- package/lib/trip/tripPane.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.dom.js +0 -177
- package/lib/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.test.d.ts +0 -2
- package/lib/trustedApplications/trustedApplications.test.d.ts.map +0 -1
- package/lib/trustedApplications/trustedApplications.test.js +0 -64
- package/lib/trustedApplications/trustedApplications.test.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.utils.js +0 -34
- package/lib/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/lib/trustedApplications/trustedApplications.view.js +0 -87
- package/lib/trustedApplications/trustedApplications.view.js.map +0 -1
- package/lib/types.js +0 -6
- package/lib/types.js.map +0 -1
- package/lib/ui/pane.js +0 -148
- package/lib/ui/pane.js.map +0 -1
- package/lib/versionInfo.d.ts +0 -34
- package/lib/versionInfo.d.ts.map +0 -1
- package/lib/versionInfo.js +0 -39
- package/lib/versionInfo.js.map +0 -1
- package/lib/video/videoPane.js +0 -44
- package/lib/video/videoPane.js.map +0 -1
- package/src/RDFXMLPane.js +0 -60
- package/src/argument/argumentPane.js +0 -65
- package/src/argument/argument_icon_v04.jpg +0 -0
- package/src/argument/icon_argument.png +0 -0
- package/src/argument/transparentyingyang.png +0 -0
- package/src/attach/attachPane.js +0 -508
- package/src/attach/tbl-paperclip-128.png +0 -0
- package/src/attach/tbl-paperclip-22.png +0 -0
- package/src/attach/tbl-paperclip-22a.png +0 -0
- package/src/audio/audioPane.js +0 -197
- package/src/chatPreferencesForm.ttl +0 -12
- package/src/classInstancePane.js +0 -110
- package/src/dashboard/basicPreferences.ts +0 -201
- package/src/dashboard/dashboardPane.ts +0 -83
- package/src/dashboard/homepage.ts +0 -72
- package/src/dashboard/languages/codes.html +0 -8611
- package/src/dashboard/languages/codes.xml +0 -3563
- package/src/dashboard/languages/codes2.txt +0 -170
- package/src/dashboard/languages/foo +0 -70
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +0 -12
- package/src/dashboard/ontologyData.ttl +0 -35
- package/src/dashboard/preferencesFormText.ttl +0 -18
- package/src/dataContentPane.js +0 -290
- package/src/defaultPane.js +0 -102
- package/src/dokieli/Makefile +0 -6
- package/src/dokieli/dokieliPane.js +0 -190
- package/src/dokieli/new.html +0 -30
- package/src/dokieli/new.js +0 -22
- package/src/form/form-22.png +0 -0
- package/src/form/form-b-22.png +0 -0
- package/src/form/form.graffle +0 -0
- package/src/form/form.png +0 -0
- package/src/form/pane.js +0 -217
- package/src/form/psuedocode-notes.txt +0 -57
- package/src/global.d.ts +0 -4
- package/src/home/homePane.ts +0 -72
- package/src/humanReadablePane.js +0 -150
- package/src/imagePane.js +0 -75
- package/src/index.ts +0 -71
- package/src/internal/internalPane.ts +0 -263
- package/src/mainPage/footer.ts +0 -19
- package/src/mainPage/header.ts +0 -79
- package/src/mainPage/index.ts +0 -20
- package/src/meeting/Makefile +0 -3
- package/src/meeting/test/meeting1/Actions/actions.ttl +0 -14
- package/src/meeting/test/meeting1/Actions/config.ttl +0 -16
- package/src/meeting/test/meeting1/Actions/state.ttl +0 -30
- package/src/meeting/test/meeting1/Schedule/details.ttl +0 -34
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -75
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/index.html +0 -72
- package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -20
- package/src/meeting/test/meeting1/Schedule/results.ttl +0 -15
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -20
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -23
- package/src/meeting/test/meeting1/chat/chat.ttl +0 -1
- package/src/meeting/test/meeting1/details.ttl +0 -35
- package/src/meeting/test/meeting1/pad/pad.ttl +0 -16
- package/src/microblogPane/mbStyle.css +0 -267
- package/src/microblogPane/microblogPane.js +0 -1412
- package/src/n3Pane.js +0 -56
- package/src/outline/context.ts +0 -21
- package/src/outline/manager.js +0 -2384
- package/src/outline/manager.test.ts +0 -189
- package/src/outline/outlineIcons.js +0 -160
- package/src/outline/propertyViews.test.ts +0 -36
- package/src/outline/propertyViews.ts +0 -37
- package/src/outline/queryByExample.js +0 -296
- package/src/outline/userInput.js +0 -2373
- package/src/outline/viewAsImage.ts +0 -12
- package/src/outline/viewAsMbox.ts +0 -14
- package/src/pad/images/ColourOff.ai +2 -872
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +1 -935
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +0 -559
- package/src/playlist/playlistPane.js +0 -161
- package/src/registerPanes.js +0 -147
- package/src/schedule/Makefile +0 -6
- package/src/schedule/formsForSchedule.js +0 -117
- package/src/schedule/formsForSchedule.ttl +0 -115
- package/src/schedule/schedulePane.js +0 -1201
- package/src/sharing/sharingPane.ts +0 -49
- package/src/slideshow/slideshowPane.js +0 -80
- package/src/socialPane.js +0 -523
- package/src/style/tabbedtab.css +0 -1347
- package/src/tabbed/tabbedPane.ts +0 -60
- package/src/tableViewPane.js +0 -51
- package/src/test-import-export/common.js +0 -6
- package/src/test-import-export/edit-importer.js +0 -20
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +0 -629
- package/src/transaction/period.js +0 -374
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +0 -176
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -176
- package/src/trustedApplications/trustedApplications.dom.ts +0 -276
- package/src/trustedApplications/trustedApplications.test.ts +0 -82
- package/src/trustedApplications/trustedApplications.utils.ts +0 -51
- package/src/trustedApplications/trustedApplications.view.ts +0 -80
- package/src/types.ts +0 -34
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +0 -226
- package/src/versionInfo.ts +0 -32
- package/src/video/videoPane.js +0 -44
- package/timestamp.sh +0 -13
- package/travis/bumpversion.js +0 -29
- package/tsconfig.json +0 -78
- package/typings/raw-loader.d.ts +0 -4
- package/typings/solid-namespace/index.d.ts +0 -9
- package/webpack.config.js +0 -41
- /package/{lib → dist}/dashboard/basicPreferences.d.ts +0 -0
- /package/{lib → dist}/dashboard/basicPreferences.d.ts.map +0 -0
- /package/{lib → dist}/dashboard/dashboardPane.d.ts +0 -0
- /package/{lib → dist}/dashboard/dashboardPane.d.ts.map +0 -0
- /package/{lib → dist}/dashboard/homepage.d.ts +0 -0
- /package/{lib → dist}/dashboard/homepage.d.ts.map +0 -0
- /package/{lib → dist}/home/homePane.d.ts +0 -0
- /package/{lib → dist}/home/homePane.d.ts.map +0 -0
- /package/{lib → dist}/index.d.ts +0 -0
- /package/{lib → dist}/index.d.ts.map +0 -0
- /package/{lib → dist}/internal/internalPane.d.ts +0 -0
- /package/{lib → dist}/internal/internalPane.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/footer.d.ts +0 -0
- /package/{lib → dist}/mainPage/footer.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/header.d.ts +0 -0
- /package/{lib → dist}/mainPage/header.d.ts.map +0 -0
- /package/{lib → dist}/mainPage/index.d.ts +0 -0
- /package/{lib → dist}/outline/context.d.ts +0 -0
- /package/{lib → dist}/outline/context.d.ts.map +0 -0
- /package/{lib → dist}/outline/propertyViews.d.ts +0 -0
- /package/{lib → dist}/outline/propertyViews.d.ts.map +0 -0
- /package/{lib → dist}/outline/viewAsImage.d.ts +0 -0
- /package/{lib → dist}/outline/viewAsImage.d.ts.map +0 -0
- /package/{lib → dist}/outline/viewAsMbox.d.ts +0 -0
- /package/{lib → dist}/outline/viewAsMbox.d.ts.map +0 -0
- /package/{lib → dist}/pad/padPane.d.ts +0 -0
- /package/{lib → dist}/pad/padPane.d.ts.map +0 -0
- /package/{lib → dist}/sharing/sharingPane.d.ts +0 -0
- /package/{lib → dist}/sharing/sharingPane.d.ts.map +0 -0
- /package/{lib → dist}/tabbed/tabbedPane.d.ts +0 -0
- /package/{lib → dist}/tabbed/tabbedPane.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts +0 -0
- /package/{lib → dist}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- /package/{lib → dist}/types.d.ts +0 -0
- /package/{lib → dist}/types.d.ts.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attachPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","icon","icons","iconBase","name","label","subject","context","kb","session","store","findTypeURIs","QU","Namespace","WF","uri","findSuperClassesNT","holds","render","dom","complain","message","pre","createElement","setAttribute","div","appendChild","createTextNode","findStore","updater","editable","doc","any","esc","utils","escapeForXML","innerHTML","predicate","range","subjects","multi","options","currentMode","currentSubject","currentObject","objectType","getSortKeySimple","_c","uriMap","sym","ns","ui","getSortKey","c","k","sup","cl","fromNT","undefined","getMembersAndSort","sortBy","u","x","key","uriHash","findMemberURIs","pairs","value","push","sort","reverse","length","objects","deselectObject","preview","showFiltered","mode","filtered","getFiltered","widgets","selectorPanelRefresh","objectList","showObject","linkClicked","filter","y","each","setAttachment","refresh","verb","linkDone3","ok","body","sts","st","update","event","inverse","s","showSubject","selected","subjectList","selectorPanel","fetcher","load","then","outliner","getOutliner","display","propertyTable","err","textContent","headerButtons","labels","intial","callback","head","current","tr","style0","style1","setStyles","buttons","b","listen","addEventListener","_e","setMode","wrapper","stores","_loop","storeURI","mintBox","storeLab","_event","thisForm","promptForNew","_body","insertBefore","nextSibling"],"sources":["../../src/attach/attachPane.js"],"sourcesContent":["/* Attachment Pane\n **\n ** - Attach a document to a thing\n ** - View attachments\n ** - Look at all unattached Supporting Documents.\n ** - Drag a document onto the pane to attach it @@\n **\n **\n */\n\n import * as UI from 'solid-ui'\n import * as $rdf from 'rdflib'\n\nexport default {\n icon: UI.icons.iconBase + 'noun_25830.svg', // noun_25830\n\n name: 'attachments',\n\n // Does the subject deserve an attachments pane?\n //\n // In this case we will render any thing which is in any subclass of\n // certain classes, or also the certain classes themselves, as a\n // triage tool for correlating many attachees with attachments.\n // We also offer the pane for anything of any class which just has an attachment already.\n //\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n const QU = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n if (\n t['http://www.w3.org/ns/pim/trip#Trip'] || // If in any subclass\n subject.uri === 'http://www.w3.org/ns/pim/trip#Trip' ||\n t['http://www.w3.org/2005/01/wf/flow#Task'] ||\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n // subject.uri == 'http://www.w3.org/2000/10/swap/pim/qif#Transaction' ||\n QU('Transaction') in kb.findSuperClassesNT(subject) ||\n kb.holds(subject, WF('attachment'))\n ) {\n return 'attachments'\n }\n return null\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const QU = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n\n // ////////////////////////////////////////////////////////////////////////////\n\n const complain = function complain (message) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: pink')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n\n // Where can we write about this thing?\n //\n // Returns term for document or null\n const findStore = function (kb, subject) {\n if (kb.updater.editable(subject.doc(), kb)) return subject.doc()\n const store = kb.any(subject.doc(), QU('annotationStore'))\n return store\n }\n\n const div = dom.createElement('div')\n const esc = UI.utils.escapeForXML\n div.setAttribute('class', 'attachPane')\n div.innerHTML =\n '<h1>' + esc(UI.utils.label(subject, true)) + ' attachments</h1>' //\n\n const predicate = WF('attachment')\n const range = QU('SupportingDocument')\n\n let subjects, multi\n const options = {}\n let currentMode = 0 // 0 -> Show all; 1 -> Attached; 2 -> unattached\n let currentSubject = null\n let currentObject = null\n const objectType = QU('SupportingDocument')\n\n // Find all members of the class which we know about\n // and sort them by an appropriate property. @@ Move to library\n //\n\n const getSortKeySimple = function (_c) {\n const uriMap = {\n 'http://www.w3.org/2005/01/wf/flow#Task': 'http://purl.org/dc/elements/1.1/created',\n 'http://www.w3.org/ns/pim/trip#Trip': 'http://www.w3.org/2002/12/cal/ical#dtstart',\n 'http://www.w3.org/2000/10/swap/pim/qif#Transaction': 'http://www.w3.org/2000/10/swap/pim/qif#date',\n 'http://www.w3.org/2000/10/swap/pim/qif#SupportingDocument': 'http://purl.org/dc/elements/1.1/date'\n }\n const uri = uriMap[subject.uri]\n return uri ? kb.sym(uri) : kb.any(subject, UI.ns.ui('sortBy'))\n }\n\n const getSortKey = function (c) {\n let k = getSortKeySimple(c.uri)\n if (k) return k\n const sup = kb.findSuperClassesNT(c)\n for (const cl in sup) {\n // note unordered -- could be closest first\n k = getSortKeySimple(kb.fromNT(cl).uri)\n if (k) return k\n }\n return undefined // failure\n }\n\n const getMembersAndSort = function (subject) {\n const sortBy = getSortKey(subject)\n let u, x, key\n const uriHash = kb.findMemberURIs(subject)\n const pairs = []\n const subjects = []\n for (u in uriHash) {\n // @@ TODO: Write away the need for exception on next line\n \n if (uriHash.hasOwnProperty(u)) {\n x = kb.sym(u)\n if (sortBy) {\n key = kb.any(x, sortBy)\n if (!key) {\n // complain(\"No key \"+key+\" sortby \"+sortBy+\" for \"+x)\n key = '8888-12-31'\n } else {\n key = key.value\n }\n } else {\n complain('No sortby ' + sortBy + ' for ' + x)\n key = '9999-12-31'\n }\n // key = (sortBy && kb.any(x, sortBy)) || kb.literal(\"9999-12-31\") // Undated appear future\n // if (!key) complain(\"Sort: '\"+key+\"' No \"+sortBy+\" for \"+x) // Assume just not in this year\n pairs.push([key, x])\n }\n }\n pairs.sort()\n pairs.reverse() // @@ Descending order .. made a toggle?\n for (let i = 0; i < pairs.length; i++) {\n subjects.push(pairs[i][1])\n }\n return subjects\n }\n\n // Set up a triage of many class members against documents or just one\n if (\n subject.uri === 'http://www.w3.org/ns/pim/trip#Trip' ||\n QU('Transaction') in kb.findSuperClassesNT(subject)\n // subject.uri == 'http://www.w3.org/2000/10/swap/pim/qif#Transaction'\n ) {\n multi = true\n subjects = getMembersAndSort(subject)\n } else {\n currentSubject = subject\n currentMode = 1 // Show attached only.\n subjects = [subject]\n multi = false\n }\n\n // var store = findStore(kb, subject)\n // if (!store) complain(\"There is no annotation store for: \"+subject.uri)\n\n // var objects = kb.each(undefined, ns.rdf('type'), range)\n const objects = getMembersAndSort(range)\n if (!objects) complain('objects:' + objects.length)\n\n const deselectObject = function () {\n currentObject = null\n preview.innerHTML = ''\n }\n\n const showFiltered = function (mode) {\n const filtered = mode === 0 ? objects : getFiltered()\n // eslint-enable\n UI.widgets.selectorPanelRefresh(\n objectList,\n dom,\n kb,\n objectType,\n predicate,\n true,\n filtered,\n options,\n showObject,\n linkClicked\n )\n if (filtered.length === 1) {\n currentObject = filtered[0]\n showObject(currentObject, null, true) // @@ (Sure?) if only one select it.\n } else {\n deselectObject()\n }\n\n function getFiltered () {\n return mode === 1\n ? currentSubject === null\n ? objects.filter(y => !!kb.holds(undefined, predicate, y))\n : objects.filter(y => !!kb.holds(currentSubject, predicate, y))\n : objects.filter(y => kb.each(undefined, predicate, y).length === 0)\n }\n }\n\n const setAttachment = function (x, y, value, refresh) {\n if (kb.holds(x, predicate, y) === value) return\n const verb = value ? 'attach' : 'detach'\n // complain(\"Info: starting to \"+verb+\" \" + y.uri + \" to \"+x.uri+ \":\\n\")\n const linkDone3 = function (uri, ok, body) {\n if (ok) {\n // complain(\"Success \"+verb+\" \"+y.uri+\" to \"+x.uri+ \":\\n\"+ body)\n refresh()\n } else {\n complain(\n 'Error: Unable to ' +\n verb +\n ' ' +\n y.uri +\n ' to ' +\n x.uri +\n ':\\n' +\n body\n )\n }\n }\n\n const store = findStore(kb, x)\n if (!store) {\n complain('There is no annotation store for: ' + x.uri)\n } else {\n const sts = [$rdf.st(x, predicate, y, store)]\n if (value) {\n kb.updater.update([], sts, linkDone3)\n } else {\n kb.updater.update(sts, [], linkDone3)\n }\n }\n }\n\n const linkClicked = function (x, event, inverse, refresh) {\n let s, o\n if (inverse) {\n // Objectlist\n if (!currentSubject) {\n complain('No subject for the link has been selected')\n return\n } else {\n s = currentSubject\n o = x\n }\n } else {\n // Subjectlist\n if (!currentObject) {\n complain('No object for the link has been selected')\n return\n } else {\n s = x\n o = currentObject\n }\n }\n setAttachment(s, o, !kb.holds(s, predicate, o), refresh) // @@ toggle\n }\n\n // When you click on a subject, filter the objects connected to the subject in Mode 1\n const showSubject = function (x, event, selected) {\n if (selected) {\n currentSubject = x\n } else {\n currentSubject = null\n if (currentMode === 1) deselectObject()\n } // If all are displayed, refresh would just annoy:\n if (currentMode !== 0) showFiltered(currentMode) // Refresh the objects\n }\n\n if (multi) {\n const subjectList = UI.widgets.selectorPanel(\n dom,\n kb,\n subject,\n predicate,\n false,\n subjects,\n options,\n showSubject,\n linkClicked\n )\n subjectList.setAttribute(\n 'style',\n 'background-color: white; width: 25em; height: 100%; padding: 0 em; overflow:scroll; float:left'\n )\n div.appendChild(subjectList)\n }\n\n const showObject = function (x, event, selected) {\n if (!selected) {\n deselectObject()\n preview.innerHTML = '' // Clean out what is there\n // complain(\"Show object \"+x.uri)\n return\n }\n currentObject = x\n try {\n /*\n var dispalyable = function (kb, x) {\n var cts = kb.fetcher.getHeader(x, 'content-type')\n if (cts) {\n var displayables = ['text/html', 'image/png', 'application/pdf']\n for (var j = 0; j < cts.length; j++) {\n for (var k = 0; k < displayables.length; k++) {\n if (cts[j].indexOf(displayables[k]) >= 0) {\n return true\n }\n }\n }\n }\n return false\n }\n */\n preview.innerHTML = 'Loading ....'\n if (x.uri) {\n kb.fetcher\n .load(x.uri)\n .then(() => {\n const outliner = context.getOutliner(dom)\n const display = outliner.propertyTable(x) // ,table, pane\n preview.innerHTML = ''\n preview.appendChild(display)\n })\n .catch(err => {\n preview.textContent = 'Error loading ' + x.uri + ': ' + err\n })\n }\n /*\n if (dispalyable(kb, x) || x.uri.slice(-4) == \".pdf\" || x.uri.slice(-4) == \".png\" || x.uri.slice(-5) == \".html\" ||\n x.uri.slice(-5) == \".jpeg\") { // @@@@@@ MAJOR KLUDGE! use metadata after HEAD\n preview.innerHTML = '<iframe height=\"100%\" width=\"100%\"src=\"'\n + x.uri + '\">' + x.uri + '</iframe>'\n } else {\n }\n */\n } catch (e) {\n preview.innerHTML =\n '<span style=\"background-color: pink;\">' + 'Error:' + e + '</span>' // @@ enc\n }\n }\n\n div.setAttribute(\n 'style',\n 'background-color: white; width:40cm; height:20cm;'\n )\n\n const headerButtons = function (dom, labels, intial, callback) {\n const head = dom.createElement('table')\n let current = intial\n head.setAttribute(\n 'style',\n 'float: left; width: 30em; padding: 0.5em; height: 1.5em; background-color: #ddd; color: #444; font-weight: bold'\n )\n const tr = dom.createElement('tr')\n const style0 = 'border-radius: 0.6em; text-align: center;'\n const style1 = style0 + 'background-color: #ccc; color: black;'\n head.appendChild(tr)\n const setStyles = function () {\n for (i = 0; i < labels.length; i++) {\n buttons[i].setAttribute('style', i === current ? style1 : style0)\n }\n }\n let i, b\n const buttons = []\n for (i = 0; i < labels.length; i++) {\n b = buttons[i] = dom.createElement('td')\n b.textContent = labels[i]\n tr.appendChild(buttons[i])\n const listen = function (b, i) {\n b.addEventListener('click', function (_e) {\n current = i\n setStyles()\n callback(i)\n })\n }\n listen(b, i)\n }\n setStyles()\n return head\n }\n\n const setMode = function (mode) {\n if (mode !== currentMode) {\n currentMode = mode\n deselectObject()\n showFiltered(mode)\n }\n }\n\n const wrapper = dom.createElement('div')\n wrapper.setAttribute(\n 'style',\n ' width: 30em; height: 100%; padding: 0em; float:left;'\n )\n // wrapper.appendChild(head)\n div.appendChild(wrapper)\n wrapper.appendChild(\n headerButtons(\n dom,\n ['all', 'attached', 'not attached'],\n currentMode,\n setMode\n )\n )\n\n const objectList = UI.widgets.selectorPanel(\n dom,\n kb,\n objectType,\n predicate,\n true,\n objects,\n options,\n showObject,\n linkClicked\n )\n objectList.setAttribute(\n 'style',\n 'background-color: #ffe; width: 30em; height: 100%; padding: 0em; overflow:scroll;'\n ) // float:left\n wrapper.appendChild(objectList)\n\n // objectList.insertBefore(head, objectList.firstChild)\n\n const preview = dom.createElement('div')\n preview.setAttribute(\n 'style',\n /* background-color: black; */ 'padding: 0em; margin: 0; height: 100%; overflow:scroll;'\n )\n div.appendChild(preview)\n showFiltered(currentMode)\n\n if (subjects.length > 0 && multi) {\n const stores = {}\n for (let k = 0; k < subjects.length; k++) {\n const store = findStore(kb, subjects[k])\n if (store) stores[store.uri] = subjects[k]\n // if (!store) complain(\"No store for \"+subjects[k].uri)\n }\n for (const storeURI in stores) {\n // var store = findStore(kb,subjects[subjectList.length-1])\n const store = kb.sym(storeURI)\n const mintBox = dom.createElement('div')\n mintBox.setAttribute(\n 'style',\n 'clear: left; width: 20em; margin-top:2em; background-color:#ccc; border-radius: 1em; padding: 1em; font-weight: bold;'\n )\n mintBox.textContent = '+ New ' + UI.utils.label(subject)\n\n mintBox.textContent += ' in ' + UI.utils.label(store)\n const storeLab = dom.createElement('span')\n storeLab.setAttribute(\n 'style',\n 'font-weight: normal; font-size: 80%; color: #777;'\n )\n storeLab.textContent = storeURI\n mintBox.appendChild(dom.createElement('br'))\n mintBox.appendChild(storeLab)\n /*\n var mintButton = dom.createElement('img')\n mintBox.appendChild(mintButton)\n mintButton.setAttribute('src', ...); @@ Invokes master handler\n */\n mintBox.addEventListener(\n 'click',\n function (_event) {\n const thisForm = UI.widgets.promptForNew(\n dom,\n kb,\n subject,\n predicate,\n subject,\n null,\n store,\n function (ok, _body) {\n if (!ok) {\n // callback(ok, body); // @@ if ok, need some form of refresh of the select for the new thing\n } else {\n // Refresh @@\n }\n }\n )\n try {\n div.insertBefore(thisForm, mintBox.nextSibling) // Sigh no insertAfter\n } catch (e) {\n div.appendChild(thisForm)\n }\n // var newObject = thisForm.AJAR_subject\n },\n false\n )\n div.appendChild(mintBox)\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} // pane object\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
package/lib/audio/audioPane.js
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
|
-
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
11
|
-
/* Single audio play Pane
|
|
12
|
-
**
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
var ns = UI.ns;
|
|
16
|
-
var _default = exports["default"] = {
|
|
17
|
-
icon: UI.icons.iconBase + 'noun_534313.svg',
|
|
18
|
-
name: 'audio',
|
|
19
|
-
// Does the subject deserve an audio play pane?
|
|
20
|
-
label: function label(subject, context) {
|
|
21
|
-
var kb = context.session.store;
|
|
22
|
-
var typeURIs = kb.findTypeURIs(subject);
|
|
23
|
-
var prefix = $rdf.Util.mediaTypeClass('audio/*').uri.split('*')[0];
|
|
24
|
-
for (var t in typeURIs) {
|
|
25
|
-
if (t.startsWith(prefix)) return 'Play audio';
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
},
|
|
29
|
-
render: function render(subject, context) {
|
|
30
|
-
var kb = context.session.store;
|
|
31
|
-
var dom = context.dom;
|
|
32
|
-
var options = {
|
|
33
|
-
autoplay: false,
|
|
34
|
-
chain: true,
|
|
35
|
-
chainAlbums: true,
|
|
36
|
-
loop: false
|
|
37
|
-
};
|
|
38
|
-
var removeExtension = function removeExtension(str) {
|
|
39
|
-
var dot = str.lastIndexOf('.');
|
|
40
|
-
if (dot < 0) return str; // if any
|
|
41
|
-
var slash = str.lastIndexOf('/');
|
|
42
|
-
if (dot < slash) return str;
|
|
43
|
-
return str.slice(0, dot);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// True if there is another file like song.mp3 when this is "song 1.mp3"
|
|
47
|
-
// or this is song.m4a
|
|
48
|
-
//
|
|
49
|
-
var looksRedundant = function looksRedundant(x) {
|
|
50
|
-
var folder = kb.any(undefined, ns.ldp('contains'), x);
|
|
51
|
-
if (!folder) return false;
|
|
52
|
-
var contents = kb.each(folder, ns.ldp('contains'));
|
|
53
|
-
if (contents.length < 2) return false;
|
|
54
|
-
var thisName = x.uri;
|
|
55
|
-
for (var k = 0; k < contents.length; k++) {
|
|
56
|
-
var otherName = contents[k].uri;
|
|
57
|
-
if (thisName.length > otherName.length && thisName.startsWith(removeExtension(otherName))) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
if (thisName.endsWith('.m4a') && otherName.endsWith('.mp3') && removeExtension(thisName) === removeExtension(otherName)) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return false;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
// Alternative methods could include:
|
|
68
|
-
// Accesing metadata in the audio contol, or paring the audio file
|
|
69
|
-
var guessNames = function guessNames(x) {
|
|
70
|
-
var a = x.uri.split('/').slice(-3); // Hope artist, album, track
|
|
71
|
-
var decode = function decode(str) {
|
|
72
|
-
try {
|
|
73
|
-
return decodeURIComponent(str);
|
|
74
|
-
} catch (e) {
|
|
75
|
-
return str;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
artistRow.textContent = decode(a[0]);
|
|
79
|
-
albumRow.textContent = decode(a[1]);
|
|
80
|
-
trackRow.textContent = decode(removeExtension(a[2]));
|
|
81
|
-
};
|
|
82
|
-
var _moveOn = function moveOn(current, level) {
|
|
83
|
-
return new Promise(function (resolve) {
|
|
84
|
-
level = level || 0;
|
|
85
|
-
if (!options.chain) return resolve(null);
|
|
86
|
-
// Ideally navigate graph else cheat with URI munging:
|
|
87
|
-
var folder = kb.any(undefined, ns.ldp('contains'), current) || current.dir();
|
|
88
|
-
if (!folder) return resolve(null);
|
|
89
|
-
kb.fetcher.load(folder).then(function (_xhr) {
|
|
90
|
-
var contents = kb.each(folder, ns.ldp('contains')); // @@ load if not loaded
|
|
91
|
-
// if (contents.length < 2) return resolve(null) NO might move on from 1-track album
|
|
92
|
-
var j;
|
|
93
|
-
contents.sort(); // sort by URI which hopefully will get tracks in order
|
|
94
|
-
for (var i = 0; i < contents.length; i++) {
|
|
95
|
-
if (current.uri === contents[i].uri) {
|
|
96
|
-
j = (i + 1) % contents.length;
|
|
97
|
-
if (j === 0) {
|
|
98
|
-
if (!options.chainAlbums) {
|
|
99
|
-
if (options.loop) {
|
|
100
|
-
return resolve(contents[j]);
|
|
101
|
-
}
|
|
102
|
-
return resolve(null); // No more music needed
|
|
103
|
-
} else {
|
|
104
|
-
// chain albums
|
|
105
|
-
if (level === 1 || !options.chainAlbums) return resolve(null); // limit of navigating treee
|
|
106
|
-
_moveOn(folder, level + 1).then(function (folder2) {
|
|
107
|
-
if (folder2) {
|
|
108
|
-
kb.fetcher.load(folder2).then(function (_xhr) {
|
|
109
|
-
var contents = kb.each(folder2, ns.ldp('contains'));
|
|
110
|
-
if (contents.length === 0) return resolve(null);
|
|
111
|
-
contents.sort();
|
|
112
|
-
console.log('New Album: ' + folder2);
|
|
113
|
-
return resolve(contents[0]); // Start off new album
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
return resolve(contents[j]);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
} // for
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
var endedListener = function endedListener(event) {
|
|
127
|
-
var current = kb.sym(event.target.getAttribute('src'));
|
|
128
|
-
if (!options.chain) return;
|
|
129
|
-
var _tryNext = function tryNext(cur) {
|
|
130
|
-
var current = cur;
|
|
131
|
-
_moveOn(current).then(function (next) {
|
|
132
|
-
if (!next) {
|
|
133
|
-
console.log('No successor to ' + current);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
if (!looksRedundant(next)) {
|
|
137
|
-
console.log('Moving on to ' + next);
|
|
138
|
-
guessNames(next);
|
|
139
|
-
controlRow.appendChild(audioControl(next, true)); // Force autoplay
|
|
140
|
-
controlRow.removeChild(event.target);
|
|
141
|
-
} else {
|
|
142
|
-
console.log('Ignoring redundant ' + next);
|
|
143
|
-
_tryNext(next);
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
};
|
|
147
|
-
_tryNext(current);
|
|
148
|
-
};
|
|
149
|
-
var audioControl = function audioControl(song, autoplay) {
|
|
150
|
-
var audio = dom.createElement('audio');
|
|
151
|
-
audio.setAttribute('controls', 'yes');
|
|
152
|
-
// get audio with authenticated fetch
|
|
153
|
-
kb.fetcher._fetch(song.uri).then(function (response) {
|
|
154
|
-
return response.blob();
|
|
155
|
-
}).then(function (myBlob) {
|
|
156
|
-
var objectURL = URL.createObjectURL(myBlob);
|
|
157
|
-
audio.setAttribute('src', objectURL); // w640 h480 //
|
|
158
|
-
});
|
|
159
|
-
if (autoplay) {
|
|
160
|
-
audio.setAttribute('autoplay', 'autoplay'); // Make this a personal preference
|
|
161
|
-
}
|
|
162
|
-
audio.addEventListener('ended', endedListener, false);
|
|
163
|
-
return audio;
|
|
164
|
-
};
|
|
165
|
-
var div = dom.createElement('div');
|
|
166
|
-
var table = div.appendChild(dom.createElement('table'));
|
|
167
|
-
var labelStyle = 'padding: 0.3em; color:white; background-color: black;';
|
|
168
|
-
var artistRow = table.appendChild(dom.createElement('tr'));
|
|
169
|
-
artistRow.style.cssText = labelStyle;
|
|
170
|
-
var albumRow = table.appendChild(dom.createElement('tr'));
|
|
171
|
-
albumRow.style.cssText = labelStyle;
|
|
172
|
-
var trackRow = table.appendChild(dom.createElement('tr'));
|
|
173
|
-
trackRow.style.cssText = labelStyle;
|
|
174
|
-
var controlRow = table.appendChild(dom.createElement('tr'));
|
|
175
|
-
guessNames(subject);
|
|
176
|
-
controlRow.appendChild(audioControl(subject, options.autoplay));
|
|
177
|
-
if (!kb.holds(undefined, ns.ldp('contains'), subject) && subject.dir()) {
|
|
178
|
-
kb.fetcher.load(subject.dir()); // Prefetch enclosing @@ or playlist
|
|
179
|
-
}
|
|
180
|
-
return div;
|
|
181
|
-
}
|
|
182
|
-
}; // ends
|
|
183
|
-
//# sourceMappingURL=audioPane.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audioPane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","_default","exports","icon","icons","iconBase","name","label","subject","context","kb","session","store","typeURIs","findTypeURIs","prefix","Util","mediaTypeClass","uri","split","startsWith","render","dom","options","autoplay","chain","chainAlbums","loop","removeExtension","str","dot","lastIndexOf","slash","slice","looksRedundant","x","folder","any","undefined","ldp","contents","each","length","thisName","k","otherName","endsWith","guessNames","a","decode","decodeURIComponent","artistRow","textContent","albumRow","trackRow","moveOn","current","level","Promise","resolve","dir","fetcher","load","then","_xhr","j","sort","folder2","console","log","endedListener","event","sym","target","getAttribute","tryNext","cur","next","controlRow","appendChild","audioControl","removeChild","song","audio","createElement","setAttribute","_fetch","response","blob","myBlob","objectURL","URL","createObjectURL","addEventListener","div","table","labelStyle","style","cssText","holds"],"sources":["../../src/audio/audioPane.js"],"sourcesContent":["/* Single audio play Pane\n **\n */\n import * as UI from 'solid-ui'\n import * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_534313.svg',\n\n name: 'audio',\n\n // Does the subject deserve an audio play pane?\n label: function (subject, context) {\n const kb = context.session.store\n const typeURIs = kb.findTypeURIs(subject)\n\n const prefix = $rdf.Util.mediaTypeClass('audio/*').uri.split('*')[0]\n for (const t in typeURIs) {\n if (t.startsWith(prefix)) return 'Play audio'\n }\n return null\n },\n\n render: function (subject, context) {\n const kb = context.session.store\n const dom = context.dom\n const options = {\n autoplay: false,\n chain: true,\n chainAlbums: true,\n loop: false\n }\n\n const removeExtension = function (str) {\n const dot = str.lastIndexOf('.')\n if (dot < 0) return str // if any\n const slash = str.lastIndexOf('/')\n if (dot < slash) return str\n return str.slice(0, dot)\n }\n\n // True if there is another file like song.mp3 when this is \"song 1.mp3\"\n // or this is song.m4a\n //\n const looksRedundant = function (x) {\n const folder = kb.any(undefined, ns.ldp('contains'), x)\n if (!folder) return false\n const contents = kb.each(folder, ns.ldp('contains'))\n if (contents.length < 2) return false\n const thisName = x.uri\n for (let k = 0; k < contents.length; k++) {\n const otherName = contents[k].uri\n if (\n thisName.length > otherName.length &&\n thisName.startsWith(removeExtension(otherName))\n ) {\n return true\n }\n if (\n thisName.endsWith('.m4a') &&\n otherName.endsWith('.mp3') &&\n removeExtension(thisName) === removeExtension(otherName)\n ) {\n return true\n }\n }\n return false\n }\n\n // Alternative methods could include:\n // Accesing metadata in the audio contol, or paring the audio file\n const guessNames = function (x) {\n const a = x.uri.split('/').slice(-3) // Hope artist, album, track\n const decode = function (str) {\n try {\n return decodeURIComponent(str)\n } catch (e) {\n return str\n }\n }\n artistRow.textContent = decode(a[0])\n albumRow.textContent = decode(a[1])\n trackRow.textContent = decode(removeExtension(a[2]))\n }\n\n const moveOn = function (current, level) {\n return new Promise(function (resolve) {\n level = level || 0\n if (!options.chain) return resolve(null)\n // Ideally navigate graph else cheat with URI munging:\n const folder =\n kb.any(undefined, ns.ldp('contains'), current) || current.dir()\n if (!folder) return resolve(null)\n kb.fetcher.load(folder).then(function (_xhr) {\n const contents = kb.each(folder, ns.ldp('contains')) // @@ load if not loaded\n // if (contents.length < 2) return resolve(null) NO might move on from 1-track album\n let j\n contents.sort() // sort by URI which hopefully will get tracks in order\n for (let i = 0; i < contents.length; i++) {\n if (current.uri === contents[i].uri) {\n j = (i + 1) % contents.length\n if (j === 0) {\n if (!options.chainAlbums) {\n if (options.loop) {\n return resolve(contents[j])\n }\n return resolve(null) // No more music needed\n } else {\n // chain albums\n if (level === 1 || !options.chainAlbums) return resolve(null) // limit of navigating treee\n moveOn(folder, level + 1).then(function (folder2) {\n if (folder2) {\n kb.fetcher.load(folder2).then(function (_xhr) {\n const contents = kb.each(folder2, ns.ldp('contains'))\n if (contents.length === 0) return resolve(null)\n contents.sort()\n console.log('New Album: ' + folder2)\n return resolve(contents[0]) // Start off new album\n })\n }\n })\n }\n } else {\n return resolve(contents[j])\n }\n }\n } // for\n })\n })\n }\n const endedListener = function (event) {\n const current = kb.sym(event.target.getAttribute('src'))\n if (!options.chain) return\n const tryNext = function (cur) {\n const current = cur\n moveOn(current).then(function (next) {\n if (!next) {\n console.log('No successor to ' + current)\n return\n }\n if (!looksRedundant(next)) {\n console.log('Moving on to ' + next)\n guessNames(next)\n controlRow.appendChild(audioControl(next, true)) // Force autoplay\n controlRow.removeChild(event.target)\n } else {\n console.log('Ignoring redundant ' + next)\n tryNext(next)\n }\n })\n }\n tryNext(current)\n }\n\n const audioControl = function (song, autoplay) {\n const audio = dom.createElement('audio')\n audio.setAttribute('controls', 'yes')\n // get audio with authenticated fetch\n kb.fetcher._fetch(song.uri)\n .then(function(response) {\n return response.blob()\n })\n .then(function(myBlob) {\n const objectURL = URL.createObjectURL(myBlob)\n audio.setAttribute('src', objectURL) // w640 h480 //\n })\n\n if (autoplay) {\n audio.setAttribute('autoplay', 'autoplay') // Make this a personal preference\n }\n audio.addEventListener('ended', endedListener, false)\n return audio\n }\n\n const div = dom.createElement('div')\n const table = div.appendChild(dom.createElement('table'))\n const labelStyle = 'padding: 0.3em; color:white; background-color: black;'\n const artistRow = table.appendChild(dom.createElement('tr'))\n artistRow.style.cssText = labelStyle\n const albumRow = table.appendChild(dom.createElement('tr'))\n albumRow.style.cssText = labelStyle\n const trackRow = table.appendChild(dom.createElement('tr'))\n trackRow.style.cssText = labelStyle\n const controlRow = table.appendChild(dom.createElement('tr'))\n guessNames(subject)\n controlRow.appendChild(audioControl(subject, options.autoplay))\n\n if (!kb.holds(undefined, ns.ldp('contains'), subject) && subject.dir()) {\n kb.fetcher.load(subject.dir()) // Prefetch enclosing @@ or playlist\n }\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
package/lib/classInstancePane.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.classInstancePane = void 0;
|
|
8
|
-
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
|
-
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
11
|
-
/* Class member Pane
|
|
12
|
-
**
|
|
13
|
-
** This outline pane lists the members of a class
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
var ns = UI.ns;
|
|
17
|
-
var classInstancePane = exports.classInstancePane = {
|
|
18
|
-
icon: UI.icons.originalIconBase + 'tango/22-folder-open.png',
|
|
19
|
-
name: 'classInstance',
|
|
20
|
-
// Create a new folder in a Solid system,
|
|
21
|
-
|
|
22
|
-
audience: [ns.solid('PowerUser')],
|
|
23
|
-
label: function label(subject, context) {
|
|
24
|
-
var kb = context.session.store;
|
|
25
|
-
var n = kb.each(undefined, ns.rdf('type'), subject).length;
|
|
26
|
-
if (n > 0) return 'List (' + n + ')'; // Show how many in hover text
|
|
27
|
-
return null; // Suppress pane otherwise
|
|
28
|
-
},
|
|
29
|
-
render: function render(subject, context) {
|
|
30
|
-
var dom = context.dom;
|
|
31
|
-
var outliner = context.getOutliner(dom);
|
|
32
|
-
var kb = context.session.store;
|
|
33
|
-
var complain = function complain(message, color) {
|
|
34
|
-
var pre = dom.createElement('pre');
|
|
35
|
-
pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';');
|
|
36
|
-
div.appendChild(pre);
|
|
37
|
-
pre.appendChild(dom.createTextNode(message));
|
|
38
|
-
};
|
|
39
|
-
var div = dom.createElement('div');
|
|
40
|
-
div.setAttribute('class', 'instancePane');
|
|
41
|
-
div.setAttribute('style', ' border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em ');
|
|
42
|
-
|
|
43
|
-
// If this is a class, look for all both explicit and implicit
|
|
44
|
-
var sts = kb.statementsMatching(undefined, ns.rdf('type'), subject);
|
|
45
|
-
if (sts.length > 0) {
|
|
46
|
-
var already = {};
|
|
47
|
-
var more = [];
|
|
48
|
-
sts.forEach(function (st) {
|
|
49
|
-
already[st.subject.toNT()] = st;
|
|
50
|
-
});
|
|
51
|
-
for (var nt in kb.findMembersNT(subject)) {
|
|
52
|
-
if (!already[nt]) {
|
|
53
|
-
more.push($rdf.st(kb.fromNT(nt), ns.rdf('type'), subject)); // @@ no provenance
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (more.length) {
|
|
57
|
-
complain('There are ' + sts.length + ' explicit and ' + more.length + ' implicit members of ' + UI.utils.label(subject));
|
|
58
|
-
}
|
|
59
|
-
if (subject.sameTerm(ns.rdf('Property'))) {
|
|
60
|
-
// / Do not find all properties used as properties .. unless look at kb index
|
|
61
|
-
} else if (subject.sameTerm(ns.rdfs('Class'))) {
|
|
62
|
-
var uses = kb.statementsMatching(undefined, ns.rdf('type'), undefined);
|
|
63
|
-
var usedTypes = {};
|
|
64
|
-
uses.forEach(function (st) {
|
|
65
|
-
usedTypes[st.object] = st;
|
|
66
|
-
}); // Get unique
|
|
67
|
-
var used = [];
|
|
68
|
-
for (var i in usedTypes) {
|
|
69
|
-
used.push($rdf.st($rdf.sym(i), ns.rdf('type'), ns.rdfs('Class')));
|
|
70
|
-
}
|
|
71
|
-
complain('Total of ' + uses.length + ' type statements and ' + used.length + ' unique types.');
|
|
72
|
-
}
|
|
73
|
-
if (sts.length > 10) {
|
|
74
|
-
var tr = dom.createElement('TR');
|
|
75
|
-
tr.appendChild(dom.createTextNode('' + sts.length));
|
|
76
|
-
// tr.AJAR_statement=sts[i]
|
|
77
|
-
div.appendChild(tr);
|
|
78
|
-
}
|
|
79
|
-
outliner.appendPropertyTRs(div, sts, true, function (_pred) {
|
|
80
|
-
return true;
|
|
81
|
-
});
|
|
82
|
-
if (more.length) {
|
|
83
|
-
complain('Implicit:');
|
|
84
|
-
outliner.appendPropertyTRs(div, more, true, function (_pred) {
|
|
85
|
-
return true;
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return div;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
// ends
|
|
93
|
-
//# sourceMappingURL=classInstancePane.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"classInstancePane.js","names":["UI","_interopRequireWildcard","require","$rdf","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ns","classInstancePane","exports","icon","icons","originalIconBase","name","audience","solid","label","subject","context","kb","session","store","each","undefined","rdf","length","render","dom","outliner","getOutliner","complain","message","color","pre","createElement","setAttribute","div","appendChild","createTextNode","sts","statementsMatching","already","more","forEach","st","toNT","nt","findMembersNT","push","fromNT","utils","sameTerm","rdfs","uses","usedTypes","object","used","sym","tr","appendPropertyTRs","_pred"],"sources":["../src/classInstancePane.js"],"sourcesContent":["/* Class member Pane\n **\n ** This outline pane lists the members of a class\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\n\nconst ns = UI.ns\n\nexport const classInstancePane = {\n icon: UI.icons.originalIconBase + 'tango/22-folder-open.png',\n\n name: 'classInstance',\n\n // Create a new folder in a Solid system,\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n const kb = context.session.store\n const n = kb.each(undefined, ns.rdf('type'), subject).length\n if (n > 0) return 'List (' + n + ')' // Show how many in hover text\n return null // Suppress pane otherwise\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const complain = function complain (message, color) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const div = dom.createElement('div')\n div.setAttribute('class', 'instancePane')\n div.setAttribute(\n 'style',\n ' border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em '\n )\n\n // If this is a class, look for all both explicit and implicit\n const sts = kb.statementsMatching(undefined, ns.rdf('type'), subject)\n if (sts.length > 0) {\n const already = {}\n const more = []\n sts.forEach(st => {\n already[st.subject.toNT()] = st\n })\n for (const nt in kb.findMembersNT(subject)) {\n if (!already[nt]) {\n more.push($rdf.st(kb.fromNT(nt), ns.rdf('type'), subject)) // @@ no provenance\n }\n }\n if (more.length) {\n complain(\n 'There are ' +\n sts.length +\n ' explicit and ' +\n more.length +\n ' implicit members of ' +\n UI.utils.label(subject)\n )\n }\n if (subject.sameTerm(ns.rdf('Property'))) {\n // / Do not find all properties used as properties .. unless look at kb index\n } else if (subject.sameTerm(ns.rdfs('Class'))) {\n const uses = kb.statementsMatching(undefined, ns.rdf('type'), undefined)\n const usedTypes = {}\n uses.forEach(function (st) {\n usedTypes[st.object] = st\n }) // Get unique\n const used = []\n for (const i in usedTypes) {\n used.push($rdf.st($rdf.sym(i), ns.rdf('type'), ns.rdfs('Class')))\n }\n complain(\n 'Total of ' +\n uses.length +\n ' type statements and ' +\n used.length +\n ' unique types.'\n )\n }\n\n if (sts.length > 10) {\n const tr = dom.createElement('TR')\n tr.appendChild(dom.createTextNode('' + sts.length))\n // tr.AJAR_statement=sts[i]\n div.appendChild(tr)\n }\n\n outliner.appendPropertyTRs(div, sts, true, function (_pred) {\n return true\n })\n\n if (more.length) {\n complain('Implicit:')\n outliner.appendPropertyTRs(div, more, true, function (_pred) {\n return true\n })\n }\n }\n\n return div\n }\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|