solid-panes 4.4.2-7 → 4.5.0
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/README.md +40 -10
- package/dist/0314353e28ce6e5539af.svg +9 -0
- package/dist/04567ff683933c35c465.png +0 -0
- package/dist/10163fd9b5a0e00d63a0.png +0 -0
- package/dist/1234dcb2eec2e45f252b.png +0 -0
- package/dist/20899934157df4db56cb.png +0 -0
- package/dist/33760bf79f097f449da5.png +0 -0
- package/dist/4cceba29ab33b1ddd9bb.svg +6 -0
- package/dist/578d2b6ed32e7624164e.png +0 -0
- package/dist/5f62a5b2b7e99b9640c7.png +0 -0
- package/dist/6525766ecd288ec60129.png +0 -0
- package/dist/7800be6f6c4b5b0f4f20.png +0 -0
- package/dist/7b7538c6f6b317968009.svg +9 -0
- package/dist/92d03142abe6efc0b42d.svg +6 -0
- package/dist/976473cf5fe24d657d4b.png +0 -0
- package/dist/RDFXMLPane.css +70 -0
- package/dist/RDFXMLPane.d.ts +3 -2
- package/dist/RDFXMLPane.js +100 -0
- package/dist/argument/argumentPane.js +60 -0
- package/dist/attach/attachPane.js +393 -0
- package/dist/audio/audioPane.js +181 -0
- package/dist/bda84f59e7216675a208.png +0 -0
- package/dist/cd68e8f3990ba8b2139e.png +0 -0
- package/dist/classInstancePane.js +91 -0
- package/dist/dashboard/basicPreferences.d.ts +1 -1
- package/dist/dashboard/basicPreferences.js +147 -0
- package/dist/dashboard/dashboardPane.d.ts +1 -1
- package/dist/dashboard/dashboardPane.js +73 -0
- package/dist/dashboard/homepage.d.ts +1 -1
- package/dist/dashboard/homepage.js +42 -0
- package/dist/dataContentPane.css +271 -0
- package/dist/dataContentPane.d.ts +3 -2
- package/dist/dataContentPane.js +226 -0
- package/dist/defaultPane.css +97 -0
- package/dist/defaultPane.d.ts +3 -2
- package/dist/defaultPane.js +81 -0
- package/dist/dokieli/dokieliPane.js +74 -0
- package/dist/dokieli/{new.cjs.js → new.js} +10 -4
- package/dist/e7074a7e2cb69e51cfd3.png +0 -0
- package/dist/f3772696fb7ee53c23d8.png +0 -0
- package/dist/form/formPane.css +120 -0
- package/dist/form/pane.d.ts +2 -1
- package/dist/form/pane.js +250 -0
- package/dist/home/homePane.d.ts +1 -1
- package/dist/home/homePane.js +74 -0
- package/dist/humanReadablePane.css +129 -0
- package/dist/humanReadablePane.d.ts +3 -2
- package/dist/humanReadablePane.js +243 -0
- package/dist/icons/clock.svg +7 -0
- package/dist/icons/comment.svg +6 -0
- package/dist/icons/dashboard.svg +9 -0
- package/dist/icons/downArrow.svg +6 -0
- package/dist/icons/folder.svg +6 -0
- package/dist/icons/friends.svg +9 -0
- package/dist/icons/help.svg +8 -0
- package/dist/icons/iconHelper.js +23 -0
- package/dist/icons/menu.svg +8 -0
- package/dist/icons/person.svg +6 -0
- package/dist/icons/personInCircle.svg +8 -0
- package/dist/icons/sharing.svg +10 -0
- package/dist/icons/signOut.svg +8 -0
- package/dist/icons/signUp.svg +9 -0
- package/dist/icons/star.svg +3 -0
- package/dist/imagePane.css +4 -0
- package/dist/imagePane.d.ts +3 -2
- package/dist/imagePane.js +67 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +123 -0
- package/dist/internal/internalPane.css +14 -0
- package/dist/internal/internalPane.d.ts +2 -1
- package/dist/internal/internalPane.js +183 -0
- package/dist/mainPage/footer.d.ts +15 -0
- package/dist/mainPage/footer.d.ts.map +1 -0
- package/dist/mainPage/footer.js +29 -0
- package/dist/mainPage/header.d.ts +15 -1
- package/dist/mainPage/header.d.ts.map +1 -1
- package/dist/mainPage/header.js +203 -0
- package/dist/mainPage/index.d.ts +15 -3
- package/dist/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.js +78 -0
- package/dist/mainPage/menu.css +243 -0
- package/dist/mainPage/menu.d.ts +7 -0
- package/dist/mainPage/menu.d.ts.map +1 -0
- package/dist/mainPage/menu.js +436 -0
- package/dist/microblogPane/mbStyle.css +267 -0
- package/dist/microblogPane/microblogPane.js +1031 -0
- package/dist/n3Pane.css +49 -0
- package/dist/n3Pane.d.ts +3 -2
- package/dist/n3Pane.js +88 -0
- package/dist/outline/context.d.ts +3 -3
- package/dist/outline/context.js +21 -0
- package/dist/outline/manager.css +78 -0
- package/dist/outline/manager.js +2115 -0
- package/dist/outline/outlineIcons.js +126 -0
- package/dist/outline/propertyViews.js +43 -0
- package/dist/outline/queryByExample.js +285 -0
- package/dist/outline/userInput.js +1821 -0
- package/dist/outline/viewAsImage.js +14 -0
- package/dist/outline/viewAsMbox.js +21 -0
- package/dist/pad/padPane.css +40 -0
- package/dist/pad/padPane.d.ts +2 -1
- package/dist/pad/padPane.js +421 -0
- package/dist/playlist/playlistPane.js +119 -0
- package/dist/profileUtils/ownerProfile.d.ts +5 -0
- package/dist/profileUtils/ownerProfile.d.ts.map +1 -0
- package/dist/profileUtils/ownerProfile.js +84 -0
- package/dist/registerPanes.js +145 -0
- package/dist/schedule/schedulePane.css +294 -0
- package/dist/schedule/schedulePane.d.ts +4 -2
- package/dist/schedule/schedulePane.js +1022 -0
- package/dist/sharing/sharingPane.js +48 -0
- package/dist/slideshow/slideshowPane.js +79 -0
- package/dist/social/editProfileDetails.d.ts +2 -1
- package/dist/social/editProfileDetails.js +362 -0
- package/dist/social/{icons.esm.js → icons.js} +18 -12
- package/dist/social/socialPane.css +1464 -0
- package/dist/social/socialPane.d.ts +3 -2
- package/dist/social/socialPane.js +651 -0
- package/dist/social/socialSections.d.ts +2 -2
- package/dist/social/socialSections.js +393 -0
- package/dist/social/spinner.js +13 -0
- package/dist/social/triage.d.ts +2 -2
- package/dist/social/triage.js +79 -0
- package/dist/solid-panes.js +84629 -0
- package/dist/solid-panes.js.map +1 -0
- package/dist/solid-panes.min.js +3933 -0
- package/dist/solid-panes.min.js.map +1 -0
- package/dist/styles/tabbedtab.css +1066 -0
- package/dist/styles/utilities.css +5 -0
- package/dist/tabbed/tabbedPane.d.ts +1 -1
- package/dist/tabbed/tabbedPane.js +59 -0
- package/dist/tableViewPane.js +56 -0
- package/dist/transaction/pane.js +477 -0
- package/dist/transaction/period.js +323 -0
- package/dist/trip/tripPane.js +174 -0
- package/dist/trustedApplications/trustedApplications.dom.d.ts +1 -1
- package/dist/trustedApplications/trustedApplications.dom.js +145 -0
- package/dist/trustedApplications/trustedApplications.utils.d.ts +1 -1
- package/dist/trustedApplications/trustedApplications.utils.js +23 -0
- package/dist/trustedApplications/trustedApplications.view.d.ts +1 -1
- package/dist/trustedApplications/trustedApplications.view.js +55 -0
- package/dist/ui/pane.js +146 -0
- package/dist/versionInfo.js +41 -0
- package/dist/video/videoPane.js +42 -0
- package/package.json +66 -51
- package/dist/RDFXMLPane2.cjs.js +0 -3
- package/dist/RDFXMLPane2.cjs.js.map +0 -1
- package/dist/RDFXMLPane2.esm.js +0 -55
- package/dist/RDFXMLPane2.esm.js.map +0 -1
- package/dist/_virtual/_rolldown/runtime.cjs.js +0 -1
- package/dist/_virtual/~icons/lucide/arrow-left.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/arrow-left.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/arrow-left.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/arrow-left.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/folder-open.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/globe.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/globe.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/globe.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/globe.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/help-circle.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/help-circle.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/help-circle.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/help-circle.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/pencil.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/pencil.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/pencil.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/pencil.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/settings-2.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/settings-2.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/settings-2.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/settings-2.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/share-2.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/share-2.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/share-2.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/share-2.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/trash-2.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/trash-2.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/trash-2.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/trash-2.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/user.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/user.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/user.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/user.esm.js.map +0 -1
- package/dist/_virtual/~icons/lucide/users.cjs.js +0 -2
- package/dist/_virtual/~icons/lucide/users.cjs.js.map +0 -1
- package/dist/_virtual/~icons/lucide/users.esm.js +0 -11
- package/dist/_virtual/~icons/lucide/users.esm.js.map +0 -1
- package/dist/audio/audioPane.cjs.js +0 -2
- package/dist/audio/audioPane.cjs.js.map +0 -1
- package/dist/audio/audioPane.esm.js +0 -99
- package/dist/audio/audioPane.esm.js.map +0 -1
- package/dist/classInstancePane.cjs.js +0 -2
- package/dist/classInstancePane.cjs.js.map +0 -1
- package/dist/classInstancePane.esm.js +0 -50
- package/dist/classInstancePane.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +0 -14
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.d.ts +0 -19
- package/dist/components/file-explorer-header/FileExplorerHeader.d.ts.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +0 -292
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js +0 -2
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js +0 -7
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +0 -22
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts +0 -15
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +0 -266
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js +0 -2
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js +0 -7
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +0 -19
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts +0 -19
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +0 -321
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js +0 -2
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js +0 -7
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js +0 -13
- package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.d.ts +0 -36
- package/dist/components/file-explorer-header/FileExplorerProvider.d.ts.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.esm.js +0 -468
- package/dist/components/file-explorer-header/FileExplorerProvider.esm.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.cjs.js +0 -2
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.esm.js +0 -7
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.esm.js.map +0 -1
- package/dist/components/file-explorer-header/helper.cjs.js +0 -2
- package/dist/components/file-explorer-header/helper.cjs.js.map +0 -1
- package/dist/components/file-explorer-header/helper.d.ts +0 -15
- package/dist/components/file-explorer-header/helper.d.ts.map +0 -1
- package/dist/components/file-explorer-header/helper.esm.js +0 -64
- package/dist/components/file-explorer-header/helper.esm.js.map +0 -1
- package/dist/components/file-explorer-header/types.d.ts +0 -2
- package/dist/components/file-explorer-header/types.d.ts.map +0 -1
- package/dist/components/header/Header.cjs.js +0 -19
- package/dist/components/header/Header.cjs.js.map +0 -1
- package/dist/components/header/Header.d.ts +0 -8
- package/dist/components/header/Header.d.ts.map +0 -1
- package/dist/components/header/Header.esm.js +0 -228
- package/dist/components/header/Header.esm.js.map +0 -1
- package/dist/components/header/Header.styles.cjs.js +0 -2
- package/dist/components/header/Header.styles.cjs.js.map +0 -1
- package/dist/components/header/Header.styles.esm.js +0 -7
- package/dist/components/header/Header.styles.esm.js.map +0 -1
- package/dist/components/header/index.cjs.js +0 -1
- package/dist/components/header/index.d.ts +0 -4
- package/dist/components/header/index.d.ts.map +0 -1
- package/dist/components/header/index.esm.js +0 -1
- package/dist/components/navbar/Navbar.cjs.js +0 -15
- package/dist/components/navbar/Navbar.cjs.js.map +0 -1
- package/dist/components/navbar/Navbar.d.ts +0 -14
- package/dist/components/navbar/Navbar.d.ts.map +0 -1
- package/dist/components/navbar/Navbar.esm.js +0 -232
- package/dist/components/navbar/Navbar.esm.js.map +0 -1
- package/dist/components/navbar/Navbar.styles.cjs.js +0 -2
- package/dist/components/navbar/Navbar.styles.cjs.js.map +0 -1
- package/dist/components/navbar/Navbar.styles.esm.js +0 -7
- package/dist/components/navbar/Navbar.styles.esm.js.map +0 -1
- package/dist/components/navbar/index.cjs.js +0 -1
- package/dist/components/navbar/index.d.ts +0 -4
- package/dist/components/navbar/index.d.ts.map +0 -1
- package/dist/components/navbar/index.esm.js +0 -1
- package/dist/components/resource-actions-menu/DeleteResourceDialog.cjs.js +0 -16
- package/dist/components/resource-actions-menu/DeleteResourceDialog.cjs.js.map +0 -1
- package/dist/components/resource-actions-menu/DeleteResourceDialog.d.ts +0 -8
- package/dist/components/resource-actions-menu/DeleteResourceDialog.d.ts.map +0 -1
- package/dist/components/resource-actions-menu/DeleteResourceDialog.esm.js +0 -215
- package/dist/components/resource-actions-menu/DeleteResourceDialog.esm.js.map +0 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +0 -18
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +0 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts +0 -16
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +0 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +0 -260
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +0 -1
- package/dist/dashboard/basicPreferences.cjs.js +0 -2
- package/dist/dashboard/basicPreferences.cjs.js.map +0 -1
- package/dist/dashboard/basicPreferences.esm.js +0 -70
- package/dist/dashboard/basicPreferences.esm.js.map +0 -1
- package/dist/dashboard/dashboardPane.cjs.js +0 -2
- package/dist/dashboard/dashboardPane.cjs.js.map +0 -1
- package/dist/dashboard/dashboardPane.esm.js +0 -7
- package/dist/dashboard/dashboardPane.esm.js.map +0 -1
- package/dist/dashboard/homepage.cjs.js +0 -2
- package/dist/dashboard/homepage.cjs.js.map +0 -1
- package/dist/dashboard/homepage.esm.js +0 -26
- package/dist/dashboard/homepage.esm.js.map +0 -1
- package/dist/dashboard/ontologyData.cjs.js +0 -37
- package/dist/dashboard/ontologyData.cjs.js.map +0 -1
- package/dist/dashboard/ontologyData.esm.js +0 -6
- package/dist/dashboard/ontologyData.esm.js.map +0 -1
- package/dist/dashboard/preferencesFormText.cjs.js +0 -20
- package/dist/dashboard/preferencesFormText.cjs.js.map +0 -1
- package/dist/dashboard/preferencesFormText.esm.js +0 -6
- package/dist/dashboard/preferencesFormText.esm.js.map +0 -1
- package/dist/dataContentPane2.cjs.js +0 -2
- package/dist/dataContentPane2.cjs.js.map +0 -1
- package/dist/dataContentPane2.esm.js +0 -109
- package/dist/dataContentPane2.esm.js.map +0 -1
- package/dist/defaultPane2.cjs.js +0 -2
- package/dist/defaultPane2.cjs.js.map +0 -1
- package/dist/defaultPane2.esm.js +0 -41
- package/dist/defaultPane2.esm.js.map +0 -1
- package/dist/dev.d.ts +0 -10
- package/dist/dev.d.ts.map +0 -1
- package/dist/dokieli/dokieliPane.cjs.js +0 -2
- package/dist/dokieli/dokieliPane.cjs.js.map +0 -1
- package/dist/dokieli/dokieliPane.esm.js +0 -39
- package/dist/dokieli/dokieliPane.esm.js.map +0 -1
- package/dist/dokieli/new.cjs.js.map +0 -1
- package/dist/dokieli/new.esm.js +0 -6
- package/dist/dokieli/new.esm.js.map +0 -1
- package/dist/form/pane.cjs.js +0 -4
- package/dist/form/pane.cjs.js.map +0 -1
- package/dist/form/pane.esm.js +0 -122
- package/dist/form/pane.esm.js.map +0 -1
- package/dist/home/homePane.cjs.js +0 -2
- package/dist/home/homePane.cjs.js.map +0 -1
- package/dist/home/homePane.esm.js +0 -35
- package/dist/home/homePane.esm.js.map +0 -1
- package/dist/humanReadablePane2.cjs.js +0 -2
- package/dist/humanReadablePane2.cjs.js.map +0 -1
- package/dist/humanReadablePane2.esm.js +0 -123
- package/dist/humanReadablePane2.esm.js.map +0 -1
- package/dist/icons/folder.cjs.js +0 -2
- package/dist/icons/folder.cjs.js.map +0 -1
- package/dist/icons/folder.esm.js +0 -6
- package/dist/icons/folder.esm.js.map +0 -1
- package/dist/icons/friends.cjs.js +0 -2
- package/dist/icons/friends.cjs.js.map +0 -1
- package/dist/icons/friends.esm.js +0 -6
- package/dist/icons/friends.esm.js.map +0 -1
- package/dist/icons/person.cjs.js +0 -2
- package/dist/icons/person.cjs.js.map +0 -1
- package/dist/icons/person.esm.js +0 -6
- package/dist/icons/person.esm.js.map +0 -1
- package/dist/imagePane2.cjs.js +0 -2
- package/dist/imagePane2.cjs.js.map +0 -1
- package/dist/imagePane2.esm.js +0 -32
- package/dist/imagePane2.esm.js.map +0 -1
- package/dist/index.cjs.js +0 -2
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.esm.js +0 -31
- package/dist/index.esm.js.map +0 -1
- package/dist/internal/internalPane2.cjs.js +0 -2
- package/dist/internal/internalPane2.cjs.js.map +0 -1
- package/dist/internal/internalPane2.esm.js +0 -104
- package/dist/internal/internalPane2.esm.js.map +0 -1
- package/dist/mainPage/header.cjs.js +0 -2
- package/dist/mainPage/header.cjs.js.map +0 -1
- package/dist/mainPage/header.esm.js +0 -72
- package/dist/mainPage/header.esm.js.map +0 -1
- package/dist/mainPage/index.cjs.js +0 -2
- package/dist/mainPage/index.cjs.js.map +0 -1
- package/dist/mainPage/index.esm.js +0 -36
- package/dist/mainPage/index.esm.js.map +0 -1
- package/dist/mainPage/navbar.cjs.js +0 -2
- package/dist/mainPage/navbar.cjs.js.map +0 -1
- package/dist/mainPage/navbar.d.ts +0 -3
- package/dist/mainPage/navbar.d.ts.map +0 -1
- package/dist/mainPage/navbar.esm.js +0 -66
- package/dist/mainPage/navbar.esm.js.map +0 -1
- package/dist/n3Pane2.cjs.js +0 -3
- package/dist/n3Pane2.cjs.js.map +0 -1
- package/dist/n3Pane2.esm.js +0 -52
- package/dist/n3Pane2.esm.js.map +0 -1
- package/dist/outline/context.cjs.js +0 -2
- package/dist/outline/context.cjs.js.map +0 -1
- package/dist/outline/context.esm.js +0 -18
- package/dist/outline/context.esm.js.map +0 -1
- package/dist/outline/manager2.cjs.js +0 -2
- package/dist/outline/manager2.cjs.js.map +0 -1
- package/dist/outline/manager2.esm.js +0 -711
- package/dist/outline/manager2.esm.js.map +0 -1
- package/dist/outline/outlineIcons.cjs.js +0 -2
- package/dist/outline/outlineIcons.cjs.js.map +0 -1
- package/dist/outline/outlineIcons.esm.js +0 -10
- package/dist/outline/outlineIcons.esm.js.map +0 -1
- package/dist/outline/propertyViews.cjs.js +0 -2
- package/dist/outline/propertyViews.cjs.js.map +0 -1
- package/dist/outline/propertyViews.esm.js +0 -19
- package/dist/outline/propertyViews.esm.js.map +0 -1
- package/dist/outline/queryByExample.cjs.js +0 -2
- package/dist/outline/queryByExample.cjs.js.map +0 -1
- package/dist/outline/queryByExample.esm.js +0 -26
- package/dist/outline/queryByExample.esm.js.map +0 -1
- package/dist/outline/sourcePaneIcon.d.ts +0 -2
- package/dist/outline/sourcePaneIcon.d.ts.map +0 -1
- package/dist/outline/userInput.cjs.js +0 -61
- package/dist/outline/userInput.cjs.js.map +0 -1
- package/dist/outline/userInput.esm.js +0 -784
- package/dist/outline/userInput.esm.js.map +0 -1
- package/dist/outline/viewAsImage.cjs.js +0 -2
- package/dist/outline/viewAsImage.cjs.js.map +0 -1
- package/dist/outline/viewAsImage.esm.js +0 -10
- package/dist/outline/viewAsImage.esm.js.map +0 -1
- package/dist/outline/viewAsMbox.cjs.js +0 -2
- package/dist/outline/viewAsMbox.cjs.js.map +0 -1
- package/dist/outline/viewAsMbox.esm.js +0 -9
- package/dist/outline/viewAsMbox.esm.js.map +0 -1
- package/dist/pad/padPane2.cjs.js +0 -2
- package/dist/pad/padPane2.cjs.js.map +0 -1
- package/dist/pad/padPane2.esm.js +0 -173
- package/dist/pad/padPane2.esm.js.map +0 -1
- package/dist/playlist/playlistPane.cjs.js +0 -2
- package/dist/playlist/playlistPane.cjs.js.map +0 -1
- package/dist/playlist/playlistPane.esm.js +0 -49
- package/dist/playlist/playlistPane.esm.js.map +0 -1
- package/dist/registerPanes.cjs.js +0 -2
- package/dist/registerPanes.cjs.js.map +0 -1
- package/dist/registerPanes.esm.js +0 -46
- package/dist/registerPanes.esm.js.map +0 -1
- package/dist/schedule/formsForSchedule.cjs.js +0 -117
- package/dist/schedule/formsForSchedule.cjs.js.map +0 -1
- package/dist/schedule/formsForSchedule.esm.js +0 -6
- package/dist/schedule/formsForSchedule.esm.js.map +0 -1
- package/dist/schedule/schedulePane2.cjs.js +0 -8
- package/dist/schedule/schedulePane2.cjs.js.map +0 -1
- package/dist/schedule/schedulePane2.esm.js +0 -385
- package/dist/schedule/schedulePane2.esm.js.map +0 -1
- package/dist/sharing/sharingPane.cjs.js +0 -2
- package/dist/sharing/sharingPane.cjs.js.map +0 -1
- package/dist/sharing/sharingPane.esm.js +0 -22
- package/dist/sharing/sharingPane.esm.js.map +0 -1
- package/dist/slideshow/slideshowPane.cjs.js +0 -2
- package/dist/slideshow/slideshowPane.cjs.js.map +0 -1
- package/dist/slideshow/slideshowPane.esm.js +0 -46
- package/dist/slideshow/slideshowPane.esm.js.map +0 -1
- package/dist/social/editProfileDetails.cjs.js +0 -2
- package/dist/social/editProfileDetails.cjs.js.map +0 -1
- package/dist/social/editProfileDetails.esm.js +0 -12
- package/dist/social/editProfileDetails.esm.js.map +0 -1
- package/dist/social/icons.cjs.js +0 -82
- package/dist/social/icons.cjs.js.map +0 -1
- package/dist/social/icons.esm.js.map +0 -1
- package/dist/social/socialPane2.cjs.js +0 -6
- package/dist/social/socialPane2.cjs.js.map +0 -1
- package/dist/social/socialPane2.esm.js +0 -326
- package/dist/social/socialPane2.esm.js.map +0 -1
- package/dist/social/socialSections.cjs.js +0 -2
- package/dist/social/socialSections.cjs.js.map +0 -1
- package/dist/social/socialSections.esm.js +0 -222
- package/dist/social/socialSections.esm.js.map +0 -1
- package/dist/social/spinner.cjs.js +0 -1
- package/dist/social/spinner.esm.js +0 -1
- package/dist/social/triage.cjs.js +0 -2
- package/dist/social/triage.cjs.js.map +0 -1
- package/dist/social/triage.esm.js +0 -44
- package/dist/social/triage.esm.js.map +0 -1
- package/dist/tabbed/tabbedPane.cjs.js +0 -2
- package/dist/tabbed/tabbedPane.cjs.js.map +0 -1
- package/dist/tabbed/tabbedPane.esm.js +0 -38
- package/dist/tabbed/tabbedPane.esm.js.map +0 -1
- package/dist/tableViewPane.cjs.js +0 -2
- package/dist/tableViewPane.cjs.js.map +0 -1
- package/dist/tableViewPane.esm.js +0 -20
- package/dist/tableViewPane.esm.js.map +0 -1
- package/dist/transaction/pane.cjs.js +0 -8
- package/dist/transaction/pane.cjs.js.map +0 -1
- package/dist/transaction/pane.esm.js +0 -212
- package/dist/transaction/pane.esm.js.map +0 -1
- package/dist/transaction/period.cjs.js +0 -4
- package/dist/transaction/period.cjs.js.map +0 -1
- package/dist/transaction/period.esm.js +0 -126
- package/dist/transaction/period.esm.js.map +0 -1
- package/dist/trip/tripPane.cjs.js +0 -2
- package/dist/trip/tripPane.cjs.js.map +0 -1
- package/dist/trip/tripPane.esm.js +0 -85
- package/dist/trip/tripPane.esm.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.dom.cjs.js +0 -2
- package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.dom.esm.js +0 -108
- package/dist/trustedApplications/trustedApplications.dom.esm.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.utils.cjs.js +0 -2
- package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.utils.esm.js +0 -20
- package/dist/trustedApplications/trustedApplications.utils.esm.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.view.cjs.js +0 -2
- package/dist/trustedApplications/trustedApplications.view.cjs.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.view.esm.js +0 -41
- package/dist/trustedApplications/trustedApplications.view.esm.js.map +0 -1
- package/dist/ui/pane.cjs.js +0 -4
- package/dist/ui/pane.cjs.js.map +0 -1
- package/dist/ui/pane.esm.js +0 -56
- package/dist/ui/pane.esm.js.map +0 -1
- package/dist/utils/paneUtils.cjs.js +0 -2
- package/dist/utils/paneUtils.cjs.js.map +0 -1
- package/dist/utils/paneUtils.d.ts +0 -19
- package/dist/utils/paneUtils.d.ts.map +0 -1
- package/dist/utils/paneUtils.esm.js +0 -52
- package/dist/utils/paneUtils.esm.js.map +0 -1
- package/dist/utils/podUtils.cjs.js +0 -2
- package/dist/utils/podUtils.cjs.js.map +0 -1
- package/dist/utils/podUtils.d.ts +0 -4
- package/dist/utils/podUtils.d.ts.map +0 -1
- package/dist/utils/podUtils.esm.js +0 -46
- package/dist/utils/podUtils.esm.js.map +0 -1
- package/dist/utils/webIdUtils.cjs.js +0 -2
- package/dist/utils/webIdUtils.cjs.js.map +0 -1
- package/dist/utils/webIdUtils.d.ts +0 -6
- package/dist/utils/webIdUtils.d.ts.map +0 -1
- package/dist/utils/webIdUtils.esm.js +0 -48
- package/dist/utils/webIdUtils.esm.js.map +0 -1
- package/dist/versionInfo.cjs.js +0 -2
- package/dist/versionInfo.cjs.js.map +0 -1
- package/dist/versionInfo.esm.js +0 -40
- package/dist/versionInfo.esm.js.map +0 -1
- package/dist/video/videoPane.cjs.js +0 -2
- package/dist/video/videoPane.cjs.js.map +0 -1
- package/dist/video/videoPane.esm.js +0 -25
- package/dist/video/videoPane.esm.js.map +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import * as e from "solid-ui";
|
|
2
|
-
//#region src/transaction/period.js
|
|
3
|
-
var t = e.ns, n = {
|
|
4
|
-
icon: e.icons.iconBase + "noun_142708.svg",
|
|
5
|
-
name: "period",
|
|
6
|
-
audience: [t.solid("PowerUser")],
|
|
7
|
-
label: function(e, t) {
|
|
8
|
-
return t.session.store.findTypeURIs(e)["http://www.w3.org/2000/10/swap/pim/qif#Period"] ? "period" : null;
|
|
9
|
-
},
|
|
10
|
-
render: function(t, n) {
|
|
11
|
-
let r = n.dom, i = n.session.store, a = e.ns, o = r.createElement("div");
|
|
12
|
-
o.setAttribute("class", "periodPane");
|
|
13
|
-
let s = function(e, t) {
|
|
14
|
-
t ||= "color: grey;";
|
|
15
|
-
let n = r.createElement("pre");
|
|
16
|
-
n.setAttribute("style", t), o.appendChild(n), n.appendChild(r.createTextNode(e));
|
|
17
|
-
}, c = function(e) {
|
|
18
|
-
return s("✓ " + e, "color: #010; background-color: #efe");
|
|
19
|
-
}, l = function(e) {
|
|
20
|
-
return s(e, "color: #100; background-color: #fee");
|
|
21
|
-
}, u = function() {
|
|
22
|
-
let s = i.any(t, a.cal("dtstart"));
|
|
23
|
-
s === void 0 && l("(Error: There is no start date known for this period <" + t.uri + ">,\n -- every period needs one.)");
|
|
24
|
-
let u = i.any(t, a.cal("dtend"));
|
|
25
|
-
u === void 0 && l("(Error: There is no end date known for this period <" + t.uri + ">,\n -- every period needs one.)");
|
|
26
|
-
let d = {};
|
|
27
|
-
(function(e) {
|
|
28
|
-
d[e.uri] = !0;
|
|
29
|
-
})(a.rdf("type"));
|
|
30
|
-
let f = function(e) {
|
|
31
|
-
return !!(e && e >= s && e < u);
|
|
32
|
-
}, p = function(e) {
|
|
33
|
-
let t = "" + e;
|
|
34
|
-
return t.indexOf(".") >= 0 ? t.split(".")[0] + "." + (t.split(".")[1] + "00").slice(0, 2) : t + ".00";
|
|
35
|
-
}, m = function(e) {
|
|
36
|
-
return f(i.any(e, a.qu("date")));
|
|
37
|
-
}, h = function(e, t) {
|
|
38
|
-
let n = i.any(e, a.qu("date")), r = i.any(t, a.qu("date"));
|
|
39
|
-
if (n !== void 0 && r !== void 0) {
|
|
40
|
-
if (n.value < r.value) return -1;
|
|
41
|
-
if (n.value > r.value) return 1;
|
|
42
|
-
}
|
|
43
|
-
return e.uri < t.uri ? -1 : +(e.uri > t.uri);
|
|
44
|
-
}, g = o.appendChild(r.createElement("h2"));
|
|
45
|
-
g.textContent = "Period " + s.value.slice(0, 10) + " - " + u.value.slice(0, 10);
|
|
46
|
-
let _ = function(e, t, n) {
|
|
47
|
-
let r = e.session.paneRegistry.byName(n).render(t, e);
|
|
48
|
-
return r.setAttribute("style", "border: 0.1em solid green;"), r;
|
|
49
|
-
}, v = function(e, t, r, i, a) {
|
|
50
|
-
let o = t.parentNode.children;
|
|
51
|
-
if (a) for (let e = o.length - 1; e >= 0; e--) o[e].expanded && (o[e].parentNode.removeChild(o[e].expanded), o[e].expanded = !1);
|
|
52
|
-
let s = e.createElement("tr"), c = s.appendChild(e.createElement("td"));
|
|
53
|
-
c.setAttribute("style", "width: 98%; padding: 1em; border: 0.1em solid grey;");
|
|
54
|
-
let l = t.children.length;
|
|
55
|
-
t.nextSibling ? t.parentNode.insertBefore(s, t.nextSibling) : t.parentNode.appendChild(s), t.expanded = s, c.setAttribute("colspan", "" + l), c.appendChild(_(n, r, i));
|
|
56
|
-
}, y = function(e, t, n, r, i) {
|
|
57
|
-
t.expanded ? (t.parentNode.removeChild(t.expanded), t.expanded = !1) : v(e, t, n, r, i);
|
|
58
|
-
}, b = function(t, n) {
|
|
59
|
-
let r = t.createElement("table");
|
|
60
|
-
r.setAttribute("style", "margin-left: 100; font-size: 9pt; width: 85%;");
|
|
61
|
-
let o = function(t, n) {
|
|
62
|
-
let r = t.createElement("tr");
|
|
63
|
-
(function(t, n) {
|
|
64
|
-
let r = "margin-left: 8em; padding-left: 5em;";
|
|
65
|
-
if (n) {
|
|
66
|
-
let t = i.any(n, e.ns.ui("backgroundColor"));
|
|
67
|
-
t && (r += "background-color: " + t.value + "; ");
|
|
68
|
-
}
|
|
69
|
-
t.setAttribute("style", r);
|
|
70
|
-
})(r, i.any(n, a.qu("toAccount")));
|
|
71
|
-
let o = r.appendChild(t.createElement("td")), s = i.any(n, a.qu("date"));
|
|
72
|
-
o.textContent = s ? s.value.slice(0, 10) : "???", o.setAttribute("style", "width: 7em;");
|
|
73
|
-
let c = r.appendChild(t.createElement("td"));
|
|
74
|
-
c.setAttribute("style", "width: 36em;");
|
|
75
|
-
let l = i.any(n, a.qu("payee"));
|
|
76
|
-
c.textContent = l ? l.value : "???";
|
|
77
|
-
let u = c.appendChild(t.createElement("a"));
|
|
78
|
-
u.textContent = " ➜", u.setAttribute("href", n.uri);
|
|
79
|
-
let d = r.appendChild(t.createElement("td")), f = i.any(n, a.qu("in_USD"));
|
|
80
|
-
return d.textContent = f ? p(f.value) : "???", d.setAttribute("style", "width: 6em; text-align: right; "), r.addEventListener("click", function(e) {
|
|
81
|
-
y(t, r, n, "transaction", !e.shiftKey);
|
|
82
|
-
}, !1), r;
|
|
83
|
-
}, s = n.filter(m);
|
|
84
|
-
s.sort(h);
|
|
85
|
-
for (let e = 0; e < s.length; e++) r.appendChild(o(t, s[e]));
|
|
86
|
-
return r;
|
|
87
|
-
}, x = {
|
|
88
|
-
"http://www.w3.org/2000/10/swap/pim/qif#Transaction": !0,
|
|
89
|
-
"http://www.w3.org/2000/10/swap/pim/qif#Unclassified": !0,
|
|
90
|
-
"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing": !0,
|
|
91
|
-
"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome": !0
|
|
92
|
-
}, S = i.findMemberURIs(a.qu("Transaction")), C = [], w = [], T, E;
|
|
93
|
-
for (let e in S) if (Object.prototype.hasOwnProperty.call(S, e)) {
|
|
94
|
-
E = i.sym(e);
|
|
95
|
-
let t = i.each(E, a.rdf("type")), n = !1;
|
|
96
|
-
for (let e = 0; e < t.length; e++) x[t[e].uri] === void 0 && (n = !0);
|
|
97
|
-
n || (T = i.any(E, a.qu("in_USD")), T === void 0 && (T = i.any(E, a.qu("amount"))), T && ("" + T.value).indexOf("-") >= 0 ? w.push(i.sym(e)) : C.push(i.sym(e)));
|
|
98
|
-
}
|
|
99
|
-
let D, O;
|
|
100
|
-
C.length ? (D = b(r, C), O = D.children.length, o.appendChild(r.createElement("h3")).textContent = "Unclassified Income" + (O < 4 ? "" : " (" + O + ")"), o.appendChild(D)) : c("No unclassified income"), w.length ? (D = b(r, w), O = D.children.length, o.appendChild(r.createElement("h3")).textContent = "Unclassified Outgoings" + (O < 4 ? "" : " (" + O + ")"), o.appendChild(D)) : c("No unclassified outgoings ");
|
|
101
|
-
let k = function(e) {
|
|
102
|
-
let t = i.findSubClassesNT(a.qu("Transaction"));
|
|
103
|
-
for (let n in t) if (Object.prototype.hasOwnProperty.call(t, n) && n.slice(1, -1).split("#")[1] === e) return i.sym(n.slice(1, -1));
|
|
104
|
-
return null;
|
|
105
|
-
}, A = function(t, n) {
|
|
106
|
-
let s = k(t), c, u = [], d = 0;
|
|
107
|
-
if (!s) return l("Error: No category correspnding to " + t), null;
|
|
108
|
-
let f = i.each(void 0, a.rdf("type"), s);
|
|
109
|
-
for (let e = 0; e < f.length; e++) i.any(f[e], n) || u.push(f[e]);
|
|
110
|
-
return u.length && (c = b(r, u), d = c.children.length, o.appendChild(r.createElement("h3")).textContent = e.utils.label(s) + " with no " + e.utils.label(n) + (d < 4 ? "" : " (" + d + ")"), o.appendChild(c)), d;
|
|
111
|
-
};
|
|
112
|
-
A("Reimbursables", a.trip("trip")) === 0 && c("Reimbursables all have trips"), A("Other_Inc_Speaking", a.trip("trip")) === 0 && c("Speaking income all has trips");
|
|
113
|
-
};
|
|
114
|
-
if (i.findTypeURIs(t)["http://www.w3.org/2000/10/swap/pim/qif#Period"]) {
|
|
115
|
-
let e = i.each(t, a.rdfs("seeAlso"));
|
|
116
|
-
console.log("Loading before render: " + e.length), i.fetcher.load(e).then(function() {
|
|
117
|
-
u();
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
return o;
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
//#endregion
|
|
124
|
-
export { n as default };
|
|
125
|
-
|
|
126
|
-
//# sourceMappingURL=period.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"period.esm.js","names":["ns"],"sources":["../../src/transaction/period.js"],"sourcesContent":["/* Financial Period Pane\n **\n ** This outline pane allows a user to interact with a period\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_142708.svg',\n\n name: 'period',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return 'period'\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'periodPane')\n\n const mention = function mention (message, style) {\n if (!style) style = 'color: grey;'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const happy = function happy (message) {\n return mention('✓ ' + message, 'color: #010; background-color: #efe')\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n /*\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n*/\n const renderPeriod = function () {\n const dtstart = kb.any(subject, ns.cal('dtstart'))\n if (dtstart === undefined) {\n complain(\n '(Error: There is no start date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n const dtend = kb.any(subject, ns.cal('dtend'))\n if (dtend === undefined) {\n complain(\n '(Error: There is no end date known for this period <' +\n subject.uri +\n '>,\\n -- every period needs one.)'\n )\n }\n\n // var store = kb.any(subject, UI.ns.qu('annotationStore')) || null\n\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n donePredicate(ns.rdf('type'))\n\n const inPeriod = function (date) {\n return !!(date && date >= dtstart && date < dtend)\n }\n\n const d2 = function (n) {\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const transactionInPeriod = function (x) {\n return inPeriod(kb.any(x, ns.qu('date')))\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n /*\n var setPaneStyle = function (account) {\n var mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n var backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle();\n*/\n const h2 = div.appendChild(dom.createElement('h2'))\n h2.textContent =\n 'Period ' +\n dtstart.value.slice(0, 10) +\n ' - ' +\n dtend.value.slice(0, 10)\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'margin-left: 100; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \";\n let mystyle = 'margin-left: 8em; padding-left: 5em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = list.filter(transactionInPeriod)\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // List unclassified transactions\n\n const dummies = {\n 'http://www.w3.org/2000/10/swap/pim/qif#Transaction': true, // (we knew)\n 'http://www.w3.org/2000/10/swap/pim/qif#Unclassified': true, // pseudo classifications we may phase out\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing': true,\n 'http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome': true\n }\n const xURIs = kb.findMemberURIs(ns.qu('Transaction'))\n const unclassifiedIn = []\n const unclassifiedOut = []\n let usd, z\n for (const y in xURIs) {\n // For each thing which can be inferred to be a transaction\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(xURIs, y)) {\n z = kb.sym(y)\n const tt = kb.each(z, ns.rdf('type')) // What EXPLICIT definitions\n let classified = false\n for (let j = 0; j < tt.length; j++) {\n const t = tt[j]\n if (dummies[t.uri] === undefined) {\n classified = true\n }\n }\n if (!classified) {\n usd = kb.any(z, ns.qu('in_USD'))\n if (usd === undefined) {\n usd = kb.any(z, ns.qu('amount'))\n }\n if (usd && ('' + usd.value).indexOf('-') >= 0) {\n unclassifiedOut.push(kb.sym(y))\n } else {\n unclassifiedIn.push(kb.sym(y))\n }\n }\n }\n }\n let tab, count\n if (unclassifiedIn.length) {\n tab = transactionTable(dom, unclassifiedIn)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Income' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified income')\n }\n if (unclassifiedOut.length) {\n tab = transactionTable(dom, unclassifiedOut)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n 'Unclassified Outgoings' + (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n } else {\n happy('No unclassified outgoings ')\n }\n\n // /////////////// Check some categories of transaction for having given fields\n\n const catSymbol = function (catTail) {\n const cats = kb.findSubClassesNT(ns.qu('Transaction'))\n for (const cat in cats) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(cats, cat)) {\n if (cat.slice(1, -1).split('#')[1] === catTail) {\n return kb.sym(cat.slice(1, -1))\n }\n }\n }\n return null\n }\n\n const checkCatHasField = function (catTail, pred) {\n const cat = catSymbol(catTail)\n let tab\n const guilty = []\n let count = 0\n if (!cat) {\n complain('Error: No category correspnding to ' + catTail)\n return null\n }\n const list = kb.each(undefined, ns.rdf('type'), cat)\n for (let i = 0; i < list.length; i++) {\n if (!kb.any(list[i], pred)) {\n guilty.push(list[i])\n }\n }\n if (guilty.length) {\n tab = transactionTable(dom, guilty)\n count = tab.children.length\n div.appendChild(dom.createElement('h3')).textContent =\n UI.utils.label(cat) +\n ' with no ' +\n UI.utils.label(pred) +\n (count < 4 ? '' : ' (' + count + ')')\n div.appendChild(tab)\n }\n return count\n }\n\n // Load dynamically as properties of period\n if (checkCatHasField('Reimbursables', ns.trip('trip')) === 0) {\n happy('Reimbursables all have trips')\n }\n if (checkCatHasField('Other_Inc_Speaking', ns.trip('trip')) === 0) {\n happy('Speaking income all has trips')\n }\n // end of render period instance\n } // renderPeriod\n\n // //////////////////////////////////////////////////////////////////////////////\n\n // var me = authn.currentUser()\n\n // Render a single Period\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) {\n const needed = kb.each(subject, ns.rdfs('seeAlso'))\n console.log('Loading before render: ' + needed.length)\n kb.fetcher.load(needed).then(function () {\n renderPeriod()\n })\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs.js");let t=require("solid-ui");t=e.__toESM(t);let n=require("rdflib");n=e.__toESM(n);var r=t.ns,i={icon:t.icons.iconBase+`noun_62007.svg`,name:`travel expenses`,audience:[r.solid(`PowerUser`)],label:function(e,n){let r=n.session.store,i=r.findTypeURIs(e);return t.ns.qu(`Transaction`)in r.findSuperClassesNT(e)?`by Trip`:i[`http://www.w3.org/ns/pim/trip#Trip`]?`Trip $`:null},render:function(e,r){let i=r.dom,a=r.store,o=t.ns,s=n.Namespace(`http://www.w3.org/2002/12/cal/ical#`),c=n.Namespace(`http://www.w3.org/ns/pim/trip#`),l=i.createElement(`div`);l.setAttribute(`class`,`transactionPane`),l.innerHTML=`<h2>Trip transactions</h2>`;let u=function(e,t){t===void 0&&(t=`color: grey`);let n=i.createElement(`pre`);n.setAttribute(`style`,t),l.appendChild(n),n.appendChild(i.createTextNode(e))},d=a.findTypeURIs(e),f=function(e,r){let s=new n.Query(t.utils.label(e)),l=[`date`,`transaction`,`comment`,`type`,`in_USD`],d={};l.forEach(function(e){s.vars.push(d[e]=n.variable(e))}),s.pat.add(d.transaction,c(`trip`),e);let f=a.formula();f.add(d.transaction,o.rdf(`type`),d.type),s.pat.optional.push(f),s.pat.add(d.transaction,t.ns.qu(`date`),d.date),f.add(d.transaction,o.rdfs(`comment`),d.comment),s.pat.optional.push(f),s.pat.add(d.transaction,t.ns.qu(`in_USD`),d.in_USD);let p=t.table(i,{query:s,onDone:function(){let n={},r=a.each(void 0,c(`trip`),e);r.forEach(function(e){let r=a.the(e,o.rdf(`type`));if(r||=t.ns.qu(`ErrorNoType`),r&&r.uri){let i=r.uri;n[i]||(n[i]=0);let o=a.any(e,t.ns.qu(`in_USD`));o||u(` @@ No amount in USD: `+o+` for `+e),o&&(n[i]=n[i]+parseFloat(o.value))}});let i=``,s=0,l=0;for(let e in n)i+=t.utils.label(a.sym(e))+`: `+n[e]+`; `,s++,l+=n[e];u(`Totals of `+r.length+` transactions: `+i,``),s>1&&u(`Overall net: `+l,`text-treatment: bold;`)}});r.appendChild(p)};if(t.ns.qu(`Transaction`)in a.findSuperClassesNT(e)){let n=a.each(void 0,o.rdf(`type`),e),r=[],i=[];for(let e=0;e<n.length;e++){let o=n[e],s=a.any(o,c(`trip`));if(!s)r.push(o);else{o in i||(i[s]={total:0,transactions:[]});let e=a.any(o,t.ns.qu(`in_USD`));e&&(i[s].total+=e);let n=a.any(o,t.ns.qu(`date`));i[s.toNT()].transactions.push([n,o])}}let u=[];for(let e in i){let t=a.fromNT(e);u.push([a.any(t,s(`dtstart`)),t])}u.sort();for(let e=0;e<u.length;e++){let t=u[e][1];f(t,l)}}else d[`http://www.w3.org/ns/pim/trip#Trip`]&&f(e,l);return l}};exports.default=i;
|
|
2
|
-
//# sourceMappingURL=tripPane.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tripPane.cjs.js","names":["UI","$rdf"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return \"$$\";\n // if(kb.any(subject, UI.ns.qu('amount'))) return \"$$$\"; // In case schema not picked up\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\n }\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const opt = kb.formula()\n opt.add(v.transaction, ns.rdf('type'), v.type) // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v.transaction, UI.ns.qu('date'), v.date)\n\n opt.add(v.transaction, ns.rdfs('comment'), v.comment)\n query.pat.optional.push(opt)\n\n // opt = kb.formula();\n query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD)\n // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('type'))\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!total[tyuri]) total[tyuri] = 0.0\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain(' @@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import * as e from "solid-ui";
|
|
2
|
-
import * as t from "rdflib";
|
|
3
|
-
//#region src/trip/tripPane.js
|
|
4
|
-
var n = e.ns, r = {
|
|
5
|
-
icon: e.icons.iconBase + "noun_62007.svg",
|
|
6
|
-
name: "travel expenses",
|
|
7
|
-
audience: [n.solid("PowerUser")],
|
|
8
|
-
label: function(t, n) {
|
|
9
|
-
let r = n.session.store, i = r.findTypeURIs(t);
|
|
10
|
-
return e.ns.qu("Transaction") in r.findSuperClassesNT(t) ? "by Trip" : i["http://www.w3.org/ns/pim/trip#Trip"] ? "Trip $" : null;
|
|
11
|
-
},
|
|
12
|
-
render: function(n, r) {
|
|
13
|
-
let i = r.dom, a = r.store, o = e.ns, s = t.Namespace("http://www.w3.org/2002/12/cal/ical#"), c = t.Namespace("http://www.w3.org/ns/pim/trip#"), l = i.createElement("div");
|
|
14
|
-
l.setAttribute("class", "transactionPane"), l.innerHTML = "<h2>Trip transactions</h2>";
|
|
15
|
-
let u = function(e, t) {
|
|
16
|
-
t === void 0 && (t = "color: grey");
|
|
17
|
-
let n = i.createElement("pre");
|
|
18
|
-
n.setAttribute("style", t), l.appendChild(n), n.appendChild(i.createTextNode(e));
|
|
19
|
-
}, d = a.findTypeURIs(n), f = function(n, r) {
|
|
20
|
-
let s = new t.Query(e.utils.label(n)), l = [
|
|
21
|
-
"date",
|
|
22
|
-
"transaction",
|
|
23
|
-
"comment",
|
|
24
|
-
"type",
|
|
25
|
-
"in_USD"
|
|
26
|
-
], d = {};
|
|
27
|
-
l.forEach(function(e) {
|
|
28
|
-
s.vars.push(d[e] = t.variable(e));
|
|
29
|
-
}), s.pat.add(d.transaction, c("trip"), n);
|
|
30
|
-
let f = a.formula();
|
|
31
|
-
f.add(d.transaction, o.rdf("type"), d.type), s.pat.optional.push(f), s.pat.add(d.transaction, e.ns.qu("date"), d.date), f.add(d.transaction, o.rdfs("comment"), d.comment), s.pat.optional.push(f), s.pat.add(d.transaction, e.ns.qu("in_USD"), d.in_USD);
|
|
32
|
-
let p = e.table(i, {
|
|
33
|
-
query: s,
|
|
34
|
-
onDone: function() {
|
|
35
|
-
let t = {}, r = a.each(void 0, c("trip"), n);
|
|
36
|
-
r.forEach(function(n) {
|
|
37
|
-
let r = a.the(n, o.rdf("type"));
|
|
38
|
-
if (r ||= e.ns.qu("ErrorNoType"), r && r.uri) {
|
|
39
|
-
let i = r.uri;
|
|
40
|
-
t[i] || (t[i] = 0);
|
|
41
|
-
let o = a.any(n, e.ns.qu("in_USD"));
|
|
42
|
-
o || u(" @@ No amount in USD: " + o + " for " + n), o && (t[i] = t[i] + parseFloat(o.value));
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
let i = "", s = 0, l = 0;
|
|
46
|
-
for (let n in t) i += e.utils.label(a.sym(n)) + ": " + t[n] + "; ", s++, l += t[n];
|
|
47
|
-
u("Totals of " + r.length + " transactions: " + i, ""), s > 1 && u("Overall net: " + l, "text-treatment: bold;");
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
r.appendChild(p);
|
|
51
|
-
};
|
|
52
|
-
if (e.ns.qu("Transaction") in a.findSuperClassesNT(n)) {
|
|
53
|
-
let t = a.each(void 0, o.rdf("type"), n), r = [], i = [];
|
|
54
|
-
for (let n = 0; n < t.length; n++) {
|
|
55
|
-
let o = t[n], s = a.any(o, c("trip"));
|
|
56
|
-
if (!s) r.push(o);
|
|
57
|
-
else {
|
|
58
|
-
o in i || (i[s] = {
|
|
59
|
-
total: 0,
|
|
60
|
-
transactions: []
|
|
61
|
-
});
|
|
62
|
-
let t = a.any(o, e.ns.qu("in_USD"));
|
|
63
|
-
t && (i[s].total += t);
|
|
64
|
-
let n = a.any(o, e.ns.qu("date"));
|
|
65
|
-
i[s.toNT()].transactions.push([n, o]);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
let u = [];
|
|
69
|
-
for (let e in i) {
|
|
70
|
-
let t = a.fromNT(e);
|
|
71
|
-
u.push([a.any(t, s("dtstart")), t]);
|
|
72
|
-
}
|
|
73
|
-
u.sort();
|
|
74
|
-
for (let e = 0; e < u.length; e++) {
|
|
75
|
-
let t = u[e][1];
|
|
76
|
-
f(t, l);
|
|
77
|
-
}
|
|
78
|
-
} else d["http://www.w3.org/ns/pim/trip#Trip"] && f(n, l);
|
|
79
|
-
return l;
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
//#endregion
|
|
83
|
-
export { r as default };
|
|
84
|
-
|
|
85
|
-
//# sourceMappingURL=tripPane.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tripPane.esm.js","names":["ns"],"sources":["../../src/trip/tripPane.js"],"sourcesContent":["/* Trip Pane\n **\n ** This pane deals with trips themselves and also\n ** will look at transactions organized by trip.\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n icon: UI.icons.iconBase + 'noun_62007.svg',\n\n name: 'travel expenses',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return \"$$\";\n // if(kb.any(subject, UI.ns.qu('amount'))) return \"$$$\"; // In case schema not picked up\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n return 'by Trip'\n }\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const kb = context.store\n const ns = UI.ns\n const CAL = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'transactionPane')\n div.innerHTML = '<h2>Trip transactions</h2>'\n\n const complain = function complain (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = myDocument.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(myDocument.createTextNode(message))\n }\n\n // //////////////////////////////////////////////////////////////////////////////\n //\n // Body of trip pane\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n\n // Function: Render a single trip\n\n const renderTrip = function renderTrip (subject, thisDiv) {\n const query = new $rdf.Query(UI.utils.label(subject))\n const vars = ['date', 'transaction', 'comment', 'type', 'in_USD']\n const v = {}\n vars.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n }) // Only used by UI\n query.pat.add(v.transaction, TRIP('trip'), subject)\n\n const opt = kb.formula()\n opt.add(v.transaction, ns.rdf('type'), v.type) // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v.transaction, UI.ns.qu('date'), v.date)\n\n opt.add(v.transaction, ns.rdfs('comment'), v.comment)\n query.pat.optional.push(opt)\n\n // opt = kb.formula();\n query.pat.add(v.transaction, UI.ns.qu('in_USD'), v.in_USD)\n // query.pat.optional.push(opt);\n\n const calculations = function () {\n const total = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n // complain(\"@@ Number of transactions in this trip: \" + trans.length);\n trans.forEach(function (t) {\n let ty = kb.the(t, ns.rdf('type'))\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')));\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!total[tyuri]) total[tyuri] = 0.0\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain(' @@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n total[tyuri] = total[tyuri] + parseFloat(lit.value)\n // complain(' Trans type ='+ty+'; in_USD \"' + lit\n // +'; total[tyuri] = '+total[tyuri]+';')\n }\n }\n })\n let str = ''\n let types = 0\n let grandTotal = 0.0\n for (const uri in total) {\n str += UI.utils.label(kb.sym(uri)) + ': ' + total[uri] + '; '\n types++\n grandTotal += total[uri]\n }\n complain('Totals of ' + trans.length + ' transactions: ' + str, '') // @@@@@ yucky -- need 2 col table\n if (types > 1) {\n complain('Overall net: ' + grandTotal, 'text-treatment: bold;')\n }\n }\n const tableDiv = UI.table(myDocument, {\n query,\n onDone: calculations\n })\n thisDiv.appendChild(tableDiv)\n }\n\n // Render the set of trips which have transactions in this class\n\n if (UI.ns.qu('Transaction') in kb.findSuperClassesNT(subject)) {\n const ts = kb.each(undefined, ns.rdf('type'), subject)\n const triples = []\n const index = []\n for (let i = 0; i < ts.length; i++) {\n const trans = ts[i]\n const trip = kb.any(trans, TRIP('trip'))\n if (!trip) {\n triples.push(trans)\n } else {\n if (!(trans in index)) index[trip] = { total: 0, transactions: [] }\n const usd = kb.any(trans, UI.ns.qu('in_USD'))\n if (usd) index[trip].total += usd\n const date = kb.any(trans, UI.ns.qu('date'))\n index[trip.toNT()].transactions.push([date, trans])\n }\n }\n /* var byDate = function(a,b) {\n return new Date(kb.any(a, CAL('dtstart'))) -\n new Date(kb.any(b, CAL('dtstart')));\n }\n */\n const list = []\n for (const h1 in index) {\n const t1 = kb.fromNT(h1)\n list.push([kb.any(t1, CAL('dtstart')), t1])\n }\n list.sort()\n for (let j = 0; j < list.length; j++) {\n const t2 = list[j][1]\n renderTrip(t2, div)\n }\n\n // Render a single trip\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n renderTrip(subject, div)\n }\n\n // if (!me) complain(\"You do not have your Web Id set. Set your Web ID to make changes.\");\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./trustedApplications.utils.cjs.js");let t=require("solid-ui"),n=require("solid-logic"),r=require("rdflib");function i(e){let r=o(`table`,{class:`results`}),l=s(`tr`,[c(`th`,`Application URL`),c(`th`,`Access modes`),c(`th`,`Actions`)]);return r.appendChild(l),n.store.each(e,t.ns.acl(`trustedApp`),void 0,void 0).flatMap(e=>n.store.each(e,t.ns.acl(`origin`),void 0,void 0).map(r=>({appModes:n.store.each(e,t.ns.acl(`mode`),void 0,void 0),origin:r}))).sort((e,t)=>e.origin.value<t.origin.value?-1:1).forEach(({appModes:t,origin:n})=>r.appendChild(a(e,n,t,u))),r.appendChild(a(e,null,[t.ns.acl(`Read`)],u)),r;function u(){r.parentElement.replaceChild(i(e),r)}}function a(i,a,u,d){let f={origin:a,appModes:u,formElements:{modes:[],origin:void 0}};return s(`tr`,[s(`td`,[s(`form`,[o(`input`,{class:`textinput`,placeholder:`Write new URL here`,value:a?a.value:``},{},e=>{f.formElements.origin=e})],{},{submit:p})]),s(`td`,[s(`form`,l(f),{},{submit:p})]),s(`td`,[s(`form`,a?[c(`button`,`Update`,{class:`controlButton`,style:`background: LightGreen;`}),c(`button`,`Delete`,{class:`controlButton`,style:`background: LightCoral;`},{click:m})]:[c(`button`,`Add`,{class:`controlButton`,style:`background: LightGreen;`})],{},{submit:p})])]);function p(a){a.preventDefault();let o;try{o=(0,r.sym)(f.formElements.origin.value)}catch{return alert(`Please provide an application URL you want to trust`)}let s=f.formElements.modes.filter(e=>e.checked).map(e=>e.value),c=e.getStatementsToDelete(f.origin||o,i,n.store,t.ns),l=e.getStatementsToAdd(o,e.generateRandomString(),s,i,t.ns);if(!n.store.updater)throw Error(`Store has no updater`);n.store.updater.update(c,l,h)}function m(a){a.preventDefault();let o;try{o=(0,r.sym)(f.formElements.origin.value)}catch{return alert(`Please provide an application URL you want to remove trust from`)}let s=e.getStatementsToDelete(o,i,n.store,t.ns);if(!n.store.updater)throw Error(`Store has no updater`);n.store.updater.update(s,[],h)}function h(e,t,n){if(t)return d()}}function o(e,t={},n={},r=null){let i=document.createElement(e);return r&&r(i),Object.keys(t).forEach(e=>{i.setAttribute(e,t[e])}),Object.keys(n).forEach(e=>{i.addEventListener(e,n[e])}),i}function s(e,t,n={},r={},i=null){let a=o(e,n,r,i);return t.forEach(e=>a.appendChild(e)),a}function c(e,t,n={},r={},i=null){let a=o(e,n,r,i);return a.textContent=t,a}function l({appModes:e,formElements:n}){return[`Read`,`Write`,`Append`,`Control`].map(r=>s(`label`,[o(`input`,{type:`checkbox`,...e.some(e=>e.value===t.ns.acl(r).value)?{checked:``}:{},value:t.ns.acl(r).uri},{},e=>n.modes.push(e)),c(`span`,r)]))}exports.createApplicationTable=i,exports.createContainer=s,exports.createText=c;
|
|
2
|
-
//# sourceMappingURL=trustedApplications.dom.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.dom.cjs.js","names":[],"sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"sourcesContent":["import { NamedNode, Statement, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils'\n\ninterface FormElements {\n modes: HTMLInputElement[]\n // This appears to be used to store either a node from the store,\n // or a reference to the input (checkbox) element for a particular mode.\n // These typings were created post-hoc, so I'm not sure if that was intentional.\n // Thus, this union type should be considered as descriptive rather than prescriptive.\n origin: undefined | NamedNode | HTMLInputElement\n}\n\nexport function createApplicationTable (subject: NamedNode) {\n const applicationsTable = createElement('table', {\n class: 'results'\n })\n\n // creating headers\n const header = createContainer('tr', [\n createText('th', 'Application URL'),\n createText('th', 'Access modes'),\n createText('th', 'Actions')\n ])\n applicationsTable.appendChild(header);\n\n // creating rows\n (store.each(subject, ns.acl('trustedApp'), undefined, undefined) as unknown as Statement[])\n .flatMap(app => store\n .each(app as any, ns.acl('origin'), undefined, undefined)\n .map(origin => ({\n appModes: store.each(app as any, ns.acl('mode'), undefined, undefined) as NamedNode[],\n origin: origin as NamedNode\n })))\n .sort((a: any, b: any) => (a.origin.value < b.origin.value ? -1 : 1))\n .forEach(\n ({ appModes, origin }: { appModes: NamedNode[]; origin: NamedNode }) =>\n applicationsTable.appendChild(\n createApplicationEntry(subject, origin, appModes, updateTable)\n )\n )\n\n // adding a row for new applications\n applicationsTable.appendChild(\n createApplicationEntry(subject, null, [ns.acl('Read')], updateTable)\n )\n\n return applicationsTable\n\n function updateTable () {\n applicationsTable.parentElement!.replaceChild(\n createApplicationTable(subject),\n applicationsTable\n )\n }\n}\n\nfunction createApplicationEntry (\n subject: NamedNode,\n origin: NamedNode | null,\n appModes: NamedNode[],\n updateTable: () => void\n): HTMLTableRowElement {\n const trustedApplicationState = {\n origin,\n appModes,\n formElements: {\n modes: [],\n origin: undefined\n } as FormElements\n }\n return createContainer('tr', [\n createContainer('td', [\n createContainer(\n 'form',\n [\n createElement(\n 'input',\n {\n class: 'textinput',\n placeholder: 'Write new URL here',\n value: origin ? origin.value : ''\n },\n {},\n element => {\n trustedApplicationState.formElements.origin = element\n }\n )\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n createModesInput(trustedApplicationState),\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n origin\n ? [\n createText('button', 'Update', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n }),\n createText(\n 'button',\n 'Delete',\n {\n class: 'controlButton',\n style: 'background: LightCoral;'\n },\n {\n click: removeApplication\n }\n )\n ]\n : [\n createText('button', 'Add', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n })\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ])\n ])\n\n function addOrEditApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert('Please provide an application URL you want to trust')\n }\n\n const modes = trustedApplicationState.formElements.modes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n\n const deletions = getStatementsToDelete(\n trustedApplicationState.origin || origin,\n subject,\n store,\n ns\n )\n const additions = getStatementsToAdd(\n origin,\n generateRandomString(),\n modes,\n subject,\n ns\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, additions, handleUpdateResponse)\n }\n\n function removeApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert(\n 'Please provide an application URL you want to remove trust from'\n )\n }\n\n const deletions = getStatementsToDelete(origin, subject, store, ns)\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, [], handleUpdateResponse)\n }\n\n function handleUpdateResponse (uri: any, success: boolean, errorBody: any) {\n if (success) {\n return updateTable()\n }\n // console.error(uri, errorBody)\n }\n}\n\nfunction createElement<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n attributes: { [name: string]: string } = {},\n eventListeners: { [eventName: string]: globalThis.EventListener } = {},\n\n onCreated: null | ((createdElement: globalThis.HTMLElementTagNameMap[K]) => void) = null\n) {\n const element = document.createElement(elementName)\n if (onCreated) {\n onCreated(element)\n }\n Object.keys(attributes).forEach(attName => {\n element.setAttribute(attName, attributes[attName])\n })\n Object.keys(eventListeners).forEach(eventName => {\n element.addEventListener(eventName, eventListeners[eventName])\n })\n return element\n}\n\nexport function createContainer<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n children: HTMLElement[],\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n children.forEach(child => element.appendChild(child))\n return element\n}\n\nexport function createText<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n textContent: string | null,\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n element.textContent = textContent\n return element\n}\n\nfunction createModesInput ({ appModes, formElements }: {\n appModes: NamedNode[]\n formElements: FormElements\n}) {\n return ['Read', 'Write', 'Append', 'Control'].map(mode => {\n const isChecked = appModes.some(\n appMode => appMode.value === ns.acl(mode).value\n )\n return createContainer('label', [\n createElement(\n 'input',\n {\n type: 'checkbox',\n ...(isChecked ? { checked: '' } : {}),\n value: ns.acl(mode).uri\n },\n {},\n element => formElements.modes.push(element)\n ),\n createText('span', mode)\n ])\n })\n}\n"],"mappings":"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"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { generateRandomString as e, getStatementsToAdd as t, getStatementsToDelete as n } from "./trustedApplications.utils.esm.js";
|
|
2
|
-
import { ns as r } from "solid-ui";
|
|
3
|
-
import { store as i } from "solid-logic";
|
|
4
|
-
import { sym as a } from "rdflib";
|
|
5
|
-
//#region src/trustedApplications/trustedApplications.dom.ts
|
|
6
|
-
function o(e) {
|
|
7
|
-
let t = c("table", { class: "results" }), n = l("tr", [
|
|
8
|
-
u("th", "Application URL"),
|
|
9
|
-
u("th", "Access modes"),
|
|
10
|
-
u("th", "Actions")
|
|
11
|
-
]);
|
|
12
|
-
return t.appendChild(n), i.each(e, r.acl("trustedApp"), void 0, void 0).flatMap((e) => i.each(e, r.acl("origin"), void 0, void 0).map((t) => ({
|
|
13
|
-
appModes: i.each(e, r.acl("mode"), void 0, void 0),
|
|
14
|
-
origin: t
|
|
15
|
-
}))).sort((e, t) => e.origin.value < t.origin.value ? -1 : 1).forEach(({ appModes: n, origin: r }) => t.appendChild(s(e, r, n, a))), t.appendChild(s(e, null, [r.acl("Read")], a)), t;
|
|
16
|
-
function a() {
|
|
17
|
-
t.parentElement.replaceChild(o(e), t);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
function s(o, s, f, p) {
|
|
21
|
-
let m = {
|
|
22
|
-
origin: s,
|
|
23
|
-
appModes: f,
|
|
24
|
-
formElements: {
|
|
25
|
-
modes: [],
|
|
26
|
-
origin: void 0
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
return l("tr", [
|
|
30
|
-
l("td", [l("form", [c("input", {
|
|
31
|
-
class: "textinput",
|
|
32
|
-
placeholder: "Write new URL here",
|
|
33
|
-
value: s ? s.value : ""
|
|
34
|
-
}, {}, (e) => {
|
|
35
|
-
m.formElements.origin = e;
|
|
36
|
-
})], {}, { submit: h })]),
|
|
37
|
-
l("td", [l("form", d(m), {}, { submit: h })]),
|
|
38
|
-
l("td", [l("form", s ? [u("button", "Update", {
|
|
39
|
-
class: "controlButton",
|
|
40
|
-
style: "background: LightGreen;"
|
|
41
|
-
}), u("button", "Delete", {
|
|
42
|
-
class: "controlButton",
|
|
43
|
-
style: "background: LightCoral;"
|
|
44
|
-
}, { click: g })] : [u("button", "Add", {
|
|
45
|
-
class: "controlButton",
|
|
46
|
-
style: "background: LightGreen;"
|
|
47
|
-
})], {}, { submit: h })])
|
|
48
|
-
]);
|
|
49
|
-
function h(s) {
|
|
50
|
-
s.preventDefault();
|
|
51
|
-
let c;
|
|
52
|
-
try {
|
|
53
|
-
c = a(m.formElements.origin.value);
|
|
54
|
-
} catch {
|
|
55
|
-
return alert("Please provide an application URL you want to trust");
|
|
56
|
-
}
|
|
57
|
-
let l = m.formElements.modes.filter((e) => e.checked).map((e) => e.value), u = n(m.origin || c, o, i, r), d = t(c, e(), l, o, r);
|
|
58
|
-
if (!i.updater) throw Error("Store has no updater");
|
|
59
|
-
i.updater.update(u, d, _);
|
|
60
|
-
}
|
|
61
|
-
function g(e) {
|
|
62
|
-
e.preventDefault();
|
|
63
|
-
let t;
|
|
64
|
-
try {
|
|
65
|
-
t = a(m.formElements.origin.value);
|
|
66
|
-
} catch {
|
|
67
|
-
return alert("Please provide an application URL you want to remove trust from");
|
|
68
|
-
}
|
|
69
|
-
let s = n(t, o, i, r);
|
|
70
|
-
if (!i.updater) throw Error("Store has no updater");
|
|
71
|
-
i.updater.update(s, [], _);
|
|
72
|
-
}
|
|
73
|
-
function _(e, t, n) {
|
|
74
|
-
if (t) return p();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function c(e, t = {}, n = {}, r = null) {
|
|
78
|
-
let i = document.createElement(e);
|
|
79
|
-
return r && r(i), Object.keys(t).forEach((e) => {
|
|
80
|
-
i.setAttribute(e, t[e]);
|
|
81
|
-
}), Object.keys(n).forEach((e) => {
|
|
82
|
-
i.addEventListener(e, n[e]);
|
|
83
|
-
}), i;
|
|
84
|
-
}
|
|
85
|
-
function l(e, t, n = {}, r = {}, i = null) {
|
|
86
|
-
let a = c(e, n, r, i);
|
|
87
|
-
return t.forEach((e) => a.appendChild(e)), a;
|
|
88
|
-
}
|
|
89
|
-
function u(e, t, n = {}, r = {}, i = null) {
|
|
90
|
-
let a = c(e, n, r, i);
|
|
91
|
-
return a.textContent = t, a;
|
|
92
|
-
}
|
|
93
|
-
function d({ appModes: e, formElements: t }) {
|
|
94
|
-
return [
|
|
95
|
-
"Read",
|
|
96
|
-
"Write",
|
|
97
|
-
"Append",
|
|
98
|
-
"Control"
|
|
99
|
-
].map((n) => l("label", [c("input", {
|
|
100
|
-
type: "checkbox",
|
|
101
|
-
...e.some((e) => e.value === r.acl(n).value) ? { checked: "" } : {},
|
|
102
|
-
value: r.acl(n).uri
|
|
103
|
-
}, {}, (e) => t.modes.push(e)), u("span", n)]));
|
|
104
|
-
}
|
|
105
|
-
//#endregion
|
|
106
|
-
export { o as createApplicationTable, l as createContainer, u as createText };
|
|
107
|
-
|
|
108
|
-
//# sourceMappingURL=trustedApplications.dom.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.dom.esm.js","names":[],"sources":["../../src/trustedApplications/trustedApplications.dom.ts"],"sourcesContent":["import { NamedNode, Statement, sym } from 'rdflib'\nimport { ns } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { generateRandomString, getStatementsToAdd, getStatementsToDelete } from './trustedApplications.utils'\n\ninterface FormElements {\n modes: HTMLInputElement[]\n // This appears to be used to store either a node from the store,\n // or a reference to the input (checkbox) element for a particular mode.\n // These typings were created post-hoc, so I'm not sure if that was intentional.\n // Thus, this union type should be considered as descriptive rather than prescriptive.\n origin: undefined | NamedNode | HTMLInputElement\n}\n\nexport function createApplicationTable (subject: NamedNode) {\n const applicationsTable = createElement('table', {\n class: 'results'\n })\n\n // creating headers\n const header = createContainer('tr', [\n createText('th', 'Application URL'),\n createText('th', 'Access modes'),\n createText('th', 'Actions')\n ])\n applicationsTable.appendChild(header);\n\n // creating rows\n (store.each(subject, ns.acl('trustedApp'), undefined, undefined) as unknown as Statement[])\n .flatMap(app => store\n .each(app as any, ns.acl('origin'), undefined, undefined)\n .map(origin => ({\n appModes: store.each(app as any, ns.acl('mode'), undefined, undefined) as NamedNode[],\n origin: origin as NamedNode\n })))\n .sort((a: any, b: any) => (a.origin.value < b.origin.value ? -1 : 1))\n .forEach(\n ({ appModes, origin }: { appModes: NamedNode[]; origin: NamedNode }) =>\n applicationsTable.appendChild(\n createApplicationEntry(subject, origin, appModes, updateTable)\n )\n )\n\n // adding a row for new applications\n applicationsTable.appendChild(\n createApplicationEntry(subject, null, [ns.acl('Read')], updateTable)\n )\n\n return applicationsTable\n\n function updateTable () {\n applicationsTable.parentElement!.replaceChild(\n createApplicationTable(subject),\n applicationsTable\n )\n }\n}\n\nfunction createApplicationEntry (\n subject: NamedNode,\n origin: NamedNode | null,\n appModes: NamedNode[],\n updateTable: () => void\n): HTMLTableRowElement {\n const trustedApplicationState = {\n origin,\n appModes,\n formElements: {\n modes: [],\n origin: undefined\n } as FormElements\n }\n return createContainer('tr', [\n createContainer('td', [\n createContainer(\n 'form',\n [\n createElement(\n 'input',\n {\n class: 'textinput',\n placeholder: 'Write new URL here',\n value: origin ? origin.value : ''\n },\n {},\n element => {\n trustedApplicationState.formElements.origin = element\n }\n )\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n createModesInput(trustedApplicationState),\n {},\n {\n submit: addOrEditApplication\n }\n )\n ]),\n createContainer('td', [\n createContainer(\n 'form',\n origin\n ? [\n createText('button', 'Update', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n }),\n createText(\n 'button',\n 'Delete',\n {\n class: 'controlButton',\n style: 'background: LightCoral;'\n },\n {\n click: removeApplication\n }\n )\n ]\n : [\n createText('button', 'Add', {\n class: 'controlButton',\n style: 'background: LightGreen;'\n })\n ],\n {},\n {\n submit: addOrEditApplication\n }\n )\n ])\n ])\n\n function addOrEditApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert('Please provide an application URL you want to trust')\n }\n\n const modes = trustedApplicationState.formElements.modes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n\n const deletions = getStatementsToDelete(\n trustedApplicationState.origin || origin,\n subject,\n store,\n ns\n )\n const additions = getStatementsToAdd(\n origin,\n generateRandomString(),\n modes,\n subject,\n ns\n )\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, additions, handleUpdateResponse)\n }\n\n function removeApplication (event: Event) {\n event.preventDefault()\n let origin\n try {\n origin = sym(trustedApplicationState.formElements.origin!.value)\n } catch (err) {\n return alert(\n 'Please provide an application URL you want to remove trust from'\n )\n }\n\n const deletions = getStatementsToDelete(origin, subject, store, ns)\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n store.updater.update(deletions, [], handleUpdateResponse)\n }\n\n function handleUpdateResponse (uri: any, success: boolean, errorBody: any) {\n if (success) {\n return updateTable()\n }\n // console.error(uri, errorBody)\n }\n}\n\nfunction createElement<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n attributes: { [name: string]: string } = {},\n eventListeners: { [eventName: string]: globalThis.EventListener } = {},\n\n onCreated: null | ((createdElement: globalThis.HTMLElementTagNameMap[K]) => void) = null\n) {\n const element = document.createElement(elementName)\n if (onCreated) {\n onCreated(element)\n }\n Object.keys(attributes).forEach(attName => {\n element.setAttribute(attName, attributes[attName])\n })\n Object.keys(eventListeners).forEach(eventName => {\n element.addEventListener(eventName, eventListeners[eventName])\n })\n return element\n}\n\nexport function createContainer<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n children: HTMLElement[],\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n children.forEach(child => element.appendChild(child))\n return element\n}\n\nexport function createText<K extends keyof globalThis.HTMLElementTagNameMap> (\n elementName: K,\n textContent: string | null,\n attributes = {},\n eventListeners = {},\n onCreated = null\n) {\n const element = createElement(\n elementName,\n attributes,\n eventListeners,\n onCreated\n )\n element.textContent = textContent\n return element\n}\n\nfunction createModesInput ({ appModes, formElements }: {\n appModes: NamedNode[]\n formElements: FormElements\n}) {\n return ['Read', 'Write', 'Append', 'Control'].map(mode => {\n const isChecked = appModes.some(\n appMode => appMode.value === ns.acl(mode).value\n )\n return createContainer('label', [\n createElement(\n 'input',\n {\n type: 'checkbox',\n ...(isChecked ? { checked: '' } : {}),\n value: ns.acl(mode).uri\n },\n {},\n element => formElements.modes.push(element)\n ),\n createText('span', mode)\n ])\n })\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
let e=require("rdflib");function t(e,t,n,r){return n.statementsMatching(null,r.acl(`origin`),e).reduce((e,i)=>e.concat(n.statementsMatching(t,r.acl(`trustedApp`),i.subject)).concat(n.statementsMatching(i.subject)),[])}function n(t,n,r,i,a){let o=new e.BlankNode(`bn_${n}`);return[(0,e.st)(i,a.acl(`trustedApp`),o,i.doc()),(0,e.st)(o,a.acl(`origin`),t,i.doc()),...r.map(t=>(0,e.sym)(t)).map(t=>(0,e.st)(o,a.acl(`mode`),t,i.doc()))]}function r(){return Math.random().toString(36).substr(2,5)}exports.generateRandomString=r,exports.getStatementsToAdd=n,exports.getStatementsToDelete=t;
|
|
2
|
-
//# sourceMappingURL=trustedApplications.utils.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.utils.cjs.js","names":[],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`) // NamedNode(`${person.doc().uri}#${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":"wBAGA,SAAgB,EACd,EACA,EACA,EACA,EACK,CAoBL,OAnB8B,EAAG,mBAC/B,KACA,EAAG,IAAI,QAAQ,EACf,CAEyB,CAAA,CAAsB,QAC9C,EAAM,IACE,EACJ,OACC,EAAG,mBACD,EACA,EAAG,IAAI,YAAY,EACnB,EAAG,OACL,CACF,CAAC,CACA,OAAO,EAAG,mBAAmB,EAAG,OAAO,CAAC,EAE7C,CAAC,CAEI,CACT,CAEA,SAAgB,EACd,EACA,EACA,EACA,EACA,EACK,CACL,IAAM,EAAc,IAAI,EAAA,UAAU,MAAM,GAAU,EAClD,MAAO,EACL,EAAA,EAAA,GAAA,CAAG,EAAQ,EAAG,IAAI,YAAY,EAAG,EAAa,EAAO,IAAI,CAAC,GAC1D,EAAA,EAAA,GAAA,CAAG,EAAa,EAAG,IAAI,QAAQ,EAAG,EAAQ,EAAO,IAAI,CAAC,EACtD,GAAG,EACA,IAAI,IAAA,EAAQ,EAAA,IAAA,CAAI,CAAI,CAAC,CAAC,CACtB,IAAI,IAAA,EAAQ,EAAA,GAAA,CAAG,EAAa,EAAG,IAAI,MAAM,EAAG,EAAM,EAAO,IAAI,CAAC,CAAC,CACpE,CACF,CAEA,SAAgB,GAAwB,CACtC,OAAO,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAG,CAAC,CAC/C"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { BlankNode as e, st as t, sym as n } from "rdflib";
|
|
2
|
-
//#region src/trustedApplications/trustedApplications.utils.ts
|
|
3
|
-
function r(e, t, n, r) {
|
|
4
|
-
return n.statementsMatching(null, r.acl("origin"), e).reduce((e, i) => e.concat(n.statementsMatching(t, r.acl("trustedApp"), i.subject)).concat(n.statementsMatching(i.subject)), []);
|
|
5
|
-
}
|
|
6
|
-
function i(r, i, a, o, s) {
|
|
7
|
-
let c = new e(`bn_${i}`);
|
|
8
|
-
return [
|
|
9
|
-
t(o, s.acl("trustedApp"), c, o.doc()),
|
|
10
|
-
t(c, s.acl("origin"), r, o.doc()),
|
|
11
|
-
...a.map((e) => n(e)).map((e) => t(c, s.acl("mode"), e, o.doc()))
|
|
12
|
-
];
|
|
13
|
-
}
|
|
14
|
-
function a() {
|
|
15
|
-
return Math.random().toString(36).substr(2, 5);
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
18
|
-
export { a as generateRandomString, i as getStatementsToAdd, r as getStatementsToDelete };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=trustedApplications.utils.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.utils.esm.js","names":[],"sources":["../../src/trustedApplications/trustedApplications.utils.ts"],"sourcesContent":["import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib'\nimport { Namespaces } from 'solid-namespace'\n\nexport function getStatementsToDelete (\n origin: NamedNode | Literal,\n person: NamedNode,\n kb: IndexedFormula,\n ns: Namespaces\n): any {\n const applicationStatements = kb.statementsMatching(\n null,\n ns.acl('origin'),\n origin\n )\n const statementsToDelete = applicationStatements.reduce(\n (memo, st) => {\n return memo\n .concat(\n kb.statementsMatching(\n person,\n ns.acl('trustedApp'),\n st.subject as NamedNode\n )\n )\n .concat(kb.statementsMatching(st.subject))\n },\n [] as Array<Statement>\n )\n return statementsToDelete\n}\n\nexport function getStatementsToAdd (\n origin: NamedNode,\n nodeName: string,\n modes: string[],\n person: NamedNode,\n ns: Namespaces\n): any {\n const application = new BlankNode(`bn_${nodeName}`) // NamedNode(`${person.doc().uri}#${nodeName}`)\n return [\n st(person, ns.acl('trustedApp'), application, person.doc()),\n st(application, ns.acl('origin'), origin, person.doc()),\n ...modes\n .map(mode => sym(mode))\n .map(mode => st(application, ns.acl('mode'), mode, person.doc()))\n ]\n}\n\nexport function generateRandomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n"],"mappings":";;AAGA,SAAgB,EACd,GACA,GACA,GACA,GACK;CAoBL,OAnB8B,EAAG,mBAC/B,MACA,EAAG,IAAI,QAAQ,GACf,CAEyB,CAAA,CAAsB,QAC9C,GAAM,MACE,EACJ,OACC,EAAG,mBACD,GACA,EAAG,IAAI,YAAY,GACnB,EAAG,OACL,CACF,CAAC,CACA,OAAO,EAAG,mBAAmB,EAAG,OAAO,CAAC,GAE7C,CAAC,CAEI;AACT;AAEA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACK;CACL,IAAM,IAAc,IAAI,EAAU,MAAM,GAAU;CAClD,OAAO;EACL,EAAG,GAAQ,EAAG,IAAI,YAAY,GAAG,GAAa,EAAO,IAAI,CAAC;EAC1D,EAAG,GAAa,EAAG,IAAI,QAAQ,GAAG,GAAQ,EAAO,IAAI,CAAC;EACtD,GAAG,EACA,KAAI,MAAQ,EAAI,CAAI,CAAC,CAAC,CACtB,KAAI,MAAQ,EAAG,GAAa,EAAG,IAAI,MAAM,GAAG,GAAM,EAAO,IAAI,CAAC,CAAC;CACpE;AACF;AAEA,SAAgB,IAAwB;CACtC,OAAO,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC;AAC/C"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./trustedApplications.dom.cjs.js");let t=require("solid-ui"),n=require("solid-logic");var r={global:!0,icon:`${t.icons.iconBase}noun_15177.svg`,name:`trustedApplications`,label:()=>null,render:(e,n)=>{let r=n.dom,a=r.createElement(`div`);a.classList.add(`trusted-applications-pane`),a.setAttribute(`style`,`border: 0.3em solid #418d99; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;`);let o=a.appendChild(r.createElement(`table`)),s=o.appendChild(r.createElement(`tr`)),c=o.appendChild(r.createElement(`tr`)).appendChild(r.createElement(`div`));return c.setAttribute(`style`,`padding: 0.7em;`),i(r,s,c).catch(e=>c.appendChild(t.widgets.errorMessageBlock(r,e))),a}};async function i(r,i,a){let o=(await t.login.ensureLoadedProfile({dom:r,div:i,statusArea:a,me:null})).me,s=o.doc();if(!n.store.updater)throw Error(`Store has no updater`);let c=n.store.updater.editable(s.uri,n.store);if(i.appendChild(e.createText(`h3`,`Manage your trusted applications`)),!c){i.appendChild(t.widgets.errorMessageBlock(r,`Your profile ${o.doc().uri} is not editable, so we cannot do much here.`));return}i.appendChild(e.createText(`p`,`Here you can manage the applications you trust.`));let l=e.createApplicationTable(o);i.appendChild(l),i.appendChild(e.createText(`h4`,`Notes`)),i.appendChild(e.createContainer(`ol`,[i.appendChild(e.createText(`li`,`Trusted applications will get access to all resources that you have access to.`)),i.appendChild(e.createText(`li`,`You can limit which modes they have by default.`)),i.appendChild(e.createText(`li`,`They will not gain more access than you have.`))])),i.appendChild(e.createText(`p`,`Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.`))}exports.default=r;
|
|
2
|
-
//# sourceMappingURL=trustedApplications.view.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.view.cjs.js","names":[],"sources":["../../src/trustedApplications/trustedApplications.view.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { NamedNode } from 'rdflib'\nimport { icons, login, widgets } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { createApplicationTable, createContainer, createText } from './trustedApplications.dom'\n\nconst thisColor = '#418d99'\n\nconst trustedApplicationView: PaneDefinition = {\n global: true,\n icon: `${icons.iconBase}noun_15177.svg`,\n name: 'trustedApplications',\n label: () => null,\n render: (subject, context) => {\n const dom = context.dom\n const div = dom.createElement('div')\n div.classList.add('trusted-applications-pane')\n div.setAttribute(\n 'style',\n 'border: 0.3em solid ' +\n thisColor +\n '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;'\n )\n const table = div.appendChild(dom.createElement('table'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)))\n return div\n }\n}\n\nasync function render (dom, main, statusArea): Promise<void> {\n const authContext = await login.ensureLoadedProfile({ dom, div: main, statusArea, me: null })\n const subject = authContext.me as NamedNode\n\n const profile = subject.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n const editable = store.updater.editable(profile.uri, store)\n\n main.appendChild(createText('h3', 'Manage your trusted applications'))\n\n if (!editable) {\n main.appendChild(\n widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`)\n )\n return\n }\n\n main.appendChild(createText('p', 'Here you can manage the applications you trust.'))\n\n const applicationsTable = createApplicationTable(subject)\n main.appendChild(applicationsTable)\n\n main.appendChild(createText('h4', 'Notes'))\n main.appendChild(\n createContainer('ol', [\n main.appendChild(\n createText(\n 'li',\n 'Trusted applications will get access to all resources that you have access to.'\n )\n ),\n main.appendChild(\n createText('li', 'You can limit which modes they have by default.')\n ),\n main.appendChild(\n createText('li', 'They will not gain more access than you have.')\n )\n ])\n )\n main.appendChild(\n createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.')\n )\n}\n\nexport default trustedApplicationView\n"],"mappings":"uGAQA,IAAM,EAAyC,CAC7C,OAAQ,GACR,KAAM,GAAG,EAAA,MAAM,SAAS,gBACxB,KAAM,sBACN,UAAa,KACb,QAAS,EAAS,IAAY,CAC5B,IAAM,EAAM,EAAQ,IACd,EAAM,EAAI,cAAc,KAAK,EACnC,EAAI,UAAU,IAAI,2BAA2B,EAC7C,EAAI,aACF,QACA,sFAGF,EACA,IAAM,EAAQ,EAAI,YAAY,EAAI,cAAc,OAAO,CAAC,EAClD,EAAO,EAAM,YAAY,EAAI,cAAc,IAAI,CAAC,EAEhD,EADS,EAAM,YAAY,EAAI,cAAc,IAAI,CACpC,CAAA,CAAO,YAAY,EAAI,cAAc,KAAK,CAAC,EAG9D,OAFA,EAAW,aAAa,QAAS,iBAAiB,EAClD,EAAO,EAAK,EAAM,CAAU,CAAC,CAAC,MAAM,GAAO,EAAW,YAAY,EAAA,QAAQ,kBAAkB,EAAK,CAAG,CAAC,CAAC,EAC/F,CACT,CACF,EAEA,eAAe,EAAQ,EAAK,EAAM,EAA2B,CAE3D,IAAM,GAAU,MADU,EAAA,MAAM,oBAAoB,CAAE,MAAK,IAAK,EAAM,aAAY,GAAI,IAAK,CAAC,EAAA,CAChE,GAEtB,EAAU,EAAQ,IAAI,EAC5B,GAAI,CAAC,EAAA,MAAM,QACT,MAAU,MAAM,sBAAsB,EAExC,IAAM,EAAW,EAAA,MAAM,QAAQ,SAAS,EAAQ,IAAK,EAAA,KAAK,EAI1D,GAFA,EAAK,YAAY,EAAA,WAAW,KAAM,kCAAkC,CAAC,EAEjE,CAAC,EAAU,CACb,EAAK,YACH,EAAA,QAAQ,kBAAkB,EAAK,gBAAgB,EAAQ,IAAI,CAAC,CAAC,IAAI,6CAA6C,CAChH,EACA,MACF,CAEA,EAAK,YAAY,EAAA,WAAW,IAAK,iDAAiD,CAAC,EAEnF,IAAM,EAAoB,EAAA,uBAAuB,CAAO,EACxD,EAAK,YAAY,CAAiB,EAElC,EAAK,YAAY,EAAA,WAAW,KAAM,OAAO,CAAC,EAC1C,EAAK,YACH,EAAA,gBAAgB,KAAM,CACpB,EAAK,YACH,EAAA,WACE,KACA,gFACF,CACF,EACA,EAAK,YACH,EAAA,WAAW,KAAM,iDAAiD,CACpE,EACA,EAAK,YACH,EAAA,WAAW,KAAM,+CAA+C,CAClE,CACF,CAAC,CACH,EACA,EAAK,YACH,EAAA,WAAW,IAAK,2HAA2H,CAC7I,CACF"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { createApplicationTable as e, createContainer as t, createText as n } from "./trustedApplications.dom.esm.js";
|
|
2
|
-
import { icons as r, login as i, widgets as a } from "solid-ui";
|
|
3
|
-
import { store as o } from "solid-logic";
|
|
4
|
-
//#region src/trustedApplications/trustedApplications.view.ts
|
|
5
|
-
var s = {
|
|
6
|
-
global: !0,
|
|
7
|
-
icon: `${r.iconBase}noun_15177.svg`,
|
|
8
|
-
name: "trustedApplications",
|
|
9
|
-
label: () => null,
|
|
10
|
-
render: (e, t) => {
|
|
11
|
-
let n = t.dom, r = n.createElement("div");
|
|
12
|
-
r.classList.add("trusted-applications-pane"), r.setAttribute("style", "border: 0.3em solid #418d99; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;");
|
|
13
|
-
let i = r.appendChild(n.createElement("table")), o = i.appendChild(n.createElement("tr")), s = i.appendChild(n.createElement("tr")).appendChild(n.createElement("div"));
|
|
14
|
-
return s.setAttribute("style", "padding: 0.7em;"), c(n, o, s).catch((e) => s.appendChild(a.errorMessageBlock(n, e))), r;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
async function c(r, s, c) {
|
|
18
|
-
let l = (await i.ensureLoadedProfile({
|
|
19
|
-
dom: r,
|
|
20
|
-
div: s,
|
|
21
|
-
statusArea: c,
|
|
22
|
-
me: null
|
|
23
|
-
})).me, u = l.doc();
|
|
24
|
-
if (!o.updater) throw Error("Store has no updater");
|
|
25
|
-
let d = o.updater.editable(u.uri, o);
|
|
26
|
-
if (s.appendChild(n("h3", "Manage your trusted applications")), !d) {
|
|
27
|
-
s.appendChild(a.errorMessageBlock(r, `Your profile ${l.doc().uri} is not editable, so we cannot do much here.`));
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
s.appendChild(n("p", "Here you can manage the applications you trust."));
|
|
31
|
-
let f = e(l);
|
|
32
|
-
s.appendChild(f), s.appendChild(n("h4", "Notes")), s.appendChild(t("ol", [
|
|
33
|
-
s.appendChild(n("li", "Trusted applications will get access to all resources that you have access to.")),
|
|
34
|
-
s.appendChild(n("li", "You can limit which modes they have by default.")),
|
|
35
|
-
s.appendChild(n("li", "They will not gain more access than you have."))
|
|
36
|
-
])), s.appendChild(n("p", "Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app."));
|
|
37
|
-
}
|
|
38
|
-
//#endregion
|
|
39
|
-
export { s as default };
|
|
40
|
-
|
|
41
|
-
//# sourceMappingURL=trustedApplications.view.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trustedApplications.view.esm.js","names":[],"sources":["../../src/trustedApplications/trustedApplications.view.ts"],"sourcesContent":["import { PaneDefinition } from 'pane-registry'\nimport { NamedNode } from 'rdflib'\nimport { icons, login, widgets } from 'solid-ui'\nimport { store } from 'solid-logic'\nimport { createApplicationTable, createContainer, createText } from './trustedApplications.dom'\n\nconst thisColor = '#418d99'\n\nconst trustedApplicationView: PaneDefinition = {\n global: true,\n icon: `${icons.iconBase}noun_15177.svg`,\n name: 'trustedApplications',\n label: () => null,\n render: (subject, context) => {\n const dom = context.dom\n const div = dom.createElement('div')\n div.classList.add('trusted-applications-pane')\n div.setAttribute(\n 'style',\n 'border: 0.3em solid ' +\n thisColor +\n '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;'\n )\n const table = div.appendChild(dom.createElement('table'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)))\n return div\n }\n}\n\nasync function render (dom, main, statusArea): Promise<void> {\n const authContext = await login.ensureLoadedProfile({ dom, div: main, statusArea, me: null })\n const subject = authContext.me as NamedNode\n\n const profile = subject.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n const editable = store.updater.editable(profile.uri, store)\n\n main.appendChild(createText('h3', 'Manage your trusted applications'))\n\n if (!editable) {\n main.appendChild(\n widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`)\n )\n return\n }\n\n main.appendChild(createText('p', 'Here you can manage the applications you trust.'))\n\n const applicationsTable = createApplicationTable(subject)\n main.appendChild(applicationsTable)\n\n main.appendChild(createText('h4', 'Notes'))\n main.appendChild(\n createContainer('ol', [\n main.appendChild(\n createText(\n 'li',\n 'Trusted applications will get access to all resources that you have access to.'\n )\n ),\n main.appendChild(\n createText('li', 'You can limit which modes they have by default.')\n ),\n main.appendChild(\n createText('li', 'They will not gain more access than you have.')\n )\n ])\n )\n main.appendChild(\n createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.')\n )\n}\n\nexport default trustedApplicationView\n"],"mappings":";;;;AAQA,IAAM,IAAyC;CAC7C,QAAQ;CACR,MAAM,GAAG,EAAM,SAAS;CACxB,MAAM;CACN,aAAa;CACb,SAAS,GAAS,MAAY;EAC5B,IAAM,IAAM,EAAQ,KACd,IAAM,EAAI,cAAc,KAAK;EAEnC,AADA,EAAI,UAAU,IAAI,2BAA2B,GAC7C,EAAI,aACF,SACA,sFAGF;EACA,IAAM,IAAQ,EAAI,YAAY,EAAI,cAAc,OAAO,CAAC,GAClD,IAAO,EAAM,YAAY,EAAI,cAAc,IAAI,CAAC,GAEhD,IADS,EAAM,YAAY,EAAI,cAAc,IAAI,CACpC,CAAA,CAAO,YAAY,EAAI,cAAc,KAAK,CAAC;EAG9D,OAFA,EAAW,aAAa,SAAS,iBAAiB,GAClD,EAAO,GAAK,GAAM,CAAU,CAAC,CAAC,OAAM,MAAO,EAAW,YAAY,EAAQ,kBAAkB,GAAK,CAAG,CAAC,CAAC,GAC/F;CACT;AACF;AAEA,eAAe,EAAQ,GAAK,GAAM,GAA2B;CAE3D,IAAM,KAAU,MADU,EAAM,oBAAoB;EAAE;EAAK,KAAK;EAAM;EAAY,IAAI;CAAK,CAAC,EAAA,CAChE,IAEtB,IAAU,EAAQ,IAAI;CAC5B,IAAI,CAAC,EAAM,SACT,MAAU,MAAM,sBAAsB;CAExC,IAAM,IAAW,EAAM,QAAQ,SAAS,EAAQ,KAAK,CAAK;CAI1D,IAFA,EAAK,YAAY,EAAW,MAAM,kCAAkC,CAAC,GAEjE,CAAC,GAAU;EACb,EAAK,YACH,EAAQ,kBAAkB,GAAK,gBAAgB,EAAQ,IAAI,CAAC,CAAC,IAAI,6CAA6C,CAChH;EACA;CACF;CAEA,EAAK,YAAY,EAAW,KAAK,iDAAiD,CAAC;CAEnF,IAAM,IAAoB,EAAuB,CAAO;CAoBxD,AAnBA,EAAK,YAAY,CAAiB,GAElC,EAAK,YAAY,EAAW,MAAM,OAAO,CAAC,GAC1C,EAAK,YACH,EAAgB,MAAM;EACpB,EAAK,YACH,EACE,MACA,gFACF,CACF;EACA,EAAK,YACH,EAAW,MAAM,iDAAiD,CACpE;EACA,EAAK,YACH,EAAW,MAAM,+CAA+C,CAClE;CACF,CAAC,CACH,GACA,EAAK,YACH,EAAW,KAAK,2HAA2H,CAC7I;AACF"}
|