@vertesia/ui 0.66.0 → 0.68.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/lib/esm/core/components/Badge.js +1 -1
- package/lib/esm/core/components/Badge.js.map +1 -1
- package/lib/esm/core/components/FormItem.js +2 -2
- package/lib/esm/core/components/FormItem.js.map +1 -1
- package/lib/esm/core/components/InputList.js +2 -2
- package/lib/esm/core/components/InputList.js.map +1 -1
- package/lib/esm/core/components/shadcn/checkbox.js +1 -1
- package/lib/esm/core/components/shadcn/checkbox.js.map +1 -1
- package/lib/esm/core/components/shadcn/command.js +1 -1
- package/lib/esm/core/components/shadcn/command.js.map +1 -1
- package/lib/esm/core/components/shadcn/dialog.js +6 -6
- package/lib/esm/core/components/shadcn/dialog.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/DynamicLabel.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +129 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +46 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +23 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js +28 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js +5 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js +101 -0
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/{stringListFilter.js → filter/StringListFilter.js} +3 -3
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/{textFilter.js → filter/TextFilter.js} +4 -4
- package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +161 -0
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter-styles.js +88 -0
- package/lib/esm/core/components/shadcn/filters/filter-styles.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filterBar.js +128 -87
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filters.js +7 -6
- package/lib/esm/core/components/shadcn/filters/filters.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/index.js +1 -1
- package/lib/esm/core/components/shadcn/filters/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/types.js.map +1 -1
- package/lib/esm/core/components/toast/NotificationPanel.js +24 -18
- package/lib/esm/core/components/toast/NotificationPanel.js.map +1 -1
- package/lib/esm/features/agent/PayloadBuilder.js +47 -27
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +10 -4
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +7 -6
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +13 -2
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js +2 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +10 -4
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
- package/lib/esm/features/facets/DocumentsFacetsNav.js +133 -0
- package/lib/esm/features/facets/DocumentsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/RunsFacetsNav.js +125 -0
- package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/VFacetsNav.js +4 -113
- package/lib/esm/features/facets/VFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/VStringFacet.js +6 -4
- package/lib/esm/features/facets/VStringFacet.js.map +1 -1
- package/lib/esm/features/facets/VTypeFacet.js +4 -5
- package/lib/esm/features/facets/VTypeFacet.js.map +1 -1
- package/lib/esm/features/facets/VUserFacet.js +1 -1
- package/lib/esm/features/facets/VUserFacet.js.map +1 -1
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +98 -0
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/index.js +3 -2
- package/lib/esm/features/facets/index.js.map +1 -1
- package/lib/esm/features/store/collections/CollectionsTable.js +1 -1
- package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js +10 -9
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +10 -9
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/SelectCollection.js +1 -1
- package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js +0 -1
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +37 -2
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +5 -6
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
- package/lib/esm/features/store/objects/components/SelectDocument.js +2 -2
- package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +16 -4
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +72 -37
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +15 -0
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
- package/lib/esm/features/user/UserInfo.js +8 -8
- package/lib/esm/features/user/UserInfo.js.map +1 -1
- package/lib/esm/layout/FullHeightLayout.js +2 -4
- package/lib/esm/layout/FullHeightLayout.js.map +1 -1
- package/lib/esm/router/HistoryNavigator.js +2 -2
- package/lib/esm/router/HistoryNavigator.js.map +1 -1
- package/lib/esm/shell/SplashScreen.js +19 -0
- package/lib/esm/shell/SplashScreen.js.map +1 -0
- package/lib/esm/shell/VertesiaShell.js +10 -0
- package/lib/esm/shell/VertesiaShell.js.map +1 -0
- package/lib/esm/shell/index.js +7 -0
- package/lib/esm/shell/index.js.map +1 -0
- package/lib/esm/shell/login/EnterpriseSigninButton.js +81 -0
- package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -0
- package/lib/esm/shell/login/GitHubSignInButton.js +24 -0
- package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -0
- package/lib/esm/shell/login/GoogleSignInButton.js +25 -0
- package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -0
- package/lib/esm/shell/login/InviteAcceptModal.js +45 -0
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -0
- package/lib/esm/shell/login/MicrosoftSigninButton.js +19 -0
- package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -0
- package/lib/esm/shell/login/PreviewIcon.js +23 -0
- package/lib/esm/shell/login/PreviewIcon.js.map +1 -0
- package/lib/esm/shell/login/SignInModal.js +9 -0
- package/lib/esm/shell/login/SignInModal.js.map +1 -0
- package/lib/esm/shell/login/SigninScreen.js +64 -0
- package/lib/esm/shell/login/SigninScreen.js.map +1 -0
- package/lib/esm/shell/login/SignupForm.js +91 -0
- package/lib/esm/shell/login/SignupForm.js.map +1 -0
- package/lib/esm/shell/login/TerminalLogin.js +179 -0
- package/lib/esm/shell/login/TerminalLogin.js.map +1 -0
- package/lib/esm/shell/login/UserInfo.js +40 -0
- package/lib/esm/shell/login/UserInfo.js.map +1 -0
- package/lib/esm/shell/login/UserSessionMenu.js +31 -0
- package/lib/esm/shell/login/UserSessionMenu.js.map +1 -0
- package/lib/esm/shell/utils.js +6 -0
- package/lib/esm/shell/utils.js.map +1 -0
- package/lib/esm/widgets/SvgIcon.js +36 -0
- package/lib/esm/widgets/SvgIcon.js.map +1 -0
- package/lib/esm/widgets/index.js +7 -6
- package/lib/esm/widgets/index.js.map +1 -1
- package/lib/esm/widgets/upload/UploadSummary.js +1 -1
- package/lib/esm/widgets/upload/UploadSummary.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/FormItem.d.ts +2 -1
- package/lib/types/core/components/shadcn/dialog.d.ts +2 -1
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts +1 -1
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +8 -0
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts +4 -0
- package/lib/types/core/components/shadcn/filters/{selectFilter.d.ts → filter/SelectFilter.d.ts} +2 -2
- package/lib/types/core/components/shadcn/filters/{stringListFilter.d.ts → filter/StringListFilter.d.ts} +1 -1
- package/lib/types/core/components/shadcn/filters/{textFilter.d.ts → filter/TextFilter.d.ts} +1 -1
- package/lib/types/core/components/shadcn/filters/{dateFilter.d.ts → filter/dateFilter.d.ts} +1 -1
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +14 -4
- package/lib/types/core/components/shadcn/filters/index.d.ts +1 -1
- package/lib/types/core/components/shadcn/filters/types.d.ts +2 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts +17 -8
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +2 -1
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts +16 -0
- package/lib/types/features/facets/RunsFacetsNav.d.ts +18 -0
- package/lib/types/features/facets/VFacetsNav.d.ts +1 -1
- package/lib/types/features/facets/VStringFacet.d.ts +6 -2
- package/lib/types/features/facets/VTypeFacet.d.ts +3 -1
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +13 -0
- package/lib/types/features/facets/index.d.ts +3 -2
- package/lib/types/shell/SplashScreen.d.ts +4 -0
- package/lib/types/shell/VertesiaShell.d.ts +7 -0
- package/lib/types/shell/index.d.ts +6 -0
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts +5 -0
- package/lib/types/shell/login/GitHubSignInButton.d.ts +5 -0
- package/lib/types/shell/login/GoogleSignInButton.d.ts +5 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts +1 -0
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts +5 -0
- package/lib/types/shell/login/PreviewIcon.d.ts +5 -0
- package/lib/types/shell/login/SignInModal.d.ts +6 -0
- package/lib/types/shell/login/SigninScreen.d.ts +8 -0
- package/lib/types/shell/login/SignupForm.d.ts +7 -0
- package/lib/types/shell/login/TerminalLogin.d.ts +1 -0
- package/lib/types/shell/login/UserInfo.d.ts +5 -0
- package/lib/types/shell/login/UserSessionMenu.d.ts +8 -0
- package/lib/types/shell/utils.d.ts +1 -0
- package/lib/types/widgets/SvgIcon.d.ts +6 -0
- package/lib/types/widgets/index.d.ts +7 -6
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +1 -1
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-layout.js +1 -1
- package/lib/vertesia-ui-layout.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-shell.js +2 -0
- package/lib/vertesia-ui-shell.js.map +1 -0
- package/lib/vertesia-ui-widgets.js +1 -1
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/package.json +14 -6
- package/src/core/components/Badge.tsx +12 -8
- package/src/core/components/FormItem.tsx +4 -3
- package/src/core/components/InputList.tsx +21 -17
- package/src/core/components/shadcn/checkbox.tsx +2 -2
- package/src/core/components/shadcn/command.tsx +1 -1
- package/src/core/components/shadcn/dialog.tsx +18 -9
- package/src/core/components/shadcn/filters/DynamicLabel.tsx +1 -2
- package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +211 -0
- package/src/core/components/shadcn/filters/{comboBox.tsx → comboBox/SelectCombobox.tsx} +8 -192
- package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +76 -0
- package/src/core/components/shadcn/filters/comboBox/TextCombobox.tsx +81 -0
- package/src/core/components/shadcn/filters/comboBox/comboBox.tsx +4 -0
- package/src/core/components/shadcn/filters/filter/SelectFilter.tsx +161 -0
- package/src/core/components/shadcn/filters/{stringListFilter.tsx → filter/StringListFilter.tsx} +7 -7
- package/src/core/components/shadcn/filters/{textFilter.tsx → filter/TextFilter.tsx} +17 -11
- package/src/core/components/shadcn/filters/filter/dateFilter.tsx +256 -0
- package/src/core/components/shadcn/filters/filter-styles.ts +87 -0
- package/src/core/components/shadcn/filters/filterBar.tsx +208 -152
- package/src/core/components/shadcn/filters/filters.tsx +7 -5
- package/src/core/components/shadcn/filters/index.ts +1 -1
- package/src/core/components/shadcn/filters/types.ts +2 -0
- package/src/core/components/toast/NotificationPanel.tsx +38 -22
- package/src/features/agent/PayloadBuilder.tsx +56 -31
- package/src/features/agent/chat/ModernAgentConversation.tsx +645 -639
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +7 -6
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +13 -2
- package/src/features/agent/chat/ModernAgentOutput/SlidingMessages.tsx +2 -1
- package/src/features/agent/chat/ModernAgentOutput/utils.ts +12 -4
- package/src/features/facets/DocumentsFacetsNav.tsx +171 -0
- package/src/features/facets/RunsFacetsNav.tsx +166 -0
- package/src/features/facets/VFacetsNav.tsx +10 -126
- package/src/features/facets/VStringFacet.tsx +10 -4
- package/src/features/facets/VTypeFacet.tsx +6 -5
- package/src/features/facets/VUserFacet.tsx +5 -3
- package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +132 -0
- package/src/features/facets/index.ts +5 -2
- package/src/features/store/collections/CollectionsTable.tsx +3 -2
- package/src/features/store/collections/CreateCollection.tsx +17 -15
- package/src/features/store/collections/EditCollectionView.tsx +19 -16
- package/src/features/store/collections/SelectCollection.tsx +1 -1
- package/src/features/store/objects/DocumentPreviewPanel.tsx +0 -1
- package/src/features/store/objects/DocumentSearchResults.tsx +80 -11
- package/src/features/store/objects/components/ContentOverview.tsx +7 -7
- package/src/features/store/objects/components/SelectDocument.tsx +2 -2
- package/src/features/store/objects/components/VectorSearchWidget.tsx +2 -2
- package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +40 -19
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +160 -214
- package/src/features/store/types/ObjectSchemaEditor.tsx +15 -0
- package/src/features/user/UserInfo.tsx +17 -14
- package/src/layout/FullHeightLayout.tsx +2 -2
- package/src/router/HistoryNavigator.ts +2 -2
- package/src/shell/SplashScreen.tsx +41 -0
- package/src/shell/VertesiaShell.tsx +27 -0
- package/src/shell/index.tsx +6 -0
- package/src/shell/login/EnterpriseSigninButton.tsx +106 -0
- package/src/shell/login/GitHubSignInButton.tsx +40 -0
- package/src/shell/login/GoogleSignInButton.tsx +36 -0
- package/src/shell/login/InviteAcceptModal.tsx +78 -0
- package/src/shell/login/MicrosoftSigninButton.tsx +30 -0
- package/src/shell/login/PreviewIcon.tsx +29 -0
- package/src/shell/login/SignInModal.tsx +28 -0
- package/src/shell/login/SigninScreen.tsx +162 -0
- package/src/shell/login/SignupForm.tsx +178 -0
- package/src/shell/login/TerminalLogin.tsx +299 -0
- package/src/shell/login/UserInfo.tsx +76 -0
- package/src/shell/login/UserSessionMenu.tsx +81 -0
- package/src/shell/utils.tsx +7 -0
- package/src/widgets/SvgIcon.tsx +44 -0
- package/src/widgets/index.ts +7 -6
- package/src/widgets/upload/UploadSummary.tsx +3 -4
- package/lib/esm/core/components/shadcn/filters/comboBox.js +0 -101
- package/lib/esm/core/components/shadcn/filters/comboBox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/dateFilter.js +0 -36
- package/lib/esm/core/components/shadcn/filters/dateFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/selectFilter.js +0 -67
- package/lib/esm/core/components/shadcn/filters/selectFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/stringListFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/textFilter.js.map +0 -1
- package/lib/esm/features/facets/InteractionFacet.js +0 -39
- package/lib/esm/features/facets/InteractionFacet.js.map +0 -1
- package/lib/esm/features/facets/TypeOptions.js +0 -19
- package/lib/esm/features/facets/TypeOptions.js.map +0 -1
- package/lib/esm/features/facets/UserFacet.js +0 -33
- package/lib/esm/features/facets/UserFacet.js.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox.d.ts +0 -22
- package/lib/types/features/facets/InteractionFacet.d.ts +0 -9
- package/lib/types/features/facets/TypeOptions.d.ts +0 -3
- package/lib/types/features/facets/UserFacet.d.ts +0 -11
- package/src/core/components/shadcn/filters/dateFilter.tsx +0 -82
- package/src/core/components/shadcn/filters/selectFilter.tsx +0 -110
- package/src/features/facets/InteractionFacet.tsx +0 -53
- package/src/features/facets/TypeOptions.tsx +0 -22
- package/src/features/facets/UserFacet.tsx +0 -61
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { getTenantIdFromProject } from "@vertesia/common";
|
|
2
|
+
import { VTabs, VTabsBar, VTabsPanel, VTooltip } from "@vertesia/ui/core";
|
|
3
|
+
import { Env } from "@vertesia/ui/env";
|
|
4
|
+
import { useUserSession } from "@vertesia/ui/session";
|
|
5
|
+
import { Check, CopyIcon } from "lucide-react";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
|
|
8
|
+
export function InfoItems({ title, value }: { title: string, value: string }) {
|
|
9
|
+
function copyToClipboard(value: string) {
|
|
10
|
+
navigator.clipboard.writeText(value);
|
|
11
|
+
setIsCopied(true);
|
|
12
|
+
setTimeout(() => setIsCopied(false), 2000);
|
|
13
|
+
}
|
|
14
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
15
|
+
return (
|
|
16
|
+
<div className="w-full flex justify-between items-center mb-1">
|
|
17
|
+
<div className="flex flex-col w-[calc(100%-3rem)]">
|
|
18
|
+
<div className='text-sm px-2 dark:text-slate-200'>{title}</div>
|
|
19
|
+
<VTooltip description={value} size="xs" placement="left">
|
|
20
|
+
<div className='text-xs truncate text-muted w-full text-left px-2'>{value} </div>
|
|
21
|
+
</VTooltip>
|
|
22
|
+
</div>
|
|
23
|
+
{isCopied ?
|
|
24
|
+
<Check className="size-4 cursor-pointer text-success" />
|
|
25
|
+
:
|
|
26
|
+
<CopyIcon className="size-4 cursor-pointer text-gray-400 dark:text-slate-400"
|
|
27
|
+
onClick={() => copyToClipboard(value)} />
|
|
28
|
+
}
|
|
29
|
+
</div>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default function InfoList() {
|
|
34
|
+
|
|
35
|
+
const session = useUserSession();
|
|
36
|
+
const { account, project, client, authToken } = session;
|
|
37
|
+
const server = new URL(client.baseUrl).hostname;
|
|
38
|
+
const store = new URL(client.store.baseUrl).hostname;
|
|
39
|
+
const tenantId = project ? getTenantIdFromProject(project) : '';
|
|
40
|
+
|
|
41
|
+
const tabs = [
|
|
42
|
+
{
|
|
43
|
+
name: 'user',
|
|
44
|
+
label: 'User',
|
|
45
|
+
content:
|
|
46
|
+
<div className="space-y-1 p-2">
|
|
47
|
+
<InfoItems title="Organization ID" value={account?.id ?? 'Unknown'} />
|
|
48
|
+
<InfoItems title="Project ID" value={project?.id ?? 'Unknown'} />
|
|
49
|
+
<InfoItems title="User ID" value={authToken?.sub ?? 'Unknown'} />
|
|
50
|
+
<InfoItems title="Organization Roles" value={authToken?.account_roles?.join(',') ?? 'Unknown'} />
|
|
51
|
+
<InfoItems title="Project Roles" value={authToken?.project_roles?.join(',') ?? 'Unknown'} />
|
|
52
|
+
</div>
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'environment',
|
|
56
|
+
label: 'Environment',
|
|
57
|
+
content:
|
|
58
|
+
<div className="space-y-1 p-2">
|
|
59
|
+
<InfoItems title="Tenant ID" value={tenantId} />
|
|
60
|
+
<InfoItems title="Environment" value={Env.type} />
|
|
61
|
+
<InfoItems title="Server" value={server} />
|
|
62
|
+
<InfoItems title="Store" value={store} />
|
|
63
|
+
<InfoItems title="App Version" value={Env.version} />
|
|
64
|
+
</div>
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<div className="w-full">
|
|
70
|
+
<VTabs defaultValue="user" tabs={tabs} fullWidth>
|
|
71
|
+
<VTabsBar />
|
|
72
|
+
<VTabsPanel />
|
|
73
|
+
</VTabs>
|
|
74
|
+
</div>
|
|
75
|
+
)
|
|
76
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { AuthTokenPayload } from "@vertesia/common";
|
|
2
|
+
import { Avatar, Button, MenuList, ModeToggle, Spinner } from "@vertesia/ui/core";
|
|
3
|
+
import { useUserSession } from "@vertesia/ui/session";
|
|
4
|
+
import { Popover } from "@vertesia/ui/widgets";
|
|
5
|
+
import clsx from "clsx";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
import SignInModal from "./SignInModal";
|
|
8
|
+
import InfoList from "./UserInfo";
|
|
9
|
+
interface UserSessionMenuProps {
|
|
10
|
+
name?: string
|
|
11
|
+
picture?: string;
|
|
12
|
+
user?: AuthTokenPayload;
|
|
13
|
+
}
|
|
14
|
+
export function UserSessionMenu({ }: UserSessionMenuProps) {
|
|
15
|
+
const { user, isLoading } = useUserSession();
|
|
16
|
+
const [showModal, setShowModal] = useState(false)
|
|
17
|
+
|
|
18
|
+
if (isLoading) {
|
|
19
|
+
return <Spinner />
|
|
20
|
+
} else if (!user) {
|
|
21
|
+
return <>
|
|
22
|
+
<Button onClick={() => setShowModal(true)}>Sign In</Button>
|
|
23
|
+
<SignInModal isOpen={showModal} onClose={() => setShowModal(false)} />
|
|
24
|
+
</>
|
|
25
|
+
} else {
|
|
26
|
+
return (
|
|
27
|
+
|
|
28
|
+
<div className="px-3">
|
|
29
|
+
<UserSessionPopup asMenuTrigger />
|
|
30
|
+
</div>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
interface UserSessionPopupProps {
|
|
36
|
+
asMenuTrigger?: boolean
|
|
37
|
+
className?: string
|
|
38
|
+
}
|
|
39
|
+
function UserSessionPopup({ className, asMenuTrigger = false }: UserSessionPopupProps) {
|
|
40
|
+
const session = useUserSession();
|
|
41
|
+
const { user } = session;
|
|
42
|
+
if (!session || !user) return null;
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<Popover strategy='fixed' placement='bottom-start' zIndex={100}>
|
|
46
|
+
<Popover.Trigger click>
|
|
47
|
+
<div className={clsx(className, "flex items-center justify-start", asMenuTrigger && "cursor-pointer")}>
|
|
48
|
+
<Avatar
|
|
49
|
+
size='sm'
|
|
50
|
+
color='bg-amber-500'
|
|
51
|
+
shape='circle'
|
|
52
|
+
/*src={picture} */
|
|
53
|
+
name={user?.name} />
|
|
54
|
+
</div>
|
|
55
|
+
</Popover.Trigger>
|
|
56
|
+
<Popover.Content className="w-[280px] mx-2 my-1">
|
|
57
|
+
<div className="bg-white dark:bg-slate-900 shadow-lg rounded-md ring-1 ring-gray-200 dark:ring-slate-700">
|
|
58
|
+
<div className='divide-y divide-gray-200 dark:divide-slate-700'>
|
|
59
|
+
<div className='py-2 pl-2'>
|
|
60
|
+
<p className="px-4 dark:text-white mb-1">{user?.name ?? 'Unknown'}</p>
|
|
61
|
+
<p className="px-4 text-xs text-gray-500">{user?.email ?? ''}</p>
|
|
62
|
+
</div>
|
|
63
|
+
<div className="w-full p-1" >
|
|
64
|
+
<InfoList />
|
|
65
|
+
</div>
|
|
66
|
+
<div className='py-2 pl-2'>
|
|
67
|
+
<ModeToggle />
|
|
68
|
+
</div>
|
|
69
|
+
<div className='py-2'>
|
|
70
|
+
<MenuList>
|
|
71
|
+
<MenuList.Item className='px-2' onClick={() => session.logout()}>
|
|
72
|
+
Sign out
|
|
73
|
+
</MenuList.Item>
|
|
74
|
+
</MenuList>
|
|
75
|
+
</div>
|
|
76
|
+
</div >
|
|
77
|
+
</div >
|
|
78
|
+
</Popover.Content>
|
|
79
|
+
</Popover>
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
|
|
3
|
+
interface SvgIconProps extends React.SVGProps<SVGSVGElement> {
|
|
4
|
+
content: string; // the SVG content as a string
|
|
5
|
+
}
|
|
6
|
+
export function SvgIcon({ content, ...props }: SvgIconProps) {
|
|
7
|
+
const containerRef = useRef<HTMLSpanElement>(null);
|
|
8
|
+
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!containerRef.current) return;
|
|
11
|
+
|
|
12
|
+
// Parse the SVG string
|
|
13
|
+
const parser = new DOMParser();
|
|
14
|
+
const doc = parser.parseFromString(content, 'image/svg+xml');
|
|
15
|
+
const svgEl = doc.querySelector('svg');
|
|
16
|
+
|
|
17
|
+
if (!svgEl) {
|
|
18
|
+
console.warn('SvgIcon: No <svg> element found in provided string');
|
|
19
|
+
containerRef.current.innerHTML = '';
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Apply all passed props to the SVG element
|
|
24
|
+
props && Object.entries(props).forEach(([key, value]) => {
|
|
25
|
+
if (value == null) return;
|
|
26
|
+
|
|
27
|
+
const attrName = key === 'className' ? 'class' : key;
|
|
28
|
+
svgEl.setAttribute(attrName, String(value));
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// Clear and append the new SVG
|
|
32
|
+
containerRef.current.innerHTML = '';
|
|
33
|
+
containerRef.current.appendChild(svgEl);
|
|
34
|
+
}, [content, props]);
|
|
35
|
+
|
|
36
|
+
return <span ref={containerRef} />;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function createSvgIcon(content: string): React.ComponentType<React.HTMLAttributes<SVGElement>> {
|
|
40
|
+
const IconComponent: React.FC<React.HTMLAttributes<SVGElement>> = (props) => {
|
|
41
|
+
return <SvgIcon content={content} {...props} />;
|
|
42
|
+
};
|
|
43
|
+
return IconComponent;
|
|
44
|
+
}
|
package/src/widgets/index.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export * from "./xml-viewer/index.js";
|
|
2
|
-
export * from "./json-view/index.js";
|
|
3
|
-
export * from "./schema-editor/index.js";
|
|
4
|
-
export * from "./form/index.js";
|
|
5
1
|
export * from "./codemirror/index.js";
|
|
6
|
-
export * from "./
|
|
2
|
+
export * from "./form/index.js";
|
|
3
|
+
export * from "./json-view/index.js";
|
|
7
4
|
export * from "./popover/index.js";
|
|
5
|
+
export * from "./Progress.js";
|
|
6
|
+
export * from "./properties/index.js";
|
|
7
|
+
export * from "./schema-editor/index.js";
|
|
8
|
+
export * from "./SvgIcon.js";
|
|
8
9
|
export * from "./upload/index.js";
|
|
9
|
-
export * from "./
|
|
10
|
+
export * from "./xml-viewer/index.js";
|
|
@@ -54,13 +54,12 @@ export function UploadSummary({ files, className = "", location, collection }: U
|
|
|
54
54
|
const totalCount = files.length;
|
|
55
55
|
|
|
56
56
|
return (
|
|
57
|
-
<div className={`flex flex-col py-
|
|
57
|
+
<div className={`flex flex-col py-2 ${className}`}>
|
|
58
58
|
<div className="flex items-center mb-4">
|
|
59
|
-
<div className="
|
|
60
|
-
<CheckCircleIcon className="
|
|
59
|
+
<div className="size-8 mr-4 rounded-full bg-success/10 flex items-center justify-center">
|
|
60
|
+
<CheckCircleIcon className="size-4 text-success" />
|
|
61
61
|
</div>
|
|
62
62
|
<div>
|
|
63
|
-
<p className="text-lg font-medium text-color-success">Upload Complete</p>
|
|
64
63
|
<p className="text-muted">
|
|
65
64
|
{totalCount} file{totalCount !== 1 ? "s" : ""} processed
|
|
66
65
|
{collection ? ` in collection '${collection}'` : ""}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useRef, useState } from "react";
|
|
3
|
-
// import { AnimatePresence, motion } from "motion/react";
|
|
4
|
-
import dayjs from "dayjs";
|
|
5
|
-
import { Calendar } from "../calendar";
|
|
6
|
-
import { Button } from "../button";
|
|
7
|
-
import { Checkbox } from "../checkbox";
|
|
8
|
-
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "../command";
|
|
9
|
-
import { Input } from "../input";
|
|
10
|
-
import { Popover, PopoverContent, PopoverTrigger } from "../popover";
|
|
11
|
-
import { AnimateChangeInHeight } from "./animateChangeInHeight";
|
|
12
|
-
import { DynamicLabel } from "./DynamicLabel";
|
|
13
|
-
import { InputList } from "../../index";
|
|
14
|
-
export const SelectionCombobox = ({ filterType, filterValues, setFilterValues, options, labelRenderer, }) => {
|
|
15
|
-
const [open, setOpen] = useState(false);
|
|
16
|
-
const [commandInput, setCommandInput] = useState("");
|
|
17
|
-
const commandInputRef = useRef(null);
|
|
18
|
-
const nonSelectedFilterValues = options?.filter((option) => !filterValues.some(filter => filter.value === option.value));
|
|
19
|
-
return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {
|
|
20
|
-
setOpen(open);
|
|
21
|
-
if (!open) {
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
setCommandInput("");
|
|
24
|
-
}, 200);
|
|
25
|
-
}
|
|
26
|
-
}, children: [_jsx(PopoverTrigger, { className: "rounded-none p-1 h-8 bg-muted hover:bg-muted/50 transition text-muted hover:text-primary shrink-0", children: _jsx("div", { className: "flex gap-1.5 items-center", children: filterValues?.length === 1 ? ((() => {
|
|
27
|
-
const option = filterValues[0];
|
|
28
|
-
return (_jsx(DynamicLabel, { value: option.value || '', labelRenderer: labelRenderer, fallbackLabel: option.label }));
|
|
29
|
-
})()) : (`${filterValues?.length} selected`) }) }), _jsx(PopoverContent, { className: "w-[300px] p-0", children: _jsx(AnimateChangeInHeight, { children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: filterType, className: "h-9", value: commandInput, onInputCapture: (e) => {
|
|
30
|
-
setCommandInput(e.currentTarget.value);
|
|
31
|
-
}, ref: commandInputRef }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No results found." }), _jsx(CommandGroup, { children: filterValues.map((value) => {
|
|
32
|
-
return (_jsxs(CommandItem, { className: "group flex gap-2 items-center", onSelect: () => {
|
|
33
|
-
setFilterValues(filterValues.filter((v) => v.value !== value.value));
|
|
34
|
-
setTimeout(() => {
|
|
35
|
-
setCommandInput("");
|
|
36
|
-
}, 200);
|
|
37
|
-
setOpen(false);
|
|
38
|
-
}, children: [_jsx(Checkbox, { checked: true }), _jsx(DynamicLabel, { value: value.value || '', labelRenderer: labelRenderer, fallbackLabel: value.label })] }, value.value));
|
|
39
|
-
}) }), nonSelectedFilterValues?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(CommandSeparator, {}), _jsx(CommandGroup, { children: nonSelectedFilterValues
|
|
40
|
-
.filter(option => String(option.label || option.value).toLowerCase().includes(commandInput.toLowerCase()))
|
|
41
|
-
.map((filter) => (_jsxs(CommandItem, { className: "group flex gap-2 items-center", value: String(filter.label || filter.value), onSelect: () => {
|
|
42
|
-
setFilterValues([...filterValues, {
|
|
43
|
-
value: filter.value,
|
|
44
|
-
label: filter.label
|
|
45
|
-
}]);
|
|
46
|
-
setTimeout(() => {
|
|
47
|
-
setCommandInput("");
|
|
48
|
-
}, 200);
|
|
49
|
-
setOpen(false);
|
|
50
|
-
}, children: [_jsx(Checkbox, { checked: false, className: "opacity-0 group-data-[selected=true]:opacity-100" }), _jsx("span", { className: "text-muted", children: _jsx(DynamicLabel, { value: filter.value || '', labelRenderer: filter.labelRenderer || labelRenderer, fallbackLabel: filter.label }) })] }, filter.value))) })] }))] })] }) }) })] }));
|
|
51
|
-
};
|
|
52
|
-
export const DateCombobox = ({ filterValues, setFilterValues, }) => {
|
|
53
|
-
const [open, setOpen] = useState(false);
|
|
54
|
-
const selectedDate = filterValues[0] ? new Date(filterValues[0]) : undefined;
|
|
55
|
-
return (_jsxs(Popover, { _open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { className: "rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition", children: _jsx("div", { className: "flex gap-1.5 items-center", children: selectedDate ? (dayjs(selectedDate).format("MMM D, YYYY")) : (_jsx("span", { children: "Pick a date" })) }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: _jsx(Calendar, { className: "p-0", value: selectedDate, onChange: (date) => {
|
|
56
|
-
if (date) {
|
|
57
|
-
const actualDate = Array.isArray(date) ? date[0] : date;
|
|
58
|
-
if (actualDate) {
|
|
59
|
-
setFilterValues([dayjs(actualDate).format("YYYY-MM-DD")]);
|
|
60
|
-
setOpen(false);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
} }) })] }));
|
|
64
|
-
};
|
|
65
|
-
export const TextCombobox = ({ filterType, filterValue, setFilterValue, }) => {
|
|
66
|
-
const [open, setOpen] = useState(false);
|
|
67
|
-
const [inputValue, setInputValue] = useState(filterValue);
|
|
68
|
-
const handleKeyDown = (event) => {
|
|
69
|
-
if (event.key === "Enter") {
|
|
70
|
-
setFilterValue(inputValue);
|
|
71
|
-
setOpen(false);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {
|
|
75
|
-
setOpen(open);
|
|
76
|
-
if (!open && inputValue !== filterValue) {
|
|
77
|
-
setInputValue(filterValue);
|
|
78
|
-
}
|
|
79
|
-
}, children: [_jsx(PopoverTrigger, { className: "rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition", children: _jsx("div", { className: "flex gap-1.5 items-center", children: filterValue || "Enter text..." }) }), _jsx(PopoverContent, { className: "w-[300px] p-3", children: _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("div", { className: "flex items-center p-1.5 text-xs text-muted", children: _jsx("span", { children: filterType }) }), _jsx(Input, { autoFocus: true, type: "text", size: "sm", value: inputValue, onChange: setInputValue, onKeyDown: handleKeyDown, placeholder: "Enter text..." }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => {
|
|
80
|
-
setFilterValue(inputValue);
|
|
81
|
-
setOpen(false);
|
|
82
|
-
}, children: "Apply" })] }) })] }));
|
|
83
|
-
};
|
|
84
|
-
export const StringListCombobox = ({ filterType, filterValues, setFilterValues, }) => {
|
|
85
|
-
const [open, setOpen] = useState(false);
|
|
86
|
-
const [tags, setTags] = useState(filterValues);
|
|
87
|
-
const handleApply = () => {
|
|
88
|
-
setFilterValues(tags);
|
|
89
|
-
setOpen(false);
|
|
90
|
-
};
|
|
91
|
-
return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {
|
|
92
|
-
setOpen(open);
|
|
93
|
-
if (!open && JSON.stringify(tags) !== JSON.stringify(filterValues)) {
|
|
94
|
-
setTags(filterValues);
|
|
95
|
-
}
|
|
96
|
-
}, children: [_jsx(PopoverTrigger, { className: "rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition", children: _jsx("div", { className: "flex gap-1.5 items-center", children: filterValues.length > 0 ? (filterValues.length === 1 ? filterValues[0] : `${filterValues.length} tags`) : ("Add tags...") }) }), _jsx(PopoverContent, { className: "w-[300px] p-3", children: _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("div", { className: "flex items-center p-1.5 text-xs text-muted", children: _jsx("span", { children: filterType }) }), _jsx(InputList, { value: tags, onChange: setTags, placeholder: `Add ${filterType.toLowerCase()}...` }), _jsxs("div", { className: "flex gap-2 justify-end", children: [_jsx(Button, { size: "sm", variant: "ghost", onClick: () => {
|
|
97
|
-
setTags(filterValues);
|
|
98
|
-
setOpen(false);
|
|
99
|
-
}, children: "Cancel" }), _jsx(Button, { size: "sm", onClick: handleApply, children: "Apply" })] })] }) })] }));
|
|
100
|
-
};
|
|
101
|
-
//# sourceMappingURL=comboBox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comboBox.js","sourceRoot":"","sources":["../../../../../../src/core/components/shadcn/filters/comboBox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import dayjs from "dayjs";
|
|
3
|
-
import { useState } from "react";
|
|
4
|
-
import DatePicker from "react-date-picker";
|
|
5
|
-
import { Popover, PopoverContent, PopoverTrigger } from "../popover";
|
|
6
|
-
export default function DateFilter({ selectedView, selectedDate, setSelectedDate, setFilters, filters, handleClose, filterGroups, }) {
|
|
7
|
-
const [open, setOpen] = useState(true);
|
|
8
|
-
const handleDateChange = (value) => {
|
|
9
|
-
const date = Array.isArray(value) ? value[0] : value;
|
|
10
|
-
setSelectedDate(date || undefined);
|
|
11
|
-
if (date) {
|
|
12
|
-
const selectedGroup = filterGroups.find(g => g.name === selectedView);
|
|
13
|
-
// Set date to start of day (00:00)
|
|
14
|
-
const selectedDateStart = new Date(date);
|
|
15
|
-
selectedDateStart.setHours(0, 0, 0, 0);
|
|
16
|
-
setFilters([
|
|
17
|
-
...filters,
|
|
18
|
-
{
|
|
19
|
-
name: selectedView || "",
|
|
20
|
-
placeholder: selectedGroup?.placeholder,
|
|
21
|
-
value: [
|
|
22
|
-
{
|
|
23
|
-
value: selectedDateStart.toISOString(),
|
|
24
|
-
label: dayjs(selectedDateStart).format("LLL dd, y"),
|
|
25
|
-
}
|
|
26
|
-
],
|
|
27
|
-
type: selectedGroup?.type || "date",
|
|
28
|
-
},
|
|
29
|
-
]);
|
|
30
|
-
setOpen(false);
|
|
31
|
-
handleClose();
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
return (_jsxs(Popover, { _open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { className: "w-full p-2 text-left hover:bg-muted/50 rounded-sm", children: _jsx("div", { className: "flex gap-1.5 items-center", children: selectedDate ? (dayjs(selectedDate).format("MMM D, YYYY")) : (_jsx("span", { children: "Pick a date" })) }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: _jsx(DatePicker, { value: selectedDate, onChange: handleDateChange, calendarIcon: false, className: "p-2" }) })] }));
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=dateFilter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dateFilter.js","sourceRoot":"","sources":["../../../../../../src/core/components/shadcn/filters/dateFilter.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAgBrE,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,GACI;IAChB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,eAAe,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YAEtE,mCAAmC;YACnC,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEvC,UAAU,CAAC;gBACT,GAAG,OAAO;gBACV;oBACE,IAAI,EAAE,YAAY,IAAI,EAAE;oBACxB,WAAW,EAAE,aAAa,EAAE,WAAW;oBACvC,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EAAE;4BACtC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;yBACpD;qBACF;oBACD,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,MAAM;iBAC1B;aACZ,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,OAAO,IAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aACzC,KAAC,cAAc,IAAC,SAAS,EAAC,mDAAmD,YAC3E,cAAK,SAAS,EAAC,2BAA2B,YACvC,YAAY,CAAC,CAAC,CAAC,CACd,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAC1C,CAAC,CAAC,CAAC,CACF,yCAAwB,CACzB,GACG,GACS,EACjB,KAAC,cAAc,IAAC,SAAS,EAAC,YAAY,EAAC,KAAK,EAAC,OAAO,YAClD,KAAC,UAAU,IACT,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,KAAK,EACnB,SAAS,EAAC,KAAK,GACf,GACa,IACT,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { CommandItem, CommandEmpty } from "../command";
|
|
3
|
-
import { DynamicLabel } from "./DynamicLabel";
|
|
4
|
-
export default function SelectFilter({ selectedView, commandInput, setFilters, handleClose, filterGroups, }) {
|
|
5
|
-
const getFilteredOptions = (groupName) => {
|
|
6
|
-
const group = filterGroups.find(g => g.name === groupName);
|
|
7
|
-
if (!group)
|
|
8
|
-
return [];
|
|
9
|
-
let filteredOptions = group.options || [];
|
|
10
|
-
if (!commandInput.trim()) {
|
|
11
|
-
return filteredOptions;
|
|
12
|
-
}
|
|
13
|
-
if (group.filterBy) {
|
|
14
|
-
const filterLc = commandInput.toLowerCase();
|
|
15
|
-
const results = filteredOptions.filter(option => {
|
|
16
|
-
if (option.value === undefined)
|
|
17
|
-
return false;
|
|
18
|
-
const result = group.filterBy(option.value, filterLc);
|
|
19
|
-
return result;
|
|
20
|
-
});
|
|
21
|
-
return results;
|
|
22
|
-
}
|
|
23
|
-
const filterLc = commandInput.toLowerCase();
|
|
24
|
-
return filteredOptions.filter(option => {
|
|
25
|
-
const optionValue = String(option.value || '').toLowerCase();
|
|
26
|
-
return optionValue.includes(filterLc);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
if (!selectedView)
|
|
30
|
-
return null;
|
|
31
|
-
const options = getFilteredOptions(selectedView);
|
|
32
|
-
if (options.length === 0) {
|
|
33
|
-
return _jsx(CommandEmpty, { children: "No matching options" });
|
|
34
|
-
}
|
|
35
|
-
const groupTitle = filterGroups.find(group => group.name === selectedView)?.placeholder || filterGroups.find(group => group.name === selectedView)?.name;
|
|
36
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex items-center p-1.5 text-xs text-muted", children: _jsx("span", { children: groupTitle }) }), options.map((option) => {
|
|
37
|
-
const selectedGroup = filterGroups.find(g => g.name === selectedView);
|
|
38
|
-
return (_jsx(CommandItem, { className: "group flex gap-2 items-center w-full hover:bg-muted", onSelect: () => {
|
|
39
|
-
setFilters((prev) => {
|
|
40
|
-
const existingFilterIndex = prev.findIndex(f => f.name === selectedView);
|
|
41
|
-
// Create filter option with value and label for storage
|
|
42
|
-
const filterOption = {
|
|
43
|
-
value: option.value,
|
|
44
|
-
label: option.label
|
|
45
|
-
};
|
|
46
|
-
if (existingFilterIndex >= 0) {
|
|
47
|
-
const updatedFilters = [...prev];
|
|
48
|
-
updatedFilters[existingFilterIndex] = {
|
|
49
|
-
...updatedFilters[existingFilterIndex],
|
|
50
|
-
value: [...updatedFilters[existingFilterIndex].value, filterOption]
|
|
51
|
-
};
|
|
52
|
-
return updatedFilters;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
return [...prev, {
|
|
56
|
-
name: selectedView || "",
|
|
57
|
-
placeholder: selectedGroup?.placeholder || "",
|
|
58
|
-
value: [filterOption],
|
|
59
|
-
type: selectedGroup?.type || "select",
|
|
60
|
-
}];
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
handleClose();
|
|
64
|
-
}, children: _jsx(DynamicLabel, { value: option.value || '', labelRenderer: option.labelRenderer || selectedGroup?.labelRenderer, fallbackLabel: option.label }) }, option.value || `option-${Math.random()}`));
|
|
65
|
-
})] }));
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=selectFilter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectFilter.js","sourceRoot":"","sources":["../../../../../../src/core/components/shadcn/filters/selectFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringListFilter.js","sourceRoot":"","sources":["../../../../../../src/core/components/shadcn/filters/stringListFilter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA4B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAUnC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,GACU;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAE/C,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;gBAC5C;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,aAAa,EAAE,WAAW;oBACvC,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,YAAqB;iBAC5B;aACF,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,SAAS,IACR,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,OAAO,YAAY,KAAK,EACnE,SAAS,SACT,GACE,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,uBAE7C,EACT,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,sBAE1D,IACL,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textFilter.js","sourceRoot":"","sources":["../../../../../../src/core/components/shadcn/filters/textFilter.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAYjC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,GACI;IAChB,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,UAAU,CAAC,CAAC,IAAc,EAAE,EAAE;YAC5B,OAAO;gBACL,GAAG,IAAI;gBACP;oBACE,IAAI,EAAE,YAAY,IAAI,EAAE;oBACxB,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,WAAW;oBACjF,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBAC/C,IAAI,EAAE,MAAM;iBACb;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,4CAA4C,YACzD,yBAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,WAAW,GAAQ,GAC/E,EACN,KAAC,KAAK,IACJ,SAAS,QACT,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,mBAAmB,EAAE,EAC5D,WAAW,EAAC,eAAe,GAC3B,EACF,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,sBAGpB,IACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
3
|
-
import { SelectBox } from '@vertesia/ui/core';
|
|
4
|
-
import { useUserSession } from '@vertesia/ui/session';
|
|
5
|
-
import { facetOptionNameLabel } from './utils';
|
|
6
|
-
export function InteractionFacet({ search, buckets, placeholder = "All Interactions", className }) {
|
|
7
|
-
const { client } = useUserSession();
|
|
8
|
-
const [options, setOptions] = useState([]);
|
|
9
|
-
const filterValue = search.getFilterValue("interaction");
|
|
10
|
-
const onChange = (option) => {
|
|
11
|
-
search.setFilterValue("interaction", option?._id);
|
|
12
|
-
};
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (client) {
|
|
15
|
-
const options = buckets.map(async (bucket) => {
|
|
16
|
-
let name;
|
|
17
|
-
await client.interactions.retrieve(bucket._id).then((interaction) => {
|
|
18
|
-
name = interaction.name;
|
|
19
|
-
}).catch(() => {
|
|
20
|
-
name = `${bucket._id} (deleted)`;
|
|
21
|
-
});
|
|
22
|
-
if (!name) {
|
|
23
|
-
name = bucket._id;
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
...bucket,
|
|
27
|
-
name
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
Promise.all(options).then(resolvedOptions => {
|
|
31
|
-
resolvedOptions.sort((a, b) => a.name.localeCompare(b.name));
|
|
32
|
-
setOptions(resolvedOptions);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}, [buckets, client]);
|
|
36
|
-
const value = options?.find((option) => option._id === filterValue);
|
|
37
|
-
return (_jsx(SelectBox, { filterBy: "name", className: className, isClearable: true, optionLabel: facetOptionNameLabel, options: options, value: value, onChange: onChange, by: '_id', placeholder: placeholder }));
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=InteractionFacet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionFacet.js","sourceRoot":"","sources":["../../../../src/features/facets/InteractionFacet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAQ/C,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,kBAAkB,EAAE,SAAS,EAAyB;IACpH,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAEpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAW,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,MAA+B,EAAE,EAAE;QACjD,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC;gBACT,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;oBAChE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACV,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC;gBACrC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;gBACtB,CAAC;gBACD,OAAO;oBACH,GAAG,MAAM;oBACT,IAAI;iBACP,CAAA;YACL,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBACxC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,UAAU,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;IAEpE,OAAO,CACH,KAAC,SAAS,IAAC,QAAQ,EAAC,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,QAAC,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAC,KAAK,EAAC,WAAW,EAAE,WAAW,GAAI,CAC5L,CAAA;AACL,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { useUserSession } from "@vertesia/ui/session";
|
|
2
|
-
export function TypeOptionLabel(buckets) {
|
|
3
|
-
const { typeRegistry } = useUserSession();
|
|
4
|
-
return buckets.map((bucket) => {
|
|
5
|
-
let name;
|
|
6
|
-
if (bucket._id == null) {
|
|
7
|
-
bucket._id = "Document";
|
|
8
|
-
name = "Document";
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
name = typeRegistry?.getTypeName(bucket._id) || bucket._id;
|
|
12
|
-
}
|
|
13
|
-
return {
|
|
14
|
-
name: `${name} (${bucket.count})`,
|
|
15
|
-
value: bucket._id,
|
|
16
|
-
};
|
|
17
|
-
}).sort((a, b) => a.name.localeCompare(b.name));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=TypeOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeOptions.js","sourceRoot":"","sources":["../../../../src/features/facets/TypeOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,UAAU,eAAe,CAAC,OAAsB;IAClD,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;IAE1C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC;QACT,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC;YACxB,IAAI,GAAG,UAAU,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,IAAI,EAAE,GAAG,IAAI,KAAK,MAAM,CAAC,KAAK,GAAG;YACjC,KAAK,EAAE,MAAM,CAAC,GAAG;SACpB,CAAC;IACN,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { SelectBox } from "@vertesia/ui/core";
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
4
|
-
import { UserInfo } from '../user/UserInfo';
|
|
5
|
-
export function facetOptionLabel(bucket) {
|
|
6
|
-
if (bucket._id == null) {
|
|
7
|
-
return `UnKnown User (${bucket.count})`;
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return (_jsx(UserInfo, { userRef: bucket._id, showTitle: true, size: "sm" }));
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export function UserFacet({ search, buckets, placeholder = "Filter by User", className }) {
|
|
14
|
-
const [options, setOptions] = useState([]);
|
|
15
|
-
const filterValue = search.getFilterValue("created_by");
|
|
16
|
-
const onChange = (option) => {
|
|
17
|
-
search.setFilterValue("created_by", option?._id);
|
|
18
|
-
};
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
const fetchOptions = async () => {
|
|
21
|
-
const options = await Promise.all(buckets.map(async (bucket) => {
|
|
22
|
-
return {
|
|
23
|
-
...bucket,
|
|
24
|
-
};
|
|
25
|
-
}));
|
|
26
|
-
setOptions(options);
|
|
27
|
-
};
|
|
28
|
-
fetchOptions();
|
|
29
|
-
}, [buckets]);
|
|
30
|
-
const value = options?.find((option) => option._id === filterValue);
|
|
31
|
-
return (_jsx(SelectBox, { filterBy: "name", className: className, isClearable: true, optionLabel: facetOptionLabel, options: options, value: value, onChange: onChange, by: '_id', placeholder: placeholder }));
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=UserFacet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserFacet.js","sourceRoot":"","sources":["../../../../src/features/facets/UserFacet.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAChD,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,iBAAiB,MAAM,CAAC,KAAK,GAAG,CAAC;IAC5C,CAAC;SACI,CAAC;QACF,OAAO,CACH,KAAC,QAAQ,IAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,CACjE,CAAC;IACN,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,gBAAgB,EAAE,SAAS,EAAkB;IACpG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,YAAY,CAAW,CAAC;IAElE,MAAM,QAAQ,GAAG,CAAC,MAA+B,EAAE,EAAE;QACjD,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC3D,OAAO;oBACH,GAAG,MAAM;iBACZ,CAAA;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,YAAY,EAAE,CAAC;IACnB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAGd,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;IAEpE,OAAO,CACH,KAAC,SAAS,IACN,QAAQ,EAAC,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,WAAW,QACX,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAC,KAAK,EACR,WAAW,EAAE,WAAW,GAC1B,CACL,CAAA;AACL,CAAC"}
|