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,6 +0,0 @@
|
|
|
1
|
-
(function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.social-pane-host,.social-pane{--profile-interactive-cursor:pointer;background:var(--color-background,#f8f9fb);border-radius:var(--border-radius-base,.3125rem);box-sizing:border-box;width:100%;min-width:100%;max-width:none;margin-top:20px;display:block;overflow:visible}.social-pane__header-content{align-items:flex-start;column-gap:var(--spacing-md,1.25rem);row-gap:var(--spacing-xxs,.3125rem);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.social-pane__header-media{grid-area:1/1}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;min-width:0;display:flex}.social-pane__header-actions{place-self:flex-start end;align-items:flex-start;gap:var(--spacing-xs,.5rem);flex-wrap:wrap;grid-area:1/3;margin-left:auto;display:flex}.social-pane__header-actions--friend{justify-content:center}.social-pane__header-actions--friend>solid-ui-button{--button-border-radius:var(--border-radius-md,.5rem);--button-hover-text:var(--color-primary,#7c4dff);--button-hover-border:var(--color-primary,#7c4dff);margin-inline:auto}.social-pane__header-summary{align-items:flex-start;gap:var(--spacing-xxs,.125rem);flex-direction:column;width:100%;max-width:100%;display:flex}.social-pane__header-stats{gap:var(--spacing-xs,.75rem);margin-top:var(--spacing-xxs,.3125rem);flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;display:flex}.social-pane__header-stat{appearance:none;cursor:var(--profile-interactive-cursor,pointer);color:var(--slate-700,#314158);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight,1.4);background:0 0;border:0;padding:0;text-decoration:none}.social-pane__header-stat+.social-pane__header-stat:before{content:"◆";color:var(--gray-400,#99a1af);margin-right:var(--spacing-xs,.75rem);vertical-align:middle;font-size:.5rem}.social-pane__header-stat:hover .social-pane__header-stat-label{text-decoration:underline}.social-pane__header-stat:focus-visible{outline:var(--border-width-medium,2px) solid #111827;outline-offset:2px}.social-pane__edit-button{--button-height-sm:0;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-font-size-sm:var(--font-size-sm,.875rem);--button-font-weight:var(--font-weight-regular,400);--button-line-height:var(--line-height-base,1.5);--button-icon-size-sm:.875rem;width:auto;min-width:0;max-width:none;display:inline-block;position:static}.social-pane__edit-button::part(button):hover{text-decoration:underline}.social-pane__edit-button::part(button):focus-visible{outline:var(--border-width-medium,2px) solid var(--color-primary,#7c4dff);outline-offset:2px}.social-pane__edit-button-label{align-items:center;gap:var(--spacing-xxs,.3125rem);display:inline-flex}.social-pane__edit-button .profile-section-collapsible__edit-icon,.social-pane__edit-button-icon{line-height:0;display:none}.social-pane__edit-button-label svg,.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{vertical-align:middle;flex:none;width:.875rem;height:.875rem;display:inline-block}.social-pane__edit-button-label svg path,.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-primary,#7c4dff);stroke:none}.social-pane__dialog-backdrop{z-index:1000;background:#0f172a73;padding:1rem;position:fixed;inset:0}.social-pane__dialog{background:var(--white,#fff);width:min(32rem,100%);max-height:calc(100vh - 2rem);color:var(--color-text,#111827);padding:var(--spacing-md,1.25rem);border-radius:1rem;position:relative;overflow:auto;box-shadow:0 20px 45px #0f172a40}.social-pane__dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md,1rem);padding-bottom:var(--spacing-base,.5rem);margin-bottom:var(--spacing-sm,.938rem);border-bottom:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);display:flex}.social-pane__dialog-title{margin:0 0 var(--spacing-base,.5rem)}.social-pane__dialog-close{--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;color:var(--color-text-subheading,#6b7280);cursor:pointer;flex:none;padding:0;line-height:0}.social-pane__dialog-close:hover{color:var(--color-text-primary,#364153)}.social-pane__dialog-close:focus-visible{outline:var(--border-width-medium,2px) solid var(--color-text-primary,#364153);outline-offset:2px}.social-pane__dialog-close svg{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem)}.social-pane__dialog-close svg path{fill:currentColor}.social-pane__dialog-form{gap:var(--spacing-sm,.938rem)}.social-pane__dialog-fields{gap:var(--spacing-sm,.938rem);flex-direction:column;display:flex}.social-pane__dialog-field{gap:.2rem}.social-pane__dialog-field-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs,.75rem);display:flex}.social-pane__dialog-row-list{flex-direction:column;gap:.2rem;display:flex}.social-pane__dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.social-pane__dialog-label{color:var(--gray-700,#364153);font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-md,500);margin:0;line-height:normal}.social-pane__dialog-input{box-sizing:border-box;resize:none;width:100%;min-height:auto}.social-pane__dialog-error{min-height:1.25rem;color:var(--color-warning,red);margin:0}.social-pane__dialog-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.social-pane__dialog-saving-overlay[hidden]{display:none}.social-pane__dialog.modal--saving .social-pane__dialog-form{opacity:.45;pointer-events:none}.social-pane__dialog .modal__saving-indicator{gap:0}.social-pane__dialog-row-button-icon{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.social-pane__dialog-row-button-icon svg{display:block}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add{box-sizing:border-box;--button-min-height:auto;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-height-sm:auto;--button-font-weight:var(--font-weight-md,500);--button-font-size-sm:var(--font-size-sm,.875rem);--button-line-height:var(--line-height-base,1.5);flex:none;justify-self:flex-start;width:auto;min-width:0;max-width:none;margin-left:auto}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){min-height:auto;padding:var(--spacing-xxs,.3125rem);color:var(--color-primary,#7c4dff);font-weight:var(--font-weight-md,500);background:0 0;border:none}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add:hover::part(button){text-decoration:underline}.social-pane__add-more-content{display:inline}.social-pane__add-more-inline{white-space:normal;display:inline}.social-pane__add-more-icon{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem);margin-right:var(--spacing-xxs,.3125rem);vertical-align:text-top;line-height:0;display:inline-block}.social-pane__add-more-icon svg{width:100%;height:100%;display:block}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove{min-height:var(--min-touch-target,44px);min-width:var(--min-touch-target,44px);color:var(--gray-300,#d1d5dc);--button-background:transparent;--button-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;--button-border:transparent;--button-border-width:0;--button-border-radius:var(--border-radius-base,.3125rem);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-primary,#7c4dff);--button-hover-box-shadow:none;--button-text:currentColor;--button-height-md:var(--min-touch-target,44px);--button-padding-md:0;--button-padding-x-sm:0;--button-icon-size-md:var(--icon-xxs,1rem);--button-icon-size-lg:var(--icon-xxs,1rem)}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:hover,.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:focus-within{color:var(--gray-300,#d1d5dc)}.social-pane__dialog-row-button-icon--remove svg{width:1rem;height:1rem}.social-pane__dialog-row-button-icon--remove svg path{stroke:currentColor}.social-pane__dialog-actions{justify-content:flex-end;gap:var(--spacing-xs,.75rem);padding-top:var(--spacing-base,.5rem);border-top:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);margin-top:0;display:flex}.social-pane__dialog-actions>solid-ui-button{--button-border-width:1px;--button-border-radius:var(--border-radius-base,.3125rem);--button-box-shadow:none;--button-hover-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;width:10.8rem}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--save{--button-font-size-md:var(--font-size-lg,1.125rem);--button-background:var(--color-primary,#7c4dff);--button-border:var(--color-primary,#7c4dff);--button-text:var(--white,#fff);--button-hover-background:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-border:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-text:var(--white,#fff)}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--cancel{--button-background:var(--white,#fff);--button-border:var(--gray-300,#d1d5dc);--button-font-weight:var(--font-weight-normal,normal);--button-text:var(--gray-800,#1e2939);--button-hover-background:var(--blue-900,#083575);--button-hover-border:var(--blue-900,#083575);--button-hover-text:var(--white,#fff);--button-font-size-md:var(--font-size-sm,.875rem)}.social-pane__header-name{color:var(--color-text-heading,#000);font-size:var(--font-size-xxl,1.75rem);font-weight:var(--font-weight-bold,600);text-indent:0;text-align:left;overflow-wrap:anywhere;margin:0;padding:0;line-height:1.2;transform:translate(-4px)}.social-pane__header-location{align-items:center;gap:var(--spacing-2xs,.625rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-normal,400);line-height:1.2;display:inline-flex}.social-pane__header-job-org{color:var(--color-text-subheading,#101828);white-space:normal;width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-md,500);text-align:left;margin:0;line-height:1.25}.social-pane__header-location-icon{line-height:0}.social-pane__header-location-icon svg{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem)}.social-profile-links{grid-template-columns:repeat(2,max-content);align-items:start;gap:.15rem 1rem;display:grid}.social-pane__header-hero{border-radius:var(--border-radius-full,.625rem);border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--gray-200,#e5e7eb) 50% / cover no-repeat;object-fit:cover;object-position:center;background-position:50%;width:140px;height:140px}.social-pane__header-hero-icon{border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--color-card-bg);flex-shrink:0;width:140px;height:140px;line-height:0;border-radius:var(--border-radius-full,.625rem)!important}.social-pane__header-hero-icon svg{width:100%;height:100%;display:block}.social-pane .social-layout{align-items:flex-start;gap:1rem;width:100%;display:flex}.social-pane .social-primary{flex:70%;grid-template-rows:auto minmax(0,auto);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-width:0;display:grid}.social-pane .social-primary__tabs{align-items:center;gap:var(--spacing-base,.5rem);z-index:1;background:0 0;grid-area:1/1;width:fit-content;max-width:100%;margin-bottom:0;padding:0;display:flex;position:relative}.social-pane .social-primary__tab{appearance:none;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;color:#374151;cursor:pointer;font:inherit;font-weight:var(--font-weight-bold,600);padding:var(--spacing-2xs,.625rem) 1rem;background:0 0;border-radius:0;transition:background-color .12s,color .12s,box-shadow .12s;box-shadow:none!important}.social-pane .social-primary__tab:hover{color:var(--grey-purple-900,#332746);background:var(--lavender-300,#e6dcff)!important;box-shadow:none!important}.social-pane .social-primary__tab[aria-selected=true],.social-pane .social-primary__tab--active{color:var(--grey-purple-900,#332746);border-bottom-color:var(--color-primary,#7c4dff);background:0 0;box-shadow:none!important}.social-pane .social-primary__tab:focus-visible{outline-offset:2px;outline:none;box-shadow:none!important}.social-pane .social-primary__panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:2/1;transition:opacity .16s,transform .16s,visibility 0s linear .16s;display:none;transform:translateY(.35rem)}.social-pane .social-primary__panel--active{opacity:1;visibility:visible;pointer-events:auto;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;transition:opacity .18s,transform .18s;display:block;transform:translateY(0)}.social-pane .social-pane__mutual-friends,.social-pane .social-pane__all-friends{padding-top:var(--spacing-xxxs,.2rem);margin-top:0}.social-pane .social-main{background-color:var(--color-card-bg,#fff);color:var(--color-text-primary,#364153);box-sizing:border-box;border-collapse:collapse;border:0;width:100%;padding:0;display:table}.social-pane .social-main--mutual{gap:var(--spacing-xs,.75rem);border-radius:var(--border-radius-lg,.75rem);margin-top:1em;margin-bottom:1em;padding:1rem}.social-pane .social-main--requests{gap:var(--spacing-md,1rem);border-radius:var(--border-radius-lg,.75rem);flex-direction:column;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.social-requests__note{color:var(--color-text-subheading,#475467);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__group{gap:var(--spacing-sm,.938rem)}.social-requests__group-header{flex-direction:column;gap:.125rem;display:flex}.social-requests__group-title{color:var(--color-text-heading,#101828);font-size:var(--font-size-lg,1.125rem);margin:0;line-height:1.25}.social-requests__group-description,.social-requests__empty{color:var(--color-text-subheading,#667085);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__table{margin-top:0}.social-pane .social-mutual-summary{gap:var(--spacing-base,.5rem)}.social-pane .social-mutual-summary-line{color:var(--slate-700,#314158);font-size:var(--font-size-sm,.95rem);line-height:var(--line-height-base,1.5);justify-content:flex-start;padding:1rem}.social-pane .social-mutual-summary-line--action{gap:var(--spacing-xxs,.75rem);flex-wrap:wrap}.social-pane .social-mutual-confirm-prompt{align-items:center;gap:var(--spacing-xxxs,.2rem);font-weight:var(--font-weight-semibold,600);flex-wrap:wrap;display:inline-flex}.social-pane .social-pane__friend-action--inline{z-index:auto;align-self:flex-start;position:static;top:auto;right:auto}.social-pane .social-mutual-checkbox-form{margin:0;padding:0 1rem 1rem;display:block}.social-pane .social-mutual-checkbox-form label{align-items:center;gap:var(--spacing-2xs,.65rem);color:var(--slate-700,#374151);font-size:var(--font-size-sm,.875rem);flex-wrap:wrap;line-height:1.4;display:inline-flex}.social-pane .social-mutual-checkbox-form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary,#7c4dff);margin:0}.social-pane .social-mutual-checkbox-form input[type=checkbox]:disabled{opacity:.65;cursor:not-allowed}.social-pane .social-friends-list{width:100%;margin-top:0}.social-pane .social-friends-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tbody{align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{table-layout:fixed;box-sizing:border-box;width:calc(50% - .375rem);display:inline-table}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr,.social-pane .social-friend-card{border:1px solid var(--gray-200,#e5e7eb);background:var(--white,#fff);border-radius:var(--border-radius-lg,.75rem);transition:box-shadow .14s,border-color .14s,transform .14s;overflow:visible;box-shadow:0 1px 3px #00000014}.social-pane .social-friends-grid>tr:hover,.social-pane .social-friends-grid>tbody>tr:hover,.social-pane .social-friend-card:hover{border-color:var(--gray-300,#d1d5dc);transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.social-pane .social-friends-grid>tr td,.social-pane .social-friends-grid>tbody>tr td,.social-pane .social-friend-card td{background:var(--color-background,#f8f9fb);box-sizing:border-box}.social-pane .social-friends-grid>tr>td:nth-child(2),.social-pane .social-friends-grid>tbody>tr>td:nth-child(2){width:auto;min-width:0;padding-left:1.4rem}.social-pane .social-friends-grid>tr>td:nth-child(3),.social-pane .social-friends-grid>tbody>tr>td:nth-child(3){vertical-align:top;width:2.5rem;min-width:2.5rem;padding-left:.25rem}.social-pane .social-friends-grid>tr>td:first-child,.social-pane .social-friends-grid>tbody>tr>td:first-child{padding-right:1.2rem}.social-pane .social-friends-grid td>div>div{overflow-wrap:anywhere;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important}.social-pane .social-friends-grid td>div>div button{white-space:normal!important}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child{flex-wrap:wrap;align-items:flex-start;gap:.2rem .4rem;min-width:0;display:flex}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child>span:first-of-type,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child>span:first-of-type{vertical-align:text-top;max-width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow-wrap:anywhere;margin-top:0;margin-bottom:0;display:inline-block;overflow:visible}.social-pane .social-friend-pronouns{margin-left:var(--spacing-xs,.25rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-regular,400);text-align:left;line-height:1.2;display:inline}.social-pane .social-friend-job-org{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;color:var(--color-text-subheading,#101828);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);text-align:left;margin:0;line-height:1.25}.social-pane .social-friend-location{color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-xs,.8125rem);overflow-wrap:anywhere;line-height:1.3}@media (width<=960px){.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%}}.social-pane .social-friends-header{padding:0 var(--spacing-xs,.75rem) var(--spacing-base,.5rem);background-color:var(--gray-100,#f3f4f6);caption-side:top;justify-content:space-between;align-items:center;margin-top:0;display:flex}.social-pane .social-friends-header-title{font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-bold,600);color:var(--color-text-primary,#364153)}.social-pane .social-friends-header-actions{justify-content:flex-end;align-items:center;display:inline-flex}.social-pane .social-friends-header-actions--standalone{align-items:center;gap:var(--spacing-xs,.75rem);justify-content:flex-start;padding:.7rem 1rem 0;display:flex}.social-pane .social-friends-header-dropzone{border-collapse:collapse}.social-pane .social-friends-header-dropzone-cell{padding:0}.social-pane .social-friends-header-hint{color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);line-height:1.4}.social-pane .social-friends-header-actions button{justify-content:center;align-items:center;display:inline-flex;overflow:hidden;border-width:0!important;width:2rem!important;min-width:2rem!important;height:2rem!important;margin:0!important;padding:0!important}.social-pane .social-friends-header-actions button img{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}.social-pane a{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:none}.social-pane a:hover{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:underline}.social-pane a:active{color:var(--color-primary,#7c4dff);text-decoration:none}.social-pane__link-button{white-space:nowrap;width:fit-content;max-width:100%;padding:var(--spacing-xxxs,.2rem) var(--spacing-base,.5rem);text-align:left;background-color:#0000;border:none;margin-top:0;margin-bottom:0;display:inline-flex}.social-pane__link-button>a{white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--color-primary,#7c4dff);background-color:#0000;display:inline-flex}.social-pane__link-button>a:link,.social-pane__link-button>a:visited,.social-pane__link-button>a:hover{color:var(--color-primary,#7c4dff)}.social-pane__link-button>a:hover{text-decoration:underline}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-media{display:contents}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location){text-align:left;justify-content:flex-start;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-primary__tabs,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-primary__tabs{margin-top:-.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-hero,.social-pane__header-hero-icon){aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-pronouns{font-size:.6875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-location,.social-pane__header-stat),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label){display:none!important}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon){justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg){width:.875rem;height:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path){fill:var(--color-text,#1a1a1a);stroke:none}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane .social-layout,.social-pane .social-primary,.social-layout,.social-primary),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-grid,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-friends-grid{display:block}:is(.social-pane-host,.social-pane)[data-input-mode=touch]{--profile-interactive-cursor:auto}:is(.social-pane-host,.social-pane)[data-input-mode=pointer]{--profile-interactive-cursor:pointer}@media (width<=600px){.social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}.social-pane__header-media{display:contents}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}.social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}.social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location{text-align:left;justify-content:flex-start;width:100%}.social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}.social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}.social-pane .social-primary__tabs{margin-top:-.5rem}.social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}.social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}.social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}.social-pane__header-hero,.social-pane__header-hero-icon{aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}.social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}.social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}.social-pane .social-friend-pronouns{font-size:.6875rem}.social-pane__header-location,.social-pane__header-stat,.social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}.social-pane__friend-action{--button-padding-sm:var(--spacing-xxxs,.2rem) var(--spacing-xxs-old,.3rem);--button-font-size-sm:var(--font-size-xs,.813rem);--button-border-radius-sm:var(--border-radius-base,.3125rem)}.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label{display:none!important}.social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon{justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{width:.875rem;height:.875rem}.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-text,#1a1a1a);stroke:none}.social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}.social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}.social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}.social-pane .social-layout,.social-pane .social-primary,.social-pane .social-friends-grid{display:block}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%;margin-bottom:var(--spacing-xs,.75rem);display:table}.social-pane .social-friends-grid>tr:last-child,.social-pane .social-friends-grid>tbody>tr:last-child{margin-bottom:0}.social-pane .social-main{width:100%}}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();;const e=require("./icons.cjs.js"),t=require("./socialSections.cjs.js"),n=require("./triage.cjs.js");let r=require("solid-ui"),i=require("solid-logic");function a(e,t){let n=t.environment?.layout??`desktop`,r=t.environment?.theme??`light`,i=t.environment?.inputMode??`pointer`;e.classList.add(`social-pane-host`),e.dataset.layout=n,e.dataset.theme=r,e.dataset.inputMode=i}var o={icon:r.icons.originalIconBase+`foaf/foafTiny.gif`,name:`social`,label:function(e,t){let n=t.session.store.findTypeURIs(e);return n[r.ns.foaf(`Person`).uri]||n[r.ns.vcard(`Individual`).uri]?`Friends`:null},global:!1,render:function(o,s){let c=s.dom,l=function(e,t){let n=[];for(let r=0;r<e.length;r++)for(let i=0;i<t.length;i++)if(t[i].sameTerm(e[r])){n.push(t[i]);break}return n},m=function(e){let t=new Set,n=[];for(let r of e)!r?.value||t.has(r.value)||(t.add(r.value),n.push(r));return n},h=function(e,t){if(!t)return e;let n=c.createElement(`a`);return n.setAttribute(`href`,t),n.appendChild(e),n},ee=function(e){return c.createTextNode(e)},g=function(){},te=function(e,t,n,i={}){let a=c.createElement(`form`),o=c.createElement(`label`),s=c.createElement(`input`),l=c.createElement(`span`);return l.className=`question`,typeof e==`string`?l.textContent=e:l.appendChild(e),s.setAttribute(`type`,`checkbox`),i.disabled&&(s.disabled=!0,i.disabledTitle&&(s.title=i.disabledTitle,s.setAttribute(`aria-label`,i.disabledTitle))),o.appendChild(l),o.appendChild(s),a.appendChild(o),s.checked=n,s.addEventListener(`click`,function(e){if(this.checked)try{_.UserInput.sparqler.insert_statement(t,function(e,n,i){if(l.className=`question`,!n){r.log.alert(`Error occurs while inserting `+t+`
|
|
2
|
-
|
|
3
|
-
`+i),s.checked=!1;return}v.add(t.subject,t.predicate,t.object,t.why),g()})}catch(e){r.log.error(`Data write fails:`+e),r.log.alert(`Data write fails:`+e),s.checked=!1,l.className=`question`}else try{_.UserInput.sparqler.delete_statement(t,function(e,n,i){l.className=`question`,n?(v.removeMany(t.subject,t.predicate,t.object,t.why),g()):(r.log.alert(`Error occurs while deleting `+t+`
|
|
4
|
-
|
|
5
|
-
`+i),s.checked=!0)})}catch(e){r.log.alert(`Delete fails:`+e),s.checked=!0}},!1),a},_=s.getOutliner(c),v=s.session.store,y=c.createElement(`div`);y.classList.add(`social-pane`,`flex-column`,`gap-xxs`),a(y,s);let b=r.ns.foaf,ne=r.ns.vcard,x=i.authn.currentUser(),re=x?x.uri:null,S=x&&v.sameThings(x,o),C=b(`knows`),ie=v.anyValue(o,b(`givenname`))||v.anyValue(o,b(`firstName`))||v.anyValue(o,b(`nick`))||v.anyValue(o,b(`name`))||v.anyValue(o,ne(`fn`)),w=m(v.each(o,C)),ae=x?m(v.each(x,b(`knows`))):[],T=x&&!S?m(l(w,ae)).filter(e=>!v.sameThings(e,x)):[],oe=x&&!S?T.length:null,E=p(o,x),D=null,O=!1,k=!1,A=!1,se=y.appendChild(c.createElement(`div`));se.className=`social-layout`;let j=se.appendChild(c.createElement(`div`));j.className=`social-primary`;let M=j.appendChild(c.createElement(`div`));M.classList.add(`social-primary__tabs`,`flex-center`),M.setAttribute(`role`,`tablist`),M.setAttribute(`aria-label`,`Social sections`);let N=M.appendChild(c.createElement(`button`));N.className=`social-primary__tab`,N.type=`button`,N.id=`social-tab-all-friends`,N.textContent=`All Friends`,N.setAttribute(`role`,`tab`),N.setAttribute(`aria-controls`,`social-panel-all-friends`),N.setAttribute(`aria-selected`,`true`),N.tabIndex=0;let P=M.appendChild(c.createElement(`button`));if(P.className=`social-primary__tab`,P.type=`button`,P.id=`social-tab-mutual`,P.textContent=`Mutual`,P.setAttribute(`role`,`tab`),P.setAttribute(`aria-controls`,`social-panel-mutual`),P.setAttribute(`aria-selected`,`false`),P.tabIndex=-1,x){let e=v.each(void 0,b(`primaryTopic`),x),t=``;for(let n=0;n<e.length;n++)if(v.whether(e[n],r.ns.rdf(`type`),b(`PersonalProfileDocument`))){let i=e[n];if(O=_.UserInput.sparqler.editable(i.uri,v),!O)t+=`Your profile <`+r.utils.escapeForXML(i.uri)+`> is not remotely editable.`;else{D=i;break}}if(!S){let e=v.canon(x);k=v.whether(o,C,e),A=!1;let t=v.statementsMatching(e,C,o);t.length&&(A=!0,D||=t[0].why)}}let F=e=>e===`authenticated`&&!S&&!A,I=E===`owner`&&O,ce=E===`authenticated`&&!S&&O&&!!D,le=I,L={canEdit:I,viewerMode:E,showAddFriendAction:F(E)},R=t.createHeaderSection(s,o,L,{friendCount:w.length,mutualFriendCount:oe,onSelectFriends:function(){Q(`all-friends`)},onSelectMutual:typeof oe==`number`?function(){Q(`mutual`)}:void 0},function(){return f(s,o)});R.classList.add(`social-pane__header-section`,`flex-column`),y.prepend(R);let z=new Map;(function(e){let t=new Map;e.forEach(e=>{!e?.value||e.value===o.value||t.set(e.value,u(v,e))}),z.clear(),t.forEach((e,t)=>{z.set(t,e)})})(w);let B=function(t,n){let r=z.get(t.value)||u(v,t);z.set(t.value,r);let i=n.createElement(`div`),a=[r.jobTitle,r.organization].filter(Boolean).join(` | `);if(a){let e=i.appendChild(n.createElement(`div`));e.className=`social-friend-job-org`,e.textContent=a}if(r.location){let t=i.appendChild(n.createElement(`div`));t.className=`social-friend-location`,t.innerHTML=`${e.locationIcon} ${r.location}`}return i.childNodes.length?i:null},V=function(e,t){let n=z.get(e.value)||u(v,e);z.set(e.value,n);let r=n.pronouns;if(!r)return null;let i=t.createElement(`span`);return i.className=`social-friend-pronouns`,i.textContent=`(${r})`,i},H=x&&!S?t.createMutualSection({dom:c,subject:o,familiar:ie,me:x,meUri:re,incoming:k,outgoing:A,editable:ce,profile:D,knows:C,mutualConnections:T,link:h,text:ee,buildCheckboxForm:te,renderSupportingInfo:B,renderNameSuffix:V}):{section:c.createElement(`section`),content:c.createElement(`div`),refreshMutualFriends:function(){}},U=H.section,W=H.content;U.className||(U.className=`social-pane__mutual-friends social-primary__panel`,U.id=`social-panel-mutual`,U.setAttribute(`role`,`tabpanel`),U.setAttribute(`aria-labelledby`,`social-tab-mutual`),W.className=`social-main social-main--mutual`,U.appendChild(W)),j.appendChild(U);let ue=t.createAllFriendsSection({dom:c,subject:o,profile:le?D:null,editable:le,renderSupportingInfo:B,renderNameSuffix:V}),G=ue.section,de=ue.friendsList;j.appendChild(G);let K=n.triageFriends(v,o),q=t.createRequestsSection({dom:c,triage:K,renderSupportingInfo:B,renderNameSuffix:V}),J=q.section;j.appendChild(J);let Y=M.appendChild(c.createElement(`button`));Y.className=`social-primary__tab`,Y.type=`button`,Y.id=`social-tab-requests`,Y.textContent=`Requests`,Y.setAttribute(`role`,`tab`),Y.setAttribute(`aria-controls`,`social-panel-requests`),Y.setAttribute(`aria-selected`,`false`),Y.tabIndex=-1;let X=`all-friends`,Z=E===`owner`,Q=function(e){X=e;let t=e===`mutual`,n=e===`all-friends`,r=Z&&e===`requests`;P.classList.toggle(`social-primary__tab--active`,t),P.setAttribute(`aria-selected`,String(t)),P.tabIndex=t?0:-1,N.classList.toggle(`social-primary__tab--active`,n),N.setAttribute(`aria-selected`,String(n)),N.tabIndex=n?0:-1,Y.classList.toggle(`social-primary__tab--active`,r),Y.setAttribute(`aria-selected`,String(r)),Y.tabIndex=r?0:-1,U.classList.toggle(`social-primary__panel--active`,t),U.setAttribute(`aria-hidden`,String(!t)),G.classList.toggle(`social-primary__panel--active`,n),G.setAttribute(`aria-hidden`,String(!n)),J.classList.toggle(`social-primary__panel--active`,r),J.setAttribute(`aria-hidden`,String(!r)),J.hidden=!Z||!r},fe=function(){if(!x||S)return;let e=v.canon(x);k=v.whether(o,C,e),A=v.statementsMatching(e,C,o).length>0;let n=t.createMutualSection({dom:c,subject:o,familiar:ie,me:x,meUri:re,incoming:k,outgoing:A,editable:ce,profile:D,knows:C,mutualConnections:T,link:h,text:ee,buildCheckboxForm:te,renderSupportingInfo:B,renderNameSuffix:V});U.replaceWith(n.section),H=n,U=n.section,W=n.content};g=function(){fe(),L={...L,showAddFriendAction:F(L.viewerMode)},R.refreshSocialHeader?.(L),K=n.triageFriends(v,o),q.refreshRequests(K),Q(X)},Q(`all-friends`);let $=function(e){let t=e===`authenticated`&&!S;if(Z=e===`owner`,P.hidden=!t,Y.hidden=!Z,!Z&&X===`requests`){Q(`all-friends`);return}Q(`all-friends`)};P.addEventListener(`click`,function(){Q(`mutual`)}),N.addEventListener(`click`,function(){Q(`all-friends`)}),Y.addEventListener(`click`,function(){Q(`requests`)});let pe=function(){let e=de.refresh;typeof e==`function`&&e.call(de)},me=function(){H.refreshMutualFriends()};return(async()=>{try{for await(let e of d(s,o))z.clear(),e.forEach(e=>{z.set(e.url,e)}),pe(),me()}catch{}})(),(async()=>{try{K=await n.loadFriendshipTriage(s,o),q.refreshRequests(K),pe(),me()}catch{}})(),$(`anonymous`),i.authn.checkUser().then(e=>{let t=p(o,e);$(t);let n=t===`owner`&&O;L={...L,canEdit:n,viewerMode:t,showAddFriendAction:F(t)},R.refreshSocialHeader?.(L)}).catch(()=>{$(`anonymous`),L={...L,canEdit:!1,viewerMode:`anonymous`,showAddFriendAction:!1},R.refreshSocialHeader?.(L)}),y}},s=3;function c(e,t){let n=e.anyJS(t,r.ns.solid(`preferredSubjectPronoun`))||``;if(n){let i=e.anyJS(t,r.ns.solid(`preferredObjectPronoun`));i&&(n+=`/`+i)}return n||``}function l(e,t){return e&&t?`${t}, ${e}`:e||t||null}function u(e,t){let n=e.anyValue(t,r.ns.vcard(`fn`))||e.anyValue(t,r.ns.foaf(`name`))||null,i=e.anyValue(t,r.ns.vcard(`nickname`))||e.anyValue(t,r.ns.foaf(`nick`))||null,a=e.anyValue(t,r.ns.vcard(`bday`))||null,o=r.widgets.findImage(t),s=e.anyValue(t,r.ns.vcard(`role`))||null,u=e.anyValue(t,r.ns.vcard(`organization-name`))||null,d=e.any(t,r.ns.vcard(`hasAddress`))||null,f=l(d==null?null:e.anyValue(d,r.ns.vcard(`country-name`)),d==null?null:e.anyValue(d,r.ns.vcard(`locality`))),p=c(e,t);return{url:t.value,imageUrl:o,name:n,nickname:i,jobTitle:s,organization:u,birthdate:a,location:f,pronouns:p,subjectNode:t}}async function*d(e,t,n=s){let i=e.session.store,a=i?.fetcher;if(a&&typeof a.load==`function`)try{await a.load(t.doc())}catch{}let o=new Set,c=i.each(t,r.ns.foaf(`knows`),null,t.doc()),l=[];for(let e of c){let n=e?.value;!n||o.has(n)||t.value===n||(o.add(n),l.push(e))}let d=[];for(let e of l){if(a&&typeof a.load==`function`)try{await a.load(e.doc())}catch{}d.push(u(i,e)),d.length%n===0&&(yield[...d])}d.length>0&&d.length%n!==0&&(yield[...d])}function f(e,t){let n=e.session.store,i=n.anyValue(t,r.ns.vcard(`fn`))||n.anyValue(t,r.ns.foaf(`name`))||void 0,a=n.anyValue(t,r.ns.vcard(`nickname`))||n.anyValue(t,r.ns.foaf(`nick`))||void 0,o=n.anyValue(t,r.ns.vcard(`bday`))||void 0,s=r.widgets.findImage(t),u=n.anyValue(t,r.ns.vcard(`role`))||void 0,d=n.anyValue(t,r.ns.vcard(`organization-name`))||void 0,f=n.any(t,r.ns.vcard(`hasAddress`))||null,p=l(f==null?void 0:n.anyValue(f,r.ns.vcard(`country-name`)),f==null?void 0:n.anyValue(f,r.ns.vcard(`locality`))),m=c(n,t);return{url:t.value,imageUrl:s,name:i,nickname:a,jobTitle:u,organization:d,birthdate:o,location:p,pronouns:m}}function p(e,t=i.authn.currentUser()){let n=typeof t==`string`?t:typeof t==`object`&&t&&(t.value||t.uri)||null,r=`anonymous`;return n===e.value&&(r=`owner`),n&&n!==e.value&&(r=`authenticated`),r}exports.pronounsAsText=c,exports.selectProfileData=f,exports.socialPane=o,exports.streamFriends=d;
|
|
6
|
-
//# sourceMappingURL=socialPane2.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socialPane2.cjs.js","names":[],"sources":["../../src/social/socialPane.ts"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport './socialPane.css'\nimport { icons, utils, ns, log, widgets } from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport { LiveStore, NamedNode, Statement } from 'rdflib'\nimport { DataBrowserContext } from 'pane-registry'\nimport { locationIcon } from './icons'\nimport {\n createAllFriendsSection,\n createHeaderSection,\n FriendRowRenderers,\n createMutualSection,\n createRequestsSection,\n HeaderControls,\n SocialHeaderElement\n} from './socialSections'\nimport type { ViewerMode } from './socialSections'\nimport { FriendshipTriage, loadFriendshipTriage, triageFriends } from './triage'\n\nfunction applyEnvironmentAttributes (\n element: HTMLElement,\n context: DataBrowserContext\n): void {\n const layout = context.environment?.layout ?? 'desktop'\n const theme = context.environment?.theme ?? 'light'\n const inputMode = context.environment?.inputMode ?? 'pointer'\n\n element.classList.add('social-pane-host')\n element.dataset.layout = layout\n element.dataset.theme = theme\n element.dataset.inputMode = inputMode\n}\n\nexport const socialPane = {\n icon: icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[ns.foaf('Person').uri] ||\n types[ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n global: false,\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x: NamedNode[], y: NamedNode[]) {\n // Find common members of two lists\n const both: NamedNode[] = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const uniqueNodes = function (nodes: NamedNode[]) {\n const seen = new Set<string>()\n const unique: NamedNode[] = []\n for (const node of nodes) {\n if (!node?.value || seen.has(node.value)) continue\n seen.add(node.value)\n unique.push(node)\n }\n return unique\n }\n\n const link = function (contents: Node, uri: string | null | undefined) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str: string) {\n return dom.createTextNode(str)\n }\n\n let refreshRelationshipUi = function () {}\n\n const buildCheckboxForm = function (\n lab: string | Node,\n statement: Statement,\n state: boolean,\n options: { disabled?: boolean, disabledTitle?: string } = {}\n ) {\n const f = dom.createElement('form')\n const label = dom.createElement('label')\n const input = dom.createElement('input')\n const tx = dom.createElement('span')\n tx.className = 'question'\n if (typeof lab === 'string') {\n tx.textContent = lab\n } else {\n tx.appendChild(lab)\n }\n input.setAttribute('type', 'checkbox')\n if (options.disabled) {\n input.disabled = true\n if (options.disabledTitle) {\n input.title = options.disabledTitle\n input.setAttribute('aria-label', options.disabledTitle)\n }\n }\n label.appendChild(tx)\n label.appendChild(input)\n f.appendChild(label)\n const boxHandler = function (this: HTMLInputElement, _e: Event) {\n if (this.checked) {\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n log.alert(\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n refreshRelationshipUi()\n })\n } catch (e) {\n log.error('Data write fails:' + e)\n log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n refreshRelationshipUi()\n }\n })\n } catch (e) {\n log.alert('Delete fails:' + e)\n input.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const socialPane = dom.createElement('div')\n socialPane.classList.add('social-pane', 'flex-column', 'gap-xxs')\n applyEnvironmentAttributes(socialPane, context)\n const foaf = ns.foaf\n const vcard = ns.vcard\n const me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n const uniqueFriends = uniqueNodes(friends as NamedNode[])\n const myFriends = me ? uniqueNodes(kb.each(me, foaf('knows')) as NamedNode[]) : []\n const mutualConnections = me && !thisIsYou\n ? uniqueNodes(common(uniqueFriends, myFriends)).filter(friend => !kb.sameThings(friend, me))\n : []\n const mutualFriendCount = me && !thisIsYou ? mutualConnections.length : null\n const viewerMode = getViewerMode(s, me)\n\n // Do I have a public profile document?\n let profile: NamedNode | null = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming: boolean | NamedNode[] = false\n let outgoing: boolean | NamedNode[] = false\n\n const structure = socialPane.appendChild(dom.createElement('div'))\n structure.className = 'social-layout'\n const primary = structure.appendChild(dom.createElement('div'))\n primary.className = 'social-primary'\n\n const tabs = primary.appendChild(dom.createElement('div'))\n tabs.classList.add('social-primary__tabs', 'flex-center')\n tabs.setAttribute('role', 'tablist')\n tabs.setAttribute('aria-label', 'Social sections')\n\n const allFriendsTab = tabs.appendChild(dom.createElement('button'))\n allFriendsTab.className = 'social-primary__tab'\n allFriendsTab.type = 'button'\n allFriendsTab.id = 'social-tab-all-friends'\n allFriendsTab.textContent = 'All Friends'\n allFriendsTab.setAttribute('role', 'tab')\n allFriendsTab.setAttribute('aria-controls', 'social-panel-all-friends')\n allFriendsTab.setAttribute('aria-selected', 'true')\n allFriendsTab.tabIndex = 0\n\n const mutualTab = tabs.appendChild(dom.createElement('button'))\n mutualTab.className = 'social-primary__tab'\n mutualTab.type = 'button'\n mutualTab.id = 'social-tab-mutual'\n mutualTab.textContent = 'Mutual'\n mutualTab.setAttribute('role', 'tab')\n mutualTab.setAttribute('aria-controls', 'social-panel-mutual')\n mutualTab.setAttribute('aria-selected', 'false')\n mutualTab.tabIndex = -1\n\n if (me) {\n // The definition of FOAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n const doc = works[i]\n editable = outliner.UserInput.sparqler.editable(doc.uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n utils.escapeForXML(doc.uri) +\n '> is not remotely editable.'\n } else {\n profile = doc\n break\n }\n }\n }\n\n /*\n if (!profile) {\n say(\n message + '\\nI couldn\\'t find your editable personal profile document.'\n )\n } else {\n say('Editing your profile ' + profile + '.')\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n */\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n } // About someone else\n } // me is defined\n // End of you and s\n\n const shouldShowHeaderAddFriendAction = (mode: ViewerMode) => {\n return mode === 'authenticated' && !thisIsYou && !outgoing\n }\n\n const canEditOwnedProfile = viewerMode === 'owner' && editable\n const canManageRelationship = viewerMode === 'authenticated' && !thisIsYou && editable && Boolean(profile)\n const canModifyFriendsTab = canEditOwnedProfile\n\n let headerControls: HeaderControls = {\n canEdit: canEditOwnedProfile,\n viewerMode,\n showAddFriendAction: shouldShowHeaderAddFriendAction(viewerMode)\n }\n\n const header = createHeaderSection(context, s, headerControls, {\n friendCount: uniqueFriends.length,\n mutualFriendCount,\n onSelectFriends: function () {\n setActivePanel('all-friends')\n },\n onSelectMutual: typeof mutualFriendCount === 'number'\n ? function () {\n setActivePanel('mutual')\n }\n : undefined\n }, function () {\n return selectProfileData(context, s)\n })\n header.classList.add('social-pane__header-section', 'flex-column')\n socialPane.prepend(header)\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n const friendDetailsByUri = new Map<string, FriendDetails>()\n\n const hydrateFriendDetailsCache = function (friendNodes: NamedNode[]) {\n const nextCache = new Map<string, FriendDetails>()\n\n friendNodes.forEach(friendNode => {\n if (!friendNode?.value || friendNode.value === s.value) return\n nextCache.set(friendNode.value, toFriendDetails(kb, friendNode))\n })\n\n friendDetailsByUri.clear()\n nextCache.forEach((value, key) => {\n friendDetailsByUri.set(key, value)\n })\n }\n\n hydrateFriendDetailsCache(uniqueFriends)\n\n const renderSupportingInfo: FriendRowRenderers['renderSupportingInfo'] = function (target: NamedNode, renderDom: HTMLDocument) {\n const friend = friendDetailsByUri.get(target.value) || toFriendDetails(kb, target)\n friendDetailsByUri.set(target.value, friend)\n\n const container = renderDom.createElement('div')\n const jobAndOrganization = [friend.jobTitle, friend.organization].filter(Boolean).join(' | ')\n if (jobAndOrganization) {\n const jobLine = container.appendChild(renderDom.createElement('div'))\n jobLine.className = 'social-friend-job-org'\n jobLine.textContent = jobAndOrganization\n }\n\n if (friend.location) {\n const locationLine = container.appendChild(renderDom.createElement('div'))\n locationLine.className = 'social-friend-location'\n locationLine.innerHTML = `${locationIcon} ${friend.location}`\n }\n\n if (!container.childNodes.length) return null\n\n return container\n }\n\n const renderNameSuffix: FriendRowRenderers['renderNameSuffix'] = function (target: NamedNode, renderDom: HTMLDocument) {\n const friend = friendDetailsByUri.get(target.value) || toFriendDetails(kb, target)\n friendDetailsByUri.set(target.value, friend)\n const pronouns = friend.pronouns\n if (!pronouns) return null\n\n const suffix = renderDom.createElement('span')\n suffix.className = 'social-friend-pronouns'\n suffix.textContent = `(${pronouns})`\n return suffix\n }\n\n let mutualSection = me && !thisIsYou\n ? createMutualSection({\n dom,\n subject: s,\n familiar,\n me,\n meUri,\n incoming,\n outgoing,\n editable: canManageRelationship,\n profile,\n knows,\n mutualConnections,\n link,\n text,\n buildCheckboxForm,\n renderSupportingInfo,\n renderNameSuffix\n })\n : {\n section: dom.createElement('section'),\n content: dom.createElement('div'),\n refreshMutualFriends: function () {}\n }\n\n let mutualFriends = mutualSection.section\n let mutualContent = mutualSection.content\n if (!mutualFriends.className) {\n mutualFriends.className = 'social-pane__mutual-friends social-primary__panel'\n mutualFriends.id = 'social-panel-mutual'\n mutualFriends.setAttribute('role', 'tabpanel')\n mutualFriends.setAttribute('aria-labelledby', 'social-tab-mutual')\n mutualContent.className = 'social-main social-main--mutual'\n mutualFriends.appendChild(mutualContent)\n }\n primary.appendChild(mutualFriends)\n\n const allFriendsSection = createAllFriendsSection({\n dom,\n subject: s,\n profile: canModifyFriendsTab ? profile : null,\n editable: canModifyFriendsTab,\n renderSupportingInfo,\n renderNameSuffix\n })\n\n const allFriends = allFriendsSection.section\n const friendsList = allFriendsSection.friendsList\n primary.appendChild(allFriends)\n\n let requestsTriage: FriendshipTriage = triageFriends(kb, s)\n const requestsSection = createRequestsSection({\n dom,\n triage: requestsTriage,\n renderSupportingInfo,\n renderNameSuffix\n })\n const requestsPanel = requestsSection.section\n primary.appendChild(requestsPanel)\n\n const requestsTab = tabs.appendChild(dom.createElement('button'))\n requestsTab.className = 'social-primary__tab'\n requestsTab.type = 'button'\n requestsTab.id = 'social-tab-requests'\n requestsTab.textContent = 'Requests'\n requestsTab.setAttribute('role', 'tab')\n requestsTab.setAttribute('aria-controls', 'social-panel-requests')\n requestsTab.setAttribute('aria-selected', 'false')\n requestsTab.tabIndex = -1\n\n type SocialPanel = 'mutual' | 'all-friends' | 'requests'\n let activePanel: SocialPanel = 'all-friends'\n let showRequestsTab = viewerMode === 'owner'\n\n const setActivePanel = function (panel: SocialPanel) {\n activePanel = panel\n const showMutual = panel === 'mutual'\n const showAllFriends = panel === 'all-friends'\n const showRequests = showRequestsTab && panel === 'requests'\n mutualTab.classList.toggle('social-primary__tab--active', showMutual)\n mutualTab.setAttribute('aria-selected', String(showMutual))\n mutualTab.tabIndex = showMutual ? 0 : -1\n\n allFriendsTab.classList.toggle('social-primary__tab--active', showAllFriends)\n allFriendsTab.setAttribute('aria-selected', String(showAllFriends))\n allFriendsTab.tabIndex = showAllFriends ? 0 : -1\n\n requestsTab.classList.toggle('social-primary__tab--active', showRequests)\n requestsTab.setAttribute('aria-selected', String(showRequests))\n requestsTab.tabIndex = showRequests ? 0 : -1\n\n mutualFriends.classList.toggle('social-primary__panel--active', showMutual)\n mutualFriends.setAttribute('aria-hidden', String(!showMutual))\n\n allFriends.classList.toggle('social-primary__panel--active', showAllFriends)\n allFriends.setAttribute('aria-hidden', String(!showAllFriends))\n\n requestsPanel.classList.toggle('social-primary__panel--active', showRequests)\n requestsPanel.setAttribute('aria-hidden', String(!showRequests))\n requestsPanel.hidden = !showRequestsTab || !showRequests\n }\n const rebuildMutualSection = function () {\n if (!me || thisIsYou) return\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n\n const outgoingStatements = kb.statementsMatching(cme, knows, s)\n outgoing = outgoingStatements.length > 0\n\n const nextMutualSection = createMutualSection({\n dom,\n subject: s,\n familiar,\n me,\n meUri,\n incoming,\n outgoing,\n editable: canManageRelationship,\n profile,\n knows,\n mutualConnections,\n link,\n text,\n buildCheckboxForm,\n renderSupportingInfo,\n renderNameSuffix\n })\n\n mutualFriends.replaceWith(nextMutualSection.section)\n mutualSection = nextMutualSection\n mutualFriends = nextMutualSection.section\n mutualContent = nextMutualSection.content\n }\n\n refreshRelationshipUi = function () {\n rebuildMutualSection()\n headerControls = {\n ...headerControls,\n showAddFriendAction: shouldShowHeaderAddFriendAction(headerControls.viewerMode)\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n requestsTriage = triageFriends(kb, s)\n requestsSection.refreshRequests(requestsTriage)\n setActivePanel(activePanel)\n }\n\n setActivePanel('all-friends')\n\n const applyViewerMode = function (mode: ViewerMode) {\n const showMutualTab = mode === 'authenticated' && !thisIsYou\n showRequestsTab = mode === 'owner'\n mutualTab.hidden = !showMutualTab\n requestsTab.hidden = !showRequestsTab\n if (!showRequestsTab && activePanel === 'requests') {\n setActivePanel('all-friends')\n return\n }\n setActivePanel('all-friends')\n }\n\n mutualTab.addEventListener('click', function () {\n setActivePanel('mutual')\n })\n\n allFriendsTab.addEventListener('click', function () {\n setActivePanel('all-friends')\n })\n\n requestsTab.addEventListener('click', function () {\n setActivePanel('requests')\n })\n\n const refreshFriendsList = function () {\n const refresh = (friendsList as HTMLTableElement & { refresh?: () => void }).refresh\n if (typeof refresh !== 'function') return\n\n refresh.call(friendsList)\n }\n\n const refreshMutualFriends = function () {\n mutualSection.refreshMutualFriends()\n }\n\n ;(async () => {\n try {\n for await (const streamedFriends of streamFriends(context, s)) {\n friendDetailsByUri.clear()\n streamedFriends.forEach(friend => {\n friendDetailsByUri.set(friend.url, friend)\n })\n refreshFriendsList()\n refreshMutualFriends()\n }\n } catch {\n // Keep the initial snapshot if async friend loading fails.\n }\n })()\n\n ;(async () => {\n try {\n requestsTriage = await loadFriendshipTriage(context, s)\n requestsSection.refreshRequests(requestsTriage)\n refreshFriendsList()\n refreshMutualFriends()\n } catch {\n // Keep the initial requests snapshot if additional loading fails.\n }\n })()\n\n // Older triage logic is preserved below as a reusable data helper.\n\n applyViewerMode('anonymous')\n\n authn.checkUser()\n .then(webId => {\n const confirmedViewerMode = getViewerMode(s, webId)\n applyViewerMode(confirmedViewerMode)\n const confirmedCanEditOwnedProfile = confirmedViewerMode === 'owner' && editable\n headerControls = {\n ...headerControls,\n canEdit: confirmedCanEditOwnedProfile,\n viewerMode: confirmedViewerMode,\n showAddFriendAction: shouldShowHeaderAddFriendAction(confirmedViewerMode)\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n })\n .catch(() => {\n applyViewerMode('anonymous')\n headerControls = {\n ...headerControls,\n canEdit: false,\n viewerMode: 'anonymous',\n showAddFriendAction: false\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n })\n\n return socialPane\n } // render()\n} //\n// ends\n// ***************** Social Pane Selectors **********/\n/* Should move to another file, but will leave for now */\n/* Will create a social pane folder or maybe repo later */\n\nconst FRIEND_BATCH_SIZE = 3\n\nexport interface ProfileDetails {\n url: string\n imageUrl?: string\n name?: string\n nickname?: string\n jobTitle?: string\n organization?: string\n location?: string | null\n pronouns?: string\n birthdate?: string\n}\n\nexport interface FriendDetails extends ProfileDetails {\n subjectNode: NamedNode\n}\n\n/* pronounsAsText and formatLocation were copied from HeadingSection selectors */\nexport function pronounsAsText (store: LiveStore, subject: NamedNode): string {\n let pronouns = store.anyJS(subject, ns.solid('preferredSubjectPronoun')) || ''\n if (pronouns) {\n const them = store.anyJS(subject, ns.solid('preferredObjectPronoun'))\n if (them) {\n pronouns += '/' + them\n }\n }\n return pronouns || ''\n}\n\nfunction formatLocation (countryName: string | void, locality: string | void) {\n return countryName && locality\n ? `${locality}, ${countryName}`\n : countryName || locality || null\n}\n\nfunction toFriendDetails (store: any, friendNode: NamedNode): FriendDetails {\n const name =\n store.anyValue(friendNode, ns.vcard('fn')) ||\n store.anyValue(friendNode, ns.foaf('name')) ||\n null\n const nickname =\n store.anyValue(friendNode, ns.vcard('nickname')) ||\n store.anyValue(friendNode, ns.foaf('nick')) ||\n null\n const dateOfBirth = store.anyValue(friendNode, ns.vcard('bday')) || null\n const imageSrc = widgets.findImage(friendNode)\n const jobTitle = store.anyValue(friendNode, ns.vcard('role')) || null\n const orgName = store.anyValue(friendNode, ns.vcard('organization-name')) || null\n const primaryAddressEntryNode = store.any(friendNode, ns.vcard('hasAddress')) as NamedNode | null\n const address: NamedNode | null = primaryAddressEntryNode || null\n const countryName =\n address != null\n ? store.anyValue(address, ns.vcard('country-name'))\n : null\n const locality =\n address != null\n ? store.anyValue(address, ns.vcard('locality'))\n : null\n\n const location = formatLocation(countryName, locality)\n const pronouns = pronounsAsText(store, friendNode)\n\n return {\n url: friendNode.value,\n imageUrl: imageSrc,\n name,\n nickname,\n jobTitle,\n organization: orgName,\n birthdate: dateOfBirth,\n location,\n pronouns,\n subjectNode: friendNode\n }\n}\n\nexport async function * streamFriends (\n context: DataBrowserContext,\n subject: NamedNode,\n batchSize = FRIEND_BATCH_SIZE\n): AsyncGenerator<FriendDetails[], void, void> {\n const store = context.session.store\n const fetcher = (store as any)?.fetcher\n\n if (fetcher && typeof fetcher.load === 'function') {\n try {\n await fetcher.load(subject.doc())\n } catch {\n // Continue with whatever is already in the store.\n }\n }\n\n const seen = new Set<string>()\n const friendNodes = store.each(subject, ns.foaf('knows'), null, subject.doc())\n const uniqueFriendNodes: NamedNode[] = []\n\n for (const friendNode of friendNodes) {\n const key = friendNode?.value\n if (!key || seen.has(key) || subject.value === key) continue\n seen.add(key)\n uniqueFriendNodes.push(friendNode as NamedNode)\n }\n\n const friends: FriendDetails[] = []\n\n for (const friendNode of uniqueFriendNodes) {\n if (fetcher && typeof fetcher.load === 'function') {\n try {\n await fetcher.load(friendNode.doc())\n } catch {\n // Keep partial friend data when one linked document fails to load.\n }\n }\n\n friends.push(toFriendDetails(store, friendNode))\n\n if (friends.length % batchSize === 0) {\n yield [...friends]\n }\n }\n\n if (friends.length > 0 && friends.length % batchSize !== 0) {\n yield [...friends]\n }\n}\n\nexport async function extractFriends (context: DataBrowserContext, subject: NamedNode): Promise<FriendDetails[] | null> {\n let latestFriends: FriendDetails[] | null = null\n\n for await (const friends of streamFriends(context, subject)) {\n latestFriends = friends\n }\n\n return latestFriends\n}\n\nexport function selectProfileData (context: DataBrowserContext, subject: NamedNode): ProfileDetails | null {\n const store = context.session.store\n\n const name =\n store.anyValue(subject, ns.vcard('fn')) ||\n store.anyValue(subject, ns.foaf('name')) ||\n undefined\n const nickname =\n store.anyValue(subject, ns.vcard('nickname')) ||\n store.anyValue(subject, ns.foaf('nick')) ||\n undefined\n const dateOfBirth = store.anyValue(subject, ns.vcard('bday')) || undefined\n const imageSrc = widgets.findImage(subject)\n const jobTitle = store.anyValue(subject, ns.vcard('role')) || undefined\n const orgName = store.anyValue(subject, ns.vcard('organization-name')) || undefined\n const primaryAddressEntryNode = store.any(subject, ns.vcard('hasAddress')) as NamedNode | null\n const address: NamedNode | null = primaryAddressEntryNode || null\n const countryName =\n address != null\n ? store.anyValue(address, ns.vcard('country-name'))\n : undefined\n const locality =\n address != null\n ? store.anyValue(address, ns.vcard('locality'))\n : undefined\n\n const location = formatLocation(countryName, locality)\n const pronouns = pronounsAsText(store, subject)\n return {\n url: subject.value,\n imageUrl: imageSrc,\n name,\n nickname,\n jobTitle,\n organization: orgName,\n birthdate: dateOfBirth,\n location,\n pronouns\n }\n}\n\nexport type { ViewerMode } from './socialSections'\n\nfunction getViewerMode (subject: NamedNode, currentUser: unknown = authn.currentUser()): ViewerMode {\n const currentUserUri =\n typeof currentUser === 'string'\n ? currentUser\n : typeof currentUser === 'object' && currentUser !== null\n ? ((currentUser as { value?: string, uri?: string }).value ||\n (currentUser as { value?: string, uri?: string }).uri ||\n null)\n : null\n let mode: ViewerMode = 'anonymous'\n if (currentUserUri === subject.value) mode = 'owner'\n if (currentUserUri && currentUserUri !== subject.value) mode = 'authenticated'\n return mode\n}\n"],"mappings":"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"}
|
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
(function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.social-pane-host,.social-pane{--profile-interactive-cursor:pointer;background:var(--color-background,#f8f9fb);border-radius:var(--border-radius-base,.3125rem);box-sizing:border-box;width:100%;min-width:100%;max-width:none;margin-top:20px;display:block;overflow:visible}.social-pane__header-content{align-items:flex-start;column-gap:var(--spacing-md,1.25rem);row-gap:var(--spacing-xxs,.3125rem);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.social-pane__header-media{grid-area:1/1}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;min-width:0;display:flex}.social-pane__header-actions{place-self:flex-start end;align-items:flex-start;gap:var(--spacing-xs,.5rem);flex-wrap:wrap;grid-area:1/3;margin-left:auto;display:flex}.social-pane__header-actions--friend{justify-content:center}.social-pane__header-actions--friend>solid-ui-button{--button-border-radius:var(--border-radius-md,.5rem);--button-hover-text:var(--color-primary,#7c4dff);--button-hover-border:var(--color-primary,#7c4dff);margin-inline:auto}.social-pane__header-summary{align-items:flex-start;gap:var(--spacing-xxs,.125rem);flex-direction:column;width:100%;max-width:100%;display:flex}.social-pane__header-stats{gap:var(--spacing-xs,.75rem);margin-top:var(--spacing-xxs,.3125rem);flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;display:flex}.social-pane__header-stat{appearance:none;cursor:var(--profile-interactive-cursor,pointer);color:var(--slate-700,#314158);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight,1.4);background:0 0;border:0;padding:0;text-decoration:none}.social-pane__header-stat+.social-pane__header-stat:before{content:"◆";color:var(--gray-400,#99a1af);margin-right:var(--spacing-xs,.75rem);vertical-align:middle;font-size:.5rem}.social-pane__header-stat:hover .social-pane__header-stat-label{text-decoration:underline}.social-pane__header-stat:focus-visible{outline:var(--border-width-medium,2px) solid #111827;outline-offset:2px}.social-pane__edit-button{--button-height-sm:0;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-font-size-sm:var(--font-size-sm,.875rem);--button-font-weight:var(--font-weight-regular,400);--button-line-height:var(--line-height-base,1.5);--button-icon-size-sm:.875rem;width:auto;min-width:0;max-width:none;display:inline-block;position:static}.social-pane__edit-button::part(button):hover{text-decoration:underline}.social-pane__edit-button::part(button):focus-visible{outline:var(--border-width-medium,2px) solid var(--color-primary,#7c4dff);outline-offset:2px}.social-pane__edit-button-label{align-items:center;gap:var(--spacing-xxs,.3125rem);display:inline-flex}.social-pane__edit-button .profile-section-collapsible__edit-icon,.social-pane__edit-button-icon{line-height:0;display:none}.social-pane__edit-button-label svg,.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{vertical-align:middle;flex:none;width:.875rem;height:.875rem;display:inline-block}.social-pane__edit-button-label svg path,.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-primary,#7c4dff);stroke:none}.social-pane__dialog-backdrop{z-index:1000;background:#0f172a73;padding:1rem;position:fixed;inset:0}.social-pane__dialog{background:var(--white,#fff);width:min(32rem,100%);max-height:calc(100vh - 2rem);color:var(--color-text,#111827);padding:var(--spacing-md,1.25rem);border-radius:1rem;position:relative;overflow:auto;box-shadow:0 20px 45px #0f172a40}.social-pane__dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md,1rem);padding-bottom:var(--spacing-base,.5rem);margin-bottom:var(--spacing-sm,.938rem);border-bottom:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);display:flex}.social-pane__dialog-title{margin:0 0 var(--spacing-base,.5rem)}.social-pane__dialog-close{--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;color:var(--color-text-subheading,#6b7280);cursor:pointer;flex:none;padding:0;line-height:0}.social-pane__dialog-close:hover{color:var(--color-text-primary,#364153)}.social-pane__dialog-close:focus-visible{outline:var(--border-width-medium,2px) solid var(--color-text-primary,#364153);outline-offset:2px}.social-pane__dialog-close svg{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem)}.social-pane__dialog-close svg path{fill:currentColor}.social-pane__dialog-form{gap:var(--spacing-sm,.938rem)}.social-pane__dialog-fields{gap:var(--spacing-sm,.938rem);flex-direction:column;display:flex}.social-pane__dialog-field{gap:.2rem}.social-pane__dialog-field-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs,.75rem);display:flex}.social-pane__dialog-row-list{flex-direction:column;gap:.2rem;display:flex}.social-pane__dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.social-pane__dialog-label{color:var(--gray-700,#364153);font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-md,500);margin:0;line-height:normal}.social-pane__dialog-input{box-sizing:border-box;resize:none;width:100%;min-height:auto}.social-pane__dialog-error{min-height:1.25rem;color:var(--color-warning,red);margin:0}.social-pane__dialog-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.social-pane__dialog-saving-overlay[hidden]{display:none}.social-pane__dialog.modal--saving .social-pane__dialog-form{opacity:.45;pointer-events:none}.social-pane__dialog .modal__saving-indicator{gap:0}.social-pane__dialog-row-button-icon{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.social-pane__dialog-row-button-icon svg{display:block}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add{box-sizing:border-box;--button-min-height:auto;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-height-sm:auto;--button-font-weight:var(--font-weight-md,500);--button-font-size-sm:var(--font-size-sm,.875rem);--button-line-height:var(--line-height-base,1.5);flex:none;justify-self:flex-start;width:auto;min-width:0;max-width:none;margin-left:auto}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){min-height:auto;padding:var(--spacing-xxs,.3125rem);color:var(--color-primary,#7c4dff);font-weight:var(--font-weight-md,500);background:0 0;border:none}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add:hover::part(button){text-decoration:underline}.social-pane__add-more-content{display:inline}.social-pane__add-more-inline{white-space:normal;display:inline}.social-pane__add-more-icon{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem);margin-right:var(--spacing-xxs,.3125rem);vertical-align:text-top;line-height:0;display:inline-block}.social-pane__add-more-icon svg{width:100%;height:100%;display:block}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove{min-height:var(--min-touch-target,44px);min-width:var(--min-touch-target,44px);color:var(--gray-300,#d1d5dc);--button-background:transparent;--button-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;--button-border:transparent;--button-border-width:0;--button-border-radius:var(--border-radius-base,.3125rem);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-primary,#7c4dff);--button-hover-box-shadow:none;--button-text:currentColor;--button-height-md:var(--min-touch-target,44px);--button-padding-md:0;--button-padding-x-sm:0;--button-icon-size-md:var(--icon-xxs,1rem);--button-icon-size-lg:var(--icon-xxs,1rem)}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:hover,.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:focus-within{color:var(--gray-300,#d1d5dc)}.social-pane__dialog-row-button-icon--remove svg{width:1rem;height:1rem}.social-pane__dialog-row-button-icon--remove svg path{stroke:currentColor}.social-pane__dialog-actions{justify-content:flex-end;gap:var(--spacing-xs,.75rem);padding-top:var(--spacing-base,.5rem);border-top:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);margin-top:0;display:flex}.social-pane__dialog-actions>solid-ui-button{--button-border-width:1px;--button-border-radius:var(--border-radius-base,.3125rem);--button-box-shadow:none;--button-hover-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;width:10.8rem}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--save{--button-font-size-md:var(--font-size-lg,1.125rem);--button-background:var(--color-primary,#7c4dff);--button-border:var(--color-primary,#7c4dff);--button-text:var(--white,#fff);--button-hover-background:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-border:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-text:var(--white,#fff)}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--cancel{--button-background:var(--white,#fff);--button-border:var(--gray-300,#d1d5dc);--button-font-weight:var(--font-weight-normal,normal);--button-text:var(--gray-800,#1e2939);--button-hover-background:var(--blue-900,#083575);--button-hover-border:var(--blue-900,#083575);--button-hover-text:var(--white,#fff);--button-font-size-md:var(--font-size-sm,.875rem)}.social-pane__header-name{color:var(--color-text-heading,#000);font-size:var(--font-size-xxl,1.75rem);font-weight:var(--font-weight-bold,600);text-indent:0;text-align:left;overflow-wrap:anywhere;margin:0;padding:0;line-height:1.2;transform:translate(-4px)}.social-pane__header-location{align-items:center;gap:var(--spacing-2xs,.625rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-normal,400);line-height:1.2;display:inline-flex}.social-pane__header-job-org{color:var(--color-text-subheading,#101828);white-space:normal;width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-md,500);text-align:left;margin:0;line-height:1.25}.social-pane__header-location-icon{line-height:0}.social-pane__header-location-icon svg{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem)}.social-profile-links{grid-template-columns:repeat(2,max-content);align-items:start;gap:.15rem 1rem;display:grid}.social-pane__header-hero{border-radius:var(--border-radius-full,.625rem);border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--gray-200,#e5e7eb) 50% / cover no-repeat;object-fit:cover;object-position:center;background-position:50%;width:140px;height:140px}.social-pane__header-hero-icon{border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--color-card-bg);flex-shrink:0;width:140px;height:140px;line-height:0;border-radius:var(--border-radius-full,.625rem)!important}.social-pane__header-hero-icon svg{width:100%;height:100%;display:block}.social-pane .social-layout{align-items:flex-start;gap:1rem;width:100%;display:flex}.social-pane .social-primary{flex:70%;grid-template-rows:auto minmax(0,auto);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-width:0;display:grid}.social-pane .social-primary__tabs{align-items:center;gap:var(--spacing-base,.5rem);z-index:1;background:0 0;grid-area:1/1;width:fit-content;max-width:100%;margin-bottom:0;padding:0;display:flex;position:relative}.social-pane .social-primary__tab{appearance:none;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;color:#374151;cursor:pointer;font:inherit;font-weight:var(--font-weight-bold,600);padding:var(--spacing-2xs,.625rem) 1rem;background:0 0;border-radius:0;transition:background-color .12s,color .12s,box-shadow .12s;box-shadow:none!important}.social-pane .social-primary__tab:hover{color:var(--grey-purple-900,#332746);background:var(--lavender-300,#e6dcff)!important;box-shadow:none!important}.social-pane .social-primary__tab[aria-selected=true],.social-pane .social-primary__tab--active{color:var(--grey-purple-900,#332746);border-bottom-color:var(--color-primary,#7c4dff);background:0 0;box-shadow:none!important}.social-pane .social-primary__tab:focus-visible{outline-offset:2px;outline:none;box-shadow:none!important}.social-pane .social-primary__panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:2/1;transition:opacity .16s,transform .16s,visibility 0s linear .16s;display:none;transform:translateY(.35rem)}.social-pane .social-primary__panel--active{opacity:1;visibility:visible;pointer-events:auto;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;transition:opacity .18s,transform .18s;display:block;transform:translateY(0)}.social-pane .social-pane__mutual-friends,.social-pane .social-pane__all-friends{padding-top:var(--spacing-xxxs,.2rem);margin-top:0}.social-pane .social-main{background-color:var(--color-card-bg,#fff);color:var(--color-text-primary,#364153);box-sizing:border-box;border-collapse:collapse;border:0;width:100%;padding:0;display:table}.social-pane .social-main--mutual{gap:var(--spacing-xs,.75rem);border-radius:var(--border-radius-lg,.75rem);margin-top:1em;margin-bottom:1em;padding:1rem}.social-pane .social-main--requests{gap:var(--spacing-md,1rem);border-radius:var(--border-radius-lg,.75rem);flex-direction:column;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.social-requests__note{color:var(--color-text-subheading,#475467);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__group{gap:var(--spacing-sm,.938rem)}.social-requests__group-header{flex-direction:column;gap:.125rem;display:flex}.social-requests__group-title{color:var(--color-text-heading,#101828);font-size:var(--font-size-lg,1.125rem);margin:0;line-height:1.25}.social-requests__group-description,.social-requests__empty{color:var(--color-text-subheading,#667085);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__table{margin-top:0}.social-pane .social-mutual-summary{gap:var(--spacing-base,.5rem)}.social-pane .social-mutual-summary-line{color:var(--slate-700,#314158);font-size:var(--font-size-sm,.95rem);line-height:var(--line-height-base,1.5);justify-content:flex-start;padding:1rem}.social-pane .social-mutual-summary-line--action{gap:var(--spacing-xxs,.75rem);flex-wrap:wrap}.social-pane .social-mutual-confirm-prompt{align-items:center;gap:var(--spacing-xxxs,.2rem);font-weight:var(--font-weight-semibold,600);flex-wrap:wrap;display:inline-flex}.social-pane .social-pane__friend-action--inline{z-index:auto;align-self:flex-start;position:static;top:auto;right:auto}.social-pane .social-mutual-checkbox-form{margin:0;padding:0 1rem 1rem;display:block}.social-pane .social-mutual-checkbox-form label{align-items:center;gap:var(--spacing-2xs,.65rem);color:var(--slate-700,#374151);font-size:var(--font-size-sm,.875rem);flex-wrap:wrap;line-height:1.4;display:inline-flex}.social-pane .social-mutual-checkbox-form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary,#7c4dff);margin:0}.social-pane .social-mutual-checkbox-form input[type=checkbox]:disabled{opacity:.65;cursor:not-allowed}.social-pane .social-friends-list{width:100%;margin-top:0}.social-pane .social-friends-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tbody{align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{table-layout:fixed;box-sizing:border-box;width:calc(50% - .375rem);display:inline-table}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr,.social-pane .social-friend-card{border:1px solid var(--gray-200,#e5e7eb);background:var(--white,#fff);border-radius:var(--border-radius-lg,.75rem);transition:box-shadow .14s,border-color .14s,transform .14s;overflow:visible;box-shadow:0 1px 3px #00000014}.social-pane .social-friends-grid>tr:hover,.social-pane .social-friends-grid>tbody>tr:hover,.social-pane .social-friend-card:hover{border-color:var(--gray-300,#d1d5dc);transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.social-pane .social-friends-grid>tr td,.social-pane .social-friends-grid>tbody>tr td,.social-pane .social-friend-card td{background:var(--color-background,#f8f9fb);box-sizing:border-box}.social-pane .social-friends-grid>tr>td:nth-child(2),.social-pane .social-friends-grid>tbody>tr>td:nth-child(2){width:auto;min-width:0;padding-left:1.4rem}.social-pane .social-friends-grid>tr>td:nth-child(3),.social-pane .social-friends-grid>tbody>tr>td:nth-child(3){vertical-align:top;width:2.5rem;min-width:2.5rem;padding-left:.25rem}.social-pane .social-friends-grid>tr>td:first-child,.social-pane .social-friends-grid>tbody>tr>td:first-child{padding-right:1.2rem}.social-pane .social-friends-grid td>div>div{overflow-wrap:anywhere;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important}.social-pane .social-friends-grid td>div>div button{white-space:normal!important}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child{flex-wrap:wrap;align-items:flex-start;gap:.2rem .4rem;min-width:0;display:flex}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child>span:first-of-type,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child>span:first-of-type{vertical-align:text-top;max-width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow-wrap:anywhere;margin-top:0;margin-bottom:0;display:inline-block;overflow:visible}.social-pane .social-friend-pronouns{margin-left:var(--spacing-xs,.25rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-regular,400);text-align:left;line-height:1.2;display:inline}.social-pane .social-friend-job-org{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;color:var(--color-text-subheading,#101828);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);text-align:left;margin:0;line-height:1.25}.social-pane .social-friend-location{color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-xs,.8125rem);overflow-wrap:anywhere;line-height:1.3}@media (width<=960px){.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%}}.social-pane .social-friends-header{padding:0 var(--spacing-xs,.75rem) var(--spacing-base,.5rem);background-color:var(--gray-100,#f3f4f6);caption-side:top;justify-content:space-between;align-items:center;margin-top:0;display:flex}.social-pane .social-friends-header-title{font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-bold,600);color:var(--color-text-primary,#364153)}.social-pane .social-friends-header-actions{justify-content:flex-end;align-items:center;display:inline-flex}.social-pane .social-friends-header-actions--standalone{align-items:center;gap:var(--spacing-xs,.75rem);justify-content:flex-start;padding:.7rem 1rem 0;display:flex}.social-pane .social-friends-header-dropzone{border-collapse:collapse}.social-pane .social-friends-header-dropzone-cell{padding:0}.social-pane .social-friends-header-hint{color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);line-height:1.4}.social-pane .social-friends-header-actions button{justify-content:center;align-items:center;display:inline-flex;overflow:hidden;border-width:0!important;width:2rem!important;min-width:2rem!important;height:2rem!important;margin:0!important;padding:0!important}.social-pane .social-friends-header-actions button img{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}.social-pane a{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:none}.social-pane a:hover{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:underline}.social-pane a:active{color:var(--color-primary,#7c4dff);text-decoration:none}.social-pane__link-button{white-space:nowrap;width:fit-content;max-width:100%;padding:var(--spacing-xxxs,.2rem) var(--spacing-base,.5rem);text-align:left;background-color:#0000;border:none;margin-top:0;margin-bottom:0;display:inline-flex}.social-pane__link-button>a{white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--color-primary,#7c4dff);background-color:#0000;display:inline-flex}.social-pane__link-button>a:link,.social-pane__link-button>a:visited,.social-pane__link-button>a:hover{color:var(--color-primary,#7c4dff)}.social-pane__link-button>a:hover{text-decoration:underline}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-media{display:contents}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location){text-align:left;justify-content:flex-start;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-primary__tabs,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-primary__tabs{margin-top:-.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-hero,.social-pane__header-hero-icon){aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-pronouns{font-size:.6875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-location,.social-pane__header-stat),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label){display:none!important}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon){justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg){width:.875rem;height:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path){fill:var(--color-text,#1a1a1a);stroke:none}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane .social-layout,.social-pane .social-primary,.social-layout,.social-primary),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-grid,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-friends-grid{display:block}:is(.social-pane-host,.social-pane)[data-input-mode=touch]{--profile-interactive-cursor:auto}:is(.social-pane-host,.social-pane)[data-input-mode=pointer]{--profile-interactive-cursor:pointer}@media (width<=600px){.social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}.social-pane__header-media{display:contents}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}.social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}.social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location{text-align:left;justify-content:flex-start;width:100%}.social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}.social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}.social-pane .social-primary__tabs{margin-top:-.5rem}.social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}.social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}.social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}.social-pane__header-hero,.social-pane__header-hero-icon{aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}.social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}.social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}.social-pane .social-friend-pronouns{font-size:.6875rem}.social-pane__header-location,.social-pane__header-stat,.social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}.social-pane__friend-action{--button-padding-sm:var(--spacing-xxxs,.2rem) var(--spacing-xxs-old,.3rem);--button-font-size-sm:var(--font-size-xs,.813rem);--button-border-radius-sm:var(--border-radius-base,.3125rem)}.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label{display:none!important}.social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon{justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{width:.875rem;height:.875rem}.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-text,#1a1a1a);stroke:none}.social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}.social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}.social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}.social-pane .social-layout,.social-pane .social-primary,.social-pane .social-friends-grid{display:block}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%;margin-bottom:var(--spacing-xs,.75rem);display:table}.social-pane .social-friends-grid>tr:last-child,.social-pane .social-friends-grid>tbody>tr:last-child{margin-bottom:0}.social-pane .social-main{width:100%}}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
|
|
2
|
-
import { locationIcon as e } from "./icons.esm.js";
|
|
3
|
-
import { createAllFriendsSection as t, createHeaderSection as n, createMutualSection as r, createRequestsSection as i } from "./socialSections.esm.js";
|
|
4
|
-
import { loadFriendshipTriage as a, triageFriends as o } from "./triage.esm.js";
|
|
5
|
-
import { icons as s, log as c, ns as l, utils as u, widgets as d } from "solid-ui";
|
|
6
|
-
import { authn as f } from "solid-logic";
|
|
7
|
-
//#region src/social/socialPane.ts
|
|
8
|
-
function ee(e, t) {
|
|
9
|
-
let n = t.environment?.layout ?? "desktop", r = t.environment?.theme ?? "light", i = t.environment?.inputMode ?? "pointer";
|
|
10
|
-
e.classList.add("social-pane-host"), e.dataset.layout = n, e.dataset.theme = r, e.dataset.inputMode = i;
|
|
11
|
-
}
|
|
12
|
-
var p = {
|
|
13
|
-
icon: s.originalIconBase + "foaf/foafTiny.gif",
|
|
14
|
-
name: "social",
|
|
15
|
-
label: function(e, t) {
|
|
16
|
-
let n = t.session.store.findTypeURIs(e);
|
|
17
|
-
return n[l.foaf("Person").uri] || n[l.vcard("Individual").uri] ? "Friends" : null;
|
|
18
|
-
},
|
|
19
|
-
global: !1,
|
|
20
|
-
render: function(s, d) {
|
|
21
|
-
let p = d.dom, te = function(e, t) {
|
|
22
|
-
let n = [];
|
|
23
|
-
for (let r = 0; r < e.length; r++) for (let i = 0; i < t.length; i++) if (t[i].sameTerm(e[r])) {
|
|
24
|
-
n.push(t[i]);
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
return n;
|
|
28
|
-
}, m = function(e) {
|
|
29
|
-
let t = /* @__PURE__ */ new Set(), n = [];
|
|
30
|
-
for (let r of e) !r?.value || t.has(r.value) || (t.add(r.value), n.push(r));
|
|
31
|
-
return n;
|
|
32
|
-
}, h = function(e, t) {
|
|
33
|
-
if (!t) return e;
|
|
34
|
-
let n = p.createElement("a");
|
|
35
|
-
return n.setAttribute("href", t), n.appendChild(e), n;
|
|
36
|
-
}, ae = function(e) {
|
|
37
|
-
return p.createTextNode(e);
|
|
38
|
-
}, _ = function() {}, oe = function(e, t, n, r = {}) {
|
|
39
|
-
let i = p.createElement("form"), a = p.createElement("label"), o = p.createElement("input"), s = p.createElement("span");
|
|
40
|
-
return s.className = "question", typeof e == "string" ? s.textContent = e : s.appendChild(e), o.setAttribute("type", "checkbox"), r.disabled && (o.disabled = !0, r.disabledTitle && (o.title = r.disabledTitle, o.setAttribute("aria-label", r.disabledTitle))), a.appendChild(s), a.appendChild(o), i.appendChild(a), o.checked = n, o.addEventListener("click", function(e) {
|
|
41
|
-
if (this.checked) try {
|
|
42
|
-
v.UserInput.sparqler.insert_statement(t, function(e, n, r) {
|
|
43
|
-
if (s.className = "question", !n) {
|
|
44
|
-
c.alert("Error occurs while inserting " + t + "\n\n" + r), o.checked = !1;
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
y.add(t.subject, t.predicate, t.object, t.why), _();
|
|
48
|
-
});
|
|
49
|
-
} catch (e) {
|
|
50
|
-
c.error("Data write fails:" + e), c.alert("Data write fails:" + e), o.checked = !1, s.className = "question";
|
|
51
|
-
}
|
|
52
|
-
else try {
|
|
53
|
-
v.UserInput.sparqler.delete_statement(t, function(e, n, r) {
|
|
54
|
-
s.className = "question", n ? (y.removeMany(t.subject, t.predicate, t.object, t.why), _()) : (c.alert("Error occurs while deleting " + t + "\n\n" + r), o.checked = !0);
|
|
55
|
-
});
|
|
56
|
-
} catch (e) {
|
|
57
|
-
c.alert("Delete fails:" + e), o.checked = !0;
|
|
58
|
-
}
|
|
59
|
-
}, !1), i;
|
|
60
|
-
}, v = d.getOutliner(p), y = d.session.store, b = p.createElement("div");
|
|
61
|
-
b.classList.add("social-pane", "flex-column", "gap-xxs"), ee(b, d);
|
|
62
|
-
let x = l.foaf, se = l.vcard, S = f.currentUser(), ce = S ? S.uri : null, C = S && y.sameThings(S, s), w = x("knows"), le = y.anyValue(s, x("givenname")) || y.anyValue(s, x("firstName")) || y.anyValue(s, x("nick")) || y.anyValue(s, x("name")) || y.anyValue(s, se("fn")), T = m(y.each(s, w)), ue = S ? m(y.each(S, x("knows"))) : [], E = S && !C ? m(te(T, ue)).filter((e) => !y.sameThings(e, S)) : [], de = S && !C ? E.length : null, D = ie(s, S), O = null, k = !1, A = !1, j = !1, fe = b.appendChild(p.createElement("div"));
|
|
63
|
-
fe.className = "social-layout";
|
|
64
|
-
let M = fe.appendChild(p.createElement("div"));
|
|
65
|
-
M.className = "social-primary";
|
|
66
|
-
let N = M.appendChild(p.createElement("div"));
|
|
67
|
-
N.classList.add("social-primary__tabs", "flex-center"), N.setAttribute("role", "tablist"), N.setAttribute("aria-label", "Social sections");
|
|
68
|
-
let P = N.appendChild(p.createElement("button"));
|
|
69
|
-
P.className = "social-primary__tab", P.type = "button", P.id = "social-tab-all-friends", P.textContent = "All Friends", P.setAttribute("role", "tab"), P.setAttribute("aria-controls", "social-panel-all-friends"), P.setAttribute("aria-selected", "true"), P.tabIndex = 0;
|
|
70
|
-
let F = N.appendChild(p.createElement("button"));
|
|
71
|
-
if (F.className = "social-primary__tab", F.type = "button", F.id = "social-tab-mutual", F.textContent = "Mutual", F.setAttribute("role", "tab"), F.setAttribute("aria-controls", "social-panel-mutual"), F.setAttribute("aria-selected", "false"), F.tabIndex = -1, S) {
|
|
72
|
-
let e = y.each(void 0, x("primaryTopic"), S), t = "";
|
|
73
|
-
for (let n = 0; n < e.length; n++) if (y.whether(e[n], l.rdf("type"), x("PersonalProfileDocument"))) {
|
|
74
|
-
let r = e[n];
|
|
75
|
-
if (k = v.UserInput.sparqler.editable(r.uri, y), !k) t += "Your profile <" + u.escapeForXML(r.uri) + "> is not remotely editable.";
|
|
76
|
-
else {
|
|
77
|
-
O = r;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (!C) {
|
|
82
|
-
let e = y.canon(S);
|
|
83
|
-
A = y.whether(s, w, e), j = !1;
|
|
84
|
-
let t = y.statementsMatching(e, w, s);
|
|
85
|
-
t.length && (j = !0, O ||= t[0].why);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
let I = (e) => e === "authenticated" && !C && !j, pe = D === "owner" && k, me = D === "authenticated" && !C && k && !!O, he = pe, L = {
|
|
89
|
-
canEdit: pe,
|
|
90
|
-
viewerMode: D,
|
|
91
|
-
showAddFriendAction: I(D)
|
|
92
|
-
}, R = n(d, s, L, {
|
|
93
|
-
friendCount: T.length,
|
|
94
|
-
mutualFriendCount: de,
|
|
95
|
-
onSelectFriends: function() {
|
|
96
|
-
Q("all-friends");
|
|
97
|
-
},
|
|
98
|
-
onSelectMutual: typeof de == "number" ? function() {
|
|
99
|
-
Q("mutual");
|
|
100
|
-
} : void 0
|
|
101
|
-
}, function() {
|
|
102
|
-
return re(d, s);
|
|
103
|
-
});
|
|
104
|
-
R.classList.add("social-pane__header-section", "flex-column"), b.prepend(R);
|
|
105
|
-
let z = /* @__PURE__ */ new Map();
|
|
106
|
-
(function(e) {
|
|
107
|
-
let t = /* @__PURE__ */ new Map();
|
|
108
|
-
e.forEach((e) => {
|
|
109
|
-
!e?.value || e.value === s.value || t.set(e.value, g(y, e));
|
|
110
|
-
}), z.clear(), t.forEach((e, t) => {
|
|
111
|
-
z.set(t, e);
|
|
112
|
-
});
|
|
113
|
-
})(T);
|
|
114
|
-
let B = function(t, n) {
|
|
115
|
-
let r = z.get(t.value) || g(y, t);
|
|
116
|
-
z.set(t.value, r);
|
|
117
|
-
let i = n.createElement("div"), a = [r.jobTitle, r.organization].filter(Boolean).join(" | ");
|
|
118
|
-
if (a) {
|
|
119
|
-
let e = i.appendChild(n.createElement("div"));
|
|
120
|
-
e.className = "social-friend-job-org", e.textContent = a;
|
|
121
|
-
}
|
|
122
|
-
if (r.location) {
|
|
123
|
-
let t = i.appendChild(n.createElement("div"));
|
|
124
|
-
t.className = "social-friend-location", t.innerHTML = `${e} ${r.location}`;
|
|
125
|
-
}
|
|
126
|
-
return i.childNodes.length ? i : null;
|
|
127
|
-
}, V = function(e, t) {
|
|
128
|
-
let n = z.get(e.value) || g(y, e);
|
|
129
|
-
z.set(e.value, n);
|
|
130
|
-
let r = n.pronouns;
|
|
131
|
-
if (!r) return null;
|
|
132
|
-
let i = t.createElement("span");
|
|
133
|
-
return i.className = "social-friend-pronouns", i.textContent = `(${r})`, i;
|
|
134
|
-
}, H = S && !C ? r({
|
|
135
|
-
dom: p,
|
|
136
|
-
subject: s,
|
|
137
|
-
familiar: le,
|
|
138
|
-
me: S,
|
|
139
|
-
meUri: ce,
|
|
140
|
-
incoming: A,
|
|
141
|
-
outgoing: j,
|
|
142
|
-
editable: me,
|
|
143
|
-
profile: O,
|
|
144
|
-
knows: w,
|
|
145
|
-
mutualConnections: E,
|
|
146
|
-
link: h,
|
|
147
|
-
text: ae,
|
|
148
|
-
buildCheckboxForm: oe,
|
|
149
|
-
renderSupportingInfo: B,
|
|
150
|
-
renderNameSuffix: V
|
|
151
|
-
}) : {
|
|
152
|
-
section: p.createElement("section"),
|
|
153
|
-
content: p.createElement("div"),
|
|
154
|
-
refreshMutualFriends: function() {}
|
|
155
|
-
}, U = H.section, W = H.content;
|
|
156
|
-
U.className || (U.className = "social-pane__mutual-friends social-primary__panel", U.id = "social-panel-mutual", U.setAttribute("role", "tabpanel"), U.setAttribute("aria-labelledby", "social-tab-mutual"), W.className = "social-main social-main--mutual", U.appendChild(W)), M.appendChild(U);
|
|
157
|
-
let ge = t({
|
|
158
|
-
dom: p,
|
|
159
|
-
subject: s,
|
|
160
|
-
profile: he ? O : null,
|
|
161
|
-
editable: he,
|
|
162
|
-
renderSupportingInfo: B,
|
|
163
|
-
renderNameSuffix: V
|
|
164
|
-
}), G = ge.section, _e = ge.friendsList;
|
|
165
|
-
M.appendChild(G);
|
|
166
|
-
let K = o(y, s), q = i({
|
|
167
|
-
dom: p,
|
|
168
|
-
triage: K,
|
|
169
|
-
renderSupportingInfo: B,
|
|
170
|
-
renderNameSuffix: V
|
|
171
|
-
}), J = q.section;
|
|
172
|
-
M.appendChild(J);
|
|
173
|
-
let Y = N.appendChild(p.createElement("button"));
|
|
174
|
-
Y.className = "social-primary__tab", Y.type = "button", Y.id = "social-tab-requests", Y.textContent = "Requests", Y.setAttribute("role", "tab"), Y.setAttribute("aria-controls", "social-panel-requests"), Y.setAttribute("aria-selected", "false"), Y.tabIndex = -1;
|
|
175
|
-
let X = "all-friends", Z = D === "owner", Q = function(e) {
|
|
176
|
-
X = e;
|
|
177
|
-
let t = e === "mutual", n = e === "all-friends", r = Z && e === "requests";
|
|
178
|
-
F.classList.toggle("social-primary__tab--active", t), F.setAttribute("aria-selected", String(t)), F.tabIndex = t ? 0 : -1, P.classList.toggle("social-primary__tab--active", n), P.setAttribute("aria-selected", String(n)), P.tabIndex = n ? 0 : -1, Y.classList.toggle("social-primary__tab--active", r), Y.setAttribute("aria-selected", String(r)), Y.tabIndex = r ? 0 : -1, U.classList.toggle("social-primary__panel--active", t), U.setAttribute("aria-hidden", String(!t)), G.classList.toggle("social-primary__panel--active", n), G.setAttribute("aria-hidden", String(!n)), J.classList.toggle("social-primary__panel--active", r), J.setAttribute("aria-hidden", String(!r)), J.hidden = !Z || !r;
|
|
179
|
-
}, ve = function() {
|
|
180
|
-
if (!S || C) return;
|
|
181
|
-
let e = y.canon(S);
|
|
182
|
-
A = y.whether(s, w, e), j = y.statementsMatching(e, w, s).length > 0;
|
|
183
|
-
let t = r({
|
|
184
|
-
dom: p,
|
|
185
|
-
subject: s,
|
|
186
|
-
familiar: le,
|
|
187
|
-
me: S,
|
|
188
|
-
meUri: ce,
|
|
189
|
-
incoming: A,
|
|
190
|
-
outgoing: j,
|
|
191
|
-
editable: me,
|
|
192
|
-
profile: O,
|
|
193
|
-
knows: w,
|
|
194
|
-
mutualConnections: E,
|
|
195
|
-
link: h,
|
|
196
|
-
text: ae,
|
|
197
|
-
buildCheckboxForm: oe,
|
|
198
|
-
renderSupportingInfo: B,
|
|
199
|
-
renderNameSuffix: V
|
|
200
|
-
});
|
|
201
|
-
U.replaceWith(t.section), H = t, U = t.section, W = t.content;
|
|
202
|
-
};
|
|
203
|
-
_ = function() {
|
|
204
|
-
ve(), L = {
|
|
205
|
-
...L,
|
|
206
|
-
showAddFriendAction: I(L.viewerMode)
|
|
207
|
-
}, R.refreshSocialHeader?.(L), K = o(y, s), q.refreshRequests(K), Q(X);
|
|
208
|
-
}, Q("all-friends");
|
|
209
|
-
let $ = function(e) {
|
|
210
|
-
let t = e === "authenticated" && !C;
|
|
211
|
-
if (Z = e === "owner", F.hidden = !t, Y.hidden = !Z, !Z && X === "requests") {
|
|
212
|
-
Q("all-friends");
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
Q("all-friends");
|
|
216
|
-
};
|
|
217
|
-
F.addEventListener("click", function() {
|
|
218
|
-
Q("mutual");
|
|
219
|
-
}), P.addEventListener("click", function() {
|
|
220
|
-
Q("all-friends");
|
|
221
|
-
}), Y.addEventListener("click", function() {
|
|
222
|
-
Q("requests");
|
|
223
|
-
});
|
|
224
|
-
let ye = function() {
|
|
225
|
-
let e = _e.refresh;
|
|
226
|
-
typeof e == "function" && e.call(_e);
|
|
227
|
-
}, be = function() {
|
|
228
|
-
H.refreshMutualFriends();
|
|
229
|
-
};
|
|
230
|
-
return (async () => {
|
|
231
|
-
try {
|
|
232
|
-
for await (let e of ne(d, s)) z.clear(), e.forEach((e) => {
|
|
233
|
-
z.set(e.url, e);
|
|
234
|
-
}), ye(), be();
|
|
235
|
-
} catch {}
|
|
236
|
-
})(), (async () => {
|
|
237
|
-
try {
|
|
238
|
-
K = await a(d, s), q.refreshRequests(K), ye(), be();
|
|
239
|
-
} catch {}
|
|
240
|
-
})(), $("anonymous"), f.checkUser().then((e) => {
|
|
241
|
-
let t = ie(s, e);
|
|
242
|
-
$(t);
|
|
243
|
-
let n = t === "owner" && k;
|
|
244
|
-
L = {
|
|
245
|
-
...L,
|
|
246
|
-
canEdit: n,
|
|
247
|
-
viewerMode: t,
|
|
248
|
-
showAddFriendAction: I(t)
|
|
249
|
-
}, R.refreshSocialHeader?.(L);
|
|
250
|
-
}).catch(() => {
|
|
251
|
-
$("anonymous"), L = {
|
|
252
|
-
...L,
|
|
253
|
-
canEdit: !1,
|
|
254
|
-
viewerMode: "anonymous",
|
|
255
|
-
showAddFriendAction: !1
|
|
256
|
-
}, R.refreshSocialHeader?.(L);
|
|
257
|
-
}), b;
|
|
258
|
-
}
|
|
259
|
-
}, te = 3;
|
|
260
|
-
function m(e, t) {
|
|
261
|
-
let n = e.anyJS(t, l.solid("preferredSubjectPronoun")) || "";
|
|
262
|
-
if (n) {
|
|
263
|
-
let r = e.anyJS(t, l.solid("preferredObjectPronoun"));
|
|
264
|
-
r && (n += "/" + r);
|
|
265
|
-
}
|
|
266
|
-
return n || "";
|
|
267
|
-
}
|
|
268
|
-
function h(e, t) {
|
|
269
|
-
return e && t ? `${t}, ${e}` : e || t || null;
|
|
270
|
-
}
|
|
271
|
-
function g(e, t) {
|
|
272
|
-
let n = e.anyValue(t, l.vcard("fn")) || e.anyValue(t, l.foaf("name")) || null, r = e.anyValue(t, l.vcard("nickname")) || e.anyValue(t, l.foaf("nick")) || null, i = e.anyValue(t, l.vcard("bday")) || null, a = d.findImage(t), o = e.anyValue(t, l.vcard("role")) || null, s = e.anyValue(t, l.vcard("organization-name")) || null, c = e.any(t, l.vcard("hasAddress")) || null, u = h(c == null ? null : e.anyValue(c, l.vcard("country-name")), c == null ? null : e.anyValue(c, l.vcard("locality"))), f = m(e, t);
|
|
273
|
-
return {
|
|
274
|
-
url: t.value,
|
|
275
|
-
imageUrl: a,
|
|
276
|
-
name: n,
|
|
277
|
-
nickname: r,
|
|
278
|
-
jobTitle: o,
|
|
279
|
-
organization: s,
|
|
280
|
-
birthdate: i,
|
|
281
|
-
location: u,
|
|
282
|
-
pronouns: f,
|
|
283
|
-
subjectNode: t
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
async function* ne(e, t, n = te) {
|
|
287
|
-
let r = e.session.store, i = r?.fetcher;
|
|
288
|
-
if (i && typeof i.load == "function") try {
|
|
289
|
-
await i.load(t.doc());
|
|
290
|
-
} catch {}
|
|
291
|
-
let a = /* @__PURE__ */ new Set(), o = r.each(t, l.foaf("knows"), null, t.doc()), s = [];
|
|
292
|
-
for (let e of o) {
|
|
293
|
-
let n = e?.value;
|
|
294
|
-
!n || a.has(n) || t.value === n || (a.add(n), s.push(e));
|
|
295
|
-
}
|
|
296
|
-
let c = [];
|
|
297
|
-
for (let e of s) {
|
|
298
|
-
if (i && typeof i.load == "function") try {
|
|
299
|
-
await i.load(e.doc());
|
|
300
|
-
} catch {}
|
|
301
|
-
c.push(g(r, e)), c.length % n === 0 && (yield [...c]);
|
|
302
|
-
}
|
|
303
|
-
c.length > 0 && c.length % n !== 0 && (yield [...c]);
|
|
304
|
-
}
|
|
305
|
-
function re(e, t) {
|
|
306
|
-
let n = e.session.store, r = n.anyValue(t, l.vcard("fn")) || n.anyValue(t, l.foaf("name")) || void 0, i = n.anyValue(t, l.vcard("nickname")) || n.anyValue(t, l.foaf("nick")) || void 0, a = n.anyValue(t, l.vcard("bday")) || void 0, o = d.findImage(t), s = n.anyValue(t, l.vcard("role")) || void 0, c = n.anyValue(t, l.vcard("organization-name")) || void 0, u = n.any(t, l.vcard("hasAddress")) || null, f = h(u == null ? void 0 : n.anyValue(u, l.vcard("country-name")), u == null ? void 0 : n.anyValue(u, l.vcard("locality"))), ee = m(n, t);
|
|
307
|
-
return {
|
|
308
|
-
url: t.value,
|
|
309
|
-
imageUrl: o,
|
|
310
|
-
name: r,
|
|
311
|
-
nickname: i,
|
|
312
|
-
jobTitle: s,
|
|
313
|
-
organization: c,
|
|
314
|
-
birthdate: a,
|
|
315
|
-
location: f,
|
|
316
|
-
pronouns: ee
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
function ie(e, t = f.currentUser()) {
|
|
320
|
-
let n = typeof t == "string" ? t : typeof t == "object" && t && (t.value || t.uri) || null, r = "anonymous";
|
|
321
|
-
return n === e.value && (r = "owner"), n && n !== e.value && (r = "authenticated"), r;
|
|
322
|
-
}
|
|
323
|
-
//#endregion
|
|
324
|
-
export { m as pronounsAsText, re as selectProfileData, p as socialPane, ne as streamFriends };
|
|
325
|
-
|
|
326
|
-
//# sourceMappingURL=socialPane2.esm.js.map
|