solid-panes 3.5.35-beta4 → 3.5.36-04ef6314
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 +0 -0
- package/Documentation/conventions.md +18 -1
- package/LICENSE.md +0 -0
- package/README.md +0 -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 +196 -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 +202 -0
- package/dev/index.html +0 -0
- package/dev/loader.ts +0 -0
- package/dev/pane/index.ts +0 -0
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +0 -0
- package/jest.config.js +3 -0
- package/jest.setup.ts +0 -0
- package/lib/RDFXMLPane.js +0 -0
- package/lib/RDFXMLPane.js.map +1 -1
- package/lib/argument/argumentPane.js +0 -0
- package/lib/argument/argumentPane.js.map +1 -1
- package/lib/attach/attachPane.js +0 -0
- package/lib/attach/attachPane.js.map +1 -1
- package/lib/audio/audioPane.js +6 -6
- package/lib/audio/audioPane.js.map +1 -1
- package/lib/classInstancePane.js +0 -0
- package/lib/classInstancePane.js.map +1 -1
- package/lib/dashboard/basicPreferences.d.ts +0 -0
- package/lib/dashboard/basicPreferences.d.ts.map +0 -0
- package/lib/dashboard/basicPreferences.js +7 -7
- package/lib/dashboard/basicPreferences.js.map +1 -1
- package/lib/dashboard/dashboardPane.d.ts +0 -0
- package/lib/dashboard/dashboardPane.d.ts.map +0 -0
- package/lib/dashboard/dashboardPane.js +0 -0
- package/lib/dashboard/dashboardPane.js.map +1 -1
- package/lib/dashboard/homepage.d.ts +0 -0
- package/lib/dashboard/homepage.d.ts.map +0 -0
- package/lib/dashboard/homepage.js +4 -4
- package/lib/dashboard/homepage.js.map +1 -1
- package/lib/dataContentPane.js +0 -0
- package/lib/dataContentPane.js.map +1 -1
- package/lib/defaultPane.js +0 -0
- package/lib/defaultPane.js.map +1 -1
- package/lib/dokieli/dokieliPane.js +3 -2
- package/lib/dokieli/dokieliPane.js.map +1 -1
- package/lib/dokieli/new.js +2 -1
- package/lib/dokieli/new.js.map +1 -1
- package/lib/form/pane.js +2 -2
- package/lib/form/pane.js.map +1 -1
- package/lib/global.d.js +0 -0
- package/lib/global.d.js.map +0 -0
- package/lib/home/homePane.d.ts +0 -0
- package/lib/home/homePane.d.ts.map +0 -0
- package/lib/home/homePane.js +3 -3
- package/lib/home/homePane.js.map +1 -1
- package/lib/humanReadablePane.js +0 -0
- package/lib/humanReadablePane.js.map +1 -1
- package/lib/imagePane.js +0 -0
- package/lib/imagePane.js.map +1 -1
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internal/internalPane.d.ts +0 -0
- package/lib/internal/internalPane.d.ts.map +0 -0
- package/lib/internal/internalPane.js +0 -0
- package/lib/internal/internalPane.js.map +1 -1
- package/lib/mainPage/footer.d.ts +0 -0
- package/lib/mainPage/footer.d.ts.map +0 -0
- package/lib/mainPage/footer.js +0 -0
- package/lib/mainPage/footer.js.map +0 -0
- package/lib/mainPage/header.d.ts +0 -0
- package/lib/mainPage/header.d.ts.map +1 -1
- package/lib/mainPage/header.js +8 -8
- package/lib/mainPage/header.js.map +1 -1
- package/lib/mainPage/index.d.ts +0 -0
- package/lib/mainPage/index.d.ts.map +0 -0
- package/lib/mainPage/index.js +3 -3
- package/lib/mainPage/index.js.map +1 -1
- package/lib/microblogPane/microblogPane.js +0 -0
- package/lib/microblogPane/microblogPane.js.map +1 -1
- package/lib/n3Pane.js +0 -0
- package/lib/n3Pane.js.map +1 -1
- package/lib/outline/context.d.ts +0 -0
- package/lib/outline/context.d.ts.map +0 -0
- package/lib/outline/context.js +0 -0
- package/lib/outline/context.js.map +0 -0
- package/lib/outline/manager.js +24 -28
- package/lib/outline/manager.js.map +1 -1
- 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 +4 -4
- package/lib/outline/manager.test.js.map +1 -1
- package/lib/outline/outlineIcons.js +0 -0
- package/lib/outline/outlineIcons.js.map +0 -0
- package/lib/outline/propertyViews.d.ts +0 -0
- package/lib/outline/propertyViews.d.ts.map +0 -0
- package/lib/outline/propertyViews.js +1 -1
- package/lib/outline/propertyViews.js.map +1 -1
- 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 +1 -0
- package/lib/outline/propertyViews.test.js.map +1 -1
- package/lib/outline/queryByExample.js +0 -0
- package/lib/outline/queryByExample.js.map +0 -0
- package/lib/outline/userInput.js +0 -0
- package/lib/outline/userInput.js.map +1 -1
- package/lib/outline/viewAsImage.d.ts +0 -0
- package/lib/outline/viewAsImage.d.ts.map +0 -0
- package/lib/outline/viewAsImage.js +0 -0
- package/lib/outline/viewAsImage.js.map +0 -0
- package/lib/outline/viewAsMbox.d.ts +0 -0
- package/lib/outline/viewAsMbox.d.ts.map +0 -0
- package/lib/outline/viewAsMbox.js +0 -0
- package/lib/outline/viewAsMbox.js.map +0 -0
- package/lib/pad/padPane.d.ts +0 -0
- package/lib/pad/padPane.d.ts.map +0 -0
- package/lib/pad/padPane.js +0 -0
- package/lib/pad/padPane.js.map +1 -1
- package/lib/playlist/playlistPane.js +0 -0
- package/lib/playlist/playlistPane.js.map +1 -1
- package/lib/registerPanes.js +8 -3
- package/lib/registerPanes.js.map +1 -1
- package/lib/schedule/formsForSchedule.js +0 -0
- package/lib/schedule/formsForSchedule.js.map +0 -0
- package/lib/schedule/schedulePane.js +1 -1
- package/lib/schedule/schedulePane.js.map +1 -1
- package/lib/sharing/sharingPane.d.ts +0 -0
- package/lib/sharing/sharingPane.d.ts.map +0 -0
- package/lib/sharing/sharingPane.js +0 -0
- package/lib/sharing/sharingPane.js.map +1 -1
- package/lib/slideshow/slideshowPane.js +1 -1
- package/lib/slideshow/slideshowPane.js.map +1 -1
- package/lib/socialPane.js +0 -0
- package/lib/socialPane.js.map +1 -1
- package/lib/tabbed/tabbedPane.d.ts +0 -0
- package/lib/tabbed/tabbedPane.d.ts.map +0 -0
- package/lib/tabbed/tabbedPane.js +3 -3
- package/lib/tabbed/tabbedPane.js.map +1 -1
- package/lib/tableViewPane.js +0 -0
- package/lib/tableViewPane.js.map +1 -1
- package/lib/test-import-export/common.js +0 -0
- package/lib/test-import-export/common.js.map +0 -0
- package/lib/test-import-export/edit-importer.js +0 -0
- package/lib/test-import-export/edit-importer.js.map +0 -0
- package/lib/test-import-export/testImportExport.js +0 -0
- package/lib/test-import-export/testImportExport.js.map +0 -0
- package/lib/transaction/pane.js +0 -0
- package/lib/transaction/pane.js.map +1 -1
- package/lib/transaction/period.js +0 -0
- package/lib/transaction/period.js.map +1 -1
- package/lib/trip/tripPane.js +0 -0
- package/lib/trip/tripPane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.dom.d.ts +0 -0
- package/lib/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- package/lib/trustedApplications/trustedApplications.dom.js +1 -1
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
- 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 +1 -1
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.utils.d.ts +0 -0
- package/lib/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- package/lib/trustedApplications/trustedApplications.utils.js +5 -5
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.view.d.ts +0 -0
- package/lib/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- package/lib/trustedApplications/trustedApplications.view.js +3 -3
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
- package/lib/types.d.ts +0 -0
- package/lib/types.d.ts.map +0 -0
- package/lib/types.js +0 -0
- package/lib/types.js.map +0 -0
- package/lib/ui/pane.js +0 -0
- package/lib/ui/pane.js.map +1 -1
- package/lib/versionInfo.d.ts +10 -17
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +17 -24
- package/lib/versionInfo.js.map +1 -1
- package/lib/video/videoPane.js +0 -0
- package/lib/video/videoPane.js.map +1 -1
- package/package.json +13 -12
- package/src/RDFXMLPane.js +0 -0
- package/src/argument/argumentPane.js +0 -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 +0 -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 +0 -0
- package/src/chatPreferencesForm.ttl +0 -0
- package/src/classInstancePane.js +0 -0
- package/src/dashboard/basicPreferences.ts +0 -0
- package/src/dashboard/dashboardPane.ts +0 -0
- package/src/dashboard/homepage.ts +0 -0
- package/src/dashboard/languages/codes.html +0 -0
- package/src/dashboard/languages/codes.xml +0 -0
- package/src/dashboard/languages/codes2.txt +0 -0
- package/src/dashboard/languages/foo +0 -0
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +0 -0
- package/src/dashboard/ontologyData.ttl +0 -0
- package/src/dashboard/preferencesFormText.ttl +0 -0
- package/src/dataContentPane.js +0 -0
- package/src/defaultPane.js +0 -0
- package/src/dokieli/Makefile +0 -0
- package/src/dokieli/dokieliPane.js +1 -1
- package/src/dokieli/new.html +0 -0
- package/src/dokieli/new.js +5 -4
- 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 -0
- package/src/form/psuedocode-notes.txt +0 -0
- package/src/global.d.ts +0 -0
- package/src/home/homePane.ts +0 -0
- package/src/humanReadablePane.js +0 -0
- package/src/imagePane.js +0 -0
- package/src/index.ts +0 -0
- package/src/internal/internalPane.ts +0 -0
- package/src/mainPage/footer.ts +0 -0
- package/src/mainPage/header.ts +6 -3
- package/src/mainPage/index.ts +0 -0
- package/src/meeting/Makefile +0 -0
- package/src/meeting/test/meeting1/Actions/actions.ttl +0 -0
- package/src/meeting/test/meeting1/Actions/config.ttl +0 -0
- package/src/meeting/test/meeting1/Actions/state.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +0 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +0 -0
- package/src/meeting/test/meeting1/Schedule/index.html +0 -0
- package/src/meeting/test/meeting1/Schedule/index.html.acl +0 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl +0 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +0 -0
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +0 -0
- package/src/meeting/test/meeting1/chat/chat.ttl +0 -0
- package/src/meeting/test/meeting1/details.ttl +0 -0
- package/src/meeting/test/meeting1/pad/pad.ttl +0 -0
- package/src/microblogPane/mbStyle.css +0 -0
- package/src/microblogPane/microblogPane.js +0 -0
- package/src/n3Pane.js +0 -0
- package/src/outline/context.ts +0 -0
- package/src/outline/manager.js +6 -10
- package/src/outline/manager.test.ts +0 -0
- package/src/outline/outlineIcons.js +0 -0
- package/src/outline/propertyViews.test.ts +2 -1
- package/src/outline/propertyViews.ts +0 -0
- package/src/outline/queryByExample.js +0 -0
- package/src/outline/userInput.js +0 -0
- package/src/outline/viewAsImage.ts +0 -0
- package/src/outline/viewAsMbox.ts +0 -0
- package/src/pad/images/ColourOff.ai +0 -0
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +0 -0
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +0 -0
- package/src/playlist/playlistPane.js +0 -0
- package/src/registerPanes.js +7 -2
- package/src/schedule/Makefile +0 -0
- package/src/schedule/formsForSchedule.js +0 -0
- package/src/schedule/formsForSchedule.ttl +0 -0
- package/src/schedule/schedulePane.js +0 -0
- package/src/sharing/sharingPane.ts +0 -0
- package/src/slideshow/slideshowPane.js +0 -0
- package/src/socialPane.js +0 -0
- package/src/style/tabbedtab.css +0 -0
- package/src/tabbed/tabbedPane.ts +0 -0
- package/src/tableViewPane.js +0 -0
- package/src/test-import-export/common.js +0 -0
- package/src/test-import-export/edit-importer.js +0 -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 +0 -0
- package/src/transaction/period.js +0 -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 +0 -0
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +0 -0
- package/src/trustedApplications/trustedApplications.dom.ts +0 -0
- package/src/trustedApplications/trustedApplications.test.ts +0 -0
- package/src/trustedApplications/trustedApplications.utils.ts +0 -0
- package/src/trustedApplications/trustedApplications.view.ts +0 -0
- package/src/types.ts +0 -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 +0 -0
- package/src/versionInfo.ts +17 -24
- package/src/video/videoPane.js +0 -0
- package/timestamp.sh +0 -0
- package/travis/bumpversion.js +0 -0
- package/tsconfig.json +7 -1
- package/typings/raw-loader.d.ts +0 -0
- package/typings/solid-namespace/index.d.ts +0 -0
- package/webpack.config.js +0 -0
- package/.babelrc +0 -16
- package/.eslintignore +0 -3
- package/.eslintrc +0 -26
- package/.github/workflows/ci.yml +0 -82
- package/.nvmrc +0 -1
- package/lib/outline/licenseOptions.js +0 -80
- package/lib/outline/licenseOptions.js.map +0 -1
- package/lib/profile/editProfile.view.d.ts +0 -13
- package/lib/profile/editProfile.view.d.ts.map +0 -1
- package/lib/profile/editProfile.view.js +0 -135
- package/lib/profile/editProfile.view.js.map +0 -1
- package/lib/profile/profile.dom.d.ts +0 -4
- package/lib/profile/profile.dom.d.ts.map +0 -1
- package/lib/profile/profile.dom.js +0 -18
- package/lib/profile/profile.dom.js.map +0 -1
- package/src/outline/licenseOptions.js +0 -105
- package/src/profile/editProfile.view.ts +0 -164
- package/src/profile/profile.dom.ts +0 -20
- package/src/profile/profileFormText.ttl +0 -386
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/lib/pad/padPane.d.ts
CHANGED
|
File without changes
|
package/lib/pad/padPane.d.ts.map
CHANGED
|
File without changes
|
package/lib/pad/padPane.js
CHANGED
|
File without changes
|
package/lib/pad/padPane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"padPane.js","names":["_solidUi","require","_solidLogic","_rdflib","paneDef","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","t","session","store","findTypeURIs","mintClass","pad","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newPadDoc","doc","add","rdf","dc","Date","chunk","sioc","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","render","paneOptions","dom","complainIfBad","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","foaf","serialize","setACL","callbackFunction","aclDoc","any","fetcher","aclText","webOperation","data","contentType","then","err","load","newInstanceButton","button","createElement","textContent","addEventListener","showBootstrap","spawnArea","thisInstance","container","noun","appDetails","login","newAppInstance","workspace","initializeNewInstanceInWorkspace","NamedNode","p","baseField","setAttribute","size","autocomplete","_e","value","slice","initializeNewInstanceAtBase","ws","space","split","log","error","appPathSegment","now","getTime","here","base","newIndexDoc","toBeCopied","local","agenda","f","length","item","fun","copyItem","push","newURI","console","setThatACL","shift","webCopy","authn","checkUser","webId","createNewPadDataFile","PAD","padDoc","_uri2","body","innerHTML","showResults","exists","currentUser","title","vcard","solo","window","document","options","padEle","notepad","naviMain","partipationTarget","meeting","manageParticipation","naviMiddle2","setRefreshHandler","reloadAndSync","loadPadData","nowOrWhenFetched","response","status","holds","wf","naviMiddle3","structure","naviLoginoutTR","naviTop","naviMiddle","naviMiddle1","naviStatus","statusArea","naviSpawn","naviMenu","timingArea","_default","exports"],"sources":["../../src/pad/padPane.ts"],"sourcesContent":["import { icons, ns, pad, widgets, login } from 'solid-ui'\nimport { authn, AppDetails } from 'solid-logic'\nimport { graph, log, NamedNode, Namespace, sym, serialize, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\n/* pad Pane\n **\n */\n\nconst paneDef: PaneDefinition = {\n // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',\n icon: icons.iconBase + 'noun_79217.svg',\n\n name: 'pad',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an pad pane?\n label: function (subject, context) {\n const t = (context.session.store as Store).findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/pad#Notepad']) {\n return 'pad'\n }\n return null // No under other circumstances\n },\n\n mintClass: ns.pad('Notepad'),\n\n mintNew: function (context, newPaneOptions: any) {\n const store = context.session.store as Store\n const updater = store.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('notepad mintNew: Invalid userid')\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n store.sym(newPaneOptions.newBase + 'index.ttl#this'))\n // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');\n const newPadDoc = newInstance.doc()\n\n store.add(newInstance, ns.rdf('type'), ns.pad('Notepad'), newPadDoc)\n store.add(newInstance, ns.dc('title'), 'Shared Notes', newPadDoc)\n store.add(newInstance, ns.dc('created'), new Date() as any, newPadDoc) // @@ TODO Remove casting\n if (newPaneOptions.me) {\n store.add(newInstance, ns.dc('author'), newPaneOptions.me, newPadDoc)\n }\n // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);\n // linked list empty @@\n const chunk = store.sym(newInstance.uri + '_line0')\n store.add(newInstance, ns.pad('next'), chunk, newPadDoc) // Linked list has one entry\n store.add(chunk, ns.pad('next'), newInstance, newPadDoc)\n store.add(chunk, ns.dc('author'), newPaneOptions.me, newPadDoc)\n store.add(chunk, ns.sioc('content'), '', newPadDoc)\n\n return new Promise(function (resolve, reject) {\n if (!updater) {\n reject(new Error('Have no updater'))\n return\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n // and follow instructions there\n // @@ TODO Set better type for paneOptions\n render: function (subject, context, paneOptions: any) {\n const dom = context.dom\n const store = context.session.store as Store\n // Utility functions\n const complainIfBad = function (ok: boolean, message: string) {\n if (!ok) {\n div.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele: HTMLElement) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n // Access control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n const genACLtext = function (\n docURI: string,\n aclURI: string,\n allWrite: boolean\n ) {\n const g = graph()\n const auth = Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n // TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:\n return serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /**\n * @param docURI\n * @param allWrite\n * @param callbackFunction\n *\n * @returns {Promise<Response>}\n */\n const setACL = function setACL (\n docURI: string,\n allWrite: boolean,\n callbackFunction: Function\n ) {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode // @@ check that this get set by web.js\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch((err: Error) => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI);\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n const newInstanceButton = function () {\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start another pad'\n button.addEventListener('click', function () {\n return showBootstrap(subject, spawnArea, 'pad')\n })\n return button\n }\n\n // Option of either using the workspace system or just typing in a URI\n const showBootstrap = function showBootstrap (\n thisInstance: any,\n container: HTMLElement,\n noun: string\n ) {\n const div = clearElement(container)\n const appDetails = { noun: 'notepad' } as AppDetails\n div.appendChild(\n login.newAppInstance(dom, appDetails, (workspace: string | null, newBase) => {\n // FIXME: not sure if this will work at all, just\n // trying to get the types to match - Michiel.\n return initializeNewInstanceInWorkspace(new NamedNode(workspace || newBase))\n })\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the ' +\n noun +\n '? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n ;(baseField as any).label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start new ' + noun + ' at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // Create new document files for new instance of app\n const initializeNewInstanceInWorkspace = function (ws: NamedNode) {\n // @@ TODO Clean up type for newBase\n let newBase: any = store.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (\n thisInstance: any,\n newBase: string\n ) {\n const here = sym(thisInstance.uri.split('#')[0])\n const base = here // @@ ???\n\n const newPadDoc = store.sym(newBase + 'pad.ttl')\n const newIndexDoc = store.sym(newBase + 'index.html')\n\n const toBeCopied = [{ local: 'index.html', contentType: 'text/html' }]\n\n const newInstance = store.sym(newPadDoc.uri + '#thisPad')\n\n // log.debug(\"\\n Ready to put \" + kb.statementsMatching(undefined, undefined, undefined, there)); //@@\n\n const agenda: Function[] = []\n\n let f // @@ This needs some form of visible progress bar\n for (f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item: any) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL(newURI, false, function (ok: boolean, message: string) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()!() // beware too much nesting\n }\n })\n }\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createNewPadDataFile () {\n store.add(newInstance, ns.rdf('type'), PAD('Notepad'), newPadDoc)\n\n // TODO @@ Remove casting of add\n store.add(\n newInstance,\n ns.dc('created'),\n new Date() as any, // @@ TODO Remove casting\n newPadDoc\n )\n if (me) {\n store.add(newInstance, ns.dc('author'), me, newPadDoc)\n }\n store.add(newInstance, PAD('next'), newInstance, newPadDoc) // linked list empty\n\n // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy\n store.add(newInstance, ns.space('inspiration'), thisInstance, padDoc)\n store.add(newInstance, ns.space('inspiration'), thisInstance, newPadDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (_uri2, ok, message) {\n if (ok) {\n agenda.shift()!()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n setACL(newPadDoc.uri, true, function (ok: boolean, body: string) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on pad data file: ' + body\n )\n if (ok) agenda.shift()!()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n newIndexDoc.uri +\n \"'><b>new notepad</b></a> is ready. \" +\n \"<br/><br/><a href='\" +\n newIndexDoc.uri +\n \"'>Go to new pad</a>\"\n })\n\n agenda.shift()!()\n // Created new data files.\n }\n\n // Update on incoming changes\n const showResults = function (exists: boolean) {\n console.log('showResults()')\n\n me = authn.currentUser()\n\n authn.checkUser().then((webId: unknown) => {\n me = webId as string\n })\n\n const title =\n store.any(subject, ns.dc('title')) || store.any(subject, ns.vcard('fn'))\n if (paneOptions.solo && typeof window !== 'undefined' && title) {\n window.document.title = title.value\n }\n options.exists = exists\n padEle = pad.notepad(dom, padDoc, subject, me, options)\n naviMain.appendChild(padEle)\n\n const partipationTarget =\n store.any(subject, ns.meeting('parentMeeting')) || subject\n pad.manageParticipation(\n dom,\n naviMiddle2,\n padDoc,\n partipationTarget as any,\n me,\n options\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync) // initiated =\n }\n\n // Read or create empty data file\n const loadPadData = function () {\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (\n ok: boolean,\n body: string,\n response: any\n ) {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing results file ' + padDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(padDoc, [], 'text/turtle', function (\n _uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults(false)\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n if (store.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))) {\n showBootstrap(subject, naviMain, 'pad')\n }\n showResults(true)\n naviMiddle3.appendChild(newInstanceButton())\n }\n })\n }\n\n // Body of Pane\n const appPathSegment = 'app-pad.timbl.com' // how to allocate this string and connect to\n\n const fetcher = store.fetcher\n const updater = store.updater\n let me: any\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n const thisInstance = subject\n const padDoc = subject.doc()\n\n let padEle\n\n const div = dom.createElement('div')\n\n // Build the DOM\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td')) // naviLoginout1\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const naviTop = structure.appendChild(dom.createElement('tr')) // stuff\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMiddle = structure.appendChild(dom.createElement('tr')) // controls\n const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'))\n\n const naviStatus = structure.appendChild(dom.createElement('tr')) // status etc\n const statusArea = naviStatus.appendChild(dom.createElement('div'))\n\n const naviSpawn = structure.appendChild(dom.createElement('tr')) // create new\n const spawnArea = naviSpawn.appendChild(dom.createElement('div'))\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n // naviMenu.setAttribute('style', 'margin-top: 3em;');\n naviMenu.appendChild(dom.createElement('td')) // naviLeft\n naviMenu.appendChild(dom.createElement('td'))\n naviMenu.appendChild(dom.createElement('td'))\n\n const options: any = { statusArea: statusArea, timingArea: naviMiddle1 }\n\n loadPadData()\n\n return div\n }\n}\n// ends\n\nexport default paneDef\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA;AACA;AACA;;AAEA,IAAMG,OAAuB,GAAG;EAC9B;EACAC,IAAI,EAAEC,cAAK,CAACC,QAAQ,GAAG,gBAAgB;EAEvCC,IAAI,EAAE,KAAK;EAEXC,QAAQ,EAAE,CAACC,WAAE,CAACC,KAAK,CAAC,WAAW,CAAC,CAAC;EAEjC;EACAC,KAAK,EAAE,SAAAA,MAAUC,OAAO,EAAEC,OAAO,EAAE;IACjC,IAAMC,CAAC,GAAID,OAAO,CAACE,OAAO,CAACC,KAAK,CAAWC,YAAY,CAACL,OAAO,CAAC;IAChE,IAAIE,CAAC,CAAC,sCAAsC,CAAC,EAAE;MAC7C,OAAO,KAAK;IACd;IACA,OAAO,IAAI,EAAC;EACd,CAAC;EAEDI,SAAS,EAAET,WAAE,CAACU,GAAG,CAAC,SAAS,CAAC;EAE5BC,OAAO,EAAE,SAAAA,QAAUP,OAAO,EAAEQ,cAAmB,EAAE;IAC/C,IAAML,KAAK,GAAGH,OAAO,CAACE,OAAO,CAACC,KAAc;IAC5C,IAAMM,OAAO,GAAGN,KAAK,CAACM,OAAO;IAC7B,IAAID,cAAc,CAACE,EAAE,IAAI,CAACF,cAAc,CAACE,EAAE,CAACC,GAAG,EAAE;MAC/C,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,IAAMC,WAAW,GAAIL,cAAc,CAACK,WAAW,GAC7CL,cAAc,CAACK,WAAW,IAC1BV,KAAK,CAACW,GAAG,CAACN,cAAc,CAACO,OAAO,GAAG,gBAAgB,CAAE;IACvD;IACA,IAAMC,SAAS,GAAGH,WAAW,CAACI,GAAG,CAAC,CAAC;IAEnCd,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEvB,WAAE,CAACU,GAAG,CAAC,SAAS,CAAC,EAAEU,SAAS,CAAC;IACpEb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,EAAEJ,SAAS,CAAC;IACjEb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,SAAS,CAAC,EAAE,IAAIC,IAAI,CAAC,CAAC,EAASL,SAAS,CAAC,EAAC;IACvE,IAAIR,cAAc,CAACE,EAAE,EAAE;MACrBP,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,QAAQ,CAAC,EAAEZ,cAAc,CAACE,EAAE,EAAEM,SAAS,CAAC;IACvE;IACA;IACA;IACA,IAAMM,KAAK,GAAGnB,KAAK,CAACW,GAAG,CAACD,WAAW,CAACF,GAAG,GAAG,QAAQ,CAAC;IACnDR,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACU,GAAG,CAAC,MAAM,CAAC,EAAEgB,KAAK,EAAEN,SAAS,CAAC,EAAC;IACzDb,KAAK,CAACe,GAAG,CAACI,KAAK,EAAE1B,WAAE,CAACU,GAAG,CAAC,MAAM,CAAC,EAAEO,WAAW,EAAEG,SAAS,CAAC;IACxDb,KAAK,CAACe,GAAG,CAACI,KAAK,EAAE1B,WAAE,CAACwB,EAAE,CAAC,QAAQ,CAAC,EAAEZ,cAAc,CAACE,EAAE,EAAEM,SAAS,CAAC;IAC/Db,KAAK,CAACe,GAAG,CAACI,KAAK,EAAE1B,WAAE,CAAC2B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAEP,SAAS,CAAC;IAEnD,OAAO,IAAIQ,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;MAC5C,IAAI,CAACjB,OAAO,EAAE;QACZiB,MAAM,CAAC,IAAId,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC;MACF;MACAH,OAAO,CAACkB,GAAG,CACTX,SAAS,EACTb,KAAK,CAACyB,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEb,SAAS,CAAC,EACpE,aAAa,EACb,UAAUc,IAAI,EAAEC,EAAE,EAAEC,OAAO,EAAE;QAC3B,IAAID,EAAE,EAAE;UACNN,OAAO,CAACjB,cAAc,CAAC;QACzB,CAAC,MAAM;UACLkB,MAAM,CACJ,IAAId,KAAK,CAAC,8BAA8B,GAAGkB,IAAI,GAAG,KAAK,GAAGE,OAAO,CACnE,CAAC;QACH;MACF,CACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EACD;EACA;EACAC,MAAM,EAAE,SAAAA,OAAUlC,OAAO,EAAEC,OAAO,EAAEkC,WAAgB,EAAE;IACpD,IAAMC,GAAG,GAAGnC,OAAO,CAACmC,GAAG;IACvB,IAAMhC,KAAK,GAAGH,OAAO,CAACE,OAAO,CAACC,KAAc;IAC5C;IACA,IAAMiC,aAAa,GAAG,SAAhBA,aAAaA,CAAaL,EAAW,EAAEC,OAAe,EAAE;MAC5D,IAAI,CAACD,EAAE,EAAE;QACPM,GAAG,CAACC,WAAW,CAACC,gBAAO,CAACC,iBAAiB,CAACL,GAAG,EAAEH,OAAO,EAAE,MAAM,CAAC,CAAC;MAClE;IACF,CAAC;IAED,IAAMS,YAAY,GAAG,SAAfA,YAAYA,CAAaC,GAAgB,EAAE;MAC/C,OAAOA,GAAG,CAACC,UAAU,EAAE;QACrBD,GAAG,CAACE,WAAW,CAACF,GAAG,CAACC,UAAU,CAAC;MACjC;MACA,OAAOD,GAAG;IACZ,CAAC;;IAED;;IAEA;IACA;IACA,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CACdC,MAAc,EACdC,MAAc,EACdC,QAAiB,EACjB;MACA,IAAMC,CAAC,GAAG,IAAAC,aAAK,EAAC,CAAC;MACjB,IAAMC,IAAI,GAAG,IAAAC,iBAAS,EAAC,gCAAgC,CAAC;MACxD,IAAIC,CAAC,GAAGJ,CAAC,CAACnC,GAAG,CAACiC,MAAM,GAAG,KAAK,CAAC;MAC7B,IAAMO,GAAG,GAAGL,CAAC,CAACnC,GAAG,CAACiC,MAAM,CAAC;MACzB,IAAM9B,GAAG,GAAGgC,CAAC,CAACnC,GAAG,CAACgC,MAAM,CAAC;MACzBG,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEzD,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEgC,IAAI,CAAC,eAAe,CAAC,EAAEG,GAAG,CAAC;MACpDL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,UAAU,CAAC,EAAElC,GAAG,EAAEqC,GAAG,CAAC;MACpCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,OAAO,CAAC,EAAEzC,EAAE,EAAE4C,GAAG,CAAC;MAChCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,MAAM,CAAC,EAAEG,GAAG,CAAC;MACzCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,OAAO,CAAC,EAAEG,GAAG,CAAC;MAC1CL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,SAAS,CAAC,EAAEG,GAAG,CAAC;MAE5CD,CAAC,GAAGJ,CAAC,CAACnC,GAAG,CAACiC,MAAM,GAAG,KAAK,CAAC;MACzBE,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEzD,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEgC,IAAI,CAAC,eAAe,CAAC,EAAEG,GAAG,CAAC;MACpDL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,UAAU,CAAC,EAAElC,GAAG,EAAEqC,GAAG,CAAC;MACpCL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,YAAY,CAAC,EAAEvD,WAAE,CAAC2D,IAAI,CAAC,OAAO,CAAC,EAAED,GAAG,CAAC;MACnDL,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,MAAM,CAAC,EAAEG,GAAG,CAAC;MACzC,IAAIN,QAAQ,EAAE;QACZC,CAAC,CAAC/B,GAAG,CAACmC,CAAC,EAAEF,IAAI,CAAC,MAAM,CAAC,EAAEA,IAAI,CAAC,OAAO,CAAC,EAAEG,GAAG,CAAC;MAC5C;MACA;MACA,OAAO,IAAAE,iBAAS,EAACF,GAAG,EAAEL,CAAC,EAAEF,MAAM,EAAE,aAAa,CAAC;IACjD,CAAC;;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAMU,MAAM,GAAG,SAASA,MAAMA,CAC5BX,MAAc,EACdE,QAAiB,EACjBU,gBAA0B,EAC1B;MACA,IAAMC,MAAM,GAAGxD,KAAK,CAACyD,GAAG,CACtB,IAAA9C,WAAG,EAACgC,MAAM,CAAC,EACX,IAAAhC,WAAG,EAAC,oDAAoD,CAC1D,CAAc,EAAC;MACf,IAAI,CAAC+C,OAAO,EAAE;QACZ,MAAM,IAAIjD,KAAK,CAAC,iBAAiB,CAAC;MACpC;MACA,IAAI+C,MAAM,EAAE;QACV;QACA,IAAMG,OAAO,GAAGjB,UAAU,CAACC,MAAM,EAAEa,MAAM,CAAChD,GAAG,EAAEqC,QAAQ,CAAC;QACxD,OAAOa,OAAO,CACXE,YAAY,CAAC,KAAK,EAAEJ,MAAM,CAAChD,GAAG,EAAE;UAC/BqD,IAAI,EAAEF,OAAO;UACbG,WAAW,EAAE;QACf,CAAC,CAAC,CACDC,IAAI,CAAC;UAAA,OAAMR,gBAAgB,CAAC,IAAI,CAAC;QAAA,EAAC,SAC7B,CAAC,UAAAS,GAAG,EAAI;UACZT,gBAAgB,CAAC,KAAK,EAAES,GAAG,CAACnC,OAAO,CAAC;QACtC,CAAC,CAAC;MACN,CAAC,MAAM;QACL,OAAO6B,OAAO,CACXO,IAAI,CAACtB,MAAM,CAAC,SACP,CAAC,UAACqB,GAAU,EAAK;UACrBT,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAGS,GAAG,CAAC;QAC5D,CAAC,CAAC,CACDD,IAAI,CAAC,YAAM;UACV,IAAMP,MAAM,GAAGxD,KAAK,CAACyD,GAAG,CACtB,IAAA9C,WAAG,EAACgC,MAAM,CAAC,EACX,IAAAhC,WAAG,EAAC,oDAAoD,CAC1D,CAAc;UAEd,IAAI,CAAC6C,MAAM,EAAE;YACX;YACA,MAAM,IAAI/C,KAAK,CAAC,6BAA6B,GAAGkC,MAAM,CAAC;UACzD;UAEA,IAAMgB,OAAO,GAAGjB,UAAU,CAACC,MAAM,EAAEa,MAAM,CAAChD,GAAG,EAAEqC,QAAQ,CAAC;UAExD,OAAOa,OAAO,CAACE,YAAY,CAAC,KAAK,EAAEJ,MAAM,CAAChD,GAAG,EAAE;YAC7CqD,IAAI,EAAEF,OAAO;YACbG,WAAW,EAAE;UACf,CAAC,CAAC;QACJ,CAAC,CAAC,CACDC,IAAI,CAAC;UAAA,OAAMR,gBAAgB,CAAC,IAAI,CAAC;QAAA,EAAC,SAC7B,CAAC,UAAAS,GAAG,EAAI;UACZT,gBAAgB,CAAC,KAAK,EAAES,GAAG,CAACnC,OAAO,CAAC;QACtC,CAAC,CAAC;MACN;IACF,CAAC;;IAED;IACA;IACA;IACA,IAAMqC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAe;MACpC,IAAMC,MAAM,GAAGjC,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,QAAQ,CAAC,CAAC;MAC3DD,MAAM,CAACE,WAAW,GAAG,mBAAmB;MACxCF,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,YAAY;QAC3C,OAAOC,aAAa,CAAC3E,OAAO,EAAE4E,SAAS,EAAE,KAAK,CAAC;MACjD,CAAC,CAAC;MACF,OAAOL,MAAM;IACf,CAAC;;IAED;IACA,IAAMI,aAAa,GAAG,SAASA,aAAaA,CAC1CE,YAAiB,EACjBC,SAAsB,EACtBC,IAAY,EACZ;MACA,IAAMzC,GAAG,GAAGI,YAAY,CAACoC,SAAS,CAAC;MACnC,IAAME,UAAU,GAAG;QAAED,IAAI,EAAE;MAAU,CAAe;MACpDzC,GAAG,CAACC,WAAW,CACb0C,cAAK,CAACC,cAAc,CAAC9C,GAAG,EAAE4C,UAAU,EAAE,UAACG,SAAwB,EAAEnE,OAAO,EAAK;QAC3E;QACA;QACA,OAAOoE,gCAAgC,CAAC,IAAIC,iBAAS,CAACF,SAAS,IAAInE,OAAO,CAAC,CAAC;MAC9E,CAAC,CACH,CAAC;MAEDsB,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;;MAEzC,IAAMc,CAAC,GAAGhD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,GAAG,CAAC,CAAC;MACjDc,CAAC,CAACb,WAAW,GACX,iDAAiD,GACjDM,IAAI,GACJ,KAAK,GACL,qEAAqE;MACvE,IAAMQ,SAAS,GAAGjD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,OAAO,CAAC,CAAC;MAC7De,SAAS,CAACC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;MACtCD,SAAS,CAACE,IAAI,GAAG,EAAE,CAAC;MAAA;MAClBF,SAAS,CAASxF,KAAK,GAAG,UAAU;MACtCwF,SAAS,CAACG,YAAY,GAAG,IAAI;MAE7BpD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;;MAEzC,IAAMD,MAAM,GAAGjC,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,QAAQ,CAAC,CAAC;MAC3DD,MAAM,CAACE,WAAW,GAAG,YAAY,GAAGM,IAAI,GAAG,cAAc;MACzDR,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAAUiB,EAAE,EAAE;QAC7C,IAAI3E,OAAO,GAAGuE,SAAS,CAACK,KAAK;QAC7B,IAAI5E,OAAO,CAAC6E,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;UAC7B7E,OAAO,IAAI,GAAG;QAChB;QACA8E,2BAA2B,CAACjB,YAAY,EAAE7D,OAAO,CAAC;MACpD,CAAC,CAAC;IACJ,CAAC;;IAED;IACA,IAAMoE,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAaW,EAAa,EAAE;MAChE;MACA,IAAI/E,OAAY,GAAGZ,KAAK,CAACyD,GAAG,CAACkC,EAAE,EAAElG,WAAE,CAACmG,KAAK,CAAC,WAAW,CAAC,CAAC;MACvD,IAAI,CAAChF,OAAO,EAAE;QACZA,OAAO,GAAG+E,EAAE,CAACnF,GAAG,CAACqF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAChC,CAAC,MAAM;QACLjF,OAAO,GAAGA,OAAO,CAAC4E,KAAK;MACzB;MACA,IAAI5E,OAAO,CAAC6E,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC7BK,WAAG,CAACC,KAAK,CAACC,cAAc,GAAG,6BAA6B,GAAGpF,OAAO,CAAC,EAAC;QACpEA,OAAO,GAAGA,OAAO,GAAG,GAAG;MACzB;MACA,IAAMqF,GAAG,GAAG,IAAI/E,IAAI,CAAC,CAAC;MACtBN,OAAO,IAAIoF,cAAc,GAAG,KAAK,GAAGC,GAAG,CAACC,OAAO,CAAC,CAAC,GAAG,GAAG,EAAC;;MAExDR,2BAA2B,CAACjB,YAAY,EAAE7D,OAAO,CAAC;IACpD,CAAC;IAED,IAAM8E,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC/BjB,YAAiB,EACjB7D,OAAe,EACf;MACA,IAAMuF,IAAI,GAAG,IAAAxF,WAAG,EAAC8D,YAAY,CAACjE,GAAG,CAACqF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAChD,IAAMO,IAAI,GAAGD,IAAI,EAAC;;MAElB,IAAMtF,SAAS,GAAGb,KAAK,CAACW,GAAG,CAACC,OAAO,GAAG,SAAS,CAAC;MAChD,IAAMyF,WAAW,GAAGrG,KAAK,CAACW,GAAG,CAACC,OAAO,GAAG,YAAY,CAAC;MAErD,IAAM0F,UAAU,GAAG,CAAC;QAAEC,KAAK,EAAE,YAAY;QAAEzC,WAAW,EAAE;MAAY,CAAC,CAAC;MAEtE,IAAMpD,WAAW,GAAGV,KAAK,CAACW,GAAG,CAACE,SAAS,CAACL,GAAG,GAAG,UAAU,CAAC;;MAEzD;;MAEA,IAAMgG,MAAkB,GAAG,EAAE;MAE7B,IAAIC,CAAC,EAAC;MACN,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,UAAU,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;QACtC,IAAME,IAAI,GAAGL,UAAU,CAACG,CAAC,CAAC;QAC1B,IAAMG,GAAG,GAAG,SAASC,QAAQA,CAAEF,IAAS,EAAE;UACxCH,MAAM,CAACM,IAAI,CAAC,YAAY;YACtB,IAAMC,MAAM,GAAGnG,OAAO,GAAG+F,IAAI,CAACJ,KAAK;YACnCS,OAAO,CAAClB,GAAG,CAAC,UAAU,GAAGM,IAAI,GAAGO,IAAI,CAACJ,KAAK,GAAG,MAAM,GAAGQ,MAAM,CAAC;YAE7D,IAAME,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAe;cAC7B3D,MAAM,CAACyD,MAAM,EAAE,KAAK,EAAE,UAAUnF,EAAW,EAAEC,OAAe,EAAE;gBAC5D,IAAI,CAACD,EAAE,EAAE;kBACPK,aAAa,CACXL,EAAE,EACF,oBAAoB,GAAGmF,MAAM,GAAG,KAAK,GAAGlF,OAC1C,CAAC;kBACDmF,OAAO,CAAClB,GAAG,CAAC,oBAAoB,GAAGiB,MAAM,GAAG,KAAK,GAAGlF,OAAO,CAAC;gBAC9D,CAAC,MAAM;kBACL2E,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC,EAAC;gBACpB;cACF,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAClH,KAAK,CAAC0D,OAAO,EAAE;cAClB,MAAM,IAAIjD,KAAK,CAAC,sBAAsB,CAAC;YACzC;YACAT,KAAK,CAAC0D,OAAO,CACVyD,OAAO,CACNf,IAAI,GAAGO,IAAI,CAACJ,KAAK,EACjB3F,OAAO,GAAG+F,IAAI,CAACJ,KAAK,EACpBI,IAAI,CAAC7C,WACP,CAAC,CACAC,IAAI,CAAC;cAAA,OAAMqD,iBAAK,CAACC,SAAS,CAAC,CAAC;YAAA,EAAC,CAC7BtD,IAAI,CAAC,UAAAuD,KAAK,EAAI;cACb/G,EAAE,GAAG+G,KAAK;cAEVL,UAAU,CAAC,CAAC;YACd,CAAC,CAAC,SACI,CAAC,UAAAjD,GAAG,EAAI;cACZgD,OAAO,CAAClB,GAAG,CACT,iBAAiB,GAAGM,IAAI,GAAGO,IAAI,CAACJ,KAAK,GAAG,KAAK,GAAGvC,GAAG,CAACnC,OACtD,CAAC;cACDI,aAAa,CACX,KAAK,EACL,iBAAiB,GAAGmE,IAAI,GAAGO,IAAI,CAACJ,KAAK,GAAG,KAAK,GAAGvC,GAAG,CAACnC,OACtD,CAAC;YACH,CAAC,CAAC;UACN,CAAC,CAAC;QACJ,CAAC;QACD+E,GAAG,CAACD,IAAI,CAAC;MACX;MAEAH,MAAM,CAACM,IAAI,CAAC,SAASS,oBAAoBA,CAAA,EAAI;QAC3CvH,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEwG,GAAG,CAAC,SAAS,CAAC,EAAE3G,SAAS,CAAC;;QAEjE;QACAb,KAAK,CAACe,GAAG,CACPL,WAAW,EACXjB,WAAE,CAACwB,EAAE,CAAC,SAAS,CAAC,EAChB,IAAIC,IAAI,CAAC,CAAC;QAAS;QACnBL,SACF,CAAC;QACD,IAAIN,EAAE,EAAE;UACNP,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACwB,EAAE,CAAC,QAAQ,CAAC,EAAEV,EAAE,EAAEM,SAAS,CAAC;QACxD;QACAb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAE8G,GAAG,CAAC,MAAM,CAAC,EAAE9G,WAAW,EAAEG,SAAS,CAAC,EAAC;;QAE5D;QACAb,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACmG,KAAK,CAAC,aAAa,CAAC,EAAEnB,YAAY,EAAEgD,MAAM,CAAC;QACrEzH,KAAK,CAACe,GAAG,CAACL,WAAW,EAAEjB,WAAE,CAACmG,KAAK,CAAC,aAAa,CAAC,EAAEnB,YAAY,EAAE5D,SAAS,CAAC;QACxE,IAAI,CAACP,OAAO,EAAE;UACZ,MAAM,IAAIG,KAAK,CAAC,iBAAiB,CAAC;QACpC;QACAH,OAAO,CAACkB,GAAG,CACTX,SAAS,EACTb,KAAK,CAACyB,kBAAkB,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEb,SAAS,CAAC,EACpE,aAAa,EACb,UAAU6G,KAAK,EAAE9F,EAAE,EAAEC,OAAO,EAAE;UAC5B,IAAID,EAAE,EAAE;YACN4E,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC;UACnB,CAAC,MAAM;YACLjF,aAAa,CACXL,EAAE,EACF,iCAAiC,GAC/Bf,SAAS,CAACL,GAAG,GACb,KAAK,GACLqB,OACJ,CAAC;YACDmF,OAAO,CAAClB,GAAG,CACT,iCAAiC,GAC/BjF,SAAS,CAACL,GAAG,GACb,KAAK,GACLqB,OACJ,CAAC;UACH;QACF,CACF,CAAC;MACH,CAAC,CAAC;MAEF2E,MAAM,CAACM,IAAI,CAAC,YAAY;QACtBxD,MAAM,CAACzC,SAAS,CAACL,GAAG,EAAE,IAAI,EAAE,UAAUoB,EAAW,EAAE+F,IAAY,EAAE;UAC/D1F,aAAa,CACXL,EAAE,EACF,iDAAiD,GAAG+F,IACtD,CAAC;UACD,IAAI/F,EAAE,EAAE4E,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC;QAC3B,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFV,MAAM,CAACM,IAAI,CAAC,YAAY;QACtB;;QAEA,IAAM5B,CAAC,GAAGhD,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjDc,CAAC,CAACE,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAC3CF,CAAC,CAAC0C,SAAS,GACT,gBAAgB,GAChBvB,WAAW,CAAC7F,GAAG,GACf,qCAAqC,GACrC,qBAAqB,GACrB6F,WAAW,CAAC7F,GAAG,GACf,qBAAqB;MACzB,CAAC,CAAC;MAEFgG,MAAM,CAACU,KAAK,CAAC,CAAC,CAAE,CAAC;MACjB;IACF,CAAC;;IAED;IACA,IAAMW,WAAW,GAAG,SAAdA,WAAWA,CAAaC,MAAe,EAAE;MAC7Cd,OAAO,CAAClB,GAAG,CAAC,eAAe,CAAC;MAE5BvF,EAAE,GAAG6G,iBAAK,CAACW,WAAW,CAAC,CAAC;MAExBX,iBAAK,CAACC,SAAS,CAAC,CAAC,CAACtD,IAAI,CAAC,UAACuD,KAAc,EAAK;QACzC/G,EAAE,GAAG+G,KAAe;MACtB,CAAC,CAAC;MAEF,IAAMU,KAAK,GACThI,KAAK,CAACyD,GAAG,CAAC7D,OAAO,EAAEH,WAAE,CAACwB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAIjB,KAAK,CAACyD,GAAG,CAAC7D,OAAO,EAAEH,WAAE,CAACwI,KAAK,CAAC,IAAI,CAAC,CAAC;MAC1E,IAAIlG,WAAW,CAACmG,IAAI,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAIH,KAAK,EAAE;QAC9DG,MAAM,CAACC,QAAQ,CAACJ,KAAK,GAAGA,KAAK,CAACxC,KAAK;MACrC;MACA6C,OAAO,CAACP,MAAM,GAAGA,MAAM;MACvBQ,MAAM,GAAGnI,YAAG,CAACoI,OAAO,CAACvG,GAAG,EAAEyF,MAAM,EAAE7H,OAAO,EAAEW,EAAE,EAAE8H,OAAO,CAAC;MACvDG,QAAQ,CAACrG,WAAW,CAACmG,MAAM,CAAC;MAE5B,IAAMG,iBAAiB,GACrBzI,KAAK,CAACyD,GAAG,CAAC7D,OAAO,EAAEH,WAAE,CAACiJ,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI9I,OAAO;MAC5DO,YAAG,CAACwI,mBAAmB,CACrB3G,GAAG,EACH4G,WAAW,EACXnB,MAAM,EACNgB,iBAAiB,EACjBlI,EAAE,EACF8H,OACF,CAAC;MACD,IAAI,CAACrI,KAAK,CAACM,OAAO,EAAE;QAClB,MAAM,IAAIG,KAAK,CAAC,sBAAsB,CAAC;MACzC;MAEAT,KAAK,CAACM,OAAO,CAACuI,iBAAiB,CAACpB,MAAM,EAAEa,MAAM,CAACQ,aAAa,CAAC,EAAC;IAChE,CAAC;;IAED;IACA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAe;MAC9B,IAAI,CAACrF,OAAO,EAAE;QACZ,MAAM,IAAIjD,KAAK,CAAC,iBAAiB,CAAC;MACpC;MACAiD,OAAO,CAACsF,gBAAgB,CAACvB,MAAM,CAACjH,GAAG,EAAEkB,SAAS,EAAE,UAC9CE,EAAW,EACX+F,IAAY,EACZsB,QAAa,EACb;QACA,IAAI,CAACrH,EAAE,EAAE;UACP,IAAIqH,QAAQ,CAACC,MAAM,KAAK,GAAG,EAAE;YAC3B;YACAlC,OAAO,CAAClB,GAAG,CAAC,4BAA4B,GAAG2B,MAAM,CAAC;YAClD,IAAI,CAACnH,OAAO,EAAE;cACZ,MAAM,IAAIG,KAAK,CAAC,iBAAiB,CAAC;YACpC;YACAH,OAAO,CAACkB,GAAG,CAACiG,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,UACrCC,KAAK,EACL9F,EAAE,EACFC,OAAO,EACP;cACA,IAAID,EAAE,EAAE;gBACNU,YAAY,CAACkG,QAAQ,CAAC;gBACtBX,WAAW,CAAC,KAAK,CAAC;cACpB,CAAC,MAAM;gBACL5F,aAAa,CACXL,EAAE,EACF,oCAAoC,GAClC6F,MAAM,CAACjH,GAAG,GACV,KAAK,GACLqB,OACJ,CAAC;gBACDmF,OAAO,CAAClB,GAAG,CACT,oCAAoC,GAClC2B,MAAM,CAACjH,GAAG,GACV,KAAK,GACLqB,OACJ,CAAC;cACH;YACF,CAAC,CAAC;UACJ,CAAC,MAAM;YACL;YACAI,aAAa,CAACL,EAAE,EAAE,+BAA+B,GAAG+F,IAAI,CAAC;UAC3D;QACF,CAAC,MAAM;UACL;UACArF,YAAY,CAACkG,QAAQ,CAAC;UACtB,IAAIxI,KAAK,CAACmJ,KAAK,CAACvJ,OAAO,EAAEH,WAAE,CAACuB,GAAG,CAAC,MAAM,CAAC,EAAEvB,WAAE,CAAC2J,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;YACnE7E,aAAa,CAAC3E,OAAO,EAAE4I,QAAQ,EAAE,KAAK,CAAC;UACzC;UACAX,WAAW,CAAC,IAAI,CAAC;UACjBwB,WAAW,CAAClH,WAAW,CAAC+B,iBAAiB,CAAC,CAAC,CAAC;QAC9C;MACF,CAAC,CAAC;IACJ,CAAC;;IAED;IACA,IAAM8B,cAAc,GAAG,mBAAmB,EAAC;;IAE3C,IAAMtC,OAAO,GAAG1D,KAAK,CAAC0D,OAAO;IAC7B,IAAMpD,OAAO,GAAGN,KAAK,CAACM,OAAO;IAC7B,IAAIC,EAAO;IAEX,IAAMiH,GAAG,GAAG,IAAAvE,iBAAS,EAAC,+BAA+B,CAAC;IAEtD,IAAMwB,YAAY,GAAG7E,OAAO;IAC5B,IAAM6H,MAAM,GAAG7H,OAAO,CAACkB,GAAG,CAAC,CAAC;IAE5B,IAAIwH,MAAM;IAEV,IAAMpG,GAAG,GAAGF,GAAG,CAACoC,aAAa,CAAC,KAAK,CAAC;;IAEpC;IACA,IAAMkF,SAAS,GAAGpH,GAAG,CAACC,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAC;IAC9DkF,SAAS,CAAClE,YAAY,CACpB,OAAO,EACP,6FACF,CAAC;IAED,IAAMmE,cAAc,GAAGD,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrEmF,cAAc,CAACpH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IACpDmF,cAAc,CAACpH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACnDmF,cAAc,CAACpH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAMoF,OAAO,GAAGF,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAC/D,IAAMoE,QAAQ,GAAGgB,OAAO,CAACrH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7DoE,QAAQ,CAACpD,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC;IAErC,IAAMqE,UAAU,GAAGH,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAClE,IAAMsF,WAAW,GAAGD,UAAU,CAACtH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACnE,IAAMwE,WAAW,GAAGa,UAAU,CAACtH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IACnE,IAAMiF,WAAW,GAAGI,UAAU,CAACtH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAMuF,UAAU,GAAGL,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAClE,IAAMwF,UAAU,GAAGD,UAAU,CAACxH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAMyF,SAAS,GAAGP,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IACjE,IAAMI,SAAS,GAAGqF,SAAS,CAAC1H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEjE,IAAM0F,QAAQ,GAAGR,SAAS,CAACnH,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/D0F,QAAQ,CAAC1E,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;IAC1C;IACA0E,QAAQ,CAAC3H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC;IAC9C0F,QAAQ,CAAC3H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C0F,QAAQ,CAAC3H,WAAW,CAACH,GAAG,CAACoC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAMiE,OAAY,GAAG;MAAEuB,UAAU,EAAEA,UAAU;MAAEG,UAAU,EAAEL;IAAY,CAAC;IAExEX,WAAW,CAAC,CAAC;IAEb,OAAO7G,GAAG;EACZ;AACF,CAAC;AACD;AAAA,IAAA8H,QAAA,GAAAC,OAAA,cAEe9K,OAAO","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"padPane.js","names":["_solidUi","require","_solidLogic","_rdflib","paneDef","icon","icons","iconBase","name","audience","ns","solid","label","subject","context","t","session","store","findTypeURIs","mintClass","pad","mintNew","newPaneOptions","updater","me","uri","Error","newInstance","sym","newBase","newPadDoc","doc","add","rdf","dc","Date","chunk","sioc","Promise","resolve","reject","put","statementsMatching","undefined","uri2","ok","message","render","paneOptions","dom","complainIfBad","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","foaf","serialize","setACL","callbackFunction","aclDoc","any","fetcher","aclText","webOperation","data","contentType","then","err","load","newInstanceButton","button","createElement","textContent","addEventListener","showBootstrap","spawnArea","thisInstance","container","noun","appDetails","login","newAppInstance","workspace","initializeNewInstanceInWorkspace","NamedNode","p","baseField","setAttribute","size","autocomplete","_e","value","slice","initializeNewInstanceAtBase","ws","space","split","log","error","appPathSegment","now","getTime","here","base","newIndexDoc","toBeCopied","local","agenda","f","length","item","fun","copyItem","push","newURI","console","setThatACL","shift","webCopy","authn","checkUser","webId","createNewPadDataFile","PAD","padDoc","_uri2","body","innerHTML","showResults","exists","currentUser","title","vcard","solo","window","document","options","padEle","notepad","naviMain","partipationTarget","meeting","manageParticipation","naviMiddle2","setRefreshHandler","reloadAndSync","loadPadData","nowOrWhenFetched","response","status","holds","wf","naviMiddle3","structure","naviLoginoutTR","naviTop","naviMiddle","naviMiddle1","naviStatus","statusArea","naviSpawn","naviMenu","timingArea","_default","exports"],"sources":["../../src/pad/padPane.ts"],"sourcesContent":["import { icons, ns, pad, widgets, login } from 'solid-ui'\nimport { authn, AppDetails } from 'solid-logic'\nimport { graph, log, NamedNode, Namespace, sym, serialize, Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\n/* pad Pane\n **\n */\n\nconst paneDef: PaneDefinition = {\n // icon: (module.__dirname || __dirname) + 'images/ColourOn.png',\n icon: icons.iconBase + 'noun_79217.svg',\n\n name: 'pad',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an pad pane?\n label: function (subject, context) {\n const t = (context.session.store as Store).findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/pad#Notepad']) {\n return 'pad'\n }\n return null // No under other circumstances\n },\n\n mintClass: ns.pad('Notepad'),\n\n mintNew: function (context, newPaneOptions: any) {\n const store = context.session.store as Store\n const updater = store.updater\n if (newPaneOptions.me && !newPaneOptions.me.uri) {\n throw new Error('notepad mintNew: Invalid userid')\n }\n\n const newInstance = (newPaneOptions.newInstance =\n newPaneOptions.newInstance ||\n store.sym(newPaneOptions.newBase + 'index.ttl#this'))\n // const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');\n const newPadDoc = newInstance.doc()\n\n store.add(newInstance, ns.rdf('type'), ns.pad('Notepad'), newPadDoc)\n store.add(newInstance, ns.dc('title'), 'Shared Notes', newPadDoc)\n store.add(newInstance, ns.dc('created'), new Date() as any, newPadDoc) // @@ TODO Remove casting\n if (newPaneOptions.me) {\n store.add(newInstance, ns.dc('author'), newPaneOptions.me, newPadDoc)\n }\n // kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);\n // linked list empty @@\n const chunk = store.sym(newInstance.uri + '_line0')\n store.add(newInstance, ns.pad('next'), chunk, newPadDoc) // Linked list has one entry\n store.add(chunk, ns.pad('next'), newInstance, newPadDoc)\n store.add(chunk, ns.dc('author'), newPaneOptions.me, newPadDoc)\n store.add(chunk, ns.sioc('content'), '', newPadDoc)\n\n return new Promise(function (resolve, reject) {\n if (!updater) {\n reject(new Error('Have no updater'))\n return\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(newPaneOptions)\n } else {\n reject(\n new Error('FAILED to save new tool at: ' + uri2 + ' : ' + message)\n )\n }\n }\n )\n })\n },\n // and follow instructions there\n // @@ TODO Set better type for paneOptions\n render: function (subject, context, paneOptions: any) {\n const dom = context.dom\n const store = context.session.store as Store\n // Utility functions\n const complainIfBad = function (ok: boolean, message: string) {\n if (!ok) {\n div.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele: HTMLElement) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n // Access control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n const genACLtext = function (\n docURI: string,\n aclURI: string,\n allWrite: boolean\n ) {\n const g = graph()\n const auth = Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n // TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:\n return serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /**\n * @param docURI\n * @param allWrite\n * @param callbackFunction\n *\n * @returns {Promise<Response>}\n */\n const setACL = function setACL (\n docURI: string,\n allWrite: boolean,\n callbackFunction: Function\n ) {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode // @@ check that this get set by web.js\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch((err: Error) => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = store.any(\n sym(docURI),\n sym('http://www.iana.org/assignments/link-relations/acl')\n ) as NamedNode\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI);\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(() => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n const newInstanceButton = function () {\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start another pad'\n button.addEventListener('click', function () {\n return showBootstrap(subject, spawnArea, 'pad')\n })\n return button\n }\n\n // Option of either using the workspace system or just typing in a URI\n const showBootstrap = function showBootstrap (\n thisInstance: any,\n container: HTMLElement,\n noun: string\n ) {\n const div = clearElement(container)\n const appDetails = { noun: 'notepad' } as AppDetails\n div.appendChild(\n login.newAppInstance(dom, appDetails, (workspace: string | null, newBase) => {\n // FIXME: not sure if this will work at all, just\n // trying to get the types to match - Michiel.\n return initializeNewInstanceInWorkspace(new NamedNode(workspace || newBase))\n })\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the ' +\n noun +\n '? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n ;(baseField as any).label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.textContent = 'Start new ' + noun + ' at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // Create new document files for new instance of app\n const initializeNewInstanceInWorkspace = function (ws: NamedNode) {\n // @@ TODO Clean up type for newBase\n let newBase: any = store.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (\n thisInstance: any,\n newBase: string\n ) {\n const here = sym(thisInstance.uri.split('#')[0])\n const base = here // @@ ???\n\n const newPadDoc = store.sym(newBase + 'pad.ttl')\n const newIndexDoc = store.sym(newBase + 'index.html')\n\n const toBeCopied = [{ local: 'index.html', contentType: 'text/html' }]\n\n const newInstance = store.sym(newPadDoc.uri + '#thisPad')\n\n // log.debug(\"\\n Ready to put \" + kb.statementsMatching(undefined, undefined, undefined, there)); //@@\n\n const agenda: Function[] = []\n\n let f // @@ This needs some form of visible progress bar\n for (f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item: any) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL(newURI, false, function (ok: boolean, message: string) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()!() // beware too much nesting\n }\n })\n }\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n store.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createNewPadDataFile () {\n store.add(newInstance, ns.rdf('type'), PAD('Notepad'), newPadDoc)\n\n // TODO @@ Remove casting of add\n store.add(\n newInstance,\n ns.dc('created'),\n new Date() as any, // @@ TODO Remove casting\n newPadDoc\n )\n if (me) {\n store.add(newInstance, ns.dc('author'), me, newPadDoc)\n }\n store.add(newInstance, PAD('next'), newInstance, newPadDoc) // linked list empty\n\n // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy\n store.add(newInstance, ns.space('inspiration'), thisInstance, padDoc)\n store.add(newInstance, ns.space('inspiration'), thisInstance, newPadDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(\n newPadDoc,\n store.statementsMatching(undefined, undefined, undefined, newPadDoc),\n 'text/turtle',\n function (_uri2, ok, message) {\n if (ok) {\n agenda.shift()!()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new notepad at: ' +\n newPadDoc.uri +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n setACL(newPadDoc.uri, true, function (ok: boolean, body: string) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on pad data file: ' + body\n )\n if (ok) agenda.shift()!()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n newIndexDoc.uri +\n \"'><b>new notepad</b></a> is ready. \" +\n \"<br/><br/><a href='\" +\n newIndexDoc.uri +\n \"'>Go to new pad</a>\"\n })\n\n agenda.shift()!()\n // Created new data files.\n }\n\n // Update on incoming changes\n const showResults = function (exists: boolean) {\n console.log('showResults()')\n\n me = authn.currentUser()\n\n authn.checkUser().then((webId: unknown) => {\n me = webId as string\n })\n\n const title =\n store.any(subject, ns.dc('title')) || store.any(subject, ns.vcard('fn'))\n if (paneOptions.solo && typeof window !== 'undefined' && title) {\n window.document.title = title.value\n }\n options.exists = exists\n padEle = pad.notepad(dom, padDoc, subject, me, options)\n naviMain.appendChild(padEle)\n\n const partipationTarget =\n store.any(subject, ns.meeting('parentMeeting')) || subject\n pad.manageParticipation(\n dom,\n naviMiddle2,\n padDoc,\n partipationTarget as any,\n me,\n options\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n\n store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync) // initiated =\n }\n\n // Read or create empty data file\n const loadPadData = function () {\n if (!fetcher) {\n throw new Error('Have no fetcher')\n }\n fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (\n ok: boolean,\n body: string,\n response: any\n ) {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing results file ' + padDoc)\n if (!updater) {\n throw new Error('Have no updater')\n }\n updater.put(padDoc, [], 'text/turtle', function (\n _uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults(false)\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n padDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n if (store.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))) {\n showBootstrap(subject, naviMain, 'pad')\n }\n showResults(true)\n naviMiddle3.appendChild(newInstanceButton())\n }\n })\n }\n\n // Body of Pane\n const appPathSegment = 'app-pad.timbl.com' // how to allocate this string and connect to\n\n const fetcher = store.fetcher\n const updater = store.updater\n let me: any\n\n const PAD = Namespace('http://www.w3.org/ns/pim/pad#')\n\n const thisInstance = subject\n const padDoc = subject.doc()\n\n let padEle\n\n const div = dom.createElement('div')\n\n // Build the DOM\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td')) // naviLoginout1\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const naviTop = structure.appendChild(dom.createElement('tr')) // stuff\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMiddle = structure.appendChild(dom.createElement('tr')) // controls\n const naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'))\n const naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'))\n\n const naviStatus = structure.appendChild(dom.createElement('tr')) // status etc\n const statusArea = naviStatus.appendChild(dom.createElement('div'))\n\n const naviSpawn = structure.appendChild(dom.createElement('tr')) // create new\n const spawnArea = naviSpawn.appendChild(dom.createElement('div'))\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n // naviMenu.setAttribute('style', 'margin-top: 3em;');\n naviMenu.appendChild(dom.createElement('td')) // naviLeft\n naviMenu.appendChild(dom.createElement('td'))\n naviMenu.appendChild(dom.createElement('td'))\n\n const options: any = { statusArea: statusArea, timingArea: naviMiddle1 }\n\n loadPadData()\n\n return div\n }\n}\n// ends\n\nexport default paneDef\n"],"mappings":"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","ignoreList":[]}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playlistPane.js","names":["UI","_interopRequireWildcard","require","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","anyStatementMatching","rdf","sym","render","myDocument","dom","isVideo","src","_index","html5","youtube","match","vimeo","dailymotion","vk","link","contents","uri","createElement","setAttribute","appendChild","addEventListener","widgets","openHrefInOutlineMode","text","str","createTextNode","obj","any","index","video","div","img","replace","value","descDiv","sl","statementsMatching","slots","length","push","parseInt","object","pIndex","indexOf","nIndex","prev","split","indexDiv","innerHTML","next","tr"],"sources":["../../src/playlist/playlistPane.js"],"sourcesContent":["/* Playlist Pane\n **\n ** This pane allows playlists and playlists slots to be viewed\n ** seeAlso: http://smiy.sourceforge.net/pbo/spec/playbackontology.html\n */\n import * as UI from 'solid-ui'\n import * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_1619.svg',\n\n name: 'playlistSlot',\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n const kb = context.session.store\n\n if (\n !kb.anyStatementMatching(\n subject,\n UI.ns.rdf('type'),\n kb.sym('http://purl.org/ontology/pbo/core#PlaylistSlot')\n )\n ) {\n return null\n }\n\n return 'playlist slot'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n function isVideo (src, _index) {\n if (!src) {\n return {\n html5: true\n }\n }\n\n const youtube = src.match(\n /\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-_%]+)/i\n )\n const vimeo = src.match(/\\/\\/(?:www\\.)?vimeo.com\\/([0-9a-z\\-_]+)/i)\n const dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i)\n const vk = src.match(\n /\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i\n )\n\n if (youtube) {\n return {\n youtube: youtube\n }\n } else if (vimeo) {\n return {\n vimeo: vimeo\n }\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n }\n } else if (vk) {\n return {\n vk: vk\n }\n }\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = myDocument.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n return a\n }\n\n const text = function (str) {\n return myDocument.createTextNode(str)\n }\n\n const kb = context.session.store\n const obj = kb.any(\n subject,\n $rdf.sym('http://purl.org/ontology/pbo/core#playlist_item')\n )\n let index = kb.any(\n subject,\n $rdf.sym('http://purl.org/ontology/olo/core#index')\n )\n\n let uri = obj.uri\n const video = isVideo(uri)\n\n const div = myDocument.createElement('div')\n let img\n if (video && video.youtube) {\n uri = uri.replace('watch?v=', 'embed/')\n div.setAttribute('class', 'imageView')\n img = myDocument.createElement('IFRAME')\n img.setAttribute('src', uri)\n img.setAttribute('width', 560)\n img.setAttribute('height', 315)\n img.setAttribute('frameborder', 0)\n img.setAttribute('style', 'max-width: 850px; max-height: 100%;')\n img.setAttribute('allowfullscreen', 'true')\n } else {\n div.setAttribute('class', 'imageView')\n img = myDocument.createElement('IMG')\n img.setAttribute('src', obj.value)\n img.setAttribute('width', 560)\n img.setAttribute('height', 315)\n img.setAttribute('style', 'max-width: 560; max-height: 315;')\n }\n\n let descDiv\n if (index) {\n const sl = kb.statementsMatching(\n null,\n $rdf.sym('http://purl.org/ontology/olo/core#index')\n )\n const slots = []\n for (let i = 0; i < sl.length; i++) {\n if (sl[i]) {\n slots.push(parseInt(sl[i].object.value, 10))\n }\n }\n\n index = parseInt(index.value, 10)\n descDiv = myDocument.createElement('div')\n\n const pIndex =\n slots[(slots.indexOf(index) - 1 + slots.length) % slots.length]\n const nIndex =\n slots[(slots.indexOf(index) + 1 + slots.length) % slots.length]\n\n const prev = link(text('<<'), subject.uri.split('#')[0] + '#' + pIndex)\n\n descDiv.appendChild(prev)\n\n const indexDiv = myDocument.createElement('span')\n indexDiv.innerHTML = ' Playlist slot : ' + index + ' '\n\n descDiv.appendChild(indexDiv)\n\n const next = link(text('>>'), subject.uri.split('#')[0] + '#' + nIndex)\n descDiv.appendChild(next)\n }\n\n const tr = myDocument.createElement('TR') // why need tr?\n tr.appendChild(img)\n if (descDiv) {\n tr.appendChild(descDiv)\n }\n div.appendChild(tr)\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"playlistPane.js","names":["UI","_interopRequireWildcard","require","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ns","_default","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","anyStatementMatching","rdf","sym","render","myDocument","dom","isVideo","src","_index","html5","youtube","match","vimeo","dailymotion","vk","link","contents","uri","createElement","setAttribute","appendChild","addEventListener","widgets","openHrefInOutlineMode","text","str","createTextNode","obj","any","index","video","div","img","replace","value","descDiv","sl","statementsMatching","slots","length","push","parseInt","object","pIndex","indexOf","nIndex","prev","split","indexDiv","innerHTML","next","tr"],"sources":["../../src/playlist/playlistPane.js"],"sourcesContent":["/* Playlist Pane\n **\n ** This pane allows playlists and playlists slots to be viewed\n ** seeAlso: http://smiy.sourceforge.net/pbo/spec/playbackontology.html\n */\n import * as UI from 'solid-ui'\n import * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_1619.svg',\n\n name: 'playlistSlot',\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n const kb = context.session.store\n\n if (\n !kb.anyStatementMatching(\n subject,\n UI.ns.rdf('type'),\n kb.sym('http://purl.org/ontology/pbo/core#PlaylistSlot')\n )\n ) {\n return null\n }\n\n return 'playlist slot'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n function isVideo (src, _index) {\n if (!src) {\n return {\n html5: true\n }\n }\n\n const youtube = src.match(\n /\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-_%]+)/i\n )\n const vimeo = src.match(/\\/\\/(?:www\\.)?vimeo.com\\/([0-9a-z\\-_]+)/i)\n const dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i)\n const vk = src.match(\n /\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i\n )\n\n if (youtube) {\n return {\n youtube: youtube\n }\n } else if (vimeo) {\n return {\n vimeo: vimeo\n }\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n }\n } else if (vk) {\n return {\n vk: vk\n }\n }\n }\n\n const link = function (contents, uri) {\n if (!uri) return contents\n const a = myDocument.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n return a\n }\n\n const text = function (str) {\n return myDocument.createTextNode(str)\n }\n\n const kb = context.session.store\n const obj = kb.any(\n subject,\n $rdf.sym('http://purl.org/ontology/pbo/core#playlist_item')\n )\n let index = kb.any(\n subject,\n $rdf.sym('http://purl.org/ontology/olo/core#index')\n )\n\n let uri = obj.uri\n const video = isVideo(uri)\n\n const div = myDocument.createElement('div')\n let img\n if (video && video.youtube) {\n uri = uri.replace('watch?v=', 'embed/')\n div.setAttribute('class', 'imageView')\n img = myDocument.createElement('IFRAME')\n img.setAttribute('src', uri)\n img.setAttribute('width', 560)\n img.setAttribute('height', 315)\n img.setAttribute('frameborder', 0)\n img.setAttribute('style', 'max-width: 850px; max-height: 100%;')\n img.setAttribute('allowfullscreen', 'true')\n } else {\n div.setAttribute('class', 'imageView')\n img = myDocument.createElement('IMG')\n img.setAttribute('src', obj.value)\n img.setAttribute('width', 560)\n img.setAttribute('height', 315)\n img.setAttribute('style', 'max-width: 560; max-height: 315;')\n }\n\n let descDiv\n if (index) {\n const sl = kb.statementsMatching(\n null,\n $rdf.sym('http://purl.org/ontology/olo/core#index')\n )\n const slots = []\n for (let i = 0; i < sl.length; i++) {\n if (sl[i]) {\n slots.push(parseInt(sl[i].object.value, 10))\n }\n }\n\n index = parseInt(index.value, 10)\n descDiv = myDocument.createElement('div')\n\n const pIndex =\n slots[(slots.indexOf(index) - 1 + slots.length) % slots.length]\n const nIndex =\n slots[(slots.indexOf(index) + 1 + slots.length) % slots.length]\n\n const prev = link(text('<<'), subject.uri.split('#')[0] + '#' + pIndex)\n\n descDiv.appendChild(prev)\n\n const indexDiv = myDocument.createElement('span')\n indexDiv.innerHTML = ' Playlist slot : ' + index + ' '\n\n descDiv.appendChild(indexDiv)\n\n const next = link(text('>>'), subject.uri.split('#')[0] + '#' + nIndex)\n descDiv.appendChild(next)\n }\n\n const tr = myDocument.createElement('TR') // why need tr?\n tr.appendChild(img)\n if (descDiv) {\n tr.appendChild(descDiv)\n }\n div.appendChild(tr)\n return div\n }\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
|
package/lib/registerPanes.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.registerPanes = registerPanes;
|
|
7
7
|
var _profilePane = _interopRequireDefault(require("profile-pane"));
|
|
8
|
-
var _editProfile = _interopRequireDefault(require("./profile/editProfile.view"));
|
|
9
8
|
var _trustedApplications = _interopRequireDefault(require("./trustedApplications/trustedApplications.view"));
|
|
10
9
|
var _dashboardPane = _interopRequireDefault(require("./dashboard/dashboardPane"));
|
|
11
10
|
var _basicPreferences = _interopRequireDefault(require("./dashboard/basicPreferences"));
|
|
@@ -41,7 +40,9 @@ var _pane3 = _interopRequireDefault(require("./ui/pane.js"));
|
|
|
41
40
|
var _sharingPane = _interopRequireDefault(require("./sharing/sharingPane"));
|
|
42
41
|
var _internalPane = _interopRequireDefault(require("./internal/internalPane"));
|
|
43
42
|
var _homePane = _interopRequireDefault(require("./home/homePane"));
|
|
44
|
-
function _interopRequireDefault(
|
|
43
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
44
|
+
// import editProfileView from './profile/editProfile.view'
|
|
45
|
+
|
|
45
46
|
// import argumentPane from './argument/argumentPane.js'
|
|
46
47
|
|
|
47
48
|
// import publicationPane from './publication/publicationPane.js'
|
|
@@ -53,7 +54,11 @@ function registerPanes(register) {
|
|
|
53
54
|
// Developer designed:
|
|
54
55
|
|
|
55
56
|
register(_profilePane["default"]); // View someone's public profile - dominates all other panes.
|
|
56
|
-
|
|
57
|
+
var editProfileView = _profilePane["default"].editor;
|
|
58
|
+
if (!editProfileView) {
|
|
59
|
+
console.log("@@@ editProfileView", "profilePane is not providing an editor pane");
|
|
60
|
+
}
|
|
61
|
+
register(editProfileView); // Edit my profile.
|
|
57
62
|
|
|
58
63
|
register(_trustedApplications["default"]); // must be registered before basicPreferences
|
|
59
64
|
register(_dashboardPane["default"]);
|
package/lib/registerPanes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerPanes.js","names":["_profilePane","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"registerPanes.js","names":["_profilePane","_interopRequireDefault","require","_trustedApplications","_dashboardPane","_basicPreferences","_issuePane","_contactsPane","_activitystreamsPane","_padPane","_pane","_period","_meetingPane","_tabbedPane","_chatPane","_schedulePane","_tripPane","_imagePane","_playlistPane","_videoPane","_audioPane","_dokieliPane","_folderPane","_classInstancePane","_slideshowPane","_socialPane","_humanReadablePane","_dataContentPane","_sourcePane","_n3Pane","_RDFXMLPane","_pane2","_tableViewPane","_defaultPane","_pane3","_sharingPane","_internalPane","_homePane","e","__esModule","registerPanes","register","profilePane","editProfileView","editor","console","log","trustedApplications","dashboardPane","basicPreferences","issuePane","contactsPane","activityStreamsPane","padPane","transactionPane","financialPeriodPane","meetingPane","tabbedPane","longChatPane","shortChatPane","schedulePane","tripPane","imagePane","playListPane","videoPane","audioPane","dokieliPane","folderPane","classInstancePane","slideshowPane","socialPane","humanReadablePane","dataContentPane","sourcePane","n3Pane","RDFXMLPane","formPane","tableViewPane","defaultPane","uiPane","sharingPane","internalPane","homePane"],"sources":["../src/registerPanes.js"],"sourcesContent":["import profilePane from 'profile-pane'\n// import editProfileView from './profile/editProfile.view'\nimport trustedApplications from './trustedApplications/trustedApplications.view'\nimport dashboardPane from './dashboard/dashboardPane'\nimport basicPreferences from './dashboard/basicPreferences'\nimport issuePane from 'issue-pane'\nimport contactsPane from 'contacts-pane'\nimport activityStreamsPane from 'activitystreams-pane'\nimport padPane from './pad/padPane'\n// import argumentPane from './argument/argumentPane.js'\nimport transactionPane from './transaction/pane.js'\nimport financialPeriodPane from './transaction/period.js'\nimport meetingPane from 'meeting-pane'\nimport tabbedPane from './tabbed/tabbedPane'\nimport { longChatPane, shortChatPane } from 'chat-pane'\nimport { schedulePane } from './schedule/schedulePane.js'\n// import publicationPane from './publication/publicationPane.js'\nimport tripPane from './trip/tripPane.js'\nimport { imagePane } from './imagePane.js'\nimport playListPane from './playlist/playlistPane.js'\nimport videoPane from './video/videoPane.js'\nimport audioPane from './audio/audioPane.js'\nimport dokieliPane from './dokieli/dokieliPane.js'\nimport folderPane from 'folder-pane'\nimport { classInstancePane } from './classInstancePane.js'\nimport { slideshowPane } from './slideshow/slideshowPane.js'\nimport { socialPane } from './socialPane.js'\nimport humanReadablePane from './humanReadablePane.js'\n\nimport { dataContentPane } from './dataContentPane.js'\nimport sourcePane from 'source-pane'\nimport { n3Pane } from './n3Pane.js'\nimport { RDFXMLPane } from './RDFXMLPane.js'\nimport { formPane } from './form/pane.js'\nimport { tableViewPane } from './tableViewPane.js'\nimport { defaultPane } from './defaultPane.js'\nimport uiPane from './ui/pane.js'\n\nimport sharingPane from './sharing/sharingPane'\nimport internalPane from './internal/internalPane'\n\nimport homePane from './home/homePane'\n\nexport function registerPanes (register) {\n /* Note that the earliest panes have priority. So the most specific ones are first.\n **\n */\n // Developer designed:\n\n register(profilePane) // View someone's public profile - dominates all other panes.\n const editProfileView = profilePane.editor ;\n if (!editProfileView) {\n console.log(\"@@@ editProfileView\", \"profilePane is not providing an editor pane\")\n }\n\n register(editProfileView) // Edit my profile. \n\n register(trustedApplications) // must be registered before basicPreferences\n register(dashboardPane)\n register(basicPreferences)\n register(issuePane)\n register(contactsPane)\n register(activityStreamsPane)\n\n register(padPane)\n // register(argumentPane) // A position in an argument tree\n\n register(transactionPane)\n register(financialPeriodPane)\n\n register(meetingPane)\n register(tabbedPane)\n\n register(longChatPane) // Long pane must have prio in case short pane tries to do a long pane\n register(shortChatPane) // was './chat/chatPane.js'\n\n // register(publicationPane) // Suppress for now\n\n register(schedulePane) // doodle poll\n\n register(tripPane)\n // register(require('./airPane.js'))\n\n // Content views\n\n register(imagePane) // Basic image view\n register(playListPane) // Basic playlist view\n\n register(videoPane) // Video clip player\n register(audioPane) // Audio clip player\n\n register(dokieliPane) // Should be above dataContentPane\n register(folderPane) // Should be above dataContentPane\n register(classInstancePane) // Should be above dataContentPane\n // register(require('./dynamic/dynamicPanes.js')) // warp etc warp broken 2017/8\n register(slideshowPane)\n\n register(socialPane)\n\n register(humanReadablePane) // A web page as a web page -- how to escape to tabr?\n // register(require('markdown-pane').Pane) // replaced by markdown in humanReadablePane\n\n register(dataContentPane) // Preferred for a data file\n register(sourcePane) // edit source\n register(n3Pane)\n register(RDFXMLPane)\n\n // User configured - data driven\n register(formPane)\n\n // Generic:\n\n register(tableViewPane)\n\n // Fallback totally generic:\n register(defaultPane)\n\n register(uiPane)\n\n // register(require(\"categoryPane.js\")) // Not useful enough\n // register(require(\"pubsPane.js\")) // not finished\n\n // @@ jambo commented these things out to pare things down temporarily.\n // Note must use // not /* to comment out to make sure expander sees it\n // register(require(\"lawPane.js\"))\n\n // register(require('./microblogPane/microblogPane.js'))\n\n // register(require(\"./social/pane.js\")) // competitor to other social\n // register(require(\"./airPane.js\"))\n // register(require(\"./lawPane.js\"))\n // register(require(\"pushbackPane.js\"))\n // register(require(\"CVPane.js\"))\n // register(require(\"photoPane.js\"))\n // register(require(\"tagPane.js\"))\n // register(require(\"photoImportPane.js\"))\n\n // The sharing pane is fairly generic and administrative 201\n register(sharingPane)\n\n // The internals pane is always (almost?) the last as it is the least user-friendly\n register(internalPane)\n\n register(homePane) // This is a global pane\n\n // ENDS\n}\n"],"mappings":"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","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|
|
@@ -8,7 +8,7 @@ exports.schedulePane = void 0;
|
|
|
8
8
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
9
|
var _solidLogic = require("solid-logic");
|
|
10
10
|
var _formsForSchedule = _interopRequireDefault(require("./formsForSchedule.js"));
|
|
11
|
-
function _interopRequireDefault(
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
14
14
|
/* Scheduler Pane
|