@vertesia/ui 0.79.0 → 0.79.1
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/Panel.js +8 -0
- package/lib/esm/core/components/Panel.js.map +1 -0
- package/lib/esm/core/components/SelectBox.js +1 -1
- package/lib/esm/core/components/SelectBox.js.map +1 -1
- package/lib/esm/core/components/SidePanel.js +2 -2
- package/lib/esm/core/components/SidePanel.js.map +1 -1
- package/lib/esm/core/components/index.js +1 -1
- package/lib/esm/core/components/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/breadcrumb.js +29 -8
- package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -1
- package/lib/esm/core/components/shadcn/button.js +3 -2
- package/lib/esm/core/components/shadcn/button.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filterBar.js +2 -2
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
- package/lib/esm/core/components/shadcn/index.js +1 -0
- package/lib/esm/core/components/shadcn/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/input.js +4 -1
- package/lib/esm/core/components/shadcn/input.js.map +1 -1
- package/lib/esm/core/components/shadcn/resizeable.js +2 -2
- package/lib/esm/core/components/shadcn/resizeable.js.map +1 -1
- package/lib/esm/core/components/shadcn/selectBox.js +15 -9
- package/lib/esm/core/components/shadcn/selectBox.js.map +1 -1
- package/lib/esm/core/components/shadcn/tabs.js +10 -3
- package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
- package/lib/esm/core/components/shadcn/textarea.js +7 -0
- package/lib/esm/core/components/shadcn/textarea.js.map +1 -0
- package/lib/esm/core/hooks/CompositeState.js +139 -1
- package/lib/esm/core/hooks/CompositeState.js.map +1 -1
- package/lib/esm/core/hooks/index.js +1 -0
- package/lib/esm/core/hooks/index.js.map +1 -1
- package/lib/esm/core/hooks/useScrollableSearch.js +92 -0
- package/lib/esm/core/hooks/useScrollableSearch.js.map +1 -0
- package/lib/esm/env/index.js +1 -1
- package/lib/esm/env/index.js.map +1 -1
- package/lib/esm/features/agent/PayloadBuilder.js +80 -55
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +22 -24
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +2 -3
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +2 -2
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +15 -20
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +3 -3
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +6 -6
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
- package/lib/esm/features/facets/CollectionsFacetsNav.js +19 -0
- package/lib/esm/features/facets/CollectionsFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/InteractionsFacetsNav.js +9 -3
- package/lib/esm/features/facets/InteractionsFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/utils/VTypeFacet.js +4 -1
- package/lib/esm/features/facets/utils/VTypeFacet.js.map +1 -1
- package/lib/esm/features/layout/GenericPageNavHeader.js +58 -5
- package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -1
- package/lib/esm/features/store/collections/BrowseCollectionView.js +3 -0
- package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js +2 -2
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +29 -30
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/SelectCollection.js +46 -45
- package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +35 -9
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentTable.js +6 -6
- package/lib/esm/features/store/objects/DocumentTable.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +158 -114
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
- package/lib/esm/features/store/objects/components/DocumentIcon.js +5 -3
- package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +11 -2
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/useDownloadObject.js +2 -2
- package/lib/esm/features/store/objects/components/useDownloadObject.js.map +1 -1
- package/lib/esm/features/store/objects/layout/DocumentTableColumn.js +13 -1
- package/lib/esm/features/store/objects/layout/DocumentTableColumn.js.map +1 -1
- package/lib/esm/features/store/objects/layout/documentLayout.js +5 -5
- package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
- package/lib/esm/features/store/objects/layout/renderers.js +28 -12
- package/lib/esm/features/store/objects/layout/renderers.js.map +1 -1
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js +5 -1
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +1 -1
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -1
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +3 -2
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
- package/lib/esm/features/store/objects/selection/SelectionActions.js +2 -0
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +10 -2
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +20 -2
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +15 -7
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +1 -1
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
- package/lib/esm/features/user/UserInfo.js +2 -0
- package/lib/esm/features/user/UserInfo.js.map +1 -1
- package/lib/esm/router/HistoryNavigator.js +25 -2
- package/lib/esm/router/HistoryNavigator.js.map +1 -1
- package/lib/esm/router/Nav.js +3 -3
- package/lib/esm/router/Nav.js.map +1 -1
- package/lib/esm/session/UserSession.js +1 -0
- package/lib/esm/session/UserSession.js.map +1 -1
- package/lib/esm/session/UserSessionProvider.js +9 -2
- package/lib/esm/session/UserSessionProvider.js.map +1 -1
- package/lib/esm/session/auth/composable.js +66 -67
- package/lib/esm/session/auth/composable.js.map +1 -1
- package/lib/esm/widgets/form/Form.js +17 -30
- package/lib/esm/widgets/form/Form.js.map +1 -1
- package/lib/esm/widgets/form/FormContext.js +4 -2
- package/lib/esm/widgets/form/FormContext.js.map +1 -1
- package/lib/esm/widgets/form/ManagedObject.js +4 -0
- package/lib/esm/widgets/form/ManagedObject.js.map +1 -1
- package/lib/esm/widgets/form/fields.js +4 -3
- package/lib/esm/widgets/form/fields.js.map +1 -1
- package/lib/esm/widgets/form/inputs.js +2 -0
- package/lib/esm/widgets/form/inputs.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/Panel.d.ts +11 -0
- package/lib/types/core/components/Panel.d.ts.map +1 -0
- package/lib/types/core/components/SidePanel.d.ts.map +1 -1
- package/lib/types/core/components/index.d.ts +1 -1
- package/lib/types/core/components/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/breadcrumb.d.ts +3 -2
- package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/button.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/index.d.ts +1 -0
- package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/input.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/selectBox.d.ts +3 -2
- package/lib/types/core/components/shadcn/selectBox.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/textarea.d.ts +4 -0
- package/lib/types/core/components/shadcn/textarea.d.ts.map +1 -0
- package/lib/types/core/hooks/CompositeState.d.ts +115 -6
- package/lib/types/core/hooks/CompositeState.d.ts.map +1 -1
- package/lib/types/core/hooks/index.d.ts +1 -0
- package/lib/types/core/hooks/index.d.ts.map +1 -1
- package/lib/types/core/hooks/useScrollableSearch.d.ts +82 -0
- package/lib/types/core/hooks/useScrollableSearch.d.ts.map +1 -0
- package/lib/types/env/index.d.ts +3 -1
- package/lib/types/env/index.d.ts.map +1 -1
- package/lib/types/features/agent/PayloadBuilder.d.ts +11 -19
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
- package/lib/types/features/facets/CollectionsFacetsNav.d.ts.map +1 -1
- package/lib/types/features/facets/InteractionsFacetsNav.d.ts +1 -0
- package/lib/types/features/facets/InteractionsFacetsNav.d.ts.map +1 -1
- package/lib/types/features/facets/utils/SearchInterface.d.ts +6 -1
- package/lib/types/features/facets/utils/SearchInterface.d.ts.map +1 -1
- package/lib/types/features/facets/utils/VTypeFacet.d.ts +2 -1
- package/lib/types/features/facets/utils/VTypeFacet.d.ts.map +1 -1
- package/lib/types/features/layout/GenericPageNavHeader.d.ts +2 -1
- package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -1
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -1
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/collections/SelectCollection.d.ts +6 -4
- package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -1
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
- package/lib/types/features/store/objects/DocumentTable.d.ts +4 -0
- package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts +3 -1
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts +1 -1
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts.map +1 -1
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts +2 -1
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts.map +1 -1
- package/lib/types/features/store/objects/layout/documentLayout.d.ts +4 -2
- package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
- package/lib/types/features/store/objects/layout/renderers.d.ts +1 -1
- package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -1
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
- package/lib/types/features/user/UserInfo.d.ts.map +1 -1
- package/lib/types/router/HistoryNavigator.d.ts.map +1 -1
- package/lib/types/router/Nav.d.ts +2 -1
- package/lib/types/router/Nav.d.ts.map +1 -1
- package/lib/types/session/UserSession.d.ts.map +1 -1
- package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
- package/lib/types/session/auth/composable.d.ts.map +1 -1
- package/lib/types/widgets/form/Form.d.ts +2 -1
- package/lib/types/widgets/form/Form.d.ts.map +1 -1
- package/lib/types/widgets/form/FormContext.d.ts +5 -2
- package/lib/types/widgets/form/FormContext.d.ts.map +1 -1
- package/lib/types/widgets/form/ManagedObject.d.ts.map +1 -1
- package/lib/types/widgets/form/fields.d.ts +2 -2
- package/lib/types/widgets/form/fields.d.ts.map +1 -1
- package/lib/types/widgets/form/inputs.d.ts.map +1 -1
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-env.js +1 -1
- package/lib/vertesia-ui-env.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-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +1 -1
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/package.json +166 -166
- package/src/core/components/Panel.tsx +34 -0
- package/src/core/components/SidePanel.tsx +5 -3
- package/src/core/components/index.ts +1 -1
- package/src/core/components/shadcn/breadcrumb.tsx +49 -30
- package/src/core/components/shadcn/button.tsx +3 -2
- package/src/core/components/shadcn/filters/filterBar.tsx +3 -3
- package/src/core/components/shadcn/index.ts +2 -1
- package/src/core/components/shadcn/input.tsx +10 -7
- package/src/core/components/shadcn/resizeable.tsx +4 -4
- package/src/core/components/shadcn/selectBox.tsx +87 -67
- package/src/core/components/shadcn/tabs.tsx +10 -3
- package/src/core/components/shadcn/textarea.tsx +21 -0
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/useScrollableSearch.tsx +193 -0
- package/src/features/agent/chat/ModernAgentConversation.tsx +109 -118
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +2 -22
- package/src/features/agent/chat/ModernAgentOutput/Header.tsx +1 -9
- package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +39 -55
- package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +1 -0
- package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +8 -8
- package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +8 -8
- package/src/features/facets/CollectionsFacetsNav.tsx +21 -0
- package/src/features/facets/InteractionsFacetsNav.tsx +13 -3
- package/src/features/facets/utils/SearchInterface.tsx +5 -1
- package/src/features/facets/utils/VTypeFacet.tsx +6 -2
- package/src/features/layout/GenericPageNavHeader.tsx +73 -10
- package/src/features/store/collections/BrowseCollectionView.tsx +4 -0
- package/src/features/store/collections/CreateCollection.tsx +3 -4
- package/src/features/store/collections/EditCollectionView.tsx +91 -85
- package/src/features/store/collections/SelectCollection.tsx +105 -49
- package/src/features/store/objects/DocumentSearchResults.tsx +117 -51
- package/src/features/store/objects/DocumentTable.tsx +14 -4
- package/src/features/store/objects/components/ContentOverview.tsx +208 -110
- package/src/features/store/objects/components/DocumentIcon.tsx +11 -12
- package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +12 -2
- package/src/features/store/objects/layout/DocumentTableColumn.tsx +16 -1
- package/src/features/store/objects/layout/documentLayout.tsx +7 -5
- package/src/features/store/objects/layout/knowledge.md +10 -10
- package/src/features/store/objects/layout/renderers.tsx +39 -18
- package/src/features/store/objects/search/DocumentSearchContext.ts +6 -1
- package/src/features/store/objects/search/DocumentSearchProvider.tsx +1 -1
- package/src/features/store/objects/selection/ObjectsActionContext.tsx +3 -2
- package/src/features/store/objects/selection/SelectionActions.tsx +2 -0
- package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +8 -2
- package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +22 -2
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +18 -9
- package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +10 -7
- package/src/features/store/types/CreateOrUpdateTypeModal.tsx +1 -1
- package/src/router/HistoryNavigator.ts +33 -2
- package/src/router/Nav.tsx +4 -3
- package/src/widgets/form/Form.tsx +19 -43
- package/src/widgets/form/FormContext.ts +5 -2
- package/src/widgets/form/fields.tsx +8 -6
- package/src/widgets/form/inputs.tsx +1 -0
- package/lib/esm/core/components/Textarea.js +0 -15
- package/lib/esm/core/components/Textarea.js.map +0 -1
- package/lib/types/core/components/Textarea.d.ts +0 -8
- package/lib/types/core/components/Textarea.d.ts.map +0 -1
- package/src/core/components/Textarea.tsx +0 -25
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { FilterProvider, FilterBtn, FilterBar, FilterClear } from '@vertesia/ui/core';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
+
import { useUserSession } from '@vertesia/ui/session';
|
|
4
5
|
// Hook to create filter groups for collections
|
|
5
6
|
export function useCollectionsFilterGroups(facets) {
|
|
6
7
|
void facets;
|
|
8
|
+
const { typeRegistry } = useUserSession();
|
|
7
9
|
const customFilterGroups = [];
|
|
8
10
|
// Add name filter as text type
|
|
9
11
|
const nameFilterGroup = {
|
|
@@ -13,6 +15,23 @@ export function useCollectionsFilterGroups(facets) {
|
|
|
13
15
|
multiple: false
|
|
14
16
|
};
|
|
15
17
|
customFilterGroups.push(nameFilterGroup);
|
|
18
|
+
// add type filter as select type
|
|
19
|
+
if (typeRegistry) {
|
|
20
|
+
const typeOptions = typeRegistry.types.map(type => {
|
|
21
|
+
return {
|
|
22
|
+
label: type.name,
|
|
23
|
+
value: type.id
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
const typeFilterGroup = {
|
|
27
|
+
name: 'types',
|
|
28
|
+
placeholder: 'Type',
|
|
29
|
+
type: 'select',
|
|
30
|
+
multiple: true,
|
|
31
|
+
options: typeOptions
|
|
32
|
+
};
|
|
33
|
+
customFilterGroups.push(typeFilterGroup);
|
|
34
|
+
}
|
|
16
35
|
return customFilterGroups;
|
|
17
36
|
}
|
|
18
37
|
// Hook to create filter change handler for collections
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionsFacetsNav.js","sourceRoot":"","sources":["../../../../src/features/facets/CollectionsFacetsNav.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAwB,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AACzH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CollectionsFacetsNav.js","sourceRoot":"","sources":["../../../../src/features/facets/CollectionsFacetsNav.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,13 @@ export function useInteractionsFilterGroups(facets) {
|
|
|
21
21
|
multiple: false
|
|
22
22
|
};
|
|
23
23
|
customFilterGroups.push(promptNameFilterGroup);
|
|
24
|
+
const ModelFilterGroup = {
|
|
25
|
+
name: 'model',
|
|
26
|
+
placeholder: 'Model',
|
|
27
|
+
type: 'text',
|
|
28
|
+
multiple: false
|
|
29
|
+
};
|
|
30
|
+
customFilterGroups.push(ModelFilterGroup);
|
|
24
31
|
// Add tags filter as stringList type (allows custom input)
|
|
25
32
|
const tagsFilterGroup = {
|
|
26
33
|
name: 'tags',
|
|
@@ -35,8 +42,7 @@ export function useInteractionsFilterGroups(facets) {
|
|
|
35
42
|
export function useInteractionsFilterHandler(search) {
|
|
36
43
|
return (newFilters) => {
|
|
37
44
|
if (newFilters.length === 0) {
|
|
38
|
-
|
|
39
|
-
search.clearFilters(true, false);
|
|
45
|
+
search.clearFilters(true, true);
|
|
40
46
|
return;
|
|
41
47
|
}
|
|
42
48
|
// Clear all filters first without defaults, then apply new ones
|
|
@@ -64,7 +70,7 @@ export function useInteractionsFilterHandler(search) {
|
|
|
64
70
|
search.query[filterName] = filterValue;
|
|
65
71
|
}
|
|
66
72
|
});
|
|
67
|
-
search.search();
|
|
73
|
+
search.search(true);
|
|
68
74
|
};
|
|
69
75
|
}
|
|
70
76
|
// Component for interactions filtering
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionsFacetsNav.js","sourceRoot":"","sources":["../../../../src/features/facets/InteractionsFacetsNav.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAwB,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AACzH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"InteractionsFacetsNav.js","sourceRoot":"","sources":["../../../../src/features/facets/InteractionsFacetsNav.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
export function VTypeFacet({ buckets, typeRegistry, type = 'select', multiple = false }) {
|
|
3
3
|
// Create a map for quick lookups of type names and counts
|
|
4
4
|
const typeDataMap = new Map();
|
|
5
|
+
if (!typeRegistry) {
|
|
6
|
+
console.warn("Type names cannot be resolved");
|
|
7
|
+
}
|
|
5
8
|
buckets.forEach((bucket) => {
|
|
6
9
|
let name;
|
|
7
10
|
let typeId = bucket._id;
|
|
@@ -10,7 +13,7 @@ export function VTypeFacet({ buckets, typeRegistry, type = 'select', multiple =
|
|
|
10
13
|
name = "Document";
|
|
11
14
|
}
|
|
12
15
|
else {
|
|
13
|
-
name = typeRegistry
|
|
16
|
+
name = typeRegistry?.getTypeName(bucket._id);
|
|
14
17
|
if (!name) {
|
|
15
18
|
console.warn("Content Object Type not found", bucket._id);
|
|
16
19
|
name = bucket._id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTypeFacet.js","sourceRoot":"","sources":["../../../../../src/features/facets/utils/VTypeFacet.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VTypeFacet.js","sourceRoot":"","sources":["../../../../../src/features/facets/utils/VTypeFacet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,64 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import { ChevronRight, Info } from 'lucide-react';
|
|
4
|
-
import { VTooltip } from '@vertesia/ui/core';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { VTooltip, Breadcrumbs } from '@vertesia/ui/core';
|
|
5
|
+
import { capitalize } from 'lodash-es';
|
|
6
|
+
import { useNavigate } from '@vertesia/ui/router';
|
|
7
|
+
export function GenericPageNavHeader({ className, children, title, description, actions, breadcrumbs, isCompact = false, useDynamicBreadcrumbs = true }) {
|
|
8
|
+
const navigate = useNavigate();
|
|
9
|
+
const buildBreadcrumbLabel = (entry) => {
|
|
10
|
+
const href = entry?.href || '';
|
|
11
|
+
if (!href)
|
|
12
|
+
return 'Page';
|
|
13
|
+
const cleanHref = href.split('#')[0].split('?')[0];
|
|
14
|
+
const pathSegments = cleanHref.split('/').filter((segment) => segment.length > 0);
|
|
15
|
+
if (pathSegments.length === 3) {
|
|
16
|
+
const secondSegment = pathSegments[1];
|
|
17
|
+
return `${capitalize(secondSegment)} Detail`;
|
|
18
|
+
}
|
|
19
|
+
else if (pathSegments.length >= 2) {
|
|
20
|
+
return capitalize(pathSegments[pathSegments.length - 1]);
|
|
21
|
+
}
|
|
22
|
+
else if (pathSegments.length === 1) {
|
|
23
|
+
return capitalize(pathSegments[0]);
|
|
24
|
+
}
|
|
25
|
+
return 'Page';
|
|
26
|
+
};
|
|
27
|
+
// Build breadcrumb items from history chain and current breadcrumbs
|
|
28
|
+
const buildBreadcrumbItems = () => {
|
|
29
|
+
const items = [];
|
|
30
|
+
// Add items from history chain
|
|
31
|
+
if (useDynamicBreadcrumbs && typeof window !== 'undefined' && window.history.state?.historyChain) {
|
|
32
|
+
const historyChain = window.history.state.historyChain;
|
|
33
|
+
historyChain.forEach((entry, index) => {
|
|
34
|
+
const stepsBack = historyChain.length - index;
|
|
35
|
+
items.push({
|
|
36
|
+
label: buildBreadcrumbLabel(entry),
|
|
37
|
+
href: entry.href,
|
|
38
|
+
onClick: () => window.history.go(-stepsBack)
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
// Add current page breadcrumbs
|
|
43
|
+
if (breadcrumbs && breadcrumbs.length > 0) {
|
|
44
|
+
breadcrumbs.forEach((breadcrumb) => {
|
|
45
|
+
// Extract text content from React element
|
|
46
|
+
const label = typeof breadcrumb?.props?.children === 'string'
|
|
47
|
+
? breadcrumb.props.children
|
|
48
|
+
: 'Page';
|
|
49
|
+
items.push((breadcrumb?.props?.href) ? {
|
|
50
|
+
href: breadcrumb?.props?.href,
|
|
51
|
+
label: label,
|
|
52
|
+
onClick: () => navigate(breadcrumb.props.href, { replace: breadcrumb.props.clearBreadcrumbs }),
|
|
53
|
+
} : {
|
|
54
|
+
label: label
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return items;
|
|
59
|
+
};
|
|
60
|
+
const breadcrumbItems = buildBreadcrumbItems();
|
|
61
|
+
return (_jsxs("div", { className: clsx(isCompact ? 'pb-0' : 'pb-2', 'p-4 flex flex-col', className), children: [_jsxs("div", { className: 'flex items-start gap-4', children: [_jsxs("div", { className: "w-full flex place-content-between h-auto min-h-8 flex-col items-start", children: [_jsx("nav", { className: "flex-1 flex justify-start text-xs", children: breadcrumbItems.length > 0 && (_jsx(Breadcrumbs, { path: breadcrumbItems, separator: _jsx(ChevronRight, { className: "w-3.5 h-3.5" }), maxItems: 4 })) }), _jsxs("div", { className: 'flex gap-2 items-center', children: [_jsx("h1", { className: "text-xl font-semibold break-all", children: title }), description &&
|
|
9
62
|
_jsx(VTooltip, { description: description, children: _jsx(Info, { className: "size-4 text-muted" }) })] })] }), _jsx("div", { className: "flex gap-x-2 shrink-0", children: actions })] }), children && _jsx("div", { className: "w-full flex items-center", children: children })] }));
|
|
10
63
|
}
|
|
11
64
|
//# sourceMappingURL=GenericPageNavHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericPageNavHeader.js","sourceRoot":"","sources":["../../../../src/features/layout/GenericPageNavHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"GenericPageNavHeader.js","sourceRoot":"","sources":["../../../../src/features/layout/GenericPageNavHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useUserSession } from "@vertesia/ui/session";
|
|
3
3
|
import { DocumentSearchResultsWithDropZone, DocumentSearchResults } from "../objects/DocumentSearchResults";
|
|
4
4
|
import { useToast } from "@vertesia/ui/core";
|
|
5
|
+
import { useDocumentSearch } from "../objects/search/DocumentSearchContext";
|
|
5
6
|
export function BrowseCollectionView({ collection }) {
|
|
6
7
|
const toast = useToast();
|
|
7
8
|
const { client, typeRegistry } = useUserSession();
|
|
9
|
+
const search = useDocumentSearch();
|
|
10
|
+
search.query.all_revisions = true;
|
|
8
11
|
const onUploadDone = async (objectIds) => {
|
|
9
12
|
if (objectIds.length > 0) {
|
|
10
13
|
await client.store.collections.addMembers(collection.id, objectIds).catch(err => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowseCollectionView.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/BrowseCollectionView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"BrowseCollectionView.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/BrowseCollectionView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAM5E,MAAM,UAAU,oBAAoB,CAAC,EAAE,UAAU,EAA6B;IAC1E,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAElC,MAAM,YAAY,GAAG,KAAK,EAAE,SAAmB,EAAE,EAAE;QAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC5E,KAAK,CAAC;oBACF,KAAK,EAAE,qCAAqC;oBAC5C,WAAW,EAAE,GAAG,CAAC,OAAO;oBACxB,MAAM,EAAE,OAAO;iBAClB,CAAC,CAAA;YACN,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7D,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,qBAAqB,IAAC,MAAM,EAAE,WAAW,GAAI,CACjD,CAAC,CAAC,CAAC,CACA,KAAC,iCAAiC,IAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAI,CACzF,CAAA;AACL,CAAC;AAED,SAAS,cAAc,CAAC,UAAsB,EAAE,YAAuC;IACnF,IAAI,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC3C,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,YAAY,CAAC;IACxB,CAAC;SAAM,CAAC;QACJ,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useToast, VModalBody, FormItem,
|
|
2
|
+
import { useToast, VModalBody, FormItem, VModalFooter, Input, Switch, Button, VModal, VModalTitle, Textarea } from "@vertesia/ui/core";
|
|
3
3
|
import { SelectContentType } from "../types/SelectContentType";
|
|
4
4
|
import { useNavigate } from "@vertesia/ui/router";
|
|
5
5
|
import { useUserSession } from "@vertesia/ui/session";
|
|
@@ -64,7 +64,7 @@ export function CreateCollectionForm({ onClose, redirect = true, onAddToCollecti
|
|
|
64
64
|
})
|
|
65
65
|
.finally(() => setProcessing(false));
|
|
66
66
|
};
|
|
67
|
-
return (_jsxs("form", { onSubmit: (e) => e.preventDefault(), children: [_jsxs(VModalBody, { children: [_jsx(FormItem, { label: "Name", required: true, children: _jsx(Input, { type: "text", value: payload.name || "", onChange: (value) => setPayloadProp("name", value) }) }), _jsx(FormItem, { label: "Description", className: "mt-2", children: _jsx(
|
|
67
|
+
return (_jsxs("form", { onSubmit: (e) => e.preventDefault(), children: [_jsxs(VModalBody, { children: [_jsx(FormItem, { label: "Name", required: true, children: _jsx(Input, { type: "text", value: payload.name || "", onChange: (value) => setPayloadProp("name", value) }) }), _jsx(FormItem, { label: "Description", className: "mt-2", children: _jsx(Textarea, { value: payload.description || "", onChange: (ev) => setPayloadProp("description", ev) }) }), _jsx(FormItem, { label: "Dynamic Collection", className: "mt-2", direction: "row", description: "Dynamically fetch content for the collection based on a query. If not enabled, then content must be added by users or agents.", children: _jsx(Switch, { value: payload.dynamic || false, onChange: (value) => setPayloadProp("dynamic", value) }) }), !payload.dynamic &&
|
|
68
68
|
_jsx(FormItem, { label: "Allowed Content Types", className: "mt-4", description: "Optionally select which content types can be added to the collection. If not set, then all content types are allowed.", children: _jsx(SelectContentType, { defaultValue: payload.allowed_types || null, onChange: (v) => {
|
|
69
69
|
if (Array.isArray(v)) {
|
|
70
70
|
setPayloadProp("allowed_types", v.map(type => type.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateCollection.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/CreateCollection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"CreateCollection.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/CreateCollection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { json } from "@codemirror/lang-json";
|
|
3
|
-
import
|
|
4
|
-
import { useUserSession } from "@vertesia/ui/session";
|
|
5
|
-
import { CodeMirrorEditor, GeneratedForm, ManagedObject } from "@vertesia/ui/widgets";
|
|
3
|
+
import dayjs from "dayjs";
|
|
6
4
|
import { basicSetup } from "codemirror";
|
|
7
5
|
import { useMemo, useRef, useState } from "react";
|
|
6
|
+
import { UserInfo } from "@vertesia/ui/features";
|
|
7
|
+
import { useUserSession } from "@vertesia/ui/session";
|
|
8
|
+
import { CodeMirrorEditor, GeneratedForm, ManagedObject } from "@vertesia/ui/widgets";
|
|
9
|
+
import { Button, ErrorBox, FormItem, Input, Styles, Textarea, useFetch, useToast, Panel } from "@vertesia/ui/core";
|
|
8
10
|
import { SelectContentType, stringifyTableLayout } from "../types";
|
|
9
11
|
const extensions = [basicSetup, json()];
|
|
10
12
|
export function EditCollectionView({ refetch, collection }) {
|
|
@@ -112,36 +114,36 @@ export function EditCollectionView({ refetch, collection }) {
|
|
|
112
114
|
[name]: value,
|
|
113
115
|
});
|
|
114
116
|
};
|
|
115
|
-
return (_jsxs("div", { className: "flex flex-col gap-4 py-2", children: [_jsx(FormItem, { label: "Name", required: true, children: _jsx(Input, { value: metadata.name, onChange: (v) => setField("name", v) }) }), _jsx(FormItem, { label: "Description", children: _jsx(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
117
|
+
return (_jsxs("div", { className: "flex flex-col gap-4 py-2", children: [_jsxs(Panel, { title: "Configuration", action: _jsx(Button, { size: "lg", isDisabled: isUpdating, onClick: onSubmit, children: "Save" }), children: [_jsxs("div", { className: "flex justify-between mb-2", children: [_jsxs("div", { className: "w-1/2 gap-2 flex flex-col", children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Created By" }), _jsxs("div", { className: "gap-2 flex items-center", children: [_jsx(UserInfo, { userRef: collection.created_by, showTitle: true }), _jsxs("span", { children: ["at ", dayjs(collection.created_at).format("YYYY-MM-DD HH:mm:ss")] })] })] }), _jsxs("div", { className: "w-1/2 gap-2 flex flex-col", children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Updated By" }), _jsxs("div", { className: "gap-2 flex items-center", children: [_jsx(UserInfo, { userRef: collection.updated_by, showTitle: true }), _jsxs("span", { children: ["at ", dayjs(collection.updated_at).format("YYYY-MM-DD HH:mm:ss")] })] })] })] }), _jsx(FormItem, { label: "Name", required: true, children: _jsx(Input, { value: metadata.name, onChange: (v) => setField("name", v) }) }), _jsx(FormItem, { label: "Description", children: _jsx(Textarea, { value: metadata.description, onChange: (e) => setField("description", e) }) }), !collection.dynamic &&
|
|
118
|
+
_jsx(FormItem, { label: "Allowed Content Types", description: "Select which content types can be added to the collection. If not set, then all content types are allowed.", children: _jsx(SelectContentType, { defaultValue: metadata.allowed_types || null, onChange: (v) => {
|
|
119
|
+
if (Array.isArray(v)) {
|
|
120
|
+
setField("allowed_types", v.map(type => type.id));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
setField("allowed_types", v ? [v.id] : []);
|
|
124
|
+
}
|
|
125
|
+
}, isClearable: true, multiple: true }) }), collection.dynamic && (_jsx(FormItem, { label: "Query", description: "Define the query to dynamically fetch content for the collection.", children: _jsx(Textarea, { className: Styles.INPUT, value: metadata.query, onChange: (e) => setField("query", e) }) })), _jsx(FormItem, { label: "Table Layout", description: "Define a custom layout for displaying the collection in tables.", children: _jsx(CodeMirrorEditor, { className: "border-1 rounded-md border-border", value: tableLayoutValue, extensions: extensions, editorRef: tableLayoutRef }) }), _jsx(FormItem, { label: "Type", description: "Select a content type to assign custom properties and data to the collection.", children: _jsx(SelectContentType, { defaultValue: metadata.type || null, onChange: (v) => {
|
|
126
|
+
if (Array.isArray(v)) {
|
|
127
|
+
setField("type", v.length > 0 ? v[0].id : null);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
setField("type", v?.id || null);
|
|
131
|
+
}
|
|
132
|
+
}, isClearable: true }) })] }), typeId && _jsx(PropertiesEditor, { typeId: typeId, collection: collection })] }));
|
|
131
133
|
}
|
|
132
134
|
function PropertiesEditor({ typeId, collection }) {
|
|
135
|
+
const toast = useToast();
|
|
133
136
|
const { client } = useUserSession();
|
|
137
|
+
const [isUpdating, setIsUpdating] = useState(false);
|
|
134
138
|
const { data: type, error } = useFetch(() => client.store.types.retrieve(typeId), [typeId]);
|
|
139
|
+
const schema = type?.object_schema || {};
|
|
140
|
+
const object = useMemo(() => new ManagedObject(schema, collection.properties || {}), [schema, collection.properties]);
|
|
135
141
|
if (error) {
|
|
136
142
|
return _jsx(ErrorBox, { title: "Failed to load type", children: error.message });
|
|
137
143
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const { client } = useUserSession();
|
|
142
|
-
const toast = useToast();
|
|
143
|
-
const object = useMemo(() => new ManagedObject(schema, collection.properties || {}), [schema, collection]);
|
|
144
|
-
const [isUpdating, setIsUpdating] = useState(false);
|
|
144
|
+
if (!type) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
145
147
|
const _onSave = (data) => {
|
|
146
148
|
const payload = { properties: data || {} };
|
|
147
149
|
setIsUpdating(true);
|
|
@@ -167,9 +169,6 @@ function PropertiesForm({ schema = {}, collection }) {
|
|
|
167
169
|
setIsUpdating(false);
|
|
168
170
|
});
|
|
169
171
|
};
|
|
170
|
-
return (_jsx(
|
|
171
|
-
}
|
|
172
|
-
function Section({ children, title }) {
|
|
173
|
-
return (_jsxs("div", { className: "my-4", children: [_jsx("div", { className: "text-lg text-gray-700 font-semibold border-b border-b-gray-300 py-2 mb-4", children: title }), children] }));
|
|
172
|
+
return (_jsx(Panel, { title: "Properties", action: _jsx(Button, { size: "lg", isLoading: isUpdating, type: "submit", children: "Save" }), children: _jsx(GeneratedForm, { object: object, onSubmit: _onSave }) }));
|
|
174
173
|
}
|
|
175
174
|
//# sourceMappingURL=EditCollectionView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditCollectionView.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/EditCollectionView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"EditCollectionView.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/EditCollectionView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Button, cn, ErrorBox, useDebounce, useFetch, Popover, PopoverContent, PopoverTrigger, Command, CommandEmpty, CommandGroup, CommandItem, CommandInput } from "@vertesia/ui/core";
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { ErrorBox, useFetch, VSelectBox } from "@vertesia/ui/core";
|
|
5
4
|
import { useUserSession } from "@vertesia/ui/session";
|
|
6
|
-
|
|
5
|
+
function getLabel(option) {
|
|
6
|
+
return option.name;
|
|
7
|
+
}
|
|
8
|
+
export function SelectCollection({ onChange, value, disabled = false, placeholder = "Select a collection", filterOut, allowDynamic = true, multiple = false }) {
|
|
7
9
|
const { client } = useUserSession();
|
|
8
|
-
const [searchQuery, setSearchQuery] = useState('');
|
|
9
|
-
const [isSearching, setIsSearching] = useState(false);
|
|
10
|
-
// Debounce the search query to avoid excessive API calls
|
|
11
|
-
const debouncedSearchQuery = useDebounce(searchQuery, 300);
|
|
12
|
-
// Memoize the search function to prevent unnecessary re-renders
|
|
13
|
-
const searchCollections = useCallback(async (query) => {
|
|
14
|
-
setIsSearching(true);
|
|
15
|
-
const trimmedQuery = query.trim();
|
|
16
|
-
const collections = await client.store.collections.search({
|
|
17
|
-
dynamic: false,
|
|
18
|
-
name: trimmedQuery || undefined
|
|
19
|
-
});
|
|
20
|
-
setIsSearching(false);
|
|
21
|
-
return collections;
|
|
22
|
-
}, [client]);
|
|
23
|
-
// Fetch collections based on debounced search query
|
|
24
|
-
const { data: collections, error } = useFetch(() => searchCollections(debouncedSearchQuery), [debouncedSearchQuery, searchCollections]);
|
|
25
|
-
// Memoize the selected collection to avoid recalculation on every render
|
|
26
|
-
const selectedCollection = useMemo(() => {
|
|
27
|
-
return collections?.find((collection) => collection.id === value);
|
|
28
|
-
}, [collections, value]);
|
|
29
10
|
// Handle collection selection
|
|
30
11
|
const handleSelect = useCallback((collection) => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
12
|
+
if (multiple) {
|
|
13
|
+
// Multiple selection mode
|
|
14
|
+
const selectedCollections = collection;
|
|
15
|
+
if (selectedCollections && selectedCollections.length > 0) {
|
|
16
|
+
const ids = selectedCollections.map(c => c.id);
|
|
17
|
+
onChange(ids, selectedCollections);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
onChange(undefined);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Single selection mode
|
|
25
|
+
const selectedCollection = collection;
|
|
26
|
+
if (selectedCollection) {
|
|
27
|
+
onChange(selectedCollection.id, selectedCollection);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
onChange(undefined);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}, [onChange, multiple]);
|
|
34
|
+
// Fetch collections
|
|
35
|
+
const { data: collections, error } = useFetch(async () => {
|
|
36
|
+
const allCollections = await client.store.collections.search({
|
|
37
|
+
dynamic: allowDynamic ? undefined : false
|
|
38
|
+
});
|
|
39
|
+
// Filter out collections if filterOut is provided
|
|
40
|
+
if (filterOut && filterOut.length > 0) {
|
|
41
|
+
return allCollections.filter(col => !filterOut.includes(col.id));
|
|
42
|
+
}
|
|
43
|
+
return allCollections;
|
|
44
|
+
}, [client, allowDynamic, filterOut]);
|
|
42
45
|
if (error) {
|
|
43
|
-
return
|
|
46
|
+
return _jsx(ErrorBox, { title: "Error", children: error.message || String(error) });
|
|
44
47
|
}
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
? "No collections found."
|
|
51
|
-
: "No collections available." }), _jsxs(CommandGroup, { className: "max-h-[300px] overflow-auto", children: [showClearOption && (_jsx(CommandItem, { value: "__clear__", onSelect: handleClear, className: "text-muted-foreground", children: "Clear selection" })), collections?.map((collection) => (_jsxs(CommandItem, { value: collection.id, onSelect: () => handleSelect(collection), className: cn("flex items-center justify-between", value === collection.id ? "bg-muted/20" : ""), children: [_jsxs("div", { className: "flex flex-col flex-1 min-w-0", children: [_jsx("span", { className: "truncate font-medium", children: collection.name }), collection.description && (_jsx("span", { className: "text-sm text-muted-foreground truncate", children: collection.description }))] }), _jsx(Check, { className: cn("ml-2 h-4 w-4 shrink-0", value === collection.id ? "opacity-100" : "opacity-0") })] }, collection.id)))] })] }) })] }));
|
|
48
|
+
// Find the selected collection(s) from the value (collection ID(s))
|
|
49
|
+
const selectedCollection = multiple
|
|
50
|
+
? collections?.filter(col => Array.isArray(value) && value.includes(col.id)) || []
|
|
51
|
+
: collections?.find(col => col.id === value) || null;
|
|
52
|
+
return (multiple ? (_jsx(VSelectBox, { className: "w-full", by: "id", value: selectedCollection, filterBy: "name", options: collections || [], disabled: disabled, optionLabel: (option) => getLabel(option), placeholder: placeholder, onChange: handleSelect, isClearable: true, multiple: multiple })) : (_jsx(VSelectBox, { className: "w-full", by: "id", value: selectedCollection, filterBy: "name", options: collections || [], disabled: disabled, optionLabel: (option) => getLabel(option), placeholder: placeholder, onChange: handleSelect, isClearable: true, multiple: multiple })));
|
|
52
53
|
}
|
|
53
54
|
//# sourceMappingURL=SelectCollection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCollection.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/SelectCollection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SelectCollection.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/SelectCollection.tsx"],"names":[],"mappings":"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"}
|