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,38 +0,0 @@
|
|
|
1
|
-
import { icons as e, ns as t, tabs as n, widgets as r } from "solid-ui";
|
|
2
|
-
//#region src/tabbed/tabbedPane.ts
|
|
3
|
-
var i = {
|
|
4
|
-
icon: e.iconBase + "noun_688606.svg",
|
|
5
|
-
name: "tabbed",
|
|
6
|
-
audience: [t.solid("PowerUser")],
|
|
7
|
-
label: (e, n) => {
|
|
8
|
-
let r = n.session.store.findTypeURIs(e);
|
|
9
|
-
return t.meeting("Cluster").uri in r ? "Tabbed" : null;
|
|
10
|
-
},
|
|
11
|
-
render: (e, i) => {
|
|
12
|
-
let a = i.dom, o = i.session.store, s = a.createElement("div");
|
|
13
|
-
return (async () => {
|
|
14
|
-
if (!o.fetcher) throw Error("Store has no fetcher");
|
|
15
|
-
await o.fetcher.load(e), s.appendChild(n.tabWidget({
|
|
16
|
-
dom: a,
|
|
17
|
-
subject: e,
|
|
18
|
-
predicate: o.any(e, t.meeting("predicate")) || t.meeting("toolList"),
|
|
19
|
-
ordered: !0,
|
|
20
|
-
orientation: o.anyValue(e, t.meeting("orientation")) || "0",
|
|
21
|
-
renderMain: (e, t) => {
|
|
22
|
-
e.innerHTML = "";
|
|
23
|
-
let n = e.appendChild(i.dom.createElement("table"));
|
|
24
|
-
i.getOutliner(i.dom).GotoSubject(t, !0, null, !1, void 0, n);
|
|
25
|
-
},
|
|
26
|
-
renderTab: (n, a) => {
|
|
27
|
-
let s = o.the(e, t.meeting("predicate"));
|
|
28
|
-
n.appendChild(r.personTR(i.dom, s, a, {}));
|
|
29
|
-
},
|
|
30
|
-
backgroundColor: o.anyValue(e, t.ui("backgroundColor")) || "#ddddcc"
|
|
31
|
-
}));
|
|
32
|
-
})(), s;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
//#endregion
|
|
36
|
-
export { i as default };
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=tabbedPane.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabbedPane.esm.js","names":[],"sources":["../../src/tabbed/tabbedPane.ts"],"sourcesContent":["/* Tabbed view of anything\n **\n ** data-driven\n **\n */\nimport { Store } from 'rdflib'\nimport { PaneDefinition } from 'pane-registry'\nimport { icons, ns, tabs, widgets } from 'solid-ui'\n\nconst TabbedPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_688606.svg',\n\n name: 'tabbed',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: (subject, context) => {\n // @ts-ignore\n const kb = context.session.store as Store\n const typeURIs = kb.findTypeURIs(subject)\n if (ns.meeting('Cluster').uri in typeURIs) {\n return 'Tabbed'\n }\n return null\n },\n\n render: (subject, context) => {\n const dom = context.dom\n // @ts-ignore\n const store = context.session.store as Store\n const div = dom.createElement('div')\n\n ;(async () => {\n if (!store.fetcher) {\n throw new Error('Store has no fetcher')\n }\n await store.fetcher.load(subject)\n\n div.appendChild(tabs.tabWidget({\n dom,\n subject,\n predicate: store.any(subject, ns.meeting('predicate')) || ns.meeting('toolList'),\n ordered: true,\n orientation: ((store as Store).anyValue(subject, ns.meeting('orientation')) || '0') as ('0' | '1' | '2' | '3'),\n renderMain: (containerDiv, item) => {\n containerDiv.innerHTML = ''\n const table = containerDiv.appendChild(context.dom.createElement('table'))\n ;(context.getOutliner(context.dom) as any).GotoSubject(item, true, null, false, undefined, table)\n },\n renderTab: (containerDiv, item) => {\n const predicate = store.the(subject, ns.meeting('predicate'))\n containerDiv.appendChild(widgets.personTR(context.dom, predicate, item, {}))\n },\n backgroundColor: store.anyValue(subject, ns.ui('backgroundColor')) || '#ddddcc'\n }))\n })()\n return div\n }\n}\n\nexport default TabbedPane\n"],"mappings":";;AASA,IAAM,IAA6B;CACjC,MAAM,EAAM,WAAW;CAEvB,MAAM;CAEN,UAAU,CAAC,EAAG,MAAM,WAAW,CAAC;CAGhC,QAAQ,GAAS,MAAY;EAG3B,IAAM,IADK,EAAQ,QAAQ,MACP,aAAa,CAAO;EAIxC,OAHI,EAAG,QAAQ,SAAS,CAAC,CAAC,OAAO,IACxB,WAEF;CACT;CAEA,SAAS,GAAS,MAAY;EAC5B,IAAM,IAAM,EAAQ,KAEd,IAAQ,EAAQ,QAAQ,OACxB,IAAM,EAAI,cAAc,KAAK;EA0BnC,QAxBE,YAAY;GACZ,IAAI,CAAC,EAAM,SACT,MAAU,MAAM,sBAAsB;GAIxC,AAFA,MAAM,EAAM,QAAQ,KAAK,CAAO,GAEhC,EAAI,YAAY,EAAK,UAAU;IAC7B;IACA;IACA,WAAW,EAAM,IAAI,GAAS,EAAG,QAAQ,WAAW,CAAC,KAAK,EAAG,QAAQ,UAAU;IAC/E,SAAS;IACT,aAAe,EAAgB,SAAS,GAAS,EAAG,QAAQ,aAAa,CAAC,KAAK;IAC/E,aAAa,GAAc,MAAS;KAClC,EAAa,YAAY;KACzB,IAAM,IAAQ,EAAa,YAAY,EAAQ,IAAI,cAAc,OAAO,CAAC;KACxE,EAAS,YAAY,EAAQ,GAAG,CAAC,CAAS,YAAY,GAAM,IAAM,MAAM,IAAO,KAAA,GAAW,CAAK;IAClG;IACA,YAAY,GAAc,MAAS;KACjC,IAAM,IAAY,EAAM,IAAI,GAAS,EAAG,QAAQ,WAAW,CAAC;KAC5D,EAAa,YAAY,EAAQ,SAAS,EAAQ,KAAK,GAAW,GAAM,CAAC,CAAC,CAAC;IAC7E;IACA,iBAAiB,EAAM,SAAS,GAAS,EAAG,GAAG,iBAAiB,CAAC,KAAK;GACxE,CAAC,CAAC;EACJ,EAAA,CAAG,GACI;CACT;AACF"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./_virtual/_rolldown/runtime.cjs.js");let t=require("solid-ui");t=e.__toESM(t);var n={icon:t.icons.originalIconBase+`table.png`,name:`tableOfClass`,label:function(e,n){let r=n.session.store;if(!r.any(void 0,t.ns.rdf(`type`),e))return null;let i=r.statementsMatching(void 0,t.ns.rdf(`type`),e).length;return i===0||i>15?null:t.utils.label(e)+` table`},render:function(e,n){let r=n.dom,i=r.createElement(`div`);return i.setAttribute(`class`,`tablePane`),i.appendChild(t.table(r,{tableClass:e})),i}};exports.tableViewPane=n;
|
|
2
|
-
//# sourceMappingURL=tableViewPane.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tableViewPane.cjs.js","names":["UI"],"sources":["../src/tableViewPane.js"],"sourcesContent":["// Format an array of RDF statements as an HTML table.\n//\n// This can operate in one of three modes: when the class of object is given\n// or when the source document from which data is taken is given,\n// or if a prepared query object is given.\n// (In principle it could operate with neither class nor document\n// given but typically\n// there would be too much data.)\n// When the tableClass is not given, it looks for common classes in the data,\n// and gives the user the option.\n//\n// 2008 Written, Ilaria Liccardi\n// 2014 core functionality now in common/table.js -timbl\n\n// ///////////////////////////////////////////////////////////////////\n\n// Table view pane -- view of a class as a table of properties of class members\nimport * as UI from 'solid-ui'\n\nexport const tableViewPane = {\n icon: UI.icons.originalIconBase + 'table.png',\n\n name: 'tableOfClass',\n\n label: function (subject, context) {\n const store = context.session.store\n // if (!store.holds(subject, UI.ns.rdf('type'),UI.ns.rdfs('Class'))) return null\n if (!store.any(undefined, UI.ns.rdf('type'), subject)) {\n return null\n }\n const n = store.statementsMatching(undefined, UI.ns.rdf('type'), subject)\n .length\n if (n === 0) {\n // None, suppress pane\n return null\n }\n if (n > 15) {\n // @@ At the moment this pane can be slow with too many @@ fixme by using limits\n return null\n }\n return UI.utils.label(subject) + ' table'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'tablePane')\n div.appendChild(UI.table(myDocument, { tableClass: subject }))\n return div\n }\n}\n"],"mappings":"gGAmBA,IAAa,EAAgB,CAC3B,KAAMA,EAAG,MAAM,iBAAmB,YAElC,KAAM,eAEN,MAAO,SAAU,EAAS,EAAS,CACjC,IAAM,EAAQ,EAAQ,QAAQ,MAE9B,GAAI,CAAC,EAAM,IAAI,IAAA,GAAWA,EAAG,GAAG,IAAI,MAAM,EAAG,CAAO,EAClD,OAAO,KAET,IAAM,EAAI,EAAM,mBAAmB,IAAA,GAAWA,EAAG,GAAG,IAAI,MAAM,EAAG,CAAO,CAAC,CACtE,OASH,OARI,IAAM,GAIN,EAAI,GAEC,KAEFA,EAAG,MAAM,MAAM,CAAO,EAAI,QACnC,EAEA,OAAQ,SAAU,EAAS,EAAS,CAClC,IAAM,EAAa,EAAQ,IACrB,EAAM,EAAW,cAAc,KAAK,EAG1C,OAFA,EAAI,aAAa,QAAS,WAAW,EACrC,EAAI,YAAYA,EAAG,MAAM,EAAY,CAAE,WAAY,CAAQ,CAAC,CAAC,EACtD,CACT,CACF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as e from "solid-ui";
|
|
2
|
-
//#region src/tableViewPane.js
|
|
3
|
-
var t = {
|
|
4
|
-
icon: e.icons.originalIconBase + "table.png",
|
|
5
|
-
name: "tableOfClass",
|
|
6
|
-
label: function(t, n) {
|
|
7
|
-
let r = n.session.store;
|
|
8
|
-
if (!r.any(void 0, e.ns.rdf("type"), t)) return null;
|
|
9
|
-
let i = r.statementsMatching(void 0, e.ns.rdf("type"), t).length;
|
|
10
|
-
return i === 0 || i > 15 ? null : e.utils.label(t) + " table";
|
|
11
|
-
},
|
|
12
|
-
render: function(t, n) {
|
|
13
|
-
let r = n.dom, i = r.createElement("div");
|
|
14
|
-
return i.setAttribute("class", "tablePane"), i.appendChild(e.table(r, { tableClass: t })), i;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
//#endregion
|
|
18
|
-
export { t as tableViewPane };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=tableViewPane.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tableViewPane.esm.js","names":[],"sources":["../src/tableViewPane.js"],"sourcesContent":["// Format an array of RDF statements as an HTML table.\n//\n// This can operate in one of three modes: when the class of object is given\n// or when the source document from which data is taken is given,\n// or if a prepared query object is given.\n// (In principle it could operate with neither class nor document\n// given but typically\n// there would be too much data.)\n// When the tableClass is not given, it looks for common classes in the data,\n// and gives the user the option.\n//\n// 2008 Written, Ilaria Liccardi\n// 2014 core functionality now in common/table.js -timbl\n\n// ///////////////////////////////////////////////////////////////////\n\n// Table view pane -- view of a class as a table of properties of class members\nimport * as UI from 'solid-ui'\n\nexport const tableViewPane = {\n icon: UI.icons.originalIconBase + 'table.png',\n\n name: 'tableOfClass',\n\n label: function (subject, context) {\n const store = context.session.store\n // if (!store.holds(subject, UI.ns.rdf('type'),UI.ns.rdfs('Class'))) return null\n if (!store.any(undefined, UI.ns.rdf('type'), subject)) {\n return null\n }\n const n = store.statementsMatching(undefined, UI.ns.rdf('type'), subject)\n .length\n if (n === 0) {\n // None, suppress pane\n return null\n }\n if (n > 15) {\n // @@ At the moment this pane can be slow with too many @@ fixme by using limits\n return null\n }\n return UI.utils.label(subject) + ' table'\n },\n\n render: function (subject, context) {\n const myDocument = context.dom\n const div = myDocument.createElement('div')\n div.setAttribute('class', 'tablePane')\n div.appendChild(UI.table(myDocument, { tableClass: subject }))\n return div\n }\n}\n"],"mappings":";;AAmBA,IAAa,IAAgB;CAC3B,MAAM,EAAG,MAAM,mBAAmB;CAElC,MAAM;CAEN,OAAO,SAAU,GAAS,GAAS;EACjC,IAAM,IAAQ,EAAQ,QAAQ;EAE9B,IAAI,CAAC,EAAM,IAAI,KAAA,GAAW,EAAG,GAAG,IAAI,MAAM,GAAG,CAAO,GAClD,OAAO;EAET,IAAM,IAAI,EAAM,mBAAmB,KAAA,GAAW,EAAG,GAAG,IAAI,MAAM,GAAG,CAAO,CAAC,CACtE;EASH,OARI,MAAM,KAIN,IAAI,KAEC,OAEF,EAAG,MAAM,MAAM,CAAO,IAAI;CACnC;CAEA,QAAQ,SAAU,GAAS,GAAS;EAClC,IAAM,IAAa,EAAQ,KACrB,IAAM,EAAW,cAAc,KAAK;EAG1C,OAFA,EAAI,aAAa,SAAS,WAAW,GACrC,EAAI,YAAY,EAAG,MAAM,GAAY,EAAE,YAAY,EAAQ,CAAC,CAAC,GACtD;CACT;AACF"}
|
|
@@ -1,8 +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_106746.svg`,name:`transaction`,audience:[r.solid(`PowerUser`)],label:function(e,n){let r=n.session.store,i=r.findTypeURIs(e);return i[`http://www.w3.org/2000/10/swap/pim/qif#Transaction`]?`$$`:r.any(e,t.ns.qu(`amount`))?`$$$`:i[`http://www.w3.org/ns/pim/trip#Trip`]?`Trip $`:null},render:function(e,i){let a=i.dom,o=i.session.store,s=o.fetcher,c=n.Namespace(`http://www.w3.org/2000/10/swap/pim/qif#`),l=n.Namespace(`http://www.w3.org/ns/pim/trip#`),u=a.createElement(`div`);u.setAttribute(`class`,`transactionPane`);let d=function(e,t){t===void 0&&(t=`color: grey`);let n=a.createElement(`pre`);n.setAttribute(`style`,t),u.appendChild(n),n.appendChild(a.createTextNode(e))},f=function(e){return d(e,`color: #100; background-color: #fee`)},p=o.statementsMatching(e),m=o.statementsMatching(void 0,void 0,e),h=o.findTypeURIs(e),g={},_=function(e){g[e.uri]=!0},v=function(e){let n=`padding: 0.5em 1.5em 1em 1.5em; `;if(e){let r=o.any(e,t.ns.ui(`backgroundColor`));r&&(n+=`background-color: `+r.value+`; `)}u.setAttribute(`style`,n)},y=function(e){if(e===void 0)return``;let t=``+e;return t.indexOf(`.`)>=0?t.split(`.`)[0]+`.`+(t.split(`.`)[1]+`00`).slice(0,2):t+`.00`},b=function(e,t){let n=a.createElement(`td`);return 0+e===0&&t||(n.textContent=y(e)),n.setAttribute(`style`,`width: 6em; text-align: right; `),n},x=function(e){let t=a.createElement(`th`);return t.textContent=e,t.setAttribute(`style`,`text-align: right; `),t},S=function(e,t){let n=o.any(e,r.qu(`date`)),i=o.any(t,r.qu(`date`));if(n!==void 0&&i!==void 0){if(n.value<i.value)return-1;if(n.value>i.value)return 1}return e.uri<t.uri?-1:+(e.uri>t.uri)},C=function(e,t,n){let r=e.session.paneRegistry.byName(n).render(t,e);return r.setAttribute(`style`,`border: 0.1em solid green;`),r},w=function(e,t,n,r,a){let o=t.parentNode.children;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);let s=e.createElement(`tr`),c=s.appendChild(e.createElement(`td`));c.setAttribute(`style`,`width: 98%; padding: 1em; border: 0.1em solid grey;`);let l=t.children.length;t.nextSibling?t.parentNode.insertBefore(s,t.nextSibling):t.parentNode.appendChild(s),t.expanded=s,c.setAttribute(`colspan`,``+l),c.appendChild(C(i,n,r))},T=function(e,t,n,r,i){t.expanded?(t.parentNode.removeChild(t.expanded),t.expanded=!1):w(e,t,n,r,i)},E=function(e,n,i){let a=e.createElement(`table`);a.setAttribute(`style`,`padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;`);let s=function(e,n){let i=e.createElement(`tr`);(function(e,n){let r=`'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;`;if(n){let e=o.any(n,t.ns.ui(`backgroundColor`));e&&(r+=`background-color: `+e.value+`; `)}e.setAttribute(`style`,r)})(i,o.any(n,r.qu(`toAccount`)));let a=i.appendChild(e.createElement(`td`)),s=o.any(n,r.qu(`date`));a.textContent=s?s.value.slice(0,10):`???`,a.setAttribute(`style`,`width: 7em;`);let c=i.appendChild(e.createElement(`td`));c.setAttribute(`style`,`width: 36em;`);let l=o.any(n,r.qu(`payee`));c.textContent=l?l.value:`???`;let u=c.appendChild(e.createElement(`a`));u.textContent=` ➜`,u.setAttribute(`href`,n.uri);let d=i.appendChild(e.createElement(`td`)),f=o.any(n,r.qu(`in_USD`));return d.textContent=f?y(f.value):`???`,d.setAttribute(`style`,`width: 6em; text-align: right; `),i.addEventListener(`click`,function(t){T(e,i,n,`transaction`,!t.shiftKey)},!1),i},c=i?n.filter(i):n.slice();c.sort(S);for(let t=0;t<c.length;t++)a.appendChild(s(e,c[t]));return a};if(h[`http://www.w3.org/2000/10/swap/pim/qif#Transaction`]||o.any(e,r.qu(`toAccount`))){_(r.rdf(`type`));let d=o.any(e,t.ns.qu(`toAccount`));v(d),d||f(`(Error: There is no bank account known for this transaction <`+e.uri+`>,
|
|
2
|
-
-- every transaction needs one.)`);let h=null,y=o.any(e,t.ns.qu(`accordingTo`));y===void 0?f(`(Error: There is no back link to the original data source foir this transaction <`+e.uri+`>,
|
|
3
|
-
so I can't tell how to annotate it.)`):(h=y===void 0?null:o.any(y,t.ns.qu(`annotationStore`)),h===void 0&&f(`(There is no annotation document for this statement
|
|
4
|
-
<`+y.uri+`>,
|
|
5
|
-
so you cannot classify this transaction.)`));let b=a.createElement(`div`);b.setAttribute(`style`,`float:right`),u.appendChild(b);let x=function(n,r){_(n);let i=o.any(e,n);if(!i)return;let s=a.createElement(`a`);s.setAttribute(`href`,i.uri),s.setAttribute(`style`,`float:right`),b.appendChild(s).textContent=r||t.utils.label(i),b.appendChild(a.createElement(`br`))};x(t.ns.qu(`toAccount`)),x(t.ns.qu(`accordingTo`),`Statement`),x(l(`trip`));let S=a.createElement(`table`);u.appendChild(S),S.innerHTML=[`date`,`payee`,`amount`,`in_USD`,`currency`].map(c).map(function(n){_(n);let r=o.any(e,n),i=r?t.utils.labelForXML(r):``;return`<tr><td style="text-align: right; padding-right: 0.6em">`+t.utils.labelForXML(n)+`</td><td style="font-weight: bold;">`+i+`</td></tr>`}).join(`
|
|
6
|
-
`);let C=function(e,t){e||f(`Sorry, failed to save your change:
|
|
7
|
-
`+t)};h&&o.fetcher.nowOrWhenFetched(h.uri,e,function(c,d){c||f(`Cannot load store `+h+` `+d);let v=o.any(h,r.qu(`calendarYear`)),y=function(){u.insertBefore(t.widgets.makeSelectForNestedCategory(a,o,e,t.ns.qu(`Classified`),h,C),S.nextSibling)};o.any(void 0,r.rdfs(`subClassOf`),r.qu.Classified)?y():v?s.load(v).then(function(e){s.load(o.each(v,r.rdfs(`seeAlso`))).then(function(){y()}).catch(function(e){console.log(`Error loading background data: `+e)})}).catch(function(e){console.log(`Error loading calendarYear: `+e)}):console.log(`Can't get categories, because no calendarYear`),u.appendChild(t.widgets.makeDescription(a,o,e,t.ns.rdfs(`comment`),h,C));let b=o.statementsMatching(void 0,l(`trip`),void 0,h).map(function(e){return e.object}),x=o.each(void 0,t.ns.rdf(`type`),l(`Trip`));b=b.concat(x).sort(),b=function(e,t,n,r){let i=t.map(function(t){let r=e.any(t,n);return r=r?r.value:`9999-12-31`,[r,t]});return i.sort(),r&&i.reverse(),i.map(function(e){return e[1]})}(o,b,t.ns.cal(`dtstart`),!0),b.length>1&&u.appendChild(t.widgets.makeSelectForOptions(a,o,e,l(`trip`),b,{multiple:!1,nullLabel:`-- what trip? --`,mint:`New Trip *`,mintClass:l(`Trip`),mintStatementsFun:function(e){let r=[];return r.push(n.st(e,t.ns.rdf(`type`),l(`Trip`),e.doc())),r}},h,C)),u.appendChild(a.createElement(`br`));let w=i.getOutliner(a);_(r.rdfs(`comment`)),t.widgets.attachmentList(a,e,u),_(r.wf(`attachment`)),u.appendChild(a.createElement(`tr`)).setAttribute(`style`,`height: 1em`),w.appendPropertyTRs(u,p,!1,function(e,t){return!(e.uri in g)}),w.appendPropertyTRs(u,m,!0,function(e,t){return!(e.uri in g)})})}else h[`http://www.w3.org/ns/pim/trip#Trip`]&&function(){let n={},i={},s={},c=o.each(void 0,l(`trip`),e),d=c.map(function(e){return e.doc()});o.fetcher.load(d).then(function(){c.forEach(function(e){let a=o.the(e,r.qu(`date`)),c=a?(``+a.value).slice(0,4):`????`,l=o.the(e,r.rdf(`type`));if(l||=t.ns.qu(`ErrorNoType`),l&&l.uri){let r=l.uri;i[c]||(i[c]=0),s[c]||(s[c]={}),n[r]||(n[r]=0),s[c][r]||(s[c][r]=0);let a=o.any(e,t.ns.qu(`in_USD`));if(a||f(`@@ No amount in USD: `+a+` for `+e),a){let e=parseFloat(a.value);n[r]+=e,s[c][r]+=e,i[c]+=e}}});let l=[],d=0,p=[],m;for(let e in s)Object.prototype.hasOwnProperty.call(s,e)&&p.push(e);p.sort();let h=p.length,g,_=u.appendChild(a.createElement(`table`));if(_.setAttribute(`style`,`font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;`),h>1){let e=_.appendChild(a.createElement(`tr`));for(e.appendChild(x(``)),m=0;m<h;m++)e.appendChild(x(p[m]));e.appendChild(x(`total`))}for(let e in n)Object.prototype.hasOwnProperty.call(n,e)&&(l.push(e),d+=n[e]);l.sort();let v,S,C;for(let e=0;e<l.length;e++){let r=o.sym(l[e]);if(v=_.appendChild(a.createElement(`tr`)),S=v.appendChild(a.createElement(`td`)),S.textContent=t.utils.label(r),h>1)for(m=0;m<h;m++)C=s[p[m]][l[e]],g=v.appendChild(b(C,!0));v.appendChild(b(n[l[e]],!0))}if(l.length>1){if(v=_.appendChild(a.createElement(`tr`)),v.appendChild(x(`total`)),h>1)for(m=0;m<h;m++)C=i[p[m]],g=v.appendChild(b(C?y(C):``));g=v.appendChild(b(d)),g.setAttribute(`style`,`font-weight: bold; text-align: right;`)}let w=E(a,c);w.setAttribute(`style`,`margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;`),u.appendChild(w),t.widgets.attachmentList(a,e,u)}).catch(function(e){f(`Error loading transactions: `+e)})}();return u}};exports.default=i;
|
|
8
|
-
//# sourceMappingURL=pane.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pane.cjs.js","names":["UI","$rdf"],"sources":["../../src/transaction/pane.js"],"sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n '\\'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n '>,\\nso I can\\'t tell how to annotate it.)'\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log('Can\\'t get categories, because no calendarYear')\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(yearCategoryTotal, y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(total, uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"mappings":"wIASA,IAAM,EAAKA,EAAG,GAEd,EAAe,CAEb,KAAMA,EAAG,MAAM,SAAW,kBAE1B,KAAM,cAEN,SAAU,CAAC,EAAG,MAAM,WAAW,CAAC,EAGhC,MAAO,SAAU,EAAS,EAAS,CACjC,IAAM,EAAK,EAAQ,QAAQ,MACrB,EAAI,EAAG,aAAa,CAAO,EAQjC,OAPI,EAAE,sDAA8D,KAChE,EAAG,IAAI,EAASA,EAAG,GAAG,GAAG,QAAQ,CAAC,EAAU,MAI5C,EAAE,sCAA8C,SAE7C,IACT,EAEA,OAAQ,SAAU,EAAS,EAAS,CAClC,IAAM,EAAM,EAAQ,IACd,EAAK,EAAQ,QAAQ,MACrB,EAAU,EAAG,QACb,EAAIC,EAAK,UAAU,yCAAyC,EAC5D,EAAOA,EAAK,UAAU,gCAAgC,EAEtD,EAAM,EAAI,cAAc,KAAK,EACnC,EAAI,aAAa,QAAS,iBAAiB,EAE3C,IAAM,EAAU,SAAkB,EAAS,EAAO,CAC5C,IAAU,IAAA,KAAW,EAAQ,eACjC,IAAM,EAAM,EAAI,cAAc,KAAK,EACnC,EAAI,aAAa,QAAS,CAAK,EAC/B,EAAI,YAAY,CAAG,EACnB,EAAI,YAAY,EAAI,eAAe,CAAO,CAAC,CAC7C,EACM,EAAW,SAAmB,EAAS,CAC3C,OAAO,EAAQ,EAAS,qCAAqC,CAC/D,EAYM,EAAQ,EAAG,mBAAmB,CAAO,EACrC,EAAQ,EAAG,mBAAmB,IAAA,GAAW,IAAA,GAAW,CAAO,EAE3D,EAAI,EAAG,aAAa,CAAO,EAG3B,EAAoB,CAAC,EACrB,EAAgB,SAAU,EAAM,CACpC,EAAkB,EAAK,KAAO,EAChC,EAEM,EAAe,SAAU,EAAS,CACtC,IAAI,EAAU,mCACd,GAAI,EAAS,CACX,IAAM,EAAkB,EAAG,IAAI,EAASD,EAAG,GAAG,GAAG,iBAAiB,CAAC,EAC/D,IACF,GAAW,qBAAuB,EAAgB,MAAQ,KAE9D,CACA,EAAI,aAAa,QAAS,CAAO,CACnC,EAOM,EAAK,SAAU,EAAG,CACtB,GAAI,IAAM,IAAA,GAAW,MAAO,GAC5B,IAAM,EAAI,GAAK,EAIf,OAHI,EAAE,QAAQ,GAAG,GAAK,EACb,EAAE,MAAM,GAAG,CAAC,CAAC,GAAK,KAAO,EAAE,MAAM,GAAG,CAAC,CAAC,GAAK,KAAA,CAAM,MAAM,EAAG,CAAC,EAE7D,EAAI,KACb,EAEM,EAAc,SAAsB,EAAQ,EAAc,CAC9D,IAAM,EAAK,EAAI,cAAc,IAAI,EAKjC,MAJM,GAAM,IAAW,GAAO,IAC5B,EAAG,YAAc,EAAG,CAAM,GAE5B,EAAG,aAAa,QAAS,iCAAiC,EACnD,CACT,EAEM,EAAa,SAAqB,EAAK,CAC3C,IAAM,EAAK,EAAI,cAAc,IAAI,EAGjC,MAFA,GAAG,YAAc,EACjB,EAAG,aAAa,QAAS,qBAAqB,EACvC,CACT,EAEM,EAAa,SAAU,EAAG,EAAG,CACjC,IAAM,EAAK,EAAG,IAAI,EAAG,EAAG,GAAG,MAAM,CAAC,EAC5B,EAAK,EAAG,IAAI,EAAG,EAAG,GAAG,MAAM,CAAC,EAClC,GAAI,IAAO,IAAA,IAAa,IAAO,IAAA,GAAW,CACxC,GAAI,EAAG,MAAQ,EAAG,MAAO,MAAO,GAChC,GAAI,EAAG,MAAQ,EAAG,MAAO,MAAO,EAClC,CAGA,OAFI,EAAE,IAAM,EAAE,IAAY,GAC1B,EAAI,EAAE,IAAM,EAAE,IAEhB,EAEM,EAAe,SAAU,EAAS,EAAS,EAAU,CAEzD,IAAM,EADI,EAAQ,QAAQ,aAAa,OAAO,CACpC,CAAC,CAAC,OAAO,EAAS,CAAO,EAEnC,OADA,EAAE,aAAa,QAAS,4BAA4B,EAC7C,CACT,EAEM,EAAiB,SAAU,EAAK,EAAK,EAAS,EAAU,EAAM,CAClE,IAAM,EAAW,EAAI,WAAW,SAChC,GAAI,EACG,IAAA,IAAI,EAAI,EAAS,OAAS,EAAG,GAAK,EAAG,IACpC,EAAS,EAAE,CAAC,WACd,EAAS,EAAE,CAAC,WAAW,YAAY,EAAS,EAAE,CAAC,QAAQ,EACvD,EAAS,EAAE,CAAC,SAAW,IAI7B,IAAM,EAAK,EAAI,cAAc,IAAI,EAC3B,EAAK,EAAG,YAAY,EAAI,cAAc,IAAI,CAAC,EACjD,EAAG,aACD,QACA,qDACF,EACA,IAAM,EAAO,EAAI,SAAS,OACtB,EAAI,YACN,EAAI,WAAW,aAAa,EAAI,EAAI,WAAW,EAE/C,EAAI,WAAW,YAAY,CAAE,EAE/B,EAAI,SAAW,EACf,EAAG,aAAa,UAAW,GAAK,CAAI,EACpC,EAAG,YAAY,EAAa,EAAS,EAAS,CAAQ,CAAC,CACzD,EAEM,EAA2B,SAC/B,EACA,EACA,EACA,EACA,EACA,CACI,EAAI,UACN,EAAI,WAAW,YAAY,EAAI,QAAQ,EACvC,EAAI,SAAW,IAEf,EAAe,EAAK,EAAK,EAAS,EAAU,CAAI,CAEpD,EAEM,EAAmB,SAAU,EAAK,EAAM,EAAQ,CACpD,IAAM,EAAQ,EAAI,cAAc,OAAO,EACvC,EAAM,aACJ,QACA,wEACF,EACA,IAAM,EAAiB,SAAU,EAAK,EAAG,CACvC,IAAM,EAAK,EAAI,cAAc,IAAI,GAgBjC,SAd6B,EAAI,EAAS,CAExC,IAAI,EACF,kEACF,GAAI,EAAS,CACX,IAAM,EAAkB,EAAG,IAAI,EAASA,EAAG,GAAG,GAAG,iBAAiB,CAAC,EAC/D,IACF,GAAW,qBAAuB,EAAgB,MAAQ,KAE9D,CACA,EAAG,aAAa,QAAS,CAAO,CAClC,EAGA,CAAW,EADK,EAAG,IAAI,EAAG,EAAG,GAAG,WAAW,CACtB,CAAC,EAEtB,IAAM,EAAK,EAAG,YAAY,EAAI,cAAc,IAAI,CAAC,EAC3C,EAAO,EAAG,IAAI,EAAG,EAAG,GAAG,MAAM,CAAC,EACpC,EAAG,YAAc,EAAO,EAAK,MAAM,MAAM,EAAG,EAAE,EAAI,MAClD,EAAG,aAAa,QAAS,aAAa,EAEtC,IAAM,EAAK,EAAG,YAAY,EAAI,cAAc,IAAI,CAAC,EACjD,EAAG,aAAa,QAAS,cAAc,EACvC,IAAM,EAAQ,EAAG,IAAI,EAAG,EAAG,GAAG,OAAO,CAAC,EACtC,EAAG,YAAc,EAAQ,EAAM,MAAQ,MACvC,IAAM,EAAK,EAAG,YAAY,EAAI,cAAc,GAAG,CAAC,EAChD,EAAG,YAAc,KACjB,EAAG,aAAa,OAAQ,EAAE,GAAG,EAE7B,IAAM,EAAK,EAAG,YAAY,EAAI,cAAc,IAAI,CAAC,EAC3C,EAAS,EAAG,IAAI,EAAG,EAAG,GAAG,QAAQ,CAAC,EAYxC,MAXA,GAAG,YAAc,EAAS,EAAG,EAAO,KAAK,EAAI,MAC7C,EAAG,aAAa,QAAS,iCAAiC,EAC1D,EAAG,iBACD,QACA,SAAU,EAAG,CAEX,EAAyB,EAAK,EAAI,EAAG,cAAe,CAAC,EAAE,QAAQ,CACjE,EACA,EACF,EAEO,CACT,EAEM,EAAQ,EAAS,EAAK,OAAO,CAAM,EAAI,EAAK,MAAM,EACxD,EAAM,KAAK,CAAU,EAErB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,EAAM,YAAY,EAAe,EAAK,EAAM,EAAE,CAAC,EAEjD,OAAO,CACT,EAMA,GACE,EAAE,uDACF,EAAG,IAAI,EAAS,EAAG,GAAG,WAAW,CAAC,EAClC,CAEA,EAAc,EAAG,IAAI,MAAM,CAAC,EAE5B,IAAM,EAAU,EAAG,IAAI,EAASA,EAAG,GAAG,GAAG,WAAW,CAAC,EACrD,EAAa,CAAO,EACf,GACH,EACE,gEACE,EAAQ,IACR;kCACJ,EAGF,IAAI,EAAQ,KACN,EAAY,EAAG,IAAI,EAASA,EAAG,GAAG,GAAG,aAAa,CAAC,EACrD,IAAc,IAAA,GAChB,EACE,oFACE,EAAQ,IACR;qCACJ,GAEA,EACE,IAAc,IAAA,GAEV,KADA,EAAG,IAAI,EAAWA,EAAG,GAAG,GAAG,iBAAiB,CAAC,EAE/C,IAAU,IAAA,IACZ,EACE;GACE,EAAU,IACV;0CACJ,GAIJ,IAAM,EAAM,EAAI,cAAc,KAAK,EACnC,EAAI,aAAa,QAAS,aAAa,EACvC,EAAI,YAAY,CAAG,EAEnB,IAAM,EAAU,SAAU,EAAM,EAAO,CACrC,EAAc,CAAI,EAClB,IAAM,EAAM,EAAG,IAAI,EAAS,CAAI,EAChC,GAAI,CAAC,EAAK,OACV,IAAM,EAAI,EAAI,cAAc,GAAG,EAC/B,EAAE,aAAa,OAAQ,EAAI,GAAG,EAC9B,EAAE,aAAa,QAAS,aAAa,EACrC,EAAI,YAAY,CAAC,CAAC,CAAC,YAAc,GAASA,EAAG,MAAM,MAAM,CAAG,EAC5D,EAAI,YAAY,EAAI,cAAc,IAAI,CAAC,CACzC,EAEA,EAAQA,EAAG,GAAG,GAAG,WAAW,CAAC,EAC7B,EAAQA,EAAG,GAAG,GAAG,aAAa,EAAG,WAAW,EAC5C,EAAQ,EAAK,MAAM,CAAC,EAGpB,IAAM,EAAQ,EAAI,cAAc,OAAO,EACvC,EAAI,YAAY,CAAK,EAgBrB,EAAM,UAfQ,CAAC,OAAQ,QAAS,SAAU,SAAU,UAAU,CAAC,CAAC,IAAI,CAClD,CAAC,CAChB,IAAI,SAAU,EAAG,CAChB,EAAc,CAAC,EACf,IAAM,EAAQ,EAAG,IAAI,EAAS,CAAC,EACzB,EAAI,EAAQA,EAAG,MAAM,YAAY,CAAK,EAAI,GAChD,MACE,2DACAA,EAAG,MAAM,YAAY,CAAC,EACtB,uCACA,EACA,YAEJ,CAAC,CAAC,CACD,KAAK;CACc,EAEtB,IAAM,EAAgB,SAAU,EAAI,EAAM,CACpC,GAGG,EAAS;EAAyC,CAAI,CAC/D,EAKI,GACF,EAAG,QAAQ,iBAAiB,EAAM,IAAK,EAAS,SAAU,EAAI,EAAM,CAC7D,GAAI,EAAS,qBAAuB,EAAQ,IAAM,CAAI,EAE3D,IAAM,EAAe,EAAG,IAAI,EAAO,EAAG,GAAG,cAAc,CAAC,EAElD,EAAyB,UAAY,CACzC,EAAI,aACFA,EAAG,QAAQ,4BACT,EACA,EACA,EACAA,EAAG,GAAG,GAAG,YAAY,EACrB,EACA,CACF,EACA,EAAM,WACR,CACF,EAEI,EAAG,IAAI,IAAA,GAAW,EAAG,KAAK,YAAY,EAAG,EAAG,GAAG,UAAU,EAC3D,EAAuB,EACd,EACT,EACG,KAAK,CAAY,CAAC,CAClB,KAAK,SAAU,EAAO,CACrB,EACG,KAAK,EAAG,KAAK,EAAc,EAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAC/C,KAAK,UAAY,CAChB,EAAuB,CACzB,CAAC,CAAC,CACD,MAAM,SAAU,EAAG,CAClB,QAAQ,IAAI,kCAAoC,CAAC,CACnD,CAAC,CACL,CAAC,CAAC,CACD,MAAM,SAAU,EAAG,CAClB,QAAQ,IAAI,+BAAiC,CAAC,CAChD,CAAC,EAEH,QAAQ,IAAI,+CAAgD,EAE9D,EAAI,YACFA,EAAG,QAAQ,gBACT,EACA,EACA,EACAA,EAAG,GAAG,KAAK,SAAS,EACpB,EACA,CACF,CACF,EAEA,IAAI,EAAQ,EACT,mBAAmB,IAAA,GAAW,EAAK,MAAM,EAAG,IAAA,GAAW,CAAK,CAAC,CAC7D,IAAI,SAAU,EAAI,CACjB,OAAO,EAAG,MACZ,CAAC,EACG,EAAS,EAAG,KAAK,IAAA,GAAWA,EAAG,GAAG,IAAI,MAAM,EAAG,EAAK,MAAM,CAAC,EACjE,EAAQ,EAAM,OAAO,CAAM,CAAC,CAAC,KAAK,EAelC,EAAQ,SAbmB,EAAI,EAAM,EAAM,EAAS,CAClD,IAAM,EAAK,EAAK,IAAI,SAAU,EAAG,CAC/B,IAAI,EAAM,EAAG,IAAI,EAAG,CAAI,EAExB,MADA,GAAM,EAAM,EAAI,MAAQ,aACjB,CAAC,EAAK,CAAC,CAChB,CAAC,EAGD,OAFA,EAAG,KAAK,EACJ,GAAS,EAAG,QAAQ,EACjB,EAAG,IAAI,SAAU,EAAM,CAC5B,OAAO,EAAK,EACd,CAAC,CACH,EAEiB,EAAI,EAAOA,EAAG,GAAG,IAAI,SAAS,EAAG,EAAI,EAElD,EAAM,OAAS,GACjB,EAAI,YACFA,EAAG,QAAQ,qBACT,EACA,EACA,EACA,EAAK,MAAM,EACX,EACA,CACE,SAAU,GACV,UAAW,mBACX,KAAM,aACN,UAAW,EAAK,MAAM,EACtB,kBAAmB,SAAU,EAAM,CACjC,IAAM,EAAK,CAAC,EAIZ,OAHA,EAAG,KACDC,EAAK,GAAG,EAAMD,EAAG,GAAG,IAAI,MAAM,EAAG,EAAK,MAAM,EAAG,EAAK,IAAI,CAAC,CAC3D,EACO,CACT,CACF,EACA,EACA,CACF,CACF,EAGF,EAAI,YAAY,EAAI,cAAc,IAAI,CAAC,EAIvC,IAAM,EAAW,EAAQ,YAAY,CAAG,EAExC,EAAc,EAAG,KAAK,SAAS,CAAC,EAEhC,EAAG,QAAQ,eAAe,EAAK,EAAS,CAAG,EAC3C,EAAc,EAAG,GAAG,YAAY,CAAC,EAEjC,EACG,YAAY,EAAI,cAAc,IAAI,CAAC,CAAC,CACpC,aAAa,QAAS,aAAa,EAGtC,EAAS,kBAAkB,EAAK,EAAO,GAAO,SAC5C,EACA,EACA,CACA,MAAO,EAAE,EAAK,OAAO,EACvB,CAAC,EACD,EAAS,kBAAkB,EAAK,EAAO,GAAM,SAC3C,EACA,EACA,CACA,MAAO,EAAE,EAAK,OAAO,EACvB,CAAC,CACH,CAAC,CAQL,MAAW,EAAE,uCAuJX,UA5HiC,CAC/B,IAAM,EAAQ,CAAC,EACT,EAAY,CAAC,EACb,EAAoB,CAAC,EACrB,EAAQ,EAAG,KAAK,IAAA,GAAW,EAAK,MAAM,EAAG,CAAO,EAChD,EAAiB,EAAM,IAAI,SAAU,EAAG,CAC5C,OAAO,EAAE,IAAI,CACf,CAAC,EACD,EAAG,QACA,KAAK,CAAc,CAAC,CACpB,KAAK,UAAY,CAChB,EAAM,QAAQ,SAAU,EAAG,CACzB,IAAM,EAAO,EAAG,IAAI,EAAG,EAAG,GAAG,MAAM,CAAC,EAC9B,EAAO,GAAQ,GAAK,EAAK,MAAA,CAAO,MAAM,EAAG,CAAC,EAAI,OAChD,EAAK,EAAG,IAAI,EAAG,EAAG,IAAI,MAAM,CAAC,EAGjC,GADA,AAAS,IAAKA,EAAG,GAAG,GAAG,aAAa,EAChC,GAAM,EAAG,IAAK,CAChB,IAAM,EAAQ,EAAG,IACZ,EAAU,KAAO,EAAU,GAAQ,GACnC,EAAkB,KAAO,EAAkB,GAAQ,CAAC,GACpD,EAAM,KAAQ,EAAM,GAAS,GAC7B,EAAkB,EAAK,CAAC,KAC3B,EAAkB,EAAK,CAAC,GAAS,GAGnC,IAAM,EAAM,EAAG,IAAI,EAAGA,EAAG,GAAG,GAAG,QAAQ,CAAC,EAIxC,GAHK,GACH,EAAS,wBAA0B,EAAM,QAAU,CAAC,EAElD,EAAK,CACP,IAAM,EAAS,WAAW,EAAI,KAAK,EACnC,EAAM,IAAU,EAChB,EAAkB,EAAK,CAAC,IAAU,EAClC,EAAU,IAAS,CACrB,CACF,CACF,CAAC,EAED,IAAM,EAAQ,CAAC,EACX,EAAa,EACX,EAAQ,CAAC,EACX,EAEJ,IAAK,IAAM,KAAK,EAGV,OAAO,UAAU,eAAe,KAAK,EAAmB,CAAC,GAC3D,EAAM,KAAK,CAAC,EAGhB,EAAM,KAAK,EACX,IAAM,EAAK,EAAM,OACb,EAEE,EAAQ,EAAI,YAAY,EAAI,cAAc,OAAO,CAAC,EAMxD,GALA,EAAM,aACJ,QACA,gHACF,EAEI,EAAK,EAAG,CACV,IAAM,EAAS,EAAM,YAAY,EAAI,cAAc,IAAI,CAAC,EAExD,IADA,EAAO,YAAY,EAAW,EAAE,CAAC,EAC5B,EAAI,EAAG,EAAI,EAAI,IAClB,EAAO,YAAY,EAAW,EAAM,EAAE,CAAC,EAEzC,EAAO,YAAY,EAAW,OAAO,CAAC,CACxC,CAEA,IAAK,IAAM,KAAO,EAGZ,OAAO,UAAU,eAAe,KAAK,EAAO,CAAG,IACjD,EAAM,KAAK,CAAG,EACd,GAAc,EAAM,IAGxB,EAAM,KAAK,EACX,IAAI,EAAK,EAAO,EAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,IAAM,EAAM,EAAG,IAAI,EAAM,EAAE,EAI3B,GAHA,EAAM,EAAM,YAAY,EAAI,cAAc,IAAI,CAAC,EAC/C,EAAQ,EAAI,YAAY,EAAI,cAAc,IAAI,CAAC,EAC/C,EAAM,YAAcA,EAAG,MAAM,MAAM,CAAG,EAClC,EAAK,EACP,IAAK,EAAI,EAAG,EAAI,EAAI,IAClB,EAAI,EAAkB,EAAM,GAAG,CAAC,EAAM,IACtC,EAAO,EAAI,YAAY,EAAY,EAAG,EAAI,CAAC,EAG/C,EAAI,YAAY,EAAY,EAAM,EAAM,IAAK,EAAI,CAAC,CACpD,CAGA,GAAI,EAAM,OAAS,EAAG,CAGpB,GAFA,EAAM,EAAM,YAAY,EAAI,cAAc,IAAI,CAAC,EAC/C,EAAI,YAAY,EAAW,OAAO,CAAC,EAC/B,EAAK,EACP,IAAK,EAAI,EAAG,EAAI,EAAI,IAClB,EAAI,EAAU,EAAM,IACpB,EAAO,EAAI,YAAY,EAAY,EAAI,EAAG,CAAC,EAAI,EAAE,CAAC,EAGtD,EAAO,EAAI,YAAY,EAAY,CAAU,CAAC,EAC9C,EAAK,aACH,QACA,uCACF,CACF,CAEA,IAAM,EAAM,EAAiB,EAAK,CAAK,EACvC,EAAI,aACF,QACA,4EACF,EACA,EAAI,YAAY,CAAG,EAEnB,EAAG,QAAQ,eAAe,EAAK,EAAS,CAAG,CAC7C,CAAC,CAAC,CACD,MAAM,SAAU,EAAG,CAClB,EAAS,+BAAiC,CAAC,CAC7C,CAAC,CACL,EACa,EAGf,OAAO,CACT,CACF"}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import * as e from "solid-ui";
|
|
2
|
-
import * as t from "rdflib";
|
|
3
|
-
//#region src/transaction/pane.js
|
|
4
|
-
var n = e.ns, r = {
|
|
5
|
-
icon: e.icons.iconBase + "noun_106746.svg",
|
|
6
|
-
name: "transaction",
|
|
7
|
-
audience: [n.solid("PowerUser")],
|
|
8
|
-
label: function(t, n) {
|
|
9
|
-
let r = n.session.store, i = r.findTypeURIs(t);
|
|
10
|
-
return i["http://www.w3.org/2000/10/swap/pim/qif#Transaction"] ? "$$" : r.any(t, e.ns.qu("amount")) ? "$$$" : i["http://www.w3.org/ns/pim/trip#Trip"] ? "Trip $" : null;
|
|
11
|
-
},
|
|
12
|
-
render: function(r, i) {
|
|
13
|
-
let a = i.dom, o = i.session.store, s = o.fetcher, c = t.Namespace("http://www.w3.org/2000/10/swap/pim/qif#"), l = t.Namespace("http://www.w3.org/ns/pim/trip#"), u = a.createElement("div");
|
|
14
|
-
u.setAttribute("class", "transactionPane");
|
|
15
|
-
let d = function(e, t) {
|
|
16
|
-
t === void 0 && (t = "color: grey");
|
|
17
|
-
let n = a.createElement("pre");
|
|
18
|
-
n.setAttribute("style", t), u.appendChild(n), n.appendChild(a.createTextNode(e));
|
|
19
|
-
}, f = function(e) {
|
|
20
|
-
return d(e, "color: #100; background-color: #fee");
|
|
21
|
-
}, p = o.statementsMatching(r), m = o.statementsMatching(void 0, void 0, r), h = o.findTypeURIs(r), g = {}, _ = function(e) {
|
|
22
|
-
g[e.uri] = !0;
|
|
23
|
-
}, v = function(t) {
|
|
24
|
-
let n = "padding: 0.5em 1.5em 1em 1.5em; ";
|
|
25
|
-
if (t) {
|
|
26
|
-
let r = o.any(t, e.ns.ui("backgroundColor"));
|
|
27
|
-
r && (n += "background-color: " + r.value + "; ");
|
|
28
|
-
}
|
|
29
|
-
u.setAttribute("style", n);
|
|
30
|
-
}, y = function(e) {
|
|
31
|
-
if (e === void 0) return "";
|
|
32
|
-
let t = "" + e;
|
|
33
|
-
return t.indexOf(".") >= 0 ? t.split(".")[0] + "." + (t.split(".")[1] + "00").slice(0, 2) : t + ".00";
|
|
34
|
-
}, b = function(e, t) {
|
|
35
|
-
let n = a.createElement("td");
|
|
36
|
-
return 0 + e === 0 && t || (n.textContent = y(e)), n.setAttribute("style", "width: 6em; text-align: right; "), n;
|
|
37
|
-
}, x = function(e) {
|
|
38
|
-
let t = a.createElement("th");
|
|
39
|
-
return t.textContent = e, t.setAttribute("style", "text-align: right; "), t;
|
|
40
|
-
}, S = function(e, t) {
|
|
41
|
-
let r = o.any(e, n.qu("date")), i = o.any(t, n.qu("date"));
|
|
42
|
-
if (r !== void 0 && i !== void 0) {
|
|
43
|
-
if (r.value < i.value) return -1;
|
|
44
|
-
if (r.value > i.value) return 1;
|
|
45
|
-
}
|
|
46
|
-
return e.uri < t.uri ? -1 : +(e.uri > t.uri);
|
|
47
|
-
}, C = function(e, t, n) {
|
|
48
|
-
let r = e.session.paneRegistry.byName(n).render(t, e);
|
|
49
|
-
return r.setAttribute("style", "border: 0.1em solid green;"), r;
|
|
50
|
-
}, w = function(e, t, n, r, a) {
|
|
51
|
-
let o = t.parentNode.children;
|
|
52
|
-
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);
|
|
53
|
-
let s = e.createElement("tr"), c = s.appendChild(e.createElement("td"));
|
|
54
|
-
c.setAttribute("style", "width: 98%; padding: 1em; border: 0.1em solid grey;");
|
|
55
|
-
let l = t.children.length;
|
|
56
|
-
t.nextSibling ? t.parentNode.insertBefore(s, t.nextSibling) : t.parentNode.appendChild(s), t.expanded = s, c.setAttribute("colspan", "" + l), c.appendChild(C(i, n, r));
|
|
57
|
-
}, T = function(e, t, n, r, i) {
|
|
58
|
-
t.expanded ? (t.parentNode.removeChild(t.expanded), t.expanded = !1) : w(e, t, n, r, i);
|
|
59
|
-
}, E = function(t, r, i) {
|
|
60
|
-
let a = t.createElement("table");
|
|
61
|
-
a.setAttribute("style", "padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;");
|
|
62
|
-
let s = function(t, r) {
|
|
63
|
-
let i = t.createElement("tr");
|
|
64
|
-
(function(t, n) {
|
|
65
|
-
let r = "'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;";
|
|
66
|
-
if (n) {
|
|
67
|
-
let t = o.any(n, e.ns.ui("backgroundColor"));
|
|
68
|
-
t && (r += "background-color: " + t.value + "; ");
|
|
69
|
-
}
|
|
70
|
-
t.setAttribute("style", r);
|
|
71
|
-
})(i, o.any(r, n.qu("toAccount")));
|
|
72
|
-
let a = i.appendChild(t.createElement("td")), s = o.any(r, n.qu("date"));
|
|
73
|
-
a.textContent = s ? s.value.slice(0, 10) : "???", a.setAttribute("style", "width: 7em;");
|
|
74
|
-
let c = i.appendChild(t.createElement("td"));
|
|
75
|
-
c.setAttribute("style", "width: 36em;");
|
|
76
|
-
let l = o.any(r, n.qu("payee"));
|
|
77
|
-
c.textContent = l ? l.value : "???";
|
|
78
|
-
let u = c.appendChild(t.createElement("a"));
|
|
79
|
-
u.textContent = " ➜", u.setAttribute("href", r.uri);
|
|
80
|
-
let d = i.appendChild(t.createElement("td")), f = o.any(r, n.qu("in_USD"));
|
|
81
|
-
return d.textContent = f ? y(f.value) : "???", d.setAttribute("style", "width: 6em; text-align: right; "), i.addEventListener("click", function(e) {
|
|
82
|
-
T(t, i, r, "transaction", !e.shiftKey);
|
|
83
|
-
}, !1), i;
|
|
84
|
-
}, c = i ? r.filter(i) : r.slice();
|
|
85
|
-
c.sort(S);
|
|
86
|
-
for (let e = 0; e < c.length; e++) a.appendChild(s(t, c[e]));
|
|
87
|
-
return a;
|
|
88
|
-
};
|
|
89
|
-
if (h["http://www.w3.org/2000/10/swap/pim/qif#Transaction"] || o.any(r, n.qu("toAccount"))) {
|
|
90
|
-
_(n.rdf("type"));
|
|
91
|
-
let d = o.any(r, e.ns.qu("toAccount"));
|
|
92
|
-
v(d), d || f("(Error: There is no bank account known for this transaction <" + r.uri + ">,\n -- every transaction needs one.)");
|
|
93
|
-
let h = null, y = o.any(r, e.ns.qu("accordingTo"));
|
|
94
|
-
y === void 0 ? f("(Error: There is no back link to the original data source foir this transaction <" + r.uri + ">,\nso I can't tell how to annotate it.)") : (h = y === void 0 ? null : o.any(y, e.ns.qu("annotationStore")), h === void 0 && f("(There is no annotation document for this statement\n<" + y.uri + ">,\nso you cannot classify this transaction.)"));
|
|
95
|
-
let b = a.createElement("div");
|
|
96
|
-
b.setAttribute("style", "float:right"), u.appendChild(b);
|
|
97
|
-
let x = function(t, n) {
|
|
98
|
-
_(t);
|
|
99
|
-
let i = o.any(r, t);
|
|
100
|
-
if (!i) return;
|
|
101
|
-
let s = a.createElement("a");
|
|
102
|
-
s.setAttribute("href", i.uri), s.setAttribute("style", "float:right"), b.appendChild(s).textContent = n || e.utils.label(i), b.appendChild(a.createElement("br"));
|
|
103
|
-
};
|
|
104
|
-
x(e.ns.qu("toAccount")), x(e.ns.qu("accordingTo"), "Statement"), x(l("trip"));
|
|
105
|
-
let S = a.createElement("table");
|
|
106
|
-
u.appendChild(S), S.innerHTML = [
|
|
107
|
-
"date",
|
|
108
|
-
"payee",
|
|
109
|
-
"amount",
|
|
110
|
-
"in_USD",
|
|
111
|
-
"currency"
|
|
112
|
-
].map(c).map(function(t) {
|
|
113
|
-
_(t);
|
|
114
|
-
let n = o.any(r, t), i = n ? e.utils.labelForXML(n) : "";
|
|
115
|
-
return "<tr><td style=\"text-align: right; padding-right: 0.6em\">" + e.utils.labelForXML(t) + "</td><td style=\"font-weight: bold;\">" + i + "</td></tr>";
|
|
116
|
-
}).join("\n");
|
|
117
|
-
let C = function(e, t) {
|
|
118
|
-
e || f("Sorry, failed to save your change:\n" + t);
|
|
119
|
-
};
|
|
120
|
-
h && o.fetcher.nowOrWhenFetched(h.uri, r, function(c, d) {
|
|
121
|
-
c || f("Cannot load store " + h + " " + d);
|
|
122
|
-
let v = o.any(h, n.qu("calendarYear")), y = function() {
|
|
123
|
-
u.insertBefore(e.widgets.makeSelectForNestedCategory(a, o, r, e.ns.qu("Classified"), h, C), S.nextSibling);
|
|
124
|
-
};
|
|
125
|
-
o.any(void 0, n.rdfs("subClassOf"), n.qu.Classified) ? y() : v ? s.load(v).then(function(e) {
|
|
126
|
-
s.load(o.each(v, n.rdfs("seeAlso"))).then(function() {
|
|
127
|
-
y();
|
|
128
|
-
}).catch(function(e) {
|
|
129
|
-
console.log("Error loading background data: " + e);
|
|
130
|
-
});
|
|
131
|
-
}).catch(function(e) {
|
|
132
|
-
console.log("Error loading calendarYear: " + e);
|
|
133
|
-
}) : console.log("Can't get categories, because no calendarYear"), u.appendChild(e.widgets.makeDescription(a, o, r, e.ns.rdfs("comment"), h, C));
|
|
134
|
-
let b = o.statementsMatching(void 0, l("trip"), void 0, h).map(function(e) {
|
|
135
|
-
return e.object;
|
|
136
|
-
}), x = o.each(void 0, e.ns.rdf("type"), l("Trip"));
|
|
137
|
-
b = b.concat(x).sort(), b = function(e, t, n, r) {
|
|
138
|
-
let i = t.map(function(t) {
|
|
139
|
-
let r = e.any(t, n);
|
|
140
|
-
return r = r ? r.value : "9999-12-31", [r, t];
|
|
141
|
-
});
|
|
142
|
-
return i.sort(), r && i.reverse(), i.map(function(e) {
|
|
143
|
-
return e[1];
|
|
144
|
-
});
|
|
145
|
-
}(o, b, e.ns.cal("dtstart"), !0), b.length > 1 && u.appendChild(e.widgets.makeSelectForOptions(a, o, r, l("trip"), b, {
|
|
146
|
-
multiple: !1,
|
|
147
|
-
nullLabel: "-- what trip? --",
|
|
148
|
-
mint: "New Trip *",
|
|
149
|
-
mintClass: l("Trip"),
|
|
150
|
-
mintStatementsFun: function(n) {
|
|
151
|
-
let r = [];
|
|
152
|
-
return r.push(t.st(n, e.ns.rdf("type"), l("Trip"), n.doc())), r;
|
|
153
|
-
}
|
|
154
|
-
}, h, C)), u.appendChild(a.createElement("br"));
|
|
155
|
-
let w = i.getOutliner(a);
|
|
156
|
-
_(n.rdfs("comment")), e.widgets.attachmentList(a, r, u), _(n.wf("attachment")), u.appendChild(a.createElement("tr")).setAttribute("style", "height: 1em"), w.appendPropertyTRs(u, p, !1, function(e, t) {
|
|
157
|
-
return !(e.uri in g);
|
|
158
|
-
}), w.appendPropertyTRs(u, m, !0, function(e, t) {
|
|
159
|
-
return !(e.uri in g);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
} else h["http://www.w3.org/ns/pim/trip#Trip"] && function() {
|
|
163
|
-
let t = {}, i = {}, s = {}, c = o.each(void 0, l("trip"), r), d = c.map(function(e) {
|
|
164
|
-
return e.doc();
|
|
165
|
-
});
|
|
166
|
-
o.fetcher.load(d).then(function() {
|
|
167
|
-
c.forEach(function(r) {
|
|
168
|
-
let a = o.the(r, n.qu("date")), c = a ? ("" + a.value).slice(0, 4) : "????", l = o.the(r, n.rdf("type"));
|
|
169
|
-
if (l ||= e.ns.qu("ErrorNoType"), l && l.uri) {
|
|
170
|
-
let n = l.uri;
|
|
171
|
-
i[c] || (i[c] = 0), s[c] || (s[c] = {}), t[n] || (t[n] = 0), s[c][n] || (s[c][n] = 0);
|
|
172
|
-
let a = o.any(r, e.ns.qu("in_USD"));
|
|
173
|
-
if (a || f("@@ No amount in USD: " + a + " for " + r), a) {
|
|
174
|
-
let e = parseFloat(a.value);
|
|
175
|
-
t[n] += e, s[c][n] += e, i[c] += e;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
let l = [], d = 0, p = [], m;
|
|
180
|
-
for (let e in s) Object.prototype.hasOwnProperty.call(s, e) && p.push(e);
|
|
181
|
-
p.sort();
|
|
182
|
-
let h = p.length, g, _ = u.appendChild(a.createElement("table"));
|
|
183
|
-
if (_.setAttribute("style", "font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;"), h > 1) {
|
|
184
|
-
let e = _.appendChild(a.createElement("tr"));
|
|
185
|
-
for (e.appendChild(x("")), m = 0; m < h; m++) e.appendChild(x(p[m]));
|
|
186
|
-
e.appendChild(x("total"));
|
|
187
|
-
}
|
|
188
|
-
for (let e in t) Object.prototype.hasOwnProperty.call(t, e) && (l.push(e), d += t[e]);
|
|
189
|
-
l.sort();
|
|
190
|
-
let v, S, C;
|
|
191
|
-
for (let n = 0; n < l.length; n++) {
|
|
192
|
-
let r = o.sym(l[n]);
|
|
193
|
-
if (v = _.appendChild(a.createElement("tr")), S = v.appendChild(a.createElement("td")), S.textContent = e.utils.label(r), h > 1) for (m = 0; m < h; m++) C = s[p[m]][l[n]], g = v.appendChild(b(C, !0));
|
|
194
|
-
v.appendChild(b(t[l[n]], !0));
|
|
195
|
-
}
|
|
196
|
-
if (l.length > 1) {
|
|
197
|
-
if (v = _.appendChild(a.createElement("tr")), v.appendChild(x("total")), h > 1) for (m = 0; m < h; m++) C = i[p[m]], g = v.appendChild(b(C ? y(C) : ""));
|
|
198
|
-
g = v.appendChild(b(d)), g.setAttribute("style", "font-weight: bold; text-align: right;");
|
|
199
|
-
}
|
|
200
|
-
let w = E(a, c);
|
|
201
|
-
w.setAttribute("style", "margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;"), u.appendChild(w), e.widgets.attachmentList(a, r, u);
|
|
202
|
-
}).catch(function(e) {
|
|
203
|
-
f("Error loading transactions: " + e);
|
|
204
|
-
});
|
|
205
|
-
}();
|
|
206
|
-
return u;
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
//#endregion
|
|
210
|
-
export { r as default };
|
|
211
|
-
|
|
212
|
-
//# sourceMappingURL=pane.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pane.esm.js","names":["ns"],"sources":["../../src/transaction/pane.js"],"sourcesContent":["/* Financial Transaction Pane\n **\n ** This outline pane allows a user to interact with a transaction\n ** downloaded from a bank statement, annotting it with classes and comments,\n ** trips, etc\n */\n\nimport * as UI from 'solid-ui'\nimport * as $rdf from 'rdflib'\nconst ns = UI.ns\n\nexport default {\n // icon: (module.__dirname || __dirname) + '22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png',\n icon: UI.icons.iconBase + 'noun_106746.svg',\n\n name: 'transaction',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve this pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/2000/10/swap/pim/qif#Transaction']) return '$$'\n if (kb.any(subject, UI.ns.qu('amount'))) return '$$$' // In case schema not picked up\n\n // if (t['http://www.w3.org/2000/10/swap/pim/qif#Period']) return \"period $\"\n\n if (t['http://www.w3.org/ns/pim/trip#Trip']) return 'Trip $'\n\n return null // No under other circumstances (while testing at least!)\n },\n\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const fetcher = kb.fetcher\n const Q = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/qif#')\n const TRIP = $rdf.Namespace('http://www.w3.org/ns/pim/trip#')\n\n const div = dom.createElement('div')\n div.setAttribute('class', 'transactionPane')\n\n const mention = function mention (message, style) {\n if (style === undefined) style = 'color: grey'\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style)\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n const complain = function complain (message) {\n return mention(message, 'color: #100; background-color: #fee')\n }\n\n /*\n var thisPane = this\n var rerender = function (div) {\n var parent = div.parentNode\n var div2 = thisPane.render(subject, dom)\n parent.replaceChild(div2, div)\n }\n */\n // //////////////////////////////////////////////////////////////////////////////\n\n const plist = kb.statementsMatching(subject)\n const qlist = kb.statementsMatching(undefined, undefined, subject)\n\n const t = kb.findTypeURIs(subject)\n\n // var me = authn.currentUser()\n const predicateURIsDone = {}\n const donePredicate = function (pred) {\n predicateURIsDone[pred.uri] = true\n }\n\n const setPaneStyle = function (account) {\n let mystyle = 'padding: 0.5em 1.5em 1em 1.5em; '\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n div.setAttribute('style', mystyle)\n }\n // setPaneStyle()\n\n // Functions for displaying lists of transactions\n // Click on the transaction line to expand it into a pane\n // Shift-click to expand without collapsing others\n\n const d2 = function (n) {\n if (n === undefined) return ''\n const s = '' + n\n if (s.indexOf('.') >= 0) {\n return s.split('.')[0] + '.' + (s.split('.')[1] + '00').slice(0, 2)\n }\n return s + '.00'\n }\n\n const numericCell = function numericCell (amount, suppressZero) {\n const td = dom.createElement('td')\n if (!(0.0 + amount === 0.0 && suppressZero)) {\n td.textContent = d2(amount)\n }\n td.setAttribute('style', 'width: 6em; text-align: right; ')\n return td\n }\n\n const headerCell = function headerCell (str) {\n const td = dom.createElement('th')\n td.textContent = str\n td.setAttribute('style', 'text-align: right; ')\n return td\n }\n\n const oderByDate = function (x, y) {\n const dx = kb.any(x, ns.qu('date'))\n const dy = kb.any(y, ns.qu('date'))\n if (dx !== undefined && dy !== undefined) {\n if (dx.value < dy.value) return -1\n if (dx.value > dy.value) return 1\n }\n if (x.uri < y.uri) return -1 // Arbitrary but repeatable\n if (x.uri > y.uri) return 1\n return 0\n }\n\n const insertedPane = function (context, subject, paneName) {\n const p = context.session.paneRegistry.byName(paneName)\n const d = p.render(subject, context)\n d.setAttribute('style', 'border: 0.1em solid green;')\n return d\n }\n\n const expandAfterRow = function (dom, row, subject, paneName, solo) {\n const siblings = row.parentNode.children\n if (solo) {\n for (let j = siblings.length - 1; j >= 0; j--) {\n if (siblings[j].expanded) {\n siblings[j].parentNode.removeChild(siblings[j].expanded)\n siblings[j].expanded = false\n }\n }\n }\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.setAttribute(\n 'style',\n 'width: 98%; padding: 1em; border: 0.1em solid grey;'\n )\n const cols = row.children.length\n if (row.nextSibling) {\n row.parentNode.insertBefore(tr, row.nextSibling)\n } else {\n row.parentNode.appendChild(tr)\n }\n row.expanded = tr\n td.setAttribute('colspan', '' + cols)\n td.appendChild(insertedPane(context, subject, paneName))\n }\n\n const expandAfterRowOrCollapse = function (\n dom,\n row,\n subject,\n paneName,\n solo\n ) {\n if (row.expanded) {\n row.parentNode.removeChild(row.expanded)\n row.expanded = false\n } else {\n expandAfterRow(dom, row, subject, paneName, solo)\n }\n }\n\n const transactionTable = function (dom, list, filter) {\n const table = dom.createElement('table')\n table.setAttribute(\n 'style',\n 'padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;'\n )\n const transactionRow = function (dom, x) {\n const tr = dom.createElement('tr')\n\n const setTRStyle = function (tr, account) {\n // var mystyle = \"padding: 0.5em 1.5em 1em 1.5em; \"\n let mystyle =\n '\\'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;'\n if (account) {\n const backgroundColor = kb.any(account, UI.ns.ui('backgroundColor'))\n if (backgroundColor) {\n mystyle += 'background-color: ' + backgroundColor.value + '; '\n }\n }\n tr.setAttribute('style', mystyle)\n }\n\n const account = kb.any(x, ns.qu('toAccount'))\n setTRStyle(tr, account)\n\n const c0 = tr.appendChild(dom.createElement('td'))\n const date = kb.any(x, ns.qu('date'))\n c0.textContent = date ? date.value.slice(0, 10) : '???'\n c0.setAttribute('style', 'width: 7em;')\n\n const c1 = tr.appendChild(dom.createElement('td'))\n c1.setAttribute('style', 'width: 36em;')\n const payee = kb.any(x, ns.qu('payee'))\n c1.textContent = payee ? payee.value : '???'\n const a1 = c1.appendChild(dom.createElement('a'))\n a1.textContent = ' ➜'\n a1.setAttribute('href', x.uri)\n\n const c3 = tr.appendChild(dom.createElement('td'))\n const amount = kb.any(x, ns.qu('in_USD'))\n c3.textContent = amount ? d2(amount.value) : '???'\n c3.setAttribute('style', 'width: 6em; text-align: right; ') // @@ decimal alignment?\n tr.addEventListener(\n 'click',\n function (e) {\n // solo unless shift key\n expandAfterRowOrCollapse(dom, tr, x, 'transaction', !e.shiftKey)\n },\n false\n )\n\n return tr\n }\n\n const list2 = filter ? list.filter(filter) : list.slice() // don't sort a paramater passed in place\n list2.sort(oderByDate)\n\n for (let i = 0; i < list2.length; i++) {\n table.appendChild(transactionRow(dom, list2[i]))\n }\n return table\n }\n\n // Render a single transaction\n\n // This works only if enough metadata about the properties can drive the RDFS\n // (or actual type statements whichtypically are NOT there on)\n if (\n t['http://www.w3.org/2000/10/swap/pim/qif#Transaction'] ||\n kb.any(subject, ns.qu('toAccount'))\n ) {\n // var trip = kb.any(subject, WF('trip'))\n donePredicate(ns.rdf('type'))\n\n const account = kb.any(subject, UI.ns.qu('toAccount'))\n setPaneStyle(account)\n if (!account) {\n complain(\n '(Error: There is no bank account known for this transaction <' +\n subject.uri +\n '>,\\n -- every transaction needs one.)'\n )\n }\n\n let store = null\n const statement = kb.any(subject, UI.ns.qu('accordingTo'))\n if (statement === undefined) {\n complain(\n '(Error: There is no back link to the original data source foir this transaction <' +\n subject.uri +\n '>,\\nso I can\\'t tell how to annotate it.)'\n )\n } else {\n store =\n statement !== undefined\n ? kb.any(statement, UI.ns.qu('annotationStore'))\n : null\n if (store === undefined) {\n complain(\n '(There is no annotation document for this statement\\n<' +\n statement.uri +\n '>,\\nso you cannot classify this transaction.)'\n )\n }\n }\n\n const nav = dom.createElement('div')\n nav.setAttribute('style', 'float:right')\n div.appendChild(nav)\n\n const navLink = function (pred, label) {\n donePredicate(pred)\n const obj = kb.any(subject, pred)\n if (!obj) return\n const a = dom.createElement('a')\n a.setAttribute('href', obj.uri)\n a.setAttribute('style', 'float:right')\n nav.appendChild(a).textContent = label || UI.utils.label(obj)\n nav.appendChild(dom.createElement('br'))\n }\n\n navLink(UI.ns.qu('toAccount'))\n navLink(UI.ns.qu('accordingTo'), 'Statement')\n navLink(TRIP('trip'))\n\n // Basic data:\n const table = dom.createElement('table')\n div.appendChild(table)\n const preds = ['date', 'payee', 'amount', 'in_USD', 'currency'].map(Q)\n const inner = preds\n .map(function (p) {\n donePredicate(p)\n const value = kb.any(subject, p)\n const s = value ? UI.utils.labelForXML(value) : ''\n return (\n '<tr><td style=\"text-align: right; padding-right: 0.6em\">' +\n UI.utils.labelForXML(p) +\n '</td><td style=\"font-weight: bold;\">' +\n s +\n '</td></tr>'\n )\n })\n .join('\\n')\n table.innerHTML = inner\n\n const complainIfBad = function (ok, body) {\n if (ok) {\n // setModifiedDate(store, kb, store)\n // rerender(div) // deletes the new trip form\n } else complain('Sorry, failed to save your change:\\n' + body)\n }\n\n // What trips do we know about?\n\n // Classify:\n if (store) {\n kb.fetcher.nowOrWhenFetched(store.uri, subject, function (ok, body) {\n if (!ok) complain('Cannot load store ' + store + ' ' + body)\n\n const calendarYear = kb.any(store, ns.qu('calendarYear'))\n\n const renderCatgorySelectors = function () {\n div.insertBefore(\n UI.widgets.makeSelectForNestedCategory(\n dom,\n kb,\n subject,\n UI.ns.qu('Classified'),\n store,\n complainIfBad\n ),\n table.nextSibling\n )\n }\n\n if (kb.any(undefined, ns.rdfs('subClassOf'), ns.qu.Classified)) {\n renderCatgorySelectors()\n } else if (calendarYear) {\n fetcher\n .load(calendarYear)\n .then(function (_xhrs) {\n fetcher\n .load(kb.each(calendarYear, ns.rdfs('seeAlso')))\n .then(function () {\n renderCatgorySelectors()\n })\n .catch(function (e) {\n console.log('Error loading background data: ' + e)\n })\n })\n .catch(function (e) {\n console.log('Error loading calendarYear: ' + e)\n })\n } else {\n console.log('Can\\'t get categories, because no calendarYear')\n }\n div.appendChild(\n UI.widgets.makeDescription(\n dom,\n kb,\n subject,\n UI.ns.rdfs('comment'),\n store,\n complainIfBad\n )\n )\n\n let trips = kb\n .statementsMatching(undefined, TRIP('trip'), undefined, store)\n .map(function (st) {\n return st.object\n }) // @@ Use rdfs\n const trips2 = kb.each(undefined, UI.ns.rdf('type'), TRIP('Trip'))\n trips = trips.concat(trips2).sort() // @@ Unique\n\n const sortedBy = function (kb, list, pred, reverse) {\n const l2 = list.map(function (x) {\n let key = kb.any(x, pred)\n key = key ? key.value : '9999-12-31'\n return [key, x]\n })\n l2.sort()\n if (reverse) l2.reverse()\n return l2.map(function (pair) {\n return pair[1]\n })\n }\n\n trips = sortedBy(kb, trips, UI.ns.cal('dtstart'), true) // Reverse chron\n\n if (trips.length > 1) {\n div.appendChild(\n UI.widgets.makeSelectForOptions(\n dom,\n kb,\n subject,\n TRIP('trip'),\n trips,\n {\n multiple: false,\n nullLabel: '-- what trip? --',\n mint: 'New Trip *',\n mintClass: TRIP('Trip'),\n mintStatementsFun: function (trip) {\n const is = []\n is.push(\n $rdf.st(trip, UI.ns.rdf('type'), TRIP('Trip'), trip.doc())\n )\n return is\n }\n },\n store,\n complainIfBad\n )\n )\n }\n\n div.appendChild(dom.createElement('br'))\n\n // Add in simple comments about the transaction\n\n const outliner = context.getOutliner(dom)\n\n donePredicate(ns.rdfs('comment')) // Done above\n\n UI.widgets.attachmentList(dom, subject, div)\n donePredicate(ns.wf('attachment'))\n\n div\n .appendChild(dom.createElement('tr'))\n .setAttribute('style', 'height: 1em') // spacer\n\n // Remaining properties\n outliner.appendPropertyTRs(div, plist, false, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n outliner.appendPropertyTRs(div, qlist, true, function (\n pred,\n _inverse\n ) {\n return !(pred.uri in predicateURIsDone)\n })\n }) // fetch\n }\n // end of render tranasaction instance\n\n // ////////////////////////////////////////////////////////////////////\n //\n // Render the transactions in a Trip\n //\n } else if (t['http://www.w3.org/ns/pim/trip#Trip']) {\n /*\n var query = new $rdf.Query(UI.utils.label(subject))\n var vars = [ 'date', 'transaction', 'comment', 'type', 'in_USD']\n var v = {}\n vars.map(function(x){query.vars.push(v[x]=$rdf.variable(x))}) // Only used by UI\n query.pat.add(v['transaction'], TRIP('trip'), subject)\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdf('type'), v['type']); // Issue: this will get stored supertypes too\n query.pat.optional.push(opt)\n\n query.pat.add(v['transaction'], UI.ns.qu('date'), v['date'])\n\n var opt = kb.formula()\n opt.add(v['transaction'], ns.rdfs('comment'), v['comment'])\n query.pat.optional.push(opt)\n\n //opt = kb.formula()\n query.pat.add(v['transaction'], UI.ns.qu('in_USD'), v['in_USD'])\n\n //query.pat.optional.push(opt)\n\n var tableDiv = UI.widgets.renderTableViewPane(dom, {'query': query, 'onDone': calculations} )\n div.appendChild(tableDiv)\n\n*/\n const calculations = function () {\n const total = {}\n const yearTotal = {}\n const yearCategoryTotal = {}\n const trans = kb.each(undefined, TRIP('trip'), subject)\n const bankStatements = trans.map(function (t) {\n return t.doc()\n })\n kb.fetcher\n .load(bankStatements)\n .then(function () {\n trans.forEach(function (t) {\n const date = kb.the(t, ns.qu('date'))\n const year = date ? ('' + date.value).slice(0, 4) : '????'\n let ty = kb.the(t, ns.rdf('type')) // @@ find most specific type\n // complain(\" -- one trans: \"+t.uri + ' -> '+kb.any(t, UI.ns.qu('in_USD')))\n if (!ty) ty = UI.ns.qu('ErrorNoType')\n if (ty && ty.uri) {\n const tyuri = ty.uri\n if (!yearTotal[year]) yearTotal[year] = 0.0\n if (!yearCategoryTotal[year]) yearCategoryTotal[year] = {}\n if (!total[tyuri]) total[tyuri] = 0.0\n if (!yearCategoryTotal[year][tyuri]) {\n yearCategoryTotal[year][tyuri] = 0.0\n }\n\n const lit = kb.any(t, UI.ns.qu('in_USD'))\n if (!lit) {\n complain('@@ No amount in USD: ' + lit + ' for ' + t)\n }\n if (lit) {\n const amount = parseFloat(lit.value)\n total[tyuri] += amount\n yearCategoryTotal[year][tyuri] += amount\n yearTotal[year] += amount\n }\n }\n })\n\n const types = []\n let grandTotal = 0.0\n const years = []\n let i\n\n for (const y in yearCategoryTotal) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(yearCategoryTotal, y)) {\n years.push(y)\n }\n }\n years.sort()\n const ny = years.length\n let cell\n\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute(\n 'style',\n 'font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;'\n )\n\n if (ny > 1) {\n const header = table.appendChild(dom.createElement('tr'))\n header.appendChild(headerCell(''))\n for (i = 0; i < ny; i++) {\n header.appendChild(headerCell(years[i]))\n }\n header.appendChild(headerCell('total'))\n }\n\n for (const uri in total) {\n // @@ TODO: Write away the need for exception on next line\n\n if (Object.prototype.hasOwnProperty.call(total, uri)) {\n types.push(uri)\n grandTotal += total[uri]\n }\n }\n types.sort()\n let row, label, z\n for (let j = 0; j < types.length; j++) {\n const cat = kb.sym(types[j])\n row = table.appendChild(dom.createElement('tr'))\n label = row.appendChild(dom.createElement('td'))\n label.textContent = UI.utils.label(cat)\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearCategoryTotal[years[i]][types[j]]\n cell = row.appendChild(numericCell(z, true))\n }\n }\n row.appendChild(numericCell(total[types[j]], true))\n }\n\n // Trailing totals\n if (types.length > 1) {\n row = table.appendChild(dom.createElement('tr'))\n row.appendChild(headerCell('total'))\n if (ny > 1) {\n for (i = 0; i < ny; i++) {\n z = yearTotal[years[i]]\n cell = row.appendChild(numericCell(z ? d2(z) : ''))\n }\n }\n cell = row.appendChild(numericCell(grandTotal))\n cell.setAttribute(\n 'style',\n 'font-weight: bold; text-align: right;'\n )\n }\n\n const tab = transactionTable(dom, trans)\n tab.setAttribute(\n 'style',\n 'margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;'\n )\n div.appendChild(tab)\n\n UI.widgets.attachmentList(dom, subject, div)\n })\n .catch(function (e) {\n complain('Error loading transactions: ' + e)\n })\n }\n calculations()\n } // if\n\n return div\n }\n}\n\n// ends\n"],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs.js");let t=require("solid-ui");t=e.__toESM(t);var n=t.ns,r={icon:t.icons.iconBase+`noun_142708.svg`,name:`period`,audience:[n.solid(`PowerUser`)],label:function(e,t){return t.session.store.findTypeURIs(e)[`http://www.w3.org/2000/10/swap/pim/qif#Period`]?`period`:null},render:function(e,n){let r=n.dom,i=n.session.store,a=t.ns,o=r.createElement(`div`);o.setAttribute(`class`,`periodPane`);let s=function(e,t){t||=`color: grey;`;let n=r.createElement(`pre`);n.setAttribute(`style`,t),o.appendChild(n),n.appendChild(r.createTextNode(e))},c=function(e){return s(`✓ `+e,`color: #010; background-color: #efe`)},l=function(e){return s(e,`color: #100; background-color: #fee`)},u=function(){let s=i.any(e,a.cal(`dtstart`));s===void 0&&l(`(Error: There is no start date known for this period <`+e.uri+`>,
|
|
2
|
-
-- every period needs one.)`);let u=i.any(e,a.cal(`dtend`));u===void 0&&l(`(Error: There is no end date known for this period <`+e.uri+`>,
|
|
3
|
-
-- every period needs one.)`);let d={};(function(e){d[e.uri]=!0})(a.rdf(`type`));let f=function(e){return!!(e&&e>=s&&e<u)},p=function(e){let t=``+e;return t.indexOf(`.`)>=0?t.split(`.`)[0]+`.`+(t.split(`.`)[1]+`00`).slice(0,2):t+`.00`},m=function(e){return f(i.any(e,a.qu(`date`)))},h=function(e,t){let n=i.any(e,a.qu(`date`)),r=i.any(t,a.qu(`date`));if(n!==void 0&&r!==void 0){if(n.value<r.value)return-1;if(n.value>r.value)return 1}return e.uri<t.uri?-1:+(e.uri>t.uri)},g=o.appendChild(r.createElement(`h2`));g.textContent=`Period `+s.value.slice(0,10)+` - `+u.value.slice(0,10);let _=function(e,t,n){let r=e.session.paneRegistry.byName(n).render(t,e);return r.setAttribute(`style`,`border: 0.1em solid green;`),r},v=function(e,t,r,i,a){let o=t.parentNode.children;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);let s=e.createElement(`tr`),c=s.appendChild(e.createElement(`td`));c.setAttribute(`style`,`width: 98%; padding: 1em; border: 0.1em solid grey;`);let l=t.children.length;t.nextSibling?t.parentNode.insertBefore(s,t.nextSibling):t.parentNode.appendChild(s),t.expanded=s,c.setAttribute(`colspan`,``+l),c.appendChild(_(n,r,i))},y=function(e,t,n,r,i){t.expanded?(t.parentNode.removeChild(t.expanded),t.expanded=!1):v(e,t,n,r,i)},b=function(e,n){let r=e.createElement(`table`);r.setAttribute(`style`,`margin-left: 100; font-size: 9pt; width: 85%;`);let o=function(e,n){let r=e.createElement(`tr`);(function(e,n){let r=`margin-left: 8em; padding-left: 5em;`;if(n){let e=i.any(n,t.ns.ui(`backgroundColor`));e&&(r+=`background-color: `+e.value+`; `)}e.setAttribute(`style`,r)})(r,i.any(n,a.qu(`toAccount`)));let o=r.appendChild(e.createElement(`td`)),s=i.any(n,a.qu(`date`));o.textContent=s?s.value.slice(0,10):`???`,o.setAttribute(`style`,`width: 7em;`);let c=r.appendChild(e.createElement(`td`));c.setAttribute(`style`,`width: 36em;`);let l=i.any(n,a.qu(`payee`));c.textContent=l?l.value:`???`;let u=c.appendChild(e.createElement(`a`));u.textContent=` ➜`,u.setAttribute(`href`,n.uri);let d=r.appendChild(e.createElement(`td`)),f=i.any(n,a.qu(`in_USD`));return d.textContent=f?p(f.value):`???`,d.setAttribute(`style`,`width: 6em; text-align: right; `),r.addEventListener(`click`,function(t){y(e,r,n,`transaction`,!t.shiftKey)},!1),r},s=n.filter(m);s.sort(h);for(let t=0;t<s.length;t++)r.appendChild(o(e,s[t]));return r},x={"http://www.w3.org/2000/10/swap/pim/qif#Transaction":!0,"http://www.w3.org/2000/10/swap/pim/qif#Unclassified":!0,"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing":!0,"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome":!0},S=i.findMemberURIs(a.qu(`Transaction`)),C=[],w=[],T,E;for(let e in S)if(Object.prototype.hasOwnProperty.call(S,e)){E=i.sym(e);let t=i.each(E,a.rdf(`type`)),n=!1;for(let e=0;e<t.length;e++)x[t[e].uri]===void 0&&(n=!0);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)))}let D,O;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 `);let k=function(e){let t=i.findSubClassesNT(a.qu(`Transaction`));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));return null},A=function(e,n){let s=k(e),c,u=[],d=0;if(!s)return l(`Error: No category correspnding to `+e),null;let f=i.each(void 0,a.rdf(`type`),s);for(let e=0;e<f.length;e++)i.any(f[e],n)||u.push(f[e]);return u.length&&(c=b(r,u),d=c.children.length,o.appendChild(r.createElement(`h3`)).textContent=t.utils.label(s)+` with no `+t.utils.label(n)+(d<4?``:` (`+d+`)`),o.appendChild(c)),d};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`)};if(i.findTypeURIs(e)[`http://www.w3.org/2000/10/swap/pim/qif#Period`]){let t=i.each(e,a.rdfs(`seeAlso`));console.log(`Loading before render: `+t.length),i.fetcher.load(t).then(function(){u()})}return o}};exports.default=r;
|
|
4
|
-
//# sourceMappingURL=period.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"period.cjs.js","names":["UI"],"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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"}
|